@import"https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--paper: #f8fafc;--surface: #ffffff;--surface-sunk: #f1f5f9;--ink: #0f172a;--ink-soft: #1e293b;--ink-muted: #475569;--ink-faint: #64748b;--rule: #e2e8f0;--rule-strong: #cbd5e1;--pine: #0284c7;--pine-deep: #0369a1;--pine-wash: #f0f9ff;--rust: #ea580c;--rust-wash: #fff7ed;--ok: #059669;--ok-wash: #ecfdf5;--alert: #dc2626;--alert-wash: #fef2f2;--warn: #d97706;--warn-wash: #fffbeb;--blue: #2563eb;--blue-wash: #dbeafe;--purple: #7c3aed;--purple-wash: #ede9fe;--font-sans: "Archivo", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;color-scheme:light}:root{--bg-base: var(--paper);--bg-surface: var(--surface);--border: var(--rule);--border-strong: var(--rule-strong);--text-main: var(--ink);--text-muted: var(--ink-muted);--primary: var(--pine);--primary-hover: var(--pine-deep);--primary-soft: var(--pine-wash);--primary-rgb: 2, 132, 199;--success: var(--ok);--danger: var(--alert);--warning: var(--warn);--orange: var(--rust);--orange-soft: var(--rust-wash);--font-main: var(--font-sans);--font-data: var(--font-mono);--r-sm: 3px;--r: 4px;--r-md: 4px;--r-lg: 6px;--r-xl: 8px;--shadow-xs: 0 1px 2px rgba(21, 26, 24, .04);--shadow-sm: 0 1px 2px rgba(21, 26, 24, .05), 0 1px 3px rgba(21, 26, 24, .04);--shadow: 0 1px 2px rgba(21, 26, 24, .04), 0 8px 24px -12px rgba(21, 26, 24, .1);--shadow-lg: 0 2px 4px rgba(21, 26, 24, .05), 0 18px 40px -16px rgba(21, 26, 24, .16)}:root{--field-bg: var(--surface);--field-bg-hover: var(--surface);--field-border: #eef2f7;--field-border-hover: #dbe3ec;--field-border-focus: var(--pine);--field-text: var(--ink-soft);--field-placeholder: #a8b3c2;--field-ring: rgba(var(--primary-rgb), .14);--field-shadow: inset 0 1px 1px rgba(15, 23, 42, .02)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background:var(--bg-base);color:var(--text-main);font-size:13.5px;-webkit-font-smoothing:antialiased;overflow:hidden}.hidden{display:none!important}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.saas-card{background:var(--bg-surface);border-radius:var(--r);box-shadow:var(--shadow);padding:16px;margin-bottom:24px;transition:transform .2s ease,box-shadow .2s ease}.saas-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.saas-table{width:100%;border-collapse:separate;border-spacing:0 8px}.saas-table th,.saas-table td{padding:8px 12px;text-align:left;background:var(--bg-surface);border-radius:var(--r-sm)}.saas-table th{background:var(--primary-soft);color:var(--primary);font-weight:600}.saas-table tbody tr:hover td{background:var(--primary-soft);transition:background .2s ease}.analysis-pill{display:inline-block;padding:2px 8px;border-radius:var(--r-sm);font-size:.75rem;font-weight:600;text-transform:uppercase}.analysis-pill.good{background:var(--success);color:#fff}.analysis-pill.bad{background:var(--danger);color:#fff}.analysis-pill.neutral{background:var(--warning);color:#fff}.analysis-kpi{display:flex;flex-direction:column;align-items:flex-start;background:var(--bg-surface);padding:8px 12px;border-radius:var(--r-sm);box-shadow:var(--shadow-xs);margin-bottom:8px}.analysis-kpi-label{font-size:.75rem;color:var(--text-muted)}.analysis-kpi-value{font-size:1.2rem;font-weight:600;color:var(--text-main)}.analysis-kpi-note{font-size:.65rem;color:var(--text-muted)}.analysis-chart-box{background:var(--bg-surface);border-radius:var(--r);padding:12px;box-shadow:var(--shadow-xs)}.modal-card{background:var(--bg-surface);border-radius:var(--r-lg);padding:24px;box-shadow:var(--shadow-lg)}.leaflet-tooltip.gnn-tooltip{background:var(--ink)!important;color:var(--surface)!important;border:none!important;border-radius:4px!important;box-shadow:0 4px 12px #00000026!important;padding:6px 10px!important;font-family:var(--font-main)!important}.leaflet-tooltip-left.gnn-tooltip:before{border-left-color:var(--ink)!important}.leaflet-tooltip-right.gnn-tooltip:before{border-right-color:var(--ink)!important}:root{--primary-glow: rgba(14, 92, 73, .16);--glass-bg: rgba(255, 255, 255, .72);--glass-border: rgba(227, 228, 223, .7)}:root{--bg-base-dark: #0d110f;--bg-surface-dark: #151a18;--border-dark: #242b28;--text-main-dark: #ecefeb;--text-muted-dark: #a3aea9}@media (prefers-color-scheme: dark){:root:not([data-theme]){--paper: #020617;--surface: #0f172a;--surface-sunk: #090f1e;--ink: #f8fafc;--ink-soft: #cbd5e1;--ink-muted: #94a3b8;--ink-faint: #64748b;--rule: #1e293b;--rule-strong: #334155;--pine: #38bdf8;--pine-deep: #7dd3fc;--pine-wash: #082f49;--rust: #fb923c;--rust-wash: #431407;--ok: #34d399;--ok-wash: #064e3b;--alert: #f87171;--alert-wash: #450a0a;--warn: #fbbf24;--warn-wash: #451a03;--primary-rgb: 56, 189, 248;--glass-bg: rgba(15, 23, 42, .72);--glass-border: rgba(30, 41, 59, .6);--primary-glow: rgba(56, 189, 248, .28);--field-bg: rgba(148, 163, 184, .06);--field-bg-hover: rgba(148, 163, 184, .1);--field-border: rgba(148, 163, 184, .16);--field-border-hover: rgba(148, 163, 184, .3);--field-text: var(--ink);--field-placeholder: #64748b;--field-ring: rgba(56, 189, 248, .22);--field-shadow: none;color-scheme:dark}}:root[data-theme=dark]{--paper: #020617;--surface: #0f172a;--surface-sunk: #090f1e;--ink: #f8fafc;--ink-soft: #cbd5e1;--ink-muted: #94a3b8;--ink-faint: #64748b;--rule: #1e293b;--rule-strong: #334155;--pine: #38bdf8;--pine-deep: #7dd3fc;--pine-wash: #082f49;--rust: #fb923c;--rust-wash: #431407;--ok: #34d399;--ok-wash: #064e3b;--alert: #f87171;--alert-wash: #450a0a;--warn: #fbbf24;--warn-wash: #451a03;--primary-rgb: 56, 189, 248;--glass-bg: rgba(15, 23, 42, .72);--glass-border: rgba(30, 41, 59, .6);--primary-glow: rgba(56, 189, 248, .28);--field-bg: rgba(148, 163, 184, .06);--field-bg-hover: rgba(148, 163, 184, .1);--field-border: rgba(148, 163, 184, .16);--field-border-hover: rgba(148, 163, 184, .3);--field-text: var(--ink);--field-placeholder: #64748b;--field-ring: rgba(56, 189, 248, .22);--field-shadow: none;color-scheme:dark}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong, #cdd3e2)}.glass-card{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:var(--shadow);transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-card:hover{box-shadow:var(--shadow-lg);border-color:var(--primary-glow)}.xai-console{background:var(--surface-sunk);border:1px solid var(--border);border-radius:var(--r);font-family:var(--font-data);color:var(--pine);padding:12px;overflow-y:auto;font-size:11px;line-height:1.6;box-shadow:inset 0 1px 2px #151a180d}.xai-console-line{margin-bottom:4px;white-space:pre-wrap;word-break:break-all}.glow-btn{position:relative;overflow:hidden;transition:all .3s ease}.glow-btn:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:all .5s ease}.glow-btn:hover:after{left:100%}.playground-drawer{position:absolute;top:0;right:-360px;width:340px;height:100%;background:var(--bg-surface);border-left:1px solid var(--border);box-shadow:-4px 0 24px -8px #151a1824;z-index:1000;display:flex;flex-direction:column;transition:right .3s cubic-bezier(.4,0,.2,1)}.playground-drawer.open{right:0}.drawer-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg-surface)}.drawer-close-btn{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.drawer-close-btn:hover{background:var(--border);color:var(--text-main)!important}.violation-tag{background:var(--alert-wash);border:1px solid var(--alert);color:var(--alert);font-size:10px;font-weight:500;border-radius:4px;padding:4px 8px;display:flex;align-items:center;gap:4px}body{overflow:auto;background:var(--bg-base);margin:0;padding:0;transition:background .3s ease}.auth-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 24px;background:var(--bg-base);position:relative;overflow:hidden;background-image:radial-gradient(circle,rgba(161,180,220,.15) 1px,transparent 1px);background-size:24px 24px}.auth-blob{position:absolute;width:450px;height:450px;border-radius:50%;pointer-events:none;z-index:0;filter:blur(100px);opacity:.16;transition:opacity .3s ease}.auth-blob.blob-1{background:radial-gradient(circle,var(--primary) 0%,rgba(37,99,235,0) 70%);top:-150px;left:-150px}.auth-blob.blob-2{background:radial-gradient(circle,#8b5cf6,#8b5cf600 70%);bottom:-150px;right:-150px}@media (prefers-color-scheme: dark){.auth-blob{opacity:.22}}[data-theme=dark] .auth-blob{opacity:.22}.auth-card{width:100%;max-width:420px;background:#ffffffd1;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(228,232,240,.7);border-radius:var(--r-xl);padding:38px 34px 34px;box-shadow:0 20px 50px #0000000d,0 1px 3px #00000005;position:relative;z-index:10;overflow:hidden;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}@media (prefers-color-scheme: dark){.auth-card{background:#1e1e2fa6;border-color:#ffffff14;box-shadow:0 20px 50px #00000040,0 0 1px #ffffff1a inset}}[data-theme=dark] .auth-card{background:#1e1e2fa6;border-color:#ffffff14;box-shadow:0 20px 50px #00000040,0 0 1px #ffffff1a inset}.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--primary),#a78bfa,var(--primary));background-size:200% auto;animation:gradient-shift 6s linear infinite}@keyframes gradient-shift{0%{background-position:0% 50%}to{background-position:200% 50%}}.tag{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--primary);margin-bottom:8px;font-family:var(--font-main);opacity:.9}.auth-headline{margin-bottom:20px}.auth-headline h1{font-family:var(--font-main);font-size:24px;font-weight:700;color:var(--text-main);letter-spacing:-.03em;line-height:1.15}.auth-icons{display:flex;gap:8px;margin-top:8px;font-size:18px}.auth-visual{margin:0 0 24px;border-radius:var(--r-lg);overflow:hidden;background:#f5f7fb99;border:1px solid rgba(228,232,240,.6);padding:16px;box-shadow:inset 0 2px 4px #00000003;transition:background .3s ease,border-color .3s ease}@media (prefers-color-scheme: dark){.auth-visual{background:#14141e66;border-color:#ffffff0a}}[data-theme=dark] .auth-visual{background:#14141e66;border-color:#ffffff0a}.auth-visual svg{width:100%;height:auto;display:block}.route-path{animation:dash-flow 3.5s linear infinite;filter:drop-shadow(0 0 3px rgba(37,99,235,.4))}@keyframes dash-flow{to{stroke-dashoffset:-64}}.route-node{animation:node-pulse 2s ease-in-out infinite alternate}.route-node-2{animation-delay:.4s}.route-node-3{animation-delay:.8s}@keyframes node-pulse{0%{r:5;opacity:.6;fill:#60a5fa}to{r:8;opacity:1;fill:var(--primary)}}.route-truck{animation:truck-bounce 2s ease-in-out infinite alternate;transform-origin:center}@keyframes truck-bounce{0%{transform:translate(138px,52px) translateY(0)}to{transform:translate(138px,52px) translateY(-3px)}}.auth-views{position:relative}.auth-form{display:none;flex-direction:column;gap:16px}.auth-form.active{display:flex}@keyframes viewFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.auth-view:not(.hidden){animation:viewFadeIn .35s cubic-bezier(.16,1,.3,1) forwards}.form-group{display:flex;flex-direction:column;gap:6px}.auth-form label{font-size:11.5px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-family:var(--font-main);transition:color .2s ease}.auth-form input[type=email],.auth-form input[type=password],.auth-form input[type=text]{width:100%;padding:11px 14px;border:1px solid var(--field-border);border-radius:var(--r);font-size:14px;font-family:var(--font-main);color:var(--field-text);background-color:var(--field-bg);outline:none;transition:border-color .2s,box-shadow .2s,background-color .2s,transform .2s;box-shadow:var(--field-shadow)}.auth-form input[type=email]:hover:not(:focus),.auth-form input[type=password]:hover:not(:focus),.auth-form input[type=text]:hover:not(:focus){border-color:var(--field-border-hover);background-color:var(--field-bg-hover)}.auth-form input:focus{border-color:var(--field-border-focus);box-shadow:0 0 0 4px var(--field-ring);background-color:var(--bg-surface);transform:translateY(-1px)}.auth-form input::placeholder{color:var(--field-placeholder)}@keyframes input-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.auth-form input.input-error{border-color:var(--danger)!important;background:#dc262608!important;box-shadow:0 0 0 4px #dc26261a!important;animation:input-shake .35s ease-in-out}.auth-card-new .btn{width:100%;padding:12px;border:none;border-radius:var(--r);font-size:14px;font-weight:600;font-family:var(--font-main);cursor:pointer;background:linear-gradient(135deg,var(--pine) 0%,#1d4ed8 100%);color:#fff;box-shadow:0 4px 12px #2563eb38;transition:all .2s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.auth-card-new .btn:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);box-shadow:0 6px 18px #2563eb4d;transform:translateY(-1px)}.auth-card-new .btn:active{transform:translateY(.5px);box-shadow:0 2px 6px #2563eb33}.auth-card-new .btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}.auth-card-new .btn.ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border-strong);box-shadow:none}@media (prefers-color-scheme: dark){.auth-card .btn.ghost{border-color:#ffffff26;color:var(--text-muted-dark)}}[data-theme=dark] .auth-card .btn.ghost{border-color:#ffffff26;color:var(--text-muted-dark)}.auth-card .btn.ghost:hover{background:var(--primary-soft);color:var(--primary);border-color:var(--primary);box-shadow:none;transform:none}@media (prefers-color-scheme: dark){.auth-card .btn.ghost:hover{background:#2563eb14}}[data-theme=dark] .auth-card .btn.ghost:hover{background:#2563eb14}.hint{font-size:12.5px;color:var(--text-muted);line-height:1.5;font-family:var(--font-main)}.auth-hint{margin-top:4px;text-align:center;min-height:16px}.auth-links{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.link-btn{background:none;border:none;color:var(--primary);font-size:13px;font-weight:500;cursor:pointer;font-family:var(--font-main);padding:4px 0;transition:opacity .2s}.link-btn:hover{opacity:.85;text-decoration:underline}.auth-divider{text-align:center;position:relative;color:var(--text-muted);font-size:12px;font-family:var(--font-main);margin:4px 0 12px;text-transform:uppercase;letter-spacing:.1em}.auth-divider span{background:var(--surface);padding:0 12px;position:relative;z-index:2;transition:background .3s ease}.auth-divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--border);z-index:1}.auth-guest{display:flex;flex-direction:column;gap:12px}.guest-btn{width:100%}.otp-row{display:flex;gap:10px}.otp-row input{flex:1.5}.otp-row .btn{flex:1;width:auto;min-width:100px}.otp-countdown{font-size:12px;color:var(--text-muted);font-family:var(--font-main)}.otp-countdown.active{color:var(--primary);font-weight:500}.otp-countdown.expired{color:var(--danger);font-weight:500}.inline-row{display:flex;gap:10px;margin-top:6px}.inline-row .btn{flex:1}.auth-theme-toggle{position:absolute;top:16px;right:16px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease;z-index:20}.auth-theme-toggle:hover{background:#2563eb14;color:var(--primary)}[data-theme=dark] .auth-theme-toggle:hover{background:#ffffff14}.password-input-wrapper{position:relative;width:100%}.password-input-wrapper input{padding-right:42px!important}.password-toggle-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.password-toggle-btn:hover{color:var(--primary)}.auth-creds.clickable:hover{background:#f59e0b24!important;border-color:#f59e0b80!important}.auth-card.modal-popup{margin:auto;border-radius:16px;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);animation:modalSlideUp .35s cubic-bezier(.16,1,.3,1)}[data-theme=light] .auth-card.modal-popup{background:#fffffff0;border:1px solid rgba(15,23,42,.08);box-shadow:0 20px 50px #0f172a1a,0 0 1px #ffffff80 inset}[data-theme=dark] .auth-card.modal-popup{background:#151521d1;border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 90px #00000073,0 0 1px #ffffff14 inset}@keyframes modalSlideUp{0%{transform:translateY(24px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.auth-close-btn{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:6px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .2s ease,color .2s ease;z-index:999}.auth-close-btn:hover{background:#ef444414;color:var(--danger)}[data-theme=dark] .auth-close-btn:hover{background:#ef44441f}.auth-card{display:none}.auth-card-new{position:relative;z-index:10;margin:auto;width:100%;max-width:900px;display:flex;background:var(--surface);border:none;border-radius:12px;box-shadow:0 10px 40px #00000014;overflow:hidden;min-height:600px}.auth-left-pane{flex:1;background:linear-gradient(135deg,#f0fdf4,#e0f2fe);padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative}:root[data-theme=dark] .auth-left-pane{background:linear-gradient(135deg,#022c22,#0f172a)}.auth-right-pane{width:440px;padding:40px 48px;display:flex;flex-direction:column;background:var(--surface)}.auth-left-logo{display:flex;align-items:center;gap:12px}.auth-left-logo-text{display:flex;flex-direction:column}.auth-left-logo-title{font-size:1.125rem;font-weight:700;color:var(--ink)}.auth-left-logo-sub{font-size:.625rem;font-weight:600;letter-spacing:.1em;color:var(--ink-muted)}.auth-left-middle h2{font-size:2.2rem;font-weight:800;line-height:1.25;color:var(--ink);margin-top:40px}.auth-left-middle .highlight{background:linear-gradient(90deg,var(--pine) 0%,#3b82f6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.auth-left-bullets{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}.auth-left-bullets li{display:flex;align-items:center;gap:12px;font-size:.9375rem;color:var(--ink-muted);font-weight:500}.auth-left-bullets li:before{content:"";display:block;width:6px;height:6px;border-radius:50%;background:var(--pine)}.auth-tabs{display:flex;background:var(--surface-sunk);border-radius:8px;padding:4px;margin-bottom:24px}.auth-tab-btn{flex:1;text-align:center;padding:10px 0;border:none;background:transparent;border-radius:6px;font-size:.9375rem;font-weight:600;color:var(--ink-muted);cursor:pointer;transition:all .2s}.auth-tab-btn.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001a}.auth-headline-right{margin-bottom:16px}.auth-headline-right h2{font-size:1.5rem;font-weight:700;margin-bottom:4px;color:var(--ink)}.auth-headline-right p{font-size:.875rem;color:var(--ink-muted)}.btn-google{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;background:var(--surface);border:1px solid var(--rule-strong);border-radius:6px;color:var(--ink);font-weight:600;cursor:pointer;transition:all .2s;margin-top:8px}.btn-google:hover{background:var(--surface-sunk)}.auth-links-right{display:flex;justify-content:flex-end;margin-top:-4px;margin-bottom:0}.auth-creds{background:var(--surface-sunk)!important;border:1px solid var(--rule)!important;color:var(--ink)!important}.auth-creds strong{background:#ffedd5;color:#c2410c!important;padding:2px 6px;border-radius:4px;font-weight:600}:root[data-theme=dark] .auth-creds strong{background:#431407;color:#fdba74!important}@media (max-width: 768px){.auth-card-new{flex-direction:column}.auth-left-pane{display:none}.auth-right-pane{width:100%;padding:32px 24px}}
