:root,[data-theme=light]{--bg-page: #efefef;--bg-card: #ffffff;--text-primary: #0d1b2a;--text-muted: #6b7280;--border-input: #d1d5db;--border-focus: #4fc3f7;--btn-primary-bg: #0d1b2a;--btn-primary-bg-hover: #1e3448;--btn-primary-text: #ffffff;--link: #6b7280;--input-bg: #ffffff;--error-bg: #fef2f2;--error-text: #dc2626;--error-border: #fca5a5;--shadow: 0 4px 24px rgba(0, 0, 0, .09)}[data-theme=dark]{--bg-page: #1a1d23;--bg-card: #23262f;--text-primary: #f0f4f8;--text-muted: #9ca3af;--border-input: #3a3d47;--border-focus: #4fc3f7;--btn-primary-bg: #4fc3f7;--btn-primary-bg-hover: #38b2e8;--btn-primary-text: #0d1b2a;--link: #4fc3f7;--input-bg: #2a2d36;--error-bg: #2a1515;--error-text: #f87171;--error-border: #7f1d1d;--shadow: 0 4px 28px rgba(0, 0, 0, .35)}.lp-page{display:flex;height:100vh;overflow:hidden;background:var(--bg-page);font-family:var(--font-sans);color:var(--text-primary);transition:background .25s ease}.lp-theme-toggle{position:fixed;top:1.25rem;right:1.25rem;z-index:100;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-input);border-radius:var(--radius-pill);padding:0;font-size:1.05rem;line-height:1;cursor:pointer;color:var(--text-primary);transition:border-color .2s,background-color .2s,transform .2s var(--ease-out)}.lp-theme-toggle:hover{border-color:var(--border-focus);background:#4fc3f714;transform:rotate(12deg)}.lp-form-section{flex:0 0 65%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:2rem;gap:1.25rem;overflow-y:hidden}.lp-card{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:2.5rem 3rem;width:100%;max-width:420px;transition:background .25s ease,transform .35s var(--ease-out),box-shadow .35s var(--ease-out);animation:lp-card-in .45s var(--ease-out) both}@keyframes lp-card-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.lp-brand-header{margin-bottom:2rem;text-align:center}.lp-wordmark{font-size:2rem;font-weight:700;letter-spacing:-.035em;color:var(--text-primary);margin:0 0 .35rem;text-align:center;background:linear-gradient(180deg,var(--text-primary),color-mix(in oklab,var(--text-primary) 70%,var(--border-focus)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.lp-wordmark sup{font-size:.5em;vertical-align:super}.lp-subtitle{font-size:.78rem;color:var(--text-muted);margin:0;letter-spacing:.02em}.lp-subtitle-xa{font-weight:600;color:var(--text-muted)}.lp-subtitle-xa sup{font-size:.6em;vertical-align:super}.lp-field{margin-bottom:1.1rem}.lp-field label{display:block;margin-bottom:.4rem;font-size:.85rem;font-weight:500;color:var(--text-muted)}.lp-field input,.lp-field select{width:100%;padding:.65rem .9rem;font-size:.95rem;color:var(--text-primary);background:var(--input-bg);border:1px solid var(--border-input);border-radius:var(--radius-sm);box-sizing:border-box;outline:none;transition:border-color .15s,box-shadow .15s,background .25s;font-family:inherit}.lp-field input:hover,.lp-field select:hover{border-color:color-mix(in oklab,var(--border-input) 50%,var(--border-focus))}.lp-field input:focus,.lp-field select:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #4fc3f72e}.lp-field input.lp-input-error,.lp-field input.lp-input-error:focus{border-color:var(--error-border);box-shadow:none}.lp-field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.2rem;cursor:pointer}.lp-password-wrapper{position:relative;display:flex;align-items:center}.lp-password-wrapper input{padding-right:2.8rem}.lp-eye-btn{position:absolute;right:.5rem;background:transparent;border:none;padding:.35rem;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;width:30px;height:30px;line-height:1;border-radius:var(--radius-sm);transition:color .15s,background-color .15s}.lp-eye-btn:hover{color:var(--text-primary);background:#4fc3f714}.lp-register-row{text-align:right;margin-top:-.35rem;margin-bottom:1.25rem}.lp-register-link{font-size:.82rem;color:var(--link);text-decoration:none;transition:color .15s}.lp-register-link:hover{color:var(--border-focus)}.lp-error{margin:0 0 1rem;padding:.6rem .85rem;background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text);border-radius:7px;font-size:.85rem;line-height:1.4}.lp-submit-btn{width:100%;padding:.78rem 1rem;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:none;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;font-family:inherit;letter-spacing:.01em;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .2s,opacity .2s,box-shadow .2s,transform .15s var(--ease-out);box-shadow:0 1px 2px #0000001f}.lp-submit-btn:hover:not(:disabled){background:var(--btn-primary-bg-hover);box-shadow:0 4px 14px #4fc3f738}.lp-submit-btn:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px 2px #0000001f}.lp-submit-btn:disabled{opacity:.45;cursor:not-allowed}.lp-spinner{animation:lp-spin .75s linear infinite;flex-shrink:0}@keyframes lp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.lp-brand-logo{margin-top:2rem;text-align:center}.lp-brand-logo img{width:180px;max-width:100%;opacity:.4;display:block;margin:0 auto}.lp-footer{font-size:.78rem;color:var(--text-muted);text-align:center}.lp-photo-section{flex:0 0 35%;background-image:url(https://images.unsplash.com/photo-1508739773434-c26b3d09e071?w=900&auto=format&fit=crop&q=80);background-size:cover;background-position:center;clip-path:polygon(8% 0,100% 0,100% 100%,0% 100%)}@media (max-width: 768px){.lp-form-section{flex:1;padding:1.5rem 1rem}.lp-photo-section{display:none}.lp-card{padding:2rem 1.5rem}}*{margin:0;padding:0;box-sizing:border-box}html,body{background:var(--color-bg);color:var(--color-text)}body{font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#root{width:100%;height:100vh}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:var(--radius-pill);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#ffffff29;background-clip:padding-box}::selection{background:#4fc3f747;color:var(--color-text)}:root{--color-bg: #0d1b2a;--color-surface: #1a1f2e;--color-surface-2: #232838;--color-surface-3: #2a3142;--color-border: rgba(255, 255, 255, .08);--color-border-strong: rgba(255, 255, 255, .16);--color-text: #e6edf3;--color-text-muted: #9aa7b4;--color-text-dim: #6b7785;--color-accent: #4db8c8;--color-accent-hover: #5fc9d9;--color-accent-2: #4fc3f7;--color-accent-amber: #e8a020;--color-success: #4caf50;--color-warning: #ff9800;--color-danger: #f44336;--color-danger-strong: #c62828;--color-focus-ring: rgba(79, 195, 247, .55);--color-focus-ring-2: rgba(79, 195, 247, .18);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .45);--shadow-xl: 0 24px 48px rgba(0, 0, 0, .55);--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--dur-fast: .12s;--dur-med: .2s;--dur-slow: .32s;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-base: 14px;--font-size-lg: 15px;--font-size-xl: 18px;--font-size-2xl: 22px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-base: 1.5;--tracking-wide: .02em;--tracking-wider: .06em}*:focus{outline:none}*:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-xs)}.leaflet-container:focus-visible,.leaflet-container *:focus-visible{outline:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);min-height:36px;border:1px solid transparent;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);line-height:1;letter-spacing:var(--tracking-wide);color:var(--color-text);background:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn:not(:disabled):active{transform:translateY(1px)}.btn--sm{min-height:28px;padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm)}.btn--block{width:100%}.btn--primary{background:var(--color-accent);color:#0a1520;border-color:var(--color-accent);box-shadow:0 1px #ffffff14 inset,0 1px 2px #00000040}.btn--primary:not(:disabled):hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover);box-shadow:0 2px 8px #4fc3f740}.btn--secondary{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border-strong)}.btn--secondary:not(:disabled):hover{background:var(--color-surface-3);border-color:var(--color-accent);color:var(--color-text)}.btn--ghost{background:transparent;color:var(--color-text-muted);border-color:transparent}.btn--ghost:not(:disabled):hover{background:#ffffff0a;color:var(--color-text)}.btn--danger{background:var(--color-danger-strong);color:#fff;border-color:var(--color-danger-strong)}.btn--danger:not(:disabled):hover{background:var(--color-danger);border-color:var(--color-danger)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.icon-btn:hover{background:#ffffff0f;color:var(--color-text)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn--sm{width:26px;height:26px}.form-input,.form-select,.form-date{display:block;width:100%;min-height:36px;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-md);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}.form-input::placeholder{color:var(--color-text-dim)}.form-input:hover,.form-select:hover,.form-date:hover{border-color:#ffffff3d}.form-input:focus,.form-select:focus,.form-date:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-focus-ring-2)}.form-input:disabled,.form-select:disabled,.form-date:disabled{opacity:.6;cursor:not-allowed}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%239aa7b4' d='M0 0l5 6 5-6z'/></svg>");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-8)}.modal-shell{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:linear-gradient(180deg,var(--color-surface-2),var(--color-surface))}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-surface)}.modal-close{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:18px;line-height:1;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.modal-close:hover{background:#ffffff0f;color:var(--color-text)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wider);text-transform:uppercase;background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge--success{background:#4caf5024;color:#7cd482;border-color:#4caf5059}.badge--warning{background:#ff980024;color:#f5b14a;border-color:#ff980059}.badge--danger{background:#f4433624;color:#f28d85;border-color:#f4433659}.badge--info{background:#4fc3f724;color:#9fddf5;border-color:#4fc3f759}.mono,.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"zero" 1}@keyframes skeleton-shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{display:block;min-height:1em;border-radius:var(--radius-xs);background-color:var(--color-surface-2);background-image:linear-gradient(90deg,#fff0 0,#ffffff0d 40%,#ffffff1a,#ffffff0d 60%,#fff0);background-size:200px 100%;background-repeat:no-repeat;animation:skeleton-shimmer 1.4s infinite linear}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn--loading{position:relative;color:transparent!important;pointer-events:none}.btn--loading:after{content:"";position:absolute;top:50%;left:50%;width:16px;height:16px;margin-top:-8px;margin-left:-8px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;color:#0a1520;animation:btn-spin .7s linear infinite}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
