@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-500:#fb2c36;--color-orange-400:#ff8b1a;--color-yellow-400:#fac800;--color-emerald-400:#00d294;--color-sky-400:#00bcfe;--color-blue-950:#162456;--color-slate-400:#90a1b9;--color-slate-900:#0f172b;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--font-weight-medium:500;--font-weight-semibold:600;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}@supports (color:lab(0% 0 0)){:root,:host{--color-red-500:lab(55.4814% 75.0732 48.8528);--color-orange-400:lab(70.0429% 42.5156 75.8207);--color-yellow-400:lab(83.2664% 8.65132 106.895);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-sky-400:lab(70.687% -23.6078 -45.9483);--color-blue-950:lab(15.6723% 8.86232 -32.2945);--color-slate-400:lab(65.5349% -2.25151 -14.5072);--color-slate-900:lab(7.78673% 1.82345 -15.0537)}}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.right-0{right:calc(var(--spacing) * 0)}.z-\[1100\]{z-index:1100}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mr-1{margin-right:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.table-row{display:table-row}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-full{height:100%}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-72{width:calc(var(--spacing) * 72)}.w-full{width:100%}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\/10{border-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-blue-950{background-color:var(--color-blue-950)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-orange-400{background-color:var(--color-orange-400)}.bg-red-500{background-color:var(--color-red-500)}.bg-slate-900{background-color:var(--color-slate-900)}.bg-slate-900\/95{background-color:#0f172bf2}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\/95{background-color:color-mix(in oklab, var(--color-slate-900) 95%, transparent)}}.bg-yellow-400{background-color:var(--color-yellow-400)}.p-4{padding:calc(var(--spacing) * 4)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-right{text-align:right}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-sky-400{color:var(--color-sky-400)}.text-slate-400{color:var(--color-slate-400)}.text-white{color:var(--color-white)}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.opacity-25{opacity:.25}.opacity-75{opacity:.75}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}@media (hover:hover){.hover\:text-white:hover{color:var(--color-white)}}}.leaflet-container{width:100%;height:100%}:root{--bg:#020617;--surface:#0a1628;--surface2:#0f172a;--border:#ffffff0f;--border2:#ffffff1a;--sky:#0ea5e9;--sky-dim:#0ea5e926;--cyan:#06b6d4;--text-1:#f1f5f9;--text-2:#94a3b8;--text-3:#475569;--danger:#ef4444;--success:#10b981;--ais-surface:#0f172a;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-quart:cubic-bezier(.25, 1, .5, 1)}body{background:var(--bg);color:var(--text-1);font-family:var(--font-geist,system-ui, sans-serif);-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}@media (prefers-reduced-motion:reduce){body{transition:none}}button:active:not(:disabled){transition:transform .1s var(--ease-out-expo);transform:scale(.97)}.login-bg{background:radial-gradient(ellipse 80% 60% at 50% 0%, #0ea5e91f 0%, transparent 70%), radial-gradient(ellipse 60% 40% at 80% 80%, #06b6d40f 0%, transparent 60%), var(--bg);justify-content:center;align-items:center;min-height:100dvh;display:flex;position:relative;overflow:hidden}.login-glow{pointer-events:none;background:radial-gradient(circle,#0ea5e914 0%,#0000 70%);width:600px;height:600px;position:absolute;top:-200px;left:50%;transform:translate(-50%)}.login-glow-2{pointer-events:none;background:radial-gradient(circle,#06b6d40d 0%,#0000 70%);width:400px;height:400px;position:absolute;bottom:0;right:0}.login-waves{pointer-events:none;height:120px;position:absolute;bottom:0;left:0;right:0}.login-card-wrap{z-index:10;-webkit-backdrop-filter:blur(24px);border:1px solid var(--border2);background:#0a1628d9;border-radius:1.25rem;flex-direction:column;align-items:center;gap:.25rem;width:100%;max-width:420px;margin:1rem;padding:2.5rem 2rem;display:flex;position:relative;box-shadow:0 0 0 1px #0ea5e914,0 40px 80px #00000080}.login-card-wrap:before{content:"";background:linear-gradient(90deg, transparent, var(--sky), transparent);inset-inline:20%;border-radius:999px;height:1px;position:absolute;top:0}.login-logo{border:1px solid #0ea5e940;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:.5rem;display:flex}.login-title{color:var(--text-1);letter-spacing:-.02em;margin:0;font-size:1.375rem;font-weight:700}.login-subtitle{color:var(--text-2);margin:0 0 1.25rem;font-size:.8125rem}.login-form{flex-direction:column;gap:1rem;width:100%;margin-top:.5rem;display:flex}.input-group{flex-direction:column;gap:.375rem;display:flex}.input-label{color:var(--text-2);letter-spacing:.03em;font-size:.75rem;font-weight:500}.input-wrap{align-items:center;display:flex;position:relative}.input-icon{color:var(--text-3);pointer-events:none;display:flex;position:absolute;left:.75rem}.input-field{border:1px solid var(--border2);width:100%;color:var(--text-1);background:#ffffff0a;border-radius:.625rem;outline:none;padding:.625rem .875rem .625rem 2.25rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.input-field::placeholder{color:var(--text-3)}.input-field:focus{border-color:var(--sky);box-shadow:0 0 0 3px #0ea5e91f}.input-eye{color:var(--text-3);cursor:pointer;background:0 0;border:none;padding:0;transition:color .15s;display:flex;position:absolute;right:.75rem}.input-eye:hover{color:var(--text-2)}.login-error{color:#fca5a5;background:#ef44441a;border:1px solid #ef444440;border-radius:.5rem;align-items:center;gap:.5rem;padding:.625rem .875rem;font-size:.8125rem;display:flex}.login-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0284c7,#0ea5e9);border:none;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:.25rem;padding:.75rem 1rem;font-size:.9375rem;font-weight:600;transition:opacity .15s,box-shadow .15s;display:flex;box-shadow:0 4px 14px #0ea5e94d}.login-btn:hover:not(:disabled){opacity:.95;box-shadow:0 6px 20px #0ea5e966}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-footer{color:var(--text-3);align-items:center;gap:.375rem;margin-top:.75rem;font-size:.6875rem;display:flex}.otp-back{color:var(--text-2);cursor:pointer;background:0 0;border:none;align-self:flex-start;align-items:center;gap:.375rem;margin-bottom:.25rem;padding:0;font-size:.8125rem;transition:color .15s;display:flex}.otp-back:hover{color:var(--text-1)}.otp-shield{background:#0ea5e90f}.otp-inputs{justify-content:center;gap:.5rem;margin:.25rem 0;display:flex}.otp-digit{text-align:center;width:3rem;height:3.5rem;color:var(--text-1);border:1px solid var(--border2);caret-color:var(--sky);background:#ffffff0a;border-radius:.625rem;outline:none;font-size:1.375rem;font-weight:600;transition:border-color .15s,box-shadow .15s}.otp-digit:focus{border-color:var(--sky);box-shadow:0 0 0 3px #0ea5e91f}.otp-digit-filled{background:#0ea5e90f;border-color:#0ea5e966}.otp-timer{color:var(--text-2);justify-content:center;align-items:center;gap:.375rem;font-size:.8125rem;display:flex}.otp-timer-expired{color:var(--danger)}.otp-resend{color:var(--sky);cursor:pointer;background:0 0;border:none;margin-top:.25rem;padding:.5rem 0;font-size:.8125rem;transition:opacity .15s}.otp-resend:hover{opacity:.8}.dash-layout{height:100dvh;display:flex;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.25rem;width:240px;padding:1.25rem .75rem;transition:width .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1);display:flex;overflow:hidden auto;box-shadow:4px 0 24px #0000002e}.sidebar-collapsed{width:64px;box-shadow:none}.sidebar-brand{align-items:center;gap:.75rem;min-width:0;margin-bottom:.25rem;padding:.25rem .5rem;display:flex}.sidebar-brand-text{flex:1;min-width:0;overflow:hidden}.sidebar-toggle{border:1px solid var(--border2);width:24px;height:24px;color:var(--text-3);cursor:pointer;background:0 0;border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;transition:background .15s,color .15s;display:flex}.sidebar-toggle:hover{color:var(--text-1);background:#ffffff0f}.sidebar-collapsed .sidebar-toggle{margin-left:0}.sidebar-icon-wrap{background:var(--sky-dim);border:1px solid #0ea5e933;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.sidebar-brand-name{color:var(--text-1);font-size:.875rem;font-weight:700;line-height:1.2}.sidebar-brand-sub{color:var(--text-3);font-size:.6875rem}.sidebar-divider{background:var(--border);height:1px;margin:.5rem 0}.sidebar-section-label{color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.125rem;padding:0 .75rem;font-size:.6875rem;font-weight:600}.sidebar-nav{flex-direction:column;gap:.125rem;display:flex}.sidebar-nav-item{color:var(--text-2);border-radius:.5rem;align-items:center;gap:.75rem;padding:.5rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex;position:relative}.sidebar-nav-item:hover{color:var(--text-1);background:#ffffff0a}.sidebar-nav-active{color:var(--sky);background:#0ea5e91a}.sidebar-nav-active:hover{background:#0ea5e91f}.sidebar-nav-item-collapsed{justify-content:center;padding:.5rem 0}.sidebar-nav-icon{flex-shrink:0;display:flex}.sidebar-nav-label{flex:1}.sidebar-nav-dot{background:var(--sky);border-radius:50%;flex-shrink:0;width:6px;height:6px}.sidebar-user{align-items:center;gap:.625rem;padding:.5rem;display:flex}.sidebar-user-collapsed{flex-wrap:wrap;justify-content:center;gap:0}.sidebar-avatar{width:32px;height:32px;color:var(--sky);background:#0ea5e91a;border:1px solid #0ea5e933;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-user-name{color:var(--text-1);font-size:.8125rem;font-weight:600;line-height:1.2}.sidebar-user-role{color:var(--text-3);font-size:.6875rem}.sidebar-logout{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:.375rem;flex-shrink:0;padding:.375rem;transition:background .15s,color .15s;display:flex}.sidebar-logout:hover{color:var(--danger);background:#ef44441a}.dash-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.dash-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;height:56px;padding:0 1.25rem;display:flex}.dash-header-left{align-items:center;gap:.75rem;display:flex}.dash-hamburger{border:1px solid var(--border);width:34px;height:34px;color:var(--text-2);cursor:pointer;background:#ffffff0a;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.dash-hamburger:hover{color:var(--text-1);background:#ffffff12}.dash-hamburger-hidden{display:none}.dash-header-title{color:var(--text-1);font-size:.9375rem;font-weight:600;line-height:1}.dash-header-breadcrumb{align-items:center;gap:.25rem;font-size:.6875rem;display:flex}.dash-header-right{align-items:center;gap:.875rem;display:flex}.kpler-sync-btn{border:1px solid var(--sync-color,var(--sky));color:var(--sync-color,var(--sky));cursor:pointer;white-space:nowrap;background:#0ea5e912;border-radius:999px;flex-shrink:0;align-items:center;gap:.375rem;padding:.3rem .75rem;font-size:.75rem;font-weight:600;transition:all .15s;display:inline-flex}.kpler-sync-btn:hover:not(:disabled){background:#0ea5e924}.kpler-sync-btn:disabled{opacity:.7;cursor:default}.dash-live{color:var(--success);background:#10b98114;border:1px solid #10b98133;border-radius:999px;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;display:flex}.dash-live-dot{background:var(--success);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}.dash-clock{font-variant-numeric:tabular-nums;color:var(--text-3);font-family:monospace;font-size:.75rem}.dash-icon-btn{border:1px solid var(--border);width:34px;height:34px;color:var(--text-2);cursor:pointer;background:#ffffff0a;border-radius:.5rem;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex;position:relative}.dash-icon-btn:hover{color:var(--text-1);background:#ffffff12}.dash-panel-badge{background:#e8605b;background:lab(58.879% 53.437 31.169)}.dash-help-btn{height:34px;color:var(--sky);cursor:pointer;white-space:nowrap;background:#0ea5e914;border:1px solid #0ea5e938;border-radius:.5rem;align-items:center;gap:.3rem;padding:0 .75rem;font-size:.75rem;font-weight:600;transition:all .15s;display:flex}.dash-help-btn svg{width:.9375rem;height:.9375rem}.dash-help-btn:hover{background:#0ea5e926;border-color:#0ea5e966;box-shadow:0 0 0 3px #0ea5e914}.dash-notif-badge{background:var(--sky);border:1.5px solid var(--surface);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:.625rem;font-weight:700;line-height:1;display:flex;position:absolute;top:4px;right:4px}.dash-avatar{background:var(--sky-dim);width:32px;height:32px;color:var(--sky);cursor:pointer;border:1.5px solid #0ea5e94d;border-radius:50%;justify-content:center;align-items:center;display:flex}.sidebar-backdrop{display:none}.dash-content{flex:1;min-height:0;overflow:hidden auto}.dash-map-wrap{flex-direction:column;height:100%;display:flex}.dash-map-body{flex:1;min-height:0;display:flex}.dash-map-area{flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.dash-map-status-chip{z-index:1100;pointer-events:none;-webkit-backdrop-filter:blur(12px);border:1px solid var(--border2);background:#060e1ecc;border-radius:999px;align-items:center;gap:.625rem;padding:.3rem .625rem;font-size:.6875rem;display:flex;position:absolute;bottom:.75rem;left:.75rem}.dash-status-error{color:#fca5a5;align-items:center;gap:.375rem;display:flex}.dash-status-update{color:var(--text-3)}.filter-toolbar{background:var(--surface);border-bottom:1px solid var(--border);scrollbar-width:none;flex-shrink:0;align-items:center;gap:.5rem;height:48px;padding:0 1rem;display:flex;overflow-x:auto}.filter-toolbar::-webkit-scrollbar{display:none}.filter-search{border:1px solid var(--border2);background:#ffffff0a;border-radius:.5rem;flex-shrink:0;align-items:center;gap:.5rem;min-width:180px;height:32px;padding:0 .625rem;transition:border-color .15s,box-shadow .15s;display:flex}.filter-search:focus-within{border-color:var(--sky);box-shadow:0 0 0 2px #0ea5e91a}.filter-search-icon{color:var(--text-3);flex-shrink:0;width:14px;height:14px}.filter-search-input{color:var(--text-1);background:0 0;border:none;outline:none;width:100%;min-width:0;font-size:.8125rem}.filter-search-input::placeholder{color:var(--text-3)}.filter-search-clear{cursor:pointer;color:var(--text-3);background:0 0;border:none;flex-shrink:0;padding:0;transition:color .15s;display:flex}.filter-search-clear:hover{color:var(--text-1)}.filter-sep{background:var(--border2);flex-shrink:0;width:1px;height:20px}.filter-chips{flex-shrink:0;align-items:center;gap:.375rem;display:flex}.filter-chip{cursor:pointer;border:1px solid var(--border2);color:var(--text-2);white-space:nowrap;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;gap:.3rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.filter-chip:hover{color:var(--text-1);background:#ffffff0d}.filter-chip-active{background:var(--chip-bg,#0ea5e926);border-color:var(--chip-border,#0ea5e966);color:var(--chip-color,var(--sky))}.filter-chip-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.filter-chip-icon{opacity:.7;display:flex}.filter-trails{cursor:pointer;border:1px solid var(--border2);color:var(--text-2);white-space:nowrap;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;transition:all .15s;display:inline-flex}.filter-trails:hover{color:#a5b4fc;background:#6366f114;border-color:#6366f14d}.filter-trails-active{color:#a5b4fc;background:#6366f126;border-color:#6366f173}.filter-clear{cursor:pointer;border:1px solid var(--border);color:var(--text-3);white-space:nowrap;background:0 0;border-radius:999px;flex-shrink:0;align-items:center;gap:.3rem;padding:.25rem .625rem;font-size:.75rem;transition:all .15s;display:inline-flex}.filter-clear:hover{color:#fca5a5;background:#ef444414;border-color:#ef44444d}.stats-panel{background:var(--surface);border-left:1px solid var(--border);scrollbar-width:thin;scrollbar-color:#ffffff0f transparent;flex-direction:column;flex-shrink:0;gap:.75rem;width:216px;padding:1rem .875rem;display:flex;overflow:hidden auto}.stats-header{justify-content:space-between;align-items:center;display:flex}.stats-header-left{align-items:center;gap:.375rem;display:flex}.stats-header-title{letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);font-size:.6875rem;font-weight:700}.stats-live-badge{letter-spacing:.06em;text-transform:uppercase;color:var(--success);background:#10b98114;border:1px solid #10b98133;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .5rem;font-size:.625rem;font-weight:600;display:flex}.stats-live-dot{background:var(--success);border-radius:50%;width:5px;height:5px;animation:2s infinite pulse}.stats-total-card{background:#0ea5e90f;border:1px solid #0ea5e91f;border-radius:.75rem;align-items:center;gap:.625rem;padding:.75rem;display:flex;position:relative;overflow:hidden}.stats-total-num{color:var(--text-1);flex-shrink:0;font-size:2.25rem;font-weight:800;line-height:1}.stats-total-meta{flex-direction:column;gap:.125rem;display:flex}.stats-total-label{color:var(--text-1);font-size:.8125rem;font-weight:600;line-height:1}.stats-total-sub{color:var(--text-3);font-size:.6875rem}.stats-total-icon{color:#0ea5e91a;width:48px;height:48px;position:absolute;bottom:-4px;right:-4px}.stats-status-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.stats-status-card{border:1px solid var(--border);border-radius:.625rem;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.625rem .625rem .5rem;display:flex}.stats-card-icon-wrap{border-radius:.375rem;justify-content:center;align-items:center;width:24px;height:24px;margin-bottom:.125rem;display:flex}.stats-card-num{font-size:1.25rem;font-weight:700;line-height:1}.stats-card-label{color:var(--text-3);font-size:.6875rem}.stats-card-green{background:#10b9810f;border-color:#10b98126}.stats-card-green .stats-card-num{color:#10b981}.stats-card-icon-green{color:#10b981;background:#10b9811f}.stats-card-slate{background:#94a3b80a;border-color:#94a3b81a}.stats-card-slate .stats-card-num{color:var(--text-2)}.stats-card-icon-slate{color:var(--text-2);background:#94a3b814}.stats-card-blue{background:#3b82f60f;border-color:#3b82f626}.stats-card-blue .stats-card-num{color:#60a5fa}.stats-card-icon-blue{color:#60a5fa;background:#3b82f61f}.stats-card-amber{background:#f59e0b0f;border-color:#f59e0b26}.stats-card-amber .stats-card-num{color:#fbbf24}.stats-card-icon-amber{color:#fbbf24;background:#f59e0b1f}.stats-divider{text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);align-items:center;gap:.5rem;font-size:.6875rem;font-weight:600;display:flex}.stats-divider:before,.stats-divider:after{content:"";background:var(--border);flex:1;height:1px}.stats-breakdown{flex-direction:column;gap:.5rem;display:flex}.stats-empty{color:var(--text-3);text-align:center;padding:.5rem 0;font-size:.75rem}.stats-row{flex-direction:column;gap:.25rem;display:flex}.stats-row-label{align-items:center;gap:.375rem;display:flex}.stats-row-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.stats-row-name{color:var(--text-2);flex:1;font-size:.75rem}.stats-row-bar-wrap{align-items:center;gap:.5rem;display:flex}.stats-row-bar-track{background:#ffffff0d;border-radius:999px;flex:1;height:3px;overflow:hidden}.stats-row-bar-fill{opacity:.75;border-radius:999px;height:100%;transition:width .4s}.stats-row-count{color:var(--text-1);text-align:right;min-width:12px;font-size:.75rem;font-weight:600}.stats-footer{color:var(--text-3);align-items:center;gap:.375rem;margin-top:auto;padding-top:.25rem;font-size:.6875rem;display:flex}.kpler-layout{height:100%;display:flex;overflow:hidden}.kpler-map-area{z-index:0;flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.kpler-left-panel{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:280px;display:flex;overflow:hidden}.klp-header{border-bottom:1px solid var(--border);flex-shrink:0;padding:.875rem 1rem .625rem}.klp-header-title{color:var(--danger);letter-spacing:-.01em;font-size:.9375rem;font-weight:700}.klp-section{flex-direction:column;flex-shrink:0;gap:.5rem;padding:.625rem .875rem;display:flex}.klp-divider{background:var(--border);flex-shrink:0;height:1px}.klp-loc-row{flex-wrap:wrap;gap:.375rem;display:flex}.klp-loc-chip{border:1px solid var(--border2);color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border-radius:.375rem;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;transition:all .15s;display:inline-flex}.klp-loc-chip:hover{color:var(--text-1);background:#ffffff0d}.klp-loc-chip-active{color:var(--sky);background:#0ea5e91f;border-color:#0ea5e966}.klp-loc-clear{cursor:pointer;color:#0ea5e999;background:0 0;border:none;padding:0 0 0 .125rem;font-size:.875rem;line-height:1;transition:color .15s}.klp-loc-clear:hover{color:var(--sky)}.klp-add-dest,.klp-add-criteria{color:var(--danger);cursor:pointer;opacity:.85;background:0 0;border:none;align-self:flex-start;align-items:center;gap:.375rem;min-height:32px;margin:-.375rem -.5rem;padding:.375rem .5rem;font-size:.75rem;transition:opacity .15s;display:inline-flex}.klp-add-dest:hover,.klp-add-criteria:hover{opacity:1}.klp-search-row{flex-direction:column;gap:.375rem;display:flex}.klp-search-wrap{border:1px solid var(--border2);background:#ffffff0a;border-radius:.5rem;align-items:center;gap:.5rem;height:36px;padding:0 .75rem;transition:border-color .15s,box-shadow .15s;display:flex}.klp-search-wrap:focus-within{border-color:var(--sky);box-shadow:0 0 0 2px #0ea5e91a}.klp-search-icon{color:var(--text-3);flex-shrink:0;width:14px;height:14px}.klp-search-input{color:var(--text-1);background:0 0;border:none;outline:none;width:100%;min-width:0;font-size:.8125rem}.klp-search-input::placeholder{color:var(--text-3)}.klp-search-clear{cursor:pointer;color:var(--text-3);background:0 0;border:none;flex-shrink:0;padding:0;transition:color .15s;display:flex}.klp-search-clear:hover{color:var(--text-1)}.klp-sts-toggle{cursor:pointer;border:1px solid var(--border2);color:var(--text-2);white-space:nowrap;background:0 0;border-radius:999px;align-self:flex-start;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;transition:all .15s;display:inline-flex}.klp-sts-toggle:hover{color:var(--sky);background:#0ea5e914;border-color:#0ea5e94d}.klp-sts-toggle-active{color:var(--sky);background:#0ea5e91f;border-color:#0ea5e966}.klp-tabs{border-bottom:1px solid var(--border);flex-shrink:0;padding:0 .875rem;display:flex}.klp-tab{color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.3rem;margin-right:1.25rem;padding:.5rem 0;font-size:.8125rem;font-weight:500;transition:color .15s,border-color .15s;display:flex}.klp-tab:hover{color:var(--text-2)}.klp-tab-active{color:var(--text-1);border-bottom-color:var(--sky)}.klp-vessel-list-wrap{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.klp-vessel-count{color:var(--text-2);flex-shrink:0;justify-content:space-between;align-items:center;padding:.5rem .875rem .375rem;font-size:.75rem;font-weight:600;display:flex}.klp-download-btn{cursor:pointer;color:var(--text-3);background:0 0;border:none;transition:color .15s;display:flex}.klp-download-btn:hover{color:var(--text-1)}.klp-vessel-list{scrollbar-width:thin;scrollbar-color:#ffffff0f transparent;flex-wrap:wrap;flex:1;align-content:flex-start;gap:0;padding:.25rem .375rem .5rem;display:flex;overflow:hidden auto}.klp-vessel-item{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:.375rem;align-items:center;gap:.375rem;width:calc(50% - .125rem);min-width:0;padding:.3rem .5rem;transition:background .12s;display:flex}.klp-vessel-item:hover{background:#ffffff0a}.klp-vessel-item-selected{background:#0ea5e91a}.klp-vessel-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.klp-vessel-name{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.6875rem;overflow:hidden}.klp-sts-badge{color:var(--sky);opacity:.8;flex-shrink:0;display:flex}.klp-empty-tab{color:var(--text-3);text-align:center;flex:1;justify-content:center;align-items:center;padding:2rem;font-size:.8125rem;display:flex}.klp-sts-wrap{flex-direction:column;flex:1;display:flex;overflow:hidden}.klp-import-module{background:#0ea5e90d;border:1px solid #0ea5e926;border-radius:8px;flex-direction:column;gap:.5rem;margin:.5rem .75rem;padding:.75rem;display:flex}.klp-import-title{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.klp-import-btns{gap:.5rem;display:flex}.klp-import-btn{cursor:pointer;border:1px solid #0000;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:.375rem;padding:.375rem .625rem;font-size:.75rem;font-weight:500;transition:opacity .15s,background .15s;display:inline-flex}.klp-import-btn-csv{color:#10b981;background:#10b9811f;border-color:#10b98140}.klp-import-btn-csv:hover{background:#10b98133}.klp-import-btn-sync{color:var(--sky);background:#0ea5e91f;border-color:#0ea5e940}.klp-import-btn-sync:hover{background:#0ea5e933}.klp-import-btn-running{opacity:.6;cursor:not-allowed}.klp-import-status{font-size:.75rem;line-height:1.4}.klp-import-msg{color:var(--text-2)}.klp-import-error{color:var(--danger)}.klp-import-meta{flex-wrap:wrap;align-items:center;gap:.375rem;display:flex}.klp-import-source{color:var(--sky);text-transform:uppercase;letter-spacing:.04em;background:#0ea5e926;border-radius:4px;padding:.125rem .4rem;font-size:.6875rem;font-weight:600}.klp-import-count,.klp-import-time{color:var(--text-3);font-size:.6875rem}.klp-sts-empty{color:var(--text-3);text-align:center;flex:1;justify-content:center;align-items:center;padding:2rem;font-size:.8125rem;display:flex}@keyframes klp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.klp-spin{animation:.8s linear infinite klp-spin}.klp-add-criteria{position:relative}.klp-add-criteria-open{opacity:1;color:var(--sky)}.klp-filter-badge{background:var(--sky);color:#000;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:.25rem;padding:0 4px;font-size:.6rem;font-weight:700;display:inline-flex}.klp-filter-drawer{border:1px solid var(--border);background:#ffffff06;border-radius:.5rem;flex-direction:column;gap:.875rem;margin-top:.125rem;padding:.75rem;display:flex}.klp-filter-section{flex-direction:column;gap:.375rem;display:flex}.klp-filter-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;font-size:.6875rem;font-weight:600}.klp-filter-chips{flex-wrap:wrap;gap:.3125rem;display:flex}.klp-filter-chip{border:1px solid var(--border2);color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border-radius:.3125rem;align-items:center;gap:.25rem;padding:.1875rem .5rem;font-size:.7rem;font-weight:500;transition:all .15s;display:inline-flex}.klp-filter-chip:hover{color:var(--text-1);background:#ffffff0d}.klp-filter-chip-active{color:var(--sky);background:#0ea5e91f;border-color:#0ea5e980}.klp-filter-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.klp-filter-date-row{align-items:center;gap:.375rem;display:flex}.klp-filter-date-sep{color:var(--text-3);flex-shrink:0;font-size:.7rem}.klp-filter-input{border:1px solid var(--border2);min-width:0;height:28px;color:var(--text-1);background:#ffffff0a;border-radius:.375rem;outline:none;flex:1;padding:0 .5rem;font-size:.7rem;transition:border-color .15s}.klp-filter-input:focus{border-color:var(--sky)}.klp-filter-input::placeholder{color:var(--text-3)}.klp-filter-input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.5);cursor:pointer}.klp-filter-reset{width:100%;color:var(--danger);cursor:pointer;opacity:.8;background:0 0;border:1px dashed #ef444459;border-radius:.375rem;justify-content:center;align-items:center;padding:.375rem;font-size:.7rem;transition:opacity .15s,background .15s;display:flex}.klp-filter-reset:hover{opacity:1;background:#ef444412}.kpler-right-panel{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:440px;transition:width .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.kpler-right-panel-collapsed{width:48px}.kpler-rp-handle{color:var(--text-3);cursor:pointer;z-index:2;background:var(--surface);border-left:1px solid var(--border);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;display:none;position:absolute;inset:0}.kpler-right-panel-collapsed .kpler-rp-handle{display:flex}.kpler-rp-handle:hover{color:var(--text-2);background:#ffffff05}.kpler-rp-handle-label{letter-spacing:.08em;text-transform:uppercase;writing-mode:vertical-rl;text-orientation:mixed;opacity:.6;font-size:.6rem;font-weight:600;transform:rotate(180deg)}.vp-header{border-bottom:1px solid var(--border);flex-shrink:0}.vp-header-top{justify-content:flex-end;align-items:center;padding:.5rem .5rem 0;display:flex}.vp-header-title{color:var(--text-2);letter-spacing:.04em;text-transform:uppercase;font-size:.8125rem;font-weight:600}.vp-header-actions{align-items:center;gap:.125rem;display:flex}.vp-header-search{align-items:center;padding:0 .75rem .625rem;display:flex;position:relative}.vp-header-search .vp-search-icon{color:var(--text-3);pointer-events:none;flex-shrink:0;position:absolute;top:50%;left:1.5rem;transform:translateY(-50%)}.vp-search-clear{width:18px;height:18px;color:var(--text-3);cursor:pointer;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex;position:absolute;right:1.25rem}.vp-search-clear:hover{color:var(--text-1);background:#ffffff24}.vp-vessel-filter{border:1px solid var(--border);width:100%;min-width:0;height:32px;color:var(--text-1);background:#ffffff0d;border-radius:.5rem;outline:none;padding:0 2rem 0 2.5rem;font-size:.75rem;transition:border-color .12s,background .12s}.vp-vessel-filter::placeholder{color:var(--text-3)}.vp-vessel-filter:focus{background:#ffffff14;border-color:#ffffff38}.vp-icon-btn{cursor:pointer;width:28px;height:28px;color:var(--text-3);background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;transition:background .12s,color .12s;display:flex}.vp-icon-btn:hover{color:var(--text-1);background:#ffffff0f}.vp-icon-btn-active{color:var(--sky)!important;background:#0ea5e91f!important}.vp-tabs{gap:0;padding:0 1rem;display:flex}.vp-tab{color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-right:1.25rem;padding:.4375rem 0;font-size:.8125rem;font-weight:500;transition:color .15s,border-color .15s}.vp-tab:hover{color:var(--text-2)}.vp-tab-active{color:var(--danger);border-bottom-color:var(--danger)}.vp-controls{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:.5rem;padding:.5rem .875rem;display:flex}.vp-forecast-badge{color:var(--text-2);align-items:center;gap:.3rem;font-size:.75rem;font-weight:500;display:flex}.vp-forecast-dot{background:var(--text-3);border-radius:50%;flex-shrink:0;width:7px;height:7px}.vp-sort-select{color:var(--text-2);border:1px solid var(--border2);cursor:pointer;background:#ffffff0a;border-radius:.375rem;outline:none;flex:1;min-width:0;padding:.25rem .5rem;font-size:.75rem}.vp-filters-btn{letter-spacing:.06em;color:var(--text-2);border:1px solid var(--border2);cursor:pointer;white-space:nowrap;background:#ffffff0a;border-radius:.375rem;flex-shrink:0;padding:.25rem .625rem;font-size:.6875rem;font-weight:700;transition:all .15s}.vp-filters-btn:hover{color:var(--text-1);background:#ffffff12}.vp-col-headers{border-bottom:1px solid var(--border);flex-shrink:0;grid-template-columns:140px 1fr 1fr;padding:.3125rem .875rem;display:grid}.vp-col-vessel,.vp-col-load,.vp-col-discharge{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-size:.6875rem;font-weight:600}.vp-list{scrollbar-width:thin;scrollbar-color:#ffffff0f transparent;flex:1;overflow:hidden auto}.vp-year-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);background:var(--surface);z-index:1;padding:.375rem .875rem .25rem;font-size:.6875rem;font-weight:700;position:sticky;top:0}.vp-voyage-card{border-bottom:1px solid var(--border);cursor:pointer;transition:background .12s}.vp-voyage-card:hover{background:#ffffff06}.vp-voyage-card-open{background:#0ea5e90a}.vp-voyage-row{grid-template-columns:140px 1fr 1fr;align-items:start;gap:.25rem;padding:.625rem .875rem;display:grid}.vp-vessel-col{flex-direction:column;gap:.25rem;min-width:0;display:flex}.vp-vessel-name-row{align-items:center;gap:.375rem;display:flex}.vp-vessel-name{color:var(--sky);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:600;overflow:hidden}.vp-sts-icon{color:var(--sky);opacity:.8;flex-shrink:0;display:flex}.vp-product-tag{color:var(--text-3);white-space:nowrap;font-size:.6875rem}.vp-qty-col{flex-direction:column;gap:.2rem;min-width:0;display:flex}.vp-location{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:500;overflow:hidden}.vp-date{color:var(--text-3);font-size:.6875rem}.vp-discharge-header{align-items:center;gap:.375rem;display:flex}.vp-ais-tag{letter-spacing:.04em;color:var(--sky);background:#0ea5e91a;border:1px solid #0ea5e940;border-radius:.25rem;flex-shrink:0;padding:0 .3rem;font-size:.5625rem;font-weight:700}.vp-not-available{color:var(--text-3);font-size:.6875rem;font-style:italic}.vp-bar-wrap{flex-direction:column;gap:.175rem;display:flex}.vp-bar-qty{font-variant-numeric:tabular-nums;font-size:.6875rem;font-weight:600}.vp-bar-track{background:#ffffff0f;border-radius:999px;width:100%;height:5px;overflow:hidden}.vp-bar-fill{opacity:.8;border-radius:999px;height:100%;transition:width .3s}.vp-detail{background:#0ea5e90a;border-top:1px solid #0ea5e91a;padding:.625rem .875rem .75rem}.vp-detail-title{text-transform:uppercase;letter-spacing:.06em;color:var(--sky);margin-bottom:.5rem;font-size:.6875rem;font-weight:700}.vp-detail-grid{flex-direction:column;gap:.3rem;display:flex}.vp-detail-row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.vp-detail-label{color:var(--text-3);flex-shrink:0;font-size:.75rem}.vp-detail-value{color:var(--text-1);text-align:right;font-size:.75rem;font-weight:500}.vp-status-badge{border-radius:999px;align-items:center;padding:.125rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.vp-status-confirmed{color:#10b981;background:#10b9811f}.vp-status-ongoing{color:var(--sky);background:#0ea5e91f}.vp-status-estimated{color:#fbbf24;background:#f59e0b1f}.vp-empty{color:var(--text-3);text-align:center;padding:2rem;font-size:.8125rem}.ks-panel{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.ks-controls-bar{border-bottom:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.25rem;padding:.375rem .875rem .3125rem;display:flex}.ks-controls-row1,.ks-controls-row2{align-items:center;gap:.375rem;display:flex}.ks-sort-wrap{position:relative}.ks-sort-btn{color:var(--text-2);border:1px solid var(--border2);cursor:pointer;white-space:nowrap;background:#ffffff0a;border-radius:4px;align-items:center;gap:.3rem;padding:.2rem .5rem;font-size:.6875rem;font-weight:500;transition:background .12s,color .12s;display:flex}.ks-sort-btn:hover{color:var(--text-1);background:#ffffff14}.ks-sort-btn-full{justify-content:space-between;width:100%}.ks-sort-btn-active{color:var(--sky);background:#0ea5e914;border-color:#0ea5e959}.ks-sort-dropdown{z-index:50;background:var(--surface2,#1a1f2e);border:1px solid var(--border2);scrollbar-width:thin;scrollbar-color:#ffffff14 transparent;border-radius:6px;min-width:160px;max-height:220px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 6px 20px #0006}.ks-sort-dropdown-right{left:auto;right:0}.ks-sort-option{text-align:left;width:100%;color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:.4rem .75rem;font-size:.6875rem;transition:background .1s,color .1s;display:block}.ks-sort-option:hover{color:var(--text-1);background:#ffffff12}.ks-sort-option-active{color:var(--sky);font-weight:600}.ks-load-more-wrap{align-items:center;gap:0;padding:.75rem .875rem;display:flex}.ks-load-more-wrap:before,.ks-load-more-wrap:after{content:"";background:var(--border);flex:1;height:1px}.ks-load-more{width:26px;height:26px;color:var(--text-3);border:1px solid var(--border2);cursor:pointer;background:#ffffff0a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0 .625rem;transition:color .15s,background .15s,border-color .15s,transform .15s;display:flex}.ks-load-more:hover{color:var(--text-1);background:#ffffff17;border-color:#fff3;transform:translateY(2px)}.ks-dl-btn{width:26px;height:26px;color:var(--text-3);border:1px solid var(--border2);cursor:pointer;background:0 0;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:flex}.ks-dl-btn:hover{color:var(--text-1);background:#ffffff12;border-color:#fff3}.ks-stats-bar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:.375rem;padding:.3125rem .875rem;display:flex}.ks-stats-item{color:var(--text-2);font-size:.75rem}.ks-stats-num{color:var(--text-1);font-variant-numeric:tabular-nums;font-weight:700}.ks-stats-sep{color:var(--text-3);font-size:.75rem}.ks-chip-bar{border-bottom:1px solid var(--border);scrollbar-width:thin;scrollbar-color:#ffffff0f transparent;flex-wrap:wrap;flex-shrink:0;gap:.3rem;max-height:6rem;padding:.5rem .875rem;display:flex;overflow-y:auto}.ks-chip{color:var(--text-2);border:1px solid var(--border2);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#ffffff0a;border-radius:999px;max-width:130px;padding:.125rem .5rem;font-size:.6875rem;font-weight:500;transition:background .12s,color .12s,border-color .12s;overflow:hidden}.ks-chip:hover{color:var(--text-1);background:#ffffff14}.ks-chip-active{color:var(--sky);background:#0ea5e926;border-color:#0ea5e959}.ks-chip-clear{color:var(--text-3);border-style:dashed;flex-shrink:0}.ks-chip-clear:hover{color:var(--text-2);background:#ffffff0f}.ks-vessel-card{border-bottom:1px solid var(--border);transition:background .12s}.ks-vessel-card:hover{background:#ffffff05}.ks-row{border-bottom:1px solid var(--border);grid-template-columns:140px 1fr 1fr;align-items:start;gap:.25rem;padding:.5rem .875rem;transition:background .12s;display:grid}.ks-row:hover{background:#ffffff05}.ks-vessel-col{flex-direction:column;gap:.2rem;min-width:0;display:flex}.ks-vessel-name{color:var(--sky);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:600;overflow:hidden}.ks-vessel-product{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.ks-row__side{flex-direction:column;gap:.175rem;min-width:0;display:flex}.ks-port{align-items:center;gap:.3rem;min-width:0;display:flex}.ks-port-name{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:500;overflow:hidden}.ks-sts-svg{width:.875rem;height:.875rem;color:var(--sky);opacity:.85;flex-shrink:0}.ks-sts-partner{color:var(--sky);opacity:.85;white-space:nowrap;text-overflow:ellipsis;font-size:.625rem;overflow:hidden}.ks-date{color:var(--text-3);font-size:.6875rem}.ks-no-data{color:var(--text-3);font-size:.6875rem;font-style:italic}.vp-vessel-info-card{background:#0ea5e90f;border:1px solid #0ea5e92e;border-radius:.625rem;margin:.5rem .75rem;overflow:hidden}.vp-vic-header{align-items:center;gap:.5rem;padding:.625rem .75rem .375rem;display:flex}.vp-vic-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.vp-vic-name{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.8125rem;font-weight:700;overflow:hidden}.vp-vic-close{width:20px;height:20px;color:var(--text-2);cursor:pointer;background:#ffffff0f;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:.875rem;line-height:1;transition:background .15s,color .15s;display:flex}.vp-vic-close:hover{color:#ef4444;background:#ef444433}.vp-vic-badges{flex-wrap:wrap;gap:.25rem;padding:0 .75rem .5rem;display:flex}.vp-vic-badge{letter-spacing:.03em;border:1px solid #0000;border-radius:999px;padding:.125rem .5rem;font-size:.625rem;font-weight:600}.vp-vic-badge-muted{color:var(--text-2);background:#ffffff0f;border-color:#ffffff14}.vp-vic-badge-sts{color:var(--sky);background:#0ea5e926;border-color:#0ea5e94d}.vp-vic-stats{background:#ffffff0d;border-top:1px solid #ffffff0d;grid-template-columns:1fr 1fr 1fr;gap:.5px;display:grid}.vp-vic-stat{background:var(--surface);flex-direction:column;gap:.125rem;padding:.5rem .625rem;display:flex}.vp-vic-stat-full{grid-column:1/-1}.vp-vic-stat-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;font-size:.5875rem}.vp-vic-stat-val{color:var(--text-1);font-size:.75rem;font-weight:600}.vp-vic-sts{background:#0ea5e90a;border-top:1px solid #0ea5e926;padding:.625rem .75rem}.vp-vic-sts-title{color:var(--sky);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:.375rem;margin-bottom:.5rem;font-size:.6875rem;font-weight:600;display:flex}.vp-vic-sts-grid{grid-template-columns:auto 1fr;gap:.25rem .75rem;display:grid}.vp-vic-sts-label{color:var(--text-3);white-space:nowrap;font-size:.6875rem}.vp-vic-sts-val{color:var(--text-1);font-size:.6875rem;font-weight:500}.vp-tab-ais{align-items:center;gap:.25rem;display:flex}.vp-tab-badge{background:var(--sky);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.5625rem;font-weight:700;display:inline-flex}.vp-ais-card{cursor:default;border-radius:6px;margin:0 .5rem .375rem;padding:.625rem .875rem;transition:background .1s}.vp-ais-pending{background:#f59e0b0d;border:1px solid #f59e0b2e}.vp-ais-confirmed{background:#0ea5e90d;border:1px solid #0ea5e933}.vp-ais-meta{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:.375rem;font-size:.6875rem;display:flex}.vp-ais-status-pending{letter-spacing:.06em;text-transform:uppercase;color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b40;border-radius:4px;margin-left:auto;padding:.1rem .45rem;font-size:.625rem;font-weight:700}.vp-ais-status-confirmed{letter-spacing:.06em;text-transform:uppercase;color:var(--sky);background:#0ea5e91f;border:1px solid #0ea5e940;border-radius:4px;margin-left:auto;padding:.1rem .45rem;font-size:.625rem;font-weight:700}.vp-ais-note{color:var(--text-3);letter-spacing:.02em;margin-top:.3rem;font-size:.6rem}.vp-ais-draft-table{flex-direction:column;gap:.2rem;display:flex}.vp-ais-draft-vessel-row{background:#ffffff06;border-radius:4px;grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.3rem .5rem;display:grid}.vp-ais-draft-name{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:600;overflow:hidden}.vp-ais-vessel-btn{cursor:pointer;text-align:left;background:0 0;border:none;max-width:100%;padding:0;transition:color .12s}.vp-ais-vessel-btn:hover{color:var(--sky);text-underline-offset:2px;text-decoration:underline}.vp-ais-draft-values{flex-shrink:0;align-items:center;gap:.25rem;font-family:ui-monospace,SF Mono,monospace;font-size:.75rem;display:flex}.vp-ais-draft-unit{opacity:.6;font-size:.6rem}.vp-ais-draft-initial{color:var(--text-3);font-weight:500}.vp-ais-draft-sep{color:var(--text-3);opacity:.5;font-size:.55rem}.vp-ais-draft-current{color:var(--text-1);font-weight:700}.vp-ais-delta-badge{letter-spacing:.02em;border-radius:3px;padding:.1rem .3rem;font-size:.6rem;font-weight:700}.vp-ais-no-draft{letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);opacity:.6;align-items:center;gap:.3rem;font-size:.6rem;font-weight:600;display:flex}.vp-draft-down{color:#10b981}.vp-draft-up{color:#f59e0b}.vp-draft-down.vp-ais-delta-badge{background:#10b9811f;border:1px solid #10b98133}.vp-draft-up.vp-ais-delta-badge{background:#f59e0b1f;border:1px solid #f59e0b33}.vp-risk-row{align-items:center;gap:.5rem;display:flex}.vp-risk-badge{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-radius:.2rem;flex-shrink:0;padding:.15rem .45rem;font-size:.625rem;font-weight:600}.vp-risk-non-sts{color:#84868a;color:lab(55.9008% -.312537 -2.24191);background:#6b728026;border:1px solid #6b728033}.vp-risk-suspect{color:#d2a249;color:lab(69.9073% 11.8094 51.9441);background:#f59e0b1f;border:1px solid #f59e0b40}.vp-risk-probable{color:#e28247;color:lab(64.3787% 34.747 47.8413);background:#f973161f;border:1px solid #f9731640}.vp-risk-very-probable{color:#e8605b;color:lab(58.879% 53.437 31.169);background:#ef44441f;border:1px solid #ef444440}.vp-risk-bar-wrap{background:#ffffff12;border-radius:2px;flex:1;height:3px;overflow:hidden}.vp-risk-bar-fill{border-radius:2px;height:100%;transition:width .4s ease-out}.vp-risk-bar-non-sts{background:#616367;background:lab(41.9806% -.30838 -2.23956)}.vp-risk-bar-suspect{background:#cc9c42;background:lab(67.5798% 11.9379 52.333)}.vp-risk-bar-probable{background:#dc7b40;background:lab(62.0516% 34.8603 48.245)}.vp-risk-bar-very-probable{background:#da534f;background:lab(54.2311% 53.5119 31.5282)}.vp-risk-score-num{font-variant-numeric:tabular-nums;color:#6f7275;color:lab(47.7807% -.310302 -2.24067);text-align:right;min-width:1.5rem;font-size:.6rem}.vp-ais-card-toprow{align-items:center;gap:.4rem;display:flex}.vp-ais-card-toprow .vp-risk-row{flex:1}.vp-explain-btn{color:#83868c;color:lab(55.887% -.501543 -3.72579);cursor:pointer;background:#181b1f;background:lab(9.48197% -.41151 -3.68196);border:1px solid #414853;border:1px solid lab(30.3224% -.794604 -7.35166);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.65rem;font-weight:700;line-height:1;transition:background .15s,color .15s,border-color .15s;display:flex}.vp-explain-btn:hover,.vp-explain-btn-open{color:#a1cae8;color:lab(79.1643% -8.79321 -19.3308);background:#152b3b;background:lab(16.471% -5.04719 -12.6497);border-color:#42789c;border-color:lab(47.7791% -10.0307 -25.2846)}.vp-explain-panel{border-top:1px solid #26292e99;border-top:1px solid lab(16.4436% -.441715 -3.69567/.6);margin-top:.6rem;padding-top:.55rem}.vp-explain-title{letter-spacing:.08em;text-transform:uppercase;color:#6f7275;color:lab(47.7807% -.310302 -2.24067);margin-bottom:.4rem;font-size:.625rem;font-weight:600}.vp-explain-table{border-collapse:collapse;width:100%;font-size:.625rem}.vp-explain-table thead th{text-align:left;letter-spacing:.04em;color:#545558;color:lab(36.1839% -.258297 -1.86706);border-bottom:1px solid #26292e80;border-bottom:1px solid lab(16.4436% -.441715 -3.69567/.5);padding:.1rem .3rem .25rem;font-weight:500}.vp-explain-table thead th.vp-explain-pts{text-align:right}.vp-explain-table tbody tr{border-bottom:1px solid #1d1f2366;border-bottom:1px solid lab(11.8112% -.359252 -2.95931/.4)}.vp-explain-table tbody tr:last-child{border-bottom:none}.vp-explain-table td{vertical-align:top;color:#96989c;color:lab(62.8609% -.314087 -2.24278);padding:.2rem .3rem}.vp-explain-criterion{white-space:nowrap;font-weight:600;color:#a2a5aa!important;color:lab(67.4943% -.413299 -2.98729)!important}.vp-explain-detail{font-variant-numeric:tabular-nums;white-space:nowrap}.vp-explain-interp{font-style:italic;color:#787a7e!important;color:lab(51.2608% -.311315 -2.24123)!important}.vp-explain-pts{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.vp-explain-pts-pos{font-weight:600;color:#81bd74!important;color:lab(71.2702% -30.9185 30.7913)!important}.vp-explain-pts-neg{font-weight:600;color:#d2736c!important;color:lab(59.3991% 37.4551 21.0612)!important}.vp-explain-row-pos td{background:#191c1814;background:lab(9.62211% -2.08598 1.95639/.08)}.vp-explain-row-neg td{background:#1e191914;background:lab(9.44598% 2.45409 1.32483/.08)}.vp-explain-footer{border-top:1px solid #26292e80;border-top:1px solid lab(16.4436% -.441715 -3.69567/.5);justify-content:space-between;align-items:center;margin-top:.45rem;padding-top:.35rem;display:flex}.vp-explain-total{color:#7e8084;color:lab(53.5808% -.311941 -2.24159);font-size:.625rem}.vp-explain-total strong{color:#c1c4c9;color:lab(79.0944% -.416547 -2.98913);font-weight:700}.vp-explain-verdict{letter-spacing:.08em;text-transform:uppercase;border-radius:.2rem;padding:.15rem .4rem;font-size:.575rem;font-weight:700}.import-page{max-width:640px;height:100%;margin:0 auto;padding:1.5rem 2rem;overflow-y:auto}.import-header{margin-bottom:1.5rem}.import-title{color:var(--text-1);margin:0 0 .25rem;font-size:1.25rem;font-weight:700}.import-subtitle{color:var(--text-2);margin:0;font-size:.8125rem}.import-kpler-tag{color:var(--sky);background:#0ea5e91a;border-radius:.25rem;padding:.1rem .375rem;font-family:monospace;font-size:.75rem}.import-body{flex-direction:column;gap:1rem;display:flex}.import-instructions{border:1px solid var(--border2);background:#ffffff05;border-radius:.75rem;padding:1rem 1.25rem}.import-instr-title{color:var(--text-1);margin-bottom:.625rem;font-size:.8125rem;font-weight:600}.import-steps{color:var(--text-2);flex-direction:column;gap:.3rem;margin:0;padding-left:1.25rem;font-size:.8125rem;display:flex}.import-steps strong{color:var(--text-1)}.import-steps code{color:var(--sky);background:#0ea5e91a;border-radius:.25rem;padding:.1rem .3rem;font-family:monospace;font-size:.75rem}.import-instr-note{color:var(--text-3);border-top:1px solid var(--border);margin-top:.75rem;padding-top:.625rem;font-size:.75rem}.import-dropzone{border:2px dashed var(--border2);cursor:pointer;text-align:center;border-radius:.75rem;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1.5rem;transition:border-color .15s,background .15s;display:flex}.import-dropzone:hover{background:#0ea5e908;border-color:#0ea5e966}.import-dropzone-drag{border-color:var(--sky);background:#0ea5e90f}.import-dropzone-file{background:#0ea5e908;border-color:#0ea5e94d}.import-drop-icon{color:var(--text-3);margin-bottom:.25rem}.import-drop-text{color:var(--text-1);font-size:.9375rem;font-weight:600}.import-drop-sub{color:var(--text-3);font-size:.8125rem}.import-drop-formats{color:var(--text-3);letter-spacing:.05em;margin-top:.25rem;font-size:.6875rem}.import-file-icon{margin-bottom:.25rem}.import-file-name{color:var(--sky);word-break:break-all;font-size:.9375rem;font-weight:600}.import-file-size{color:var(--text-3);font-size:.75rem}.import-change-hint{color:var(--text-3);margin-top:.25rem;font-size:.6875rem}.import-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0284c7,#0ea5e9);border:none;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600;transition:opacity .15s,box-shadow .15s;display:flex;box-shadow:0 4px 14px #0ea5e940}.import-btn:hover:not(:disabled){opacity:.92;box-shadow:0 6px 20px #0ea5e959}.import-btn:disabled{opacity:.5;cursor:not-allowed}.import-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.7s linear infinite spin}.import-error{color:#fca5a5;background:#ef444414;border:1px solid #ef444440;border-radius:.625rem;align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.8125rem;display:flex}.import-result{background:#ffffff05;border:1px solid #10b98133;border-radius:.75rem;padding:1rem 1.25rem}.import-result-title{color:var(--success);margin-bottom:.875rem;font-size:.875rem;font-weight:600}.import-result-grid{grid-template-columns:repeat(3,1fr);gap:.625rem;margin-bottom:.75rem;display:grid}.import-result-card{border:1px solid var(--border);border-radius:.5rem;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;display:flex}.import-result-green{background:#10b9810f;border-color:#10b98126}.import-result-slate{background:#94a3b80a}.import-result-blue{background:#3b82f60f;border-color:#3b82f626}.import-result-num{color:var(--text-1);font-size:1.5rem;font-weight:700;line-height:1}.import-result-label{color:var(--text-3);text-align:center;font-size:.6875rem}.import-result-errors{border-top:1px solid var(--border);padding-top:.75rem}.import-result-errors-title{color:#fbbf24;margin-bottom:.375rem;font-size:.75rem;font-weight:600}.import-result-errors-list{color:var(--text-3);flex-direction:column;gap:.2rem;margin:0;padding-left:1.25rem;font-size:.75rem;display:flex}.vessel-popup-badges{align-items:center;gap:.375rem;margin-bottom:10px;display:flex}.vessel-popup-sts-badge{color:#38bdf8;letter-spacing:.07em;background:#0ea5e926;border:1px solid #0ea5e959;border-radius:999px;padding:2px 9px;font-size:9.5px;font-weight:700}.vessel-popup-sts-header{letter-spacing:.06em;text-transform:uppercase;color:#38bdf8;border-top:1px solid #38bdf826;align-items:center;gap:5px;margin:8px 0 4px;padding-top:6px;font-size:10px;font-weight:700;display:flex}.admin-page{scrollbar-width:thin;scrollbar-color:#ffffff0f transparent;flex-direction:column;gap:1.25rem;height:100%;padding:1.5rem 2rem;display:flex;overflow-y:auto}.admin-loading{flex:1;justify-content:center;align-items:center;display:flex}.admin-page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.admin-page-title{color:var(--text-1);letter-spacing:-.02em;margin:0 0 .25rem;font-size:1.25rem;font-weight:700}.admin-page-sub{color:var(--text-2);margin:0;font-size:.8125rem}.admin-create-btn{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#0284c7,#0ea5e9);border:none;border-radius:.5rem;flex-shrink:0;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;transition:opacity .15s,box-shadow .15s;display:inline-flex;box-shadow:0 4px 12px #0ea5e940}.admin-create-btn:hover{opacity:.9;box-shadow:0 6px 18px #0ea5e959}.admin-summary-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.625rem 0;display:flex}.admin-sum-item{color:var(--text-2);align-items:center;gap:.375rem;font-size:.8125rem;display:flex}.admin-sum-item strong{color:var(--text-1);font-weight:700}.admin-sum-item--online strong{color:#10b981}.admin-sum-dot{background:#334155;border-radius:50%;flex-shrink:0;width:3px;height:3px}.admin-sum-live{background:#10b981;border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2.2s ease-in-out infinite s-pulse}.admin-tabs{border-bottom:1px solid var(--border);gap:0;display:flex}.admin-tab{color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.5rem;margin-right:1.5rem;padding:.5rem 0;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s;display:inline-flex}.admin-tab:hover{color:var(--text-2)}.admin-tab-active{color:var(--text-1);border-bottom-color:var(--sky)}.admin-tab-count{min-width:18px;height:18px;color:var(--text-2);background:#ffffff12;border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:.6875rem;font-weight:700;display:inline-flex}.admin-tab-active .admin-tab-count{color:var(--sky);background:#0ea5e926}.admin-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;overflow:auto hidden}.admin-table{border-collapse:collapse;width:100%;font-size:.8125rem}.admin-table thead tr{border-bottom:1px solid var(--border)}.admin-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);white-space:nowrap;padding:.625rem 1rem;font-size:.6875rem;font-weight:600}.admin-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:.75rem 1rem}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:#ffffff05}.admin-row-inactive{opacity:.55}.admin-status-dot{vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:.4rem;display:inline-block}.admin-status-online{background:var(--success);animation:2s infinite pulse;box-shadow:0 0 0 2px #10b98133}.admin-status-offline{background:var(--text-3)}.admin-status-label{color:var(--text-2);vertical-align:middle;font-size:.75rem}.admin-user-cell{align-items:center;gap:.625rem;display:flex}.admin-user-avatar{width:30px;height:30px;color:var(--sky);background:#0ea5e91f;border:1px solid #0ea5e933;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:flex}.admin-user-name{color:var(--text-1);font-size:.8125rem;font-weight:600;line-height:1.2}.admin-user-username{color:var(--text-3);font-size:.6875rem}.admin-cell-muted{color:var(--text-2);font-size:.8125rem}.admin-account-badge{border-radius:999px;align-items:center;padding:.15rem .5rem;font-size:.6875rem;font-weight:600;display:inline-flex}.admin-badge-active{color:#10b981;background:#10b9811a}.admin-badge-inactive{color:#fca5a5;background:#ef44441a}.admin-badge-admin{color:#c4b5fd;background:#8b5cf61f;border-color:#8b5cf640}.admin-badge-operator{color:#7dd3fc;background:#0ea5e91a;border-color:#0ea5e933}.admin-toggle-btn{cursor:pointer;white-space:nowrap;border:1px solid;border-radius:.375rem;align-items:center;gap:.3rem;padding:.3rem .625rem;font-size:.75rem;font-weight:500;transition:all .15s;display:inline-flex}.admin-toggle-btn:disabled{opacity:.6;cursor:not-allowed}.admin-toggle-deactivate{color:#fca5a5;background:#ef44440f;border-color:#ef444433}.admin-toggle-deactivate:hover:not(:disabled){background:#ef44441f}.admin-toggle-activate{color:#10b981;background:#10b9810f;border-color:#10b98133}.admin-toggle-activate:hover:not(:disabled){background:#10b9811f}.admin-duration{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:.75rem}.admin-duration-active{color:var(--success);font-weight:500}.admin-empty{text-align:center;color:var(--text-3);padding:3rem 2rem;font-size:.875rem}.admin-mob-list{display:none}@media (max-width:640px){.admin-table-wrap{display:none}.admin-mob-list{grid-template-columns:repeat(2,1fr);gap:.625rem;display:grid}}@media (max-width:380px){.admin-mob-list{grid-template-columns:1fr}}.admin-mob-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;flex-direction:column;gap:.625rem;padding:.875rem 1rem;display:flex}.admin-mob-card--inactive{opacity:.55}.admin-mob-top{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.admin-mob-badges{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.25rem;display:flex}.admin-mob-meta{color:var(--text-2);flex-direction:column;gap:.25rem;min-width:0;font-size:.75rem;display:flex}.admin-mob-meta>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-mob-meta .admin-status-dot{margin-right:.25rem}.admin-mob-ip{color:var(--text-3);font-family:ui-monospace,monospace;font-size:.6875rem}.admin-mob-card .admin-toggle-btn{align-self:flex-start}.admin-modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:9999;background:#020617bf;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.admin-modal{background:var(--surface2);border:1px solid var(--border2);border-radius:1rem;width:100%;max-width:440px;overflow:hidden;box-shadow:0 24px 64px #00000080}.admin-modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.125rem 1.25rem .875rem;display:flex}.admin-modal-title{color:var(--text-1);margin:0;font-size:1rem;font-weight:700}.admin-modal-close{border:1px solid var(--border);width:28px;height:28px;color:var(--text-3);cursor:pointer;background:#ffffff0a;border-radius:.375rem;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.admin-modal-close:hover{color:#fca5a5;background:#ef44441f;border-color:#ef444440}.admin-modal-error{color:#fca5a5;background:#ef444414;border:1px solid #ef444433;border-radius:.5rem;align-items:flex-start;gap:.5rem;margin:.875rem 1.25rem 0;padding:.625rem .875rem;font-size:.8125rem;display:flex}.admin-modal-form{flex-direction:column;gap:.875rem;padding:1rem 1.25rem 1.25rem;display:flex}.admin-modal-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@keyframes pulse{50%{opacity:.5}}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}@keyframes vessel-pulse{0%{opacity:.7;transform:scale(1)}70%{opacity:0;transform:scale(2.4)}to{opacity:0;transform:scale(2.4)}}@keyframes ring-glow{0%,to{opacity:.65}50%{opacity:1}}@keyframes radar-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes orbit-1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes orbit-2{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.vessel-pulse-ring{pointer-events:none;border-radius:50%;animation:2.5s ease-out infinite vessel-pulse;position:absolute;inset:-5px}.vessel-pulse-ring-selected{animation:1.4s ease-out infinite vessel-pulse;inset:-8px}.leaflet-popup-content-wrapper{-webkit-backdrop-filter:blur(20px)!important;background:#060e1ef0!important;border:1px solid #38bdf82e!important;border-radius:14px!important;padding:0!important;overflow:hidden!important;box-shadow:0 8px 32px #000000a6,0 0 0 1px #38bdf80f!important}.leaflet-popup-content{margin:0!important;line-height:1.4!important}.leaflet-popup-tip-container{display:none!important}.leaflet-popup-close-button{color:#94a3b88c!important;justify-content:center!important;align-items:center!important;width:20px!important;height:20px!important;padding:0!important;font-size:18px!important;line-height:1!important;display:flex!important;top:10px!important;right:10px!important}.leaflet-popup-close-button:hover{color:#f1f5f9!important;background:0 0!important}.vessel-popup{min-width:210px;padding:14px 16px 13px}.vessel-popup-name{color:#f1f5f9;white-space:nowrap;text-overflow:ellipsis;margin:0 22px 2px 0;font-size:13.5px;font-weight:700;line-height:1.3;overflow:hidden}.vessel-popup-mmsi{color:#94a3b88c;letter-spacing:.05em;margin:0 0 9px;font-family:Courier New,monospace;font-size:10px}.vessel-popup-badge{letter-spacing:.07em;text-transform:uppercase;border-radius:999px;align-items:center;margin-bottom:10px;padding:2px 9px;font-size:9.5px;font-weight:700;display:inline-flex}.vessel-popup-rows{border-top:1px solid #ffffff0f;flex-direction:column;gap:5px;padding-top:9px;display:flex}.vessel-popup-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.vessel-popup-label{color:#94a3b880;flex-shrink:0;font-size:10.5px}.vessel-popup-value{color:#e2e8f0;text-align:right;text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:10.5px;font-weight:600;overflow:hidden}.vtt-leaflet{white-space:nowrap;line-height:1.5;color:#f1f5f9!important;background:#0f172aeb!important;border:1px solid #ffffff26!important;border-radius:6px!important;padding:5px 9px!important;box-shadow:0 4px 12px #0006!important}.vtt-leaflet:before,.leaflet-tooltip-top.vtt-leaflet:before{border-top-color:#0f172aeb!important}.leaflet-control-zoom{box-shadow:none!important;border:none!important}.leaflet-control-zoom a{-webkit-backdrop-filter:blur(8px)!important;backdrop-filter:blur(8px)!important;color:#94a3b8cc!important;background:#060e1ebf!important;border:1px solid #38bdf833!important;width:28px!important;height:28px!important;font-size:15px!important;line-height:26px!important;transition:all .15s!important}.leaflet-control-zoom a:hover{color:#38bdf8!important;background:#0ea5e926!important}.vp-kpi-row{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.25rem;display:grid}.vp-kpi-card{background:var(--surface);border:1px solid var(--border2);border-radius:.75rem;flex-direction:column;gap:.25rem;padding:1rem 1.25rem;transition:border-color .2s,box-shadow .2s;display:flex}.vp-kpi-card:hover{border-color:#ffffff29;box-shadow:0 2px 14px #0000004d}.vp-kpi-num{color:var(--text-1);font-size:1.625rem;font-weight:700;line-height:1}.vp-kpi-label{color:var(--text-3);font-size:.75rem}.vp-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:.625rem;flex:1;min-height:0;overflow:auto}.vp-table{border-collapse:collapse;width:100%;font-size:.8125rem}.vp-th{text-align:left;color:var(--text-3);letter-spacing:.05em;text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap;padding:.625rem .875rem;font-size:.6875rem;font-weight:600}.vp-th-sort{cursor:pointer;-webkit-user-select:none;user-select:none}.vp-th-sort:hover{color:var(--text-2)}.vp-tr{cursor:pointer;transition:background .1s}.vp-tr:hover{background:#ffffff08}.vp-tr+.vp-tr>.vp-td{border-top:1px solid var(--border)}.vp-td{color:var(--text-1);white-space:nowrap;padding:.625rem .875rem}.vp-td-mmsi{color:var(--text-3);font-family:monospace;font-size:.75rem}.vp-td-dim{color:var(--text-3)}.vp-vessel-name{align-items:center;gap:.5rem;font-weight:500;display:flex}.vp-vessel-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.vp-type-badge{border:1px solid #0000;border-radius:999px;padding:.125rem .5rem;font-size:.6875rem;font-weight:600}.vp-sts-badge{color:var(--sky);background:#0ea5e926;border:1px solid #0ea5e94d;border-radius:999px;padding:.125rem .5rem;font-size:.6875rem;font-weight:700}.vp-status-pill{border-radius:999px;padding:.15rem .5rem;font-size:.6875rem;font-weight:500}.vp-status-moving{color:#10b981;background:#10b9811f}.vp-status-still{color:#f59e0b;background:#f59e0b1f}.vp-sog-moving{color:#10b981;font-weight:600}.vp-sog-still{color:var(--text-3)}.vp-empty{text-align:center;color:var(--text-3);padding:2.5rem;font-size:.875rem}.vp-page{flex-direction:column;gap:0;height:100%;padding:1.5rem 1.75rem;display:flex;overflow:hidden}.vp-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.vp-search-wrap{flex-shrink:0;position:relative}.vp-search-wrap .vp-search-icon{width:.875rem;height:.875rem;color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:.625rem;transform:translateY(-50%)}.vp-search-input{background:var(--surface);border:1px solid var(--border2);color:var(--text-1);border-radius:.5rem;outline:none;width:220px;padding:.4375rem .75rem .4375rem 2rem;font-size:.8125rem;transition:border-color .15s}.vp-search-input:focus{border-color:var(--sky)}.vp-search-input::placeholder{color:var(--text-3)}.vp-type-chips{flex-wrap:wrap;gap:.375rem;display:flex}.vp-type-chip{border:1px solid var(--border2);color:var(--text-3);cursor:pointer;background:0 0;border-radius:999px;padding:.25rem .625rem;font-size:.6875rem;font-weight:600;transition:all .15s}.vp-type-chip:hover{color:var(--text-1);border-color:var(--border2)}.vp-type-chip-active{color:var(--text-1)!important;border-color:var(--sky)!important;background:var(--sky-dim)!important}.vp-filter-panel{border:1px solid var(--border2);background:linear-gradient(135deg,#0ea5e908 0%,#ffffff03 100%);border-radius:.75rem;margin-bottom:.875rem;padding:.75rem 1rem;box-shadow:0 2px 12px #00000040}.vp-filter-panel-inner{flex-wrap:wrap;align-items:flex-end;gap:1.25rem;display:flex}.vp-filter-divider{background:var(--border2);flex-shrink:0;align-self:flex-end;width:1px;height:2.25rem;margin-bottom:.125rem}.vp-filter-field{flex-direction:column;gap:.375rem;display:flex}.vp-filter-field-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.07em;-webkit-user-select:none;user-select:none;align-items:center;gap:.3rem;font-size:.625rem;font-weight:700;display:flex}.vp-filter-field-label svg{opacity:.7;width:.75rem;height:.75rem}.vp-select-wrap{align-items:center;display:flex;position:relative}.vp-filter-select{appearance:none;border:1px solid var(--border2);color:var(--text-1);cursor:pointer;background:#ffffff08;border-radius:.5rem;outline:none;min-width:172px;padding:.4375rem 2.25rem .4375rem .75rem;font-size:.8125rem;transition:border-color .18s,box-shadow .18s}.vp-filter-select option{background:#0f172a}.vp-filter-select:hover{border-color:#ffffff2e}.vp-filter-select:focus{border-color:var(--sky);box-shadow:0 0 0 3px #0ea5e924}.vp-select-chevron{width:.875rem;height:.875rem;color:var(--text-3);pointer-events:none;transition:color .15s;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.vp-select-wrap:focus-within .vp-select-chevron{color:var(--sky)}.vp-seg-ctrl{border:1px solid var(--border2);background:#ffffff06;border-radius:.5rem;gap:2px;padding:3px;display:flex}.vp-seg-btn{color:var(--text-3);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:.3125rem;align-items:center;gap:.3rem;padding:.3125rem .8125rem;font-size:.75rem;font-weight:600;transition:all .15s;display:flex}.vp-seg-btn:hover{color:var(--text-2);background:#ffffff0a}.vp-seg-btn.active{background:var(--surface2);color:var(--text-1);box-shadow:0 1px 4px #00000059,inset 0 1px #ffffff0f}.vp-seg-dot{opacity:.4;border-radius:50%;flex-shrink:0;width:5px;height:5px;transition:opacity .15s}.vp-seg-btn.active .vp-seg-dot{opacity:1}.vp-seg-btn--sts.active{color:var(--sky)}.vp-seg-btn--sts .vp-seg-dot{background:var(--sky)}.vp-seg-btn--no-sts.active{color:#f87171}.vp-seg-btn--no-sts .vp-seg-dot{background:#f87171}.vp-filter-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-left:auto;display:flex}.vp-filter-chip{color:var(--sky);background:#0ea5e91a;border:1px solid #0ea5e938;border-radius:999px;align-items:center;gap:.25rem;padding:.1875rem .25rem .1875rem .625rem;font-size:.6875rem;font-weight:600;display:inline-flex}.vp-filter-chip-x{width:1.125rem;height:1.125rem;color:var(--sky);cursor:pointer;background:#0ea5e92e;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;line-height:1;transition:background .12s;display:inline-flex}.vp-filter-chip-x:hover{background:#0ea5e959}.vp-filter-chip--sts{color:#10b981;background:#10b9811a;border-color:#10b98138}.vp-filter-chip--sts .vp-filter-chip-x{color:#10b981;background:#10b9812e}.vp-filter-chip--sts .vp-filter-chip-x:hover{background:#10b98159}.vp-filter-chip--no-sts{color:#f87171;background:#ef444414;border-color:#ef444438}.vp-filter-chip--no-sts .vp-filter-chip-x{color:#f87171;background:#ef44442e}.vp-filter-chip--no-sts .vp-filter-chip-x:hover{background:#ef444459}.vp-filter-clear{color:#f87171;cursor:pointer;background:#ef44440d;border:1px solid #ef444440;border-radius:.4375rem;align-items:center;gap:.3rem;padding:.3125rem .625rem;font-size:.6875rem;font-weight:600;transition:all .15s;display:inline-flex}.vp-filter-clear svg{width:.75rem;height:.75rem}.vp-filter-clear:hover{background:#ef44441f;border-color:#ef444466}.traf-page{flex-direction:column;gap:0;height:100%;padding:1.5rem 1.75rem;display:flex;overflow:hidden}.traf-cols{flex:1;grid-template-columns:1fr 1fr;gap:1rem;min-height:0;display:grid;overflow:hidden}.traf-section{background:var(--surface);border:1px solid var(--border);border-radius:.625rem;flex-direction:column;display:flex;overflow:hidden}.traf-section-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:.5rem;padding:.875rem 1rem;display:flex}.traf-section-dot{border-radius:50%;width:7px;height:7px}.traf-dot-green{background:#10b981;box-shadow:0 0 6px #10b981}.traf-dot-sky{background:var(--sky);box-shadow:0 0 6px var(--sky)}.traf-section-title{color:var(--text-1);flex:1;font-size:.875rem;font-weight:600}.traf-section-count{color:var(--text-3);background:#ffffff0d;border-radius:999px;padding:.125rem .5rem;font-size:.75rem}.traf-feed{flex:1;overflow-y:auto}.traf-feed-row{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:.625rem;padding:.625rem .875rem;transition:background .1s;display:flex}.traf-feed-row:hover{background:#ffffff08}.traf-feed-icon{border:1px solid #0000;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.traf-feed-body{flex:1;min-width:0}.traf-feed-name{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:600;overflow:hidden}.traf-feed-meta{align-items:center;gap:.375rem;margin-top:.125rem;display:flex}.traf-badge{border:1px solid #0000;border-radius:999px;padding:.1rem .4rem;font-size:.625rem;font-weight:600}.traf-feed-dest{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.traf-feed-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.125rem;display:flex}.traf-sog-moving{color:#10b981;font-size:.8125rem;font-weight:600}.traf-sog-still{color:var(--text-3);font-size:.8125rem}.traf-feed-time{color:var(--text-3);font-size:.6875rem}.traf-sts-list{flex-direction:column;flex:1;gap:.5rem;padding:.5rem;display:flex;overflow-y:auto}.traf-sts-card{background:var(--surface2);border:1px solid var(--border2);cursor:pointer;border-radius:.5rem;padding:.75rem;transition:border-color .15s}.traf-sts-card:hover{border-color:#0ea5e94d}.traf-sts-top{justify-content:space-between;align-items:center;margin-bottom:.375rem;display:flex}.traf-sts-name{color:var(--text-1);font-size:.875rem;font-weight:600}.traf-sts-status{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:.15rem .5rem;font-size:.625rem;font-weight:700}.traf-sts-confirmed{color:#10b981;background:#10b98126}.traf-sts-estimated{color:#f59e0b;background:#f59e0b26}.traf-sts-ongoing{color:var(--sky);background:#0ea5e926}.traf-sts-source-ais{text-transform:uppercase;letter-spacing:.06em;color:#818cf8;background:#6366f133;border:1px solid #6366f14d;border-radius:999px;padding:.1rem .4rem;font-size:.55rem;font-weight:700}.traf-draft-badge{color:var(--sky);background:#0ea5e91f;border:1px solid #0ea5e933;border-radius:4px;padding:.1rem .35rem;font-size:.6rem;font-weight:600}.traf-draft-down{color:#10b981}.traf-draft-up{color:#f59e0b}.traf-sts-partner{color:var(--text-2);align-items:center;gap:.375rem;margin-bottom:.5rem;font-size:.75rem;display:flex}.traf-sts-icon{width:12px;height:12px;color:var(--text-3);flex-shrink:0}.traf-sts-grid{grid-template-columns:1fr 1fr;gap:.25rem;margin-bottom:.375rem;display:grid}.traf-sts-item{flex-direction:column;gap:.1rem;display:flex}.traf-sts-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:.625rem}.traf-sts-val{color:var(--text-1);font-size:.75rem;font-weight:500}.traf-sts-loc{color:var(--text-3);border-top:1px solid var(--border);align-items:center;gap:.3rem;padding-top:.375rem;font-size:.6875rem;display:flex}.traf-empty{text-align:center;color:var(--text-3);padding:2rem;font-size:.875rem}.anl-page{flex-direction:column;height:100%;display:flex}.anl-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.anl-header-left{flex-direction:column;gap:.125rem;display:flex}.anl-page-title{color:var(--text-1);letter-spacing:-.01em;align-items:center;gap:.5rem;font-size:.9375rem;font-weight:700;display:flex}.anl-page-title svg{color:var(--sky);flex-shrink:0}.anl-page-sub{color:var(--text-3);font-size:.6875rem}.anl-period-pills{gap:.375rem;display:flex}.anl-pill{cursor:pointer;border:1px solid var(--border);color:var(--text-3);letter-spacing:.02em;background:0 0;border-radius:20px;padding:.3rem .75rem;font-size:.6875rem;font-weight:600;transition:color .15s,background .15s,border-color .15s}.anl-pill:hover{color:var(--text-2)}.anl-pill-active{color:var(--sky);background:#0ea5e91f;border-color:#0ea5e94d}.anl-pill-sm{padding:.2rem .5rem;font-size:.625rem}.anl-heatmap-header{flex-direction:column;gap:.5rem;margin-bottom:.875rem;display:flex}.anl-heatmap-header .anl-card-title{margin-bottom:0}.anl-year-pills{flex-wrap:wrap;gap:.25rem;display:flex}.anl-layout{flex:1;grid-template-columns:220px 1fr;min-height:0;display:grid;overflow:hidden}.anl-sidebar{background:var(--surface2);border-right:1px solid var(--border);flex-direction:column;gap:0;padding:1.125rem 1rem;display:flex;overflow-y:auto}.anl-kpi{border-bottom:1px solid var(--border);flex-direction:column;gap:.125rem;padding:.875rem 0;display:flex}.anl-kpi-val{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:1.375rem;font-weight:800;line-height:1}.anl-kpi-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.375rem;font-size:.5625rem;font-weight:700}.anl-sparkline{align-items:flex-end;gap:2px;height:20px;display:flex}.anl-spark-bar{border-radius:1px 1px 0 0;flex:1;min-height:2px}.anl-main{flex-direction:column;gap:.875rem;padding:1.125rem;display:flex;overflow-y:auto}.anl-card{background:var(--surface);border:1px solid var(--border);border-radius:.5rem;padding:1rem 1.125rem}.anl-card-header{justify-content:space-between;align-items:center;margin-bottom:.875rem;display:flex}.anl-card-title{color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.875rem;font-size:.625rem;font-weight:700}.anl-card>.anl-card-title{display:block}.anl-card-header .anl-card-title{margin-bottom:0}.anl-card-meta{color:var(--text-3);font-size:.625rem}.anl-no-data{text-align:center;color:var(--text-3);padding:2rem 0;font-size:.8125rem;display:block}.anl-row-mid{grid-template-columns:1fr 1fr;gap:.875rem;display:grid}.anl-donut-wrap{align-items:center;gap:1rem;padding-top:.25rem;display:flex}.anl-donut-svg{flex-shrink:0}.anl-donut-legend{flex-direction:column;flex:1;gap:.5rem;min-width:0;display:flex}.anl-donut-leg-row{align-items:center;gap:.375rem;display:flex}.anl-donut-leg-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.anl-donut-leg-label{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.6875rem;overflow:hidden}.anl-donut-leg-pct{color:var(--text-1);flex-shrink:0;font-size:.6875rem;font-weight:700}.anl-vessel-bars{flex-direction:column;gap:.5rem;display:flex}.anl-vessel-row{align-items:center;gap:.625rem;display:flex}.anl-vessel-rank{color:var(--text-3);flex-shrink:0;width:14px;font-size:.625rem}.anl-vessel-bar-wrap{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.anl-vessel-name{color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;overflow:hidden}.anl-vessel-track{background:var(--border);border-radius:2px;height:4px}.anl-vessel-fill{opacity:.75;border-radius:2px;height:100%;transition:width .4s ease-out}.anl-vessel-vol{color:var(--red);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.6875rem;font-weight:700}.anl-heatmap-wrap{overflow-x:auto}.anl-heatmap{grid-template-columns:repeat(12,1fr);gap:4px;min-width:480px;display:grid}.anl-heatmap-cell{border:1px solid #0000;border-radius:4px;flex-direction:column;align-items:center;gap:.2rem;padding:.375rem .25rem;transition:background .2s;display:flex}.anl-heatmap-cell-now{border-color:#0ea5e966!important}.anl-heatmap-num{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:700}.anl-heatmap-month{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:.5rem}@media (max-width:768px){.anl-page{height:100%;overflow:hidden auto}.anl-header{flex-wrap:wrap;padding:.75rem 1rem}.anl-period-pills{flex-wrap:wrap}.anl-layout{flex:none;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);min-height:0;overflow:visible}.anl-sidebar{border-right:none;border-bottom:1px solid var(--border);grid-template-columns:repeat(4,1fr);gap:0;width:100%;min-width:0;padding:.75rem;display:grid;overflow:hidden visible}.anl-kpi{border-bottom:none;border-right:1px solid var(--border);min-width:0;padding:.5rem .75rem;overflow:hidden}.anl-kpi:last-child{border-right:none}.anl-kpi-val{font-size:1.125rem}.anl-main{gap:.75rem;padding:.75rem;overflow-y:visible}.anl-row-mid{grid-template-columns:1fr}}@media (max-width:480px){.anl-sidebar{grid-template-columns:repeat(2,1fr)}.anl-kpi:nth-child(2){border-right:none}.anl-kpi:first-child,.anl-kpi:nth-child(2){border-bottom:1px solid var(--border)}.anl-page-title{font-size:.8125rem}}.s-page{flex-direction:column;gap:1.25rem;height:100%;padding:1.75rem 2rem 2rem;display:flex;overflow-y:auto}.s-grid{grid-template-columns:repeat(2,1fr);align-items:stretch;gap:1.25rem;width:100%;display:grid}.s-card{background:#152340;border:1px solid #ffffff29;border-radius:14px;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 6px 28px #00000080,inset 0 1px #ffffff0f}.s-card-head{background:#ffffff05;border-bottom:1px solid #ffffff14;align-items:center;gap:12px;padding:18px 20px 16px;display:flex}.s-card-icon{border:1px solid #ffffff1f;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.s-card-title{color:#f1f5f9;letter-spacing:-.015em;font-size:1rem;font-weight:700}.s-card-body{flex-direction:column;display:flex}.s-row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:16px;padding:15px 20px;transition:background .12s;display:flex}.s-row:last-child{border-bottom:none}.s-row:hover{background:#ffffff06}.s-row--cred{align-items:flex-start}.s-row-info{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.s-row-label{color:#e8f0fa;font-size:.9rem;font-weight:600;line-height:1.2}.s-row-desc{color:#607898;font-size:.775rem;line-height:1.4}.s-row-ctrl{flex-shrink:0}.s-cred-top{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.s-cred-key{color:#a8bfd8;letter-spacing:.03em;font-family:ui-monospace,JetBrains Mono,monospace;font-size:.8125rem;font-weight:500}.s-cred-val{color:#3a506b;letter-spacing:.08em;margin-top:1px;font-family:ui-monospace,monospace;font-size:.6875rem;display:block}.s-badge{white-space:nowrap;letter-spacing:.025em;border-radius:999px;padding:2px 9px;font-size:.6875rem;font-weight:700}.s-badge--ok{color:#34d399;background:#10b98124;border:1px solid #34d3994d}.s-badge--miss{color:#f87171;background:#ef44441f;border:1px solid #f8717140}.s-toggle{cursor:pointer;background:#ffffff14;border:1.5px solid #ffffff24;border-radius:999px;flex-shrink:0;align-items:center;width:46px;height:26px;padding:3px;transition:background .22s,border-color .22s;display:flex}.s-toggle--on{background:#0ea5e9;border-color:#0ea5e9;justify-content:flex-end}.s-toggle-thumb{background:#fff;border-radius:50%;flex-shrink:0;width:18px;height:18px;transition:box-shadow .22s;box-shadow:0 1px 4px #0006}.s-toggle--on .s-toggle-thumb{box-shadow:0 1px 6px #0ea5e980}.s-select-wrap{align-items:center;display:inline-flex;position:relative}.s-select{color:#e2e8f0;cursor:pointer;appearance:none;background:#ffffff12;border:1.5px solid #ffffff21;border-radius:8px;outline:none;padding:7px 28px 7px 12px;font-size:.8125rem;transition:border-color .15s,background .15s}.s-select:hover,.s-select:focus{background:#ffffff1a;border-color:#0ea5e98c}.s-select-arrow{color:#607898;pointer-events:none;position:absolute;right:8px}.s-url{color:#38bdf8;word-break:break-all;font-family:ui-monospace,monospace;font-size:.75rem}.s-active-badge{color:#34d399;background:#34d3991a;border:1px solid #34d39938;border-radius:999px;align-items:center;gap:6px;padding:4px 11px 4px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.s-active-dot{background:#34d399;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2.2s ease-in-out infinite s-pulse}@keyframes s-pulse{0%,to{box-shadow:0 0 #34d39980}50%{box-shadow:0 0 0 4px #34d39900}}.s-note{color:#607898;background:#ffffff06;border:1px solid #ffffff17;border-radius:10px;padding:12px 16px;font-size:.75rem;line-height:1.6}.s-note code{color:#94a3b8;background:#ffffff14;border-radius:4px;padding:1px 6px;font-family:ui-monospace,monospace;font-size:.8rem}.s-card-head--clk{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s}.s-card-head--clk:hover{background:#ffffff06}.s-card-badge-slot{margin-left:auto}.s-chevron{color:#5a6a82;flex-shrink:0;margin-left:8px;transition:transform .2s}.s-chevron--open{transform:rotate(180deg)}.s-health-grid{grid-template-columns:1fr 1fr;display:grid}.s-health-grid .s-row{border-right:1px solid #ffffff0a}.s-health-grid .s-row:nth-child(2n){border-right:none}.s-health-grid .s-row:nth-last-child(-n+2){border-bottom:none}@media (max-width:720px){.s-health-grid{grid-template-columns:1fr}.s-health-grid .s-row{border-right:none}.s-health-grid .s-row:last-child{border-bottom:none}}.s-health-footer{background:#ffffff03;border-top:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:8px 20px;display:flex}.s-health-ts{color:#3d4f66;font-size:.6875rem}.s-row--svc{align-items:center}.s-svc-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.s-svc-pending{color:#3d4f66;font-size:.75rem;font-style:italic}.s-test-btn{color:#94a3b8;cursor:pointer;letter-spacing:.02em;white-space:nowrap;background:#ffffff0d;border:1px solid #ffffff17;border-radius:6px;padding:3px 10px;font-size:.6875rem;font-weight:600;transition:background .12s,color .12s}.s-test-btn:hover:not(:disabled){color:#e2e8f0;background:#ffffff1a}.s-test-btn:disabled{opacity:.4;cursor:not-allowed}.s-refresh-btn{color:#34d399;cursor:pointer;white-space:nowrap;background:#10b98114;border:1px solid #10b9812e;border-radius:7px;align-items:center;gap:5px;padding:5px 12px;font-size:.75rem;font-weight:500;transition:background .12s;display:flex}.s-refresh-btn:hover:not(:disabled){background:#10b98126}.s-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.s-sync-btn{color:#c4b5fd;cursor:pointer;white-space:nowrap;background:#8b5cf61a;border:1px solid #8b5cf638;border-radius:6px;padding:3px 10px;font-size:.6875rem;font-weight:600;transition:background .12s}.s-sync-btn:hover:not(:disabled){background:#8b5cf62e}.s-sync-btn:disabled{opacity:.5;cursor:not-allowed}.s-stat-pill{color:#7dd3fc;background:#0ea5e91a;border:1px solid #0ea5e92e;border-radius:999px;padding:2px 10px;font-size:.875rem;font-weight:600}.s-sub-row{background:#ffffff04;border-bottom:1px solid #ffffff0a;flex-direction:column;gap:6px;padding:10px 20px 12px 36px;display:flex}.s-sub-label{color:#5a6a82;letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem;font-weight:600}.s-input{color:#e2e8f0;box-sizing:border-box;background:#ffffff0a;border:1.5px solid #ffffff17;border-radius:8px;outline:none;width:100%;padding:7px 11px;font-size:.8125rem;transition:border-color .15s}.s-input:focus{border-color:#0ea5e966}.s-input::placeholder{color:#3d4f66}.s-tag-list{flex-wrap:wrap;gap:6px;margin-bottom:4px;display:flex}.s-tag{color:#c4b5fd;background:#8b5cf626;border:1px solid #8b5cf64d;border-radius:20px;align-items:center;gap:5px;padding:3px 8px 3px 10px;font-family:ui-monospace,SF Mono,monospace;font-size:.75rem;display:inline-flex}.s-tag-remove{color:#a78bfa;cursor:pointer;opacity:.7;background:0 0;border:none;margin-left:1px;padding:0;font-size:1rem;line-height:1;transition:opacity .1s}.s-tag-remove:hover{opacity:1}.s-tag-input-row{align-items:stretch;gap:6px;display:flex}.s-tag-input-row .s-input{flex:1}.s-tag-add-btn{color:#c4b5fd;cursor:pointer;white-space:nowrap;background:#8b5cf62e;border:1.5px solid #8b5cf659;border-radius:8px;padding:7px 12px;font-size:.8rem;font-weight:500;transition:background .15s,border-color .15s}.s-tag-add-btn:hover:not(:disabled){background:#8b5cf647;border-color:#8b5cf680}.s-tag-add-btn:disabled{opacity:.35;cursor:not-allowed}.s-input-sm{color:#e2e8f0;text-align:center;background:#ffffff0a;border:1.5px solid #ffffff17;border-radius:7px;outline:none;width:58px;padding:4px 6px;font-size:.8125rem;transition:border-color .15s}.s-input-sm:focus{border-color:#0ea5e966}.s-inline-group{flex-shrink:0;align-items:center;gap:8px;display:flex}.s-inline-label{color:#5a6a82;font-size:.75rem}.s-check-section{border-top:1px solid #ffffff0d;padding:10px 0 0}.s-check-section-title{color:#5a6a82;letter-spacing:.04em;text-transform:uppercase;padding:6px 20px;font-size:.6875rem;font-weight:600;display:block}.s-check-row{cursor:pointer;align-items:center;gap:10px;padding:9px 20px;transition:background .1s;display:flex}.s-check-row:hover{background:#ffffff05}.s-check-row:last-child{border-bottom:none}.s-check{cursor:pointer;appearance:none;background:#ffffff0a;border:1.5px solid #ffffff26;border-radius:4px;flex-shrink:0;width:16px;height:16px;transition:background .12s,border-color .12s;position:relative}.s-check:checked{background:#0ea5e9;border-color:#0ea5e9}.s-check:checked:after{content:"";background:url("data:image/svg+xml,%3Csvg viewBox='0 0 10 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 4l2.5 2.5L9 1' stroke='white' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E") 50%/contain no-repeat;position:absolute;inset:2px}.s-check-label{color:#dde3ee;font-size:.875rem}.s-card-foot{background:#ffffff03;border-top:1px solid #ffffff0d;justify-content:flex-end;align-items:center;gap:10px;padding:11px 20px;display:flex}.s-save-btn{color:#7dd3fc;cursor:pointer;background:#0ea5e91a;border:1px solid #0ea5e938;border-radius:8px;padding:7px 18px;font-size:.8125rem;font-weight:600;transition:background .12s,color .12s}.s-save-btn:hover{color:#bae6fd;background:#0ea5e92e}.s-saved-text{color:#34d399;align-items:center;gap:4px;font-size:.75rem;font-weight:500;display:flex}.s-zone-list{flex-direction:column;display:flex}.s-zone-item{border-bottom:1px solid #ffffff0d;align-items:center;gap:12px;padding:14px 20px;transition:background .12s;display:flex}.s-zone-item:last-child{border-bottom:none}.s-zone-item:hover{background:#ffffff05}.s-zone-item--add{opacity:.6}.s-zone-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.s-zone-info{flex:1;min-width:0}.s-zone-name{color:#dde3ee;font-size:.875rem;font-weight:500}.s-zone-coords{color:#5a6a82;margin-top:2px;font-family:ui-monospace,monospace;font-size:.6875rem}.s-zone-right{text-align:right;flex-shrink:0}.s-zone-count{color:#7dd3fc;font-size:1rem;font-weight:700;line-height:1}.s-zone-count-label{color:#5a6a82;margin-top:2px;font-size:.625rem}.s-user-self{border-bottom:1px solid #ffffff0d;align-items:center;gap:14px;padding:16px 20px;display:flex}.s-user-avatar{color:#f9a8d4;background:#ec489924;border:1.5px solid #ec489940;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:700;display:flex}.s-user-info{flex:1;min-width:0}.s-user-name{color:#f1f5f9;font-size:.9375rem;font-weight:600}.s-user-meta{color:#5a6a82;margin-top:1px;font-size:.75rem}.s-user-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.s-user-link{color:#f9a8d4;white-space:nowrap;background:#ec489914;border:1px solid #ec489933;border-radius:7px;align-items:center;gap:5px;padding:6px 14px;font-size:.8125rem;font-weight:500;text-decoration:none;transition:background .12s;display:inline-flex}.s-user-link:hover{background:#ec489924}.s-user-roles-note{color:#5a6a82;font-size:.6875rem;line-height:1.5}.s-user-roles-note strong{color:#94a3b8}.s-admin-section-label{color:#3d4f66;letter-spacing:.07em;text-transform:uppercase;border-top:1px solid #ffffff0a;padding:10px 20px 4px;font-size:.6875rem;font-weight:600}.s-admin-section-label:first-child{border-top:none}.s-admin-note{color:#5a6a82;border-top:1px solid #ffffff0d;padding:12px 20px;font-size:.75rem;line-height:1.55}.s-admin-note code{color:#94a3b8;background:#ffffff0f;border-radius:3px;padding:1px 5px;font-family:ui-monospace,monospace;font-size:.75rem}@media (max-width:1100px){.s-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.s-grid{grid-template-columns:1fr}.s-grid>.s-card{grid-column:1/-1}.s-health-grid{grid-template-columns:1fr}}.lgd-overlay{-webkit-backdrop-filter:blur(6px);z-index:1000;background:#020617b8;justify-content:center;align-items:center;padding:1.5rem;animation:.18s lgd-fade;display:flex;position:fixed;inset:0}@keyframes lgd-fade{0%{opacity:0}to{opacity:1}}.lgd-modal{background:var(--surface);border:1px solid var(--border2);border-radius:1rem;flex-direction:column;width:100%;max-width:680px;max-height:88vh;animation:.2s cubic-bezier(.16,1,.3,1) lgd-up;display:flex;overflow:hidden;box-shadow:0 32px 96px #000000a6,0 0 0 1px #ffffff0a}@keyframes lgd-up{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.lgd-header{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#0ea5e90d 0%,#0000 55%);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem 1.125rem;display:flex}.lgd-header-left{align-items:center;gap:.875rem;display:flex}.lgd-header-icon{width:2.375rem;height:2.375rem;color:var(--sky);background:#0ea5e91a;border:1px solid #0ea5e938;border-radius:.625rem;flex-shrink:0;justify-content:center;align-items:center;display:flex}.lgd-header-icon svg{width:1.125rem;height:1.125rem}.lgd-title{color:var(--text-1);margin:0;font-size:.9375rem;font-weight:700;line-height:1.25}.lgd-subtitle{color:var(--text-3);margin:.175rem 0 0;font-size:.6875rem;line-height:1.4}.lgd-close-btn{border:1px solid var(--border2);width:2rem;height:2rem;color:var(--text-3);cursor:pointer;background:0 0;border-radius:.4375rem;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.lgd-close-btn svg{width:1rem;height:1rem}.lgd-close-btn:hover{color:#f87171;background:#ef44441a;border-color:#ef44444d}.lgd-body{scrollbar-width:thin;scrollbar-color:#ffffff14 transparent;flex:1;padding:1.375rem 1.5rem 1rem;overflow-y:auto}.lgd-body::-webkit-scrollbar{width:4px}.lgd-body::-webkit-scrollbar-track{background:0 0}.lgd-body::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.lgd-sep{background:var(--border);height:1px;margin:1.375rem 0}.lgd-section-head{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.lgd-section-icon{color:var(--sky);flex-shrink:0;justify-content:center;align-items:center;display:flex}.lgd-section-icon svg{width:.9375rem;height:.9375rem}.lgd-section-title{color:var(--text-1);letter-spacing:.01em;margin:0;font-size:.8125rem;font-weight:700}.lgd-section-count{color:var(--sky);background:#0ea5e91a;border:1px solid #0ea5e933;border-radius:999px;padding:.125rem .45rem;font-size:.625rem;font-weight:700}.lgd-section-intro{color:var(--text-3);margin:0 0 .75rem;font-size:.75rem;line-height:1.6}.lgd-section-intro strong{color:var(--text-2)}.lgd-callout{background:#f59e0b0d;border:1px solid #f59e0b2e;border-left:3px solid #f59e0b;border-radius:0 .5rem .5rem 0;align-items:flex-start;gap:.45rem;margin-bottom:.875rem;padding:.5625rem .75rem;display:flex}.lgd-callout-icon{color:#f59e0b;flex-shrink:0;width:.875rem;height:.875rem;margin-top:.0625rem}.lgd-callout span{color:var(--text-2);font-size:.75rem;line-height:1.55}.lgd-callout strong{color:var(--text-1)}.lgd-rows{flex-direction:column;gap:.25rem;display:flex}.lgd-row{border-radius:.5rem;align-items:flex-start;gap:1rem;padding:.5rem .5rem .5rem .25rem;transition:background .12s;display:flex}.lgd-row:hover{background:#ffffff06}.lgd-row-left{flex-shrink:0;align-items:center;gap:.45rem;min-width:180px;display:flex}.lgd-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.lgd-live-dot{background:#10b981;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite lgd-pulse}@keyframes lgd-pulse{0%,to{box-shadow:0 0 #10b981b3}60%{box-shadow:0 0 0 5px #10b98100}}.lgd-badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;padding:.2rem .55rem;font-size:.6875rem;font-weight:600;line-height:1.4;display:inline-flex}.lgd-badge--sts{color:var(--sky);letter-spacing:.04em;background:#0ea5e924;border-color:#0ea5e94d;font-weight:700}.lgd-row-desc{color:var(--text-2);margin:0;padding-top:.125rem;font-size:.75rem;line-height:1.6}.lgd-footer{border-top:1px solid var(--border);background:#00000026;flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 1.5rem;display:flex}.lgd-footer-note{color:var(--text-3);align-items:center;gap:.4rem;min-width:0;font-size:.6875rem;font-style:italic;display:flex}.lgd-footer-note svg{flex-shrink:0;width:.75rem;height:.75rem}.lgd-footer-close{border:1px solid var(--border2);color:var(--text-1);cursor:pointer;background:#ffffff0a;border-radius:.4375rem;flex-shrink:0;padding:.4375rem 1.125rem;font-size:.8125rem;font-weight:600;transition:all .15s}.lgd-footer-close:hover{background:#ffffff14;border-color:#ffffff2e}.sp-header{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:4px;padding-bottom:20px;display:flex;position:relative}.sp-title{color:#f1f5f9;letter-spacing:-.025em;margin:0;font-size:1.375rem;font-weight:700}.sp-subtitle{color:#5a6a82;margin:4px 0 0;font-size:.8125rem;line-height:1.4}.sp-header-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.sp-date{color:#3d4f66;text-align:right;text-transform:capitalize;font-size:.75rem}.sp-status-bar{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:4px;display:grid}.sp-svc-tile{background:linear-gradient(160deg,#0e1d3a 0%,#0a1528 100%);border:1px solid #ffffff12;border-radius:14px;flex-direction:column;gap:6px;padding:14px 16px 12px;transition:border-color .2s;display:flex;position:relative;overflow:hidden}.sp-svc-tile:before{content:"";background:var(--sp-c,#334155);border-radius:14px 14px 0 0;height:2px;position:absolute;top:0;left:0;right:0}.sp-svc-tile--ok{--sp-c:#10b981;border-color:#10b98126}.sp-svc-tile--err{--sp-c:#ef4444;border-color:#ef444426}.sp-svc-tile--pending{--sp-c:#475569}.sp-svc-header{justify-content:space-between;align-items:center;display:flex}.sp-svc-name{color:#64748b;letter-spacing:.06em;text-transform:uppercase;font-size:.6875rem;font-weight:600}.sp-svc-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.sp-svc-dot--ok{background:#10b981;animation:2.2s ease-in-out infinite s-pulse;box-shadow:0 0 7px #10b981}.sp-svc-dot--err{background:#ef4444;box-shadow:0 0 7px #ef4444}.sp-svc-dot--pending{background:#334155}.sp-svc-status{color:#94a3b8;font-size:.875rem;font-weight:600;line-height:1.2}.sp-svc-status--ok{color:#34d399}.sp-svc-status--err{color:#f87171}.sp-svc-status--pending{color:#475569}.sp-svc-detail{color:#5a6a82;font-size:.6875rem;line-height:1.4}.sp-svc-action{margin-top:4px}@media (max-width:900px){.sp-status-bar{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.sp-status-bar{grid-template-columns:1fr}}.sp-section{grid-column:1/-1;align-items:center;gap:10px;padding-top:6px;padding-bottom:2px;display:flex}.sp-section-label{color:#3d4f66;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;flex-shrink:0;font-size:.6875rem;font-weight:600}.sp-section-line{background:#ffffff0d;flex:1;height:1px}.sp-svc-strip{scrollbar-width:none;background:#ffffff06;border:1px solid #ffffff12;border-radius:10px;flex-wrap:nowrap;align-items:center;gap:0;padding:.625rem 1rem;display:flex;overflow-x:auto}.sp-svc-strip::-webkit-scrollbar{display:none}.sp-svc-strip-item{flex-shrink:0;align-items:center;gap:6px;display:flex}.sp-svc-strip-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.sp-svc-strip-dot--ok{background:#10b981;animation:2.2s ease-in-out infinite s-pulse;box-shadow:0 0 5px #10b98199}.sp-svc-strip-dot--err{background:#ef4444;box-shadow:0 0 5px #ef444480}.sp-svc-strip-dot--pending{background:#334155}.sp-svc-strip-name{color:#94a3b8;letter-spacing:.02em;font-family:ui-monospace,SF Mono,monospace;font-size:.75rem;font-weight:600}.sp-svc-strip-detail{color:#475569;font-family:ui-monospace,SF Mono,monospace;font-size:.6875rem}.sp-svc-strip-sep{background:#ffffff12;flex-shrink:0;width:1px;height:14px;margin:0 .875rem}.sp-svc-strip-refresh{flex-shrink:0;margin-left:auto}.sp-zone-fixed{color:#38bdf8;letter-spacing:.01em;font-family:ui-monospace,SF Mono,monospace;font-size:.8125rem;font-weight:600}.sp-zone-card{border-bottom:1px solid #ffffff0d;align-items:stretch;transition:background .12s;display:flex}.sp-zone-card:last-child{border-bottom:none}.sp-zone-card:hover{background:#ffffff05}.sp-zone-card--ghost{opacity:.5}.sp-zone-color-bar{border-radius:2px;flex-shrink:0;width:4px;margin:8px 0 8px 16px}.sp-zone-body{flex:1;min-width:0;padding:12px 16px}.sp-zone-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:3px;display:flex}.sp-zone-name{color:#dde3ee;font-size:.9375rem;font-weight:600}.sp-zone-count{color:#7dd3fc;flex-shrink:0;font-size:1.125rem;font-weight:700}.sp-zone-count small{color:#5a6a82;margin-left:3px;font-size:.625rem;font-weight:400}.sp-zone-coords{color:#5a6a82;margin-bottom:6px;font-family:ui-monospace,monospace;font-size:.6875rem}.sp-zone-tags{flex-wrap:wrap;gap:6px;display:flex}.sp-zone-tag{color:#67e8f9;letter-spacing:.02em;background:#06b6d414;border:1px solid #06b6d426;border-radius:999px;padding:2px 7px;font-size:.625rem;font-weight:600}.sp-access-body{flex-direction:column;display:flex}.sp-user-card{align-items:center;gap:14px;padding:16px 20px;display:flex}.sp-user-card--empty{padding:14px 20px}.sp-access-divider{background:#ffffff0d;height:1px;margin:0 20px}.sp-roles{grid-template-columns:1fr 1fr;gap:12px;padding:14px 20px;display:grid}.sp-role-badge{border:1px solid;border-radius:6px;margin-bottom:5px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-block}.sp-role-desc{color:#5a6a82;margin:0;font-size:.75rem;line-height:1.5}.sp-access-actions{border-top:1px solid #ffffff0d;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.sp-access-note{color:#3d4f66;font-size:.6875rem}@media (max-width:640px){.sp-roles{grid-template-columns:1fr}.sp-header{flex-direction:column}.sp-header-right{align-items:flex-start}.sp-zones-grid{grid-template-columns:1fr}}.sp-zones-grid{grid-template-columns:repeat(3,1fr);gap:0;display:grid}.sp-zone-tile{border-right:1px solid #ffffff0d;padding:16px 18px;transition:background .12s;position:relative}.sp-zone-tile:last-child{border-right:none}.sp-zone-tile:hover{background:#ffffff05}.sp-zone-tile--ghost{opacity:.45}.sp-zone-tile:before{content:"";background:var(--sp-zone-c,#334155);opacity:.5;height:2px;position:absolute;top:0;left:0;right:0}.sp-zone-tile-head{align-items:center;gap:8px;margin-bottom:6px;display:flex}.sp-zone-tile-dot{background:var(--sp-zone-c,#334155);width:8px;height:8px;box-shadow:0 0 6px var(--sp-zone-c,transparent);border-radius:50%;flex-shrink:0}.sp-zone-tile-name{color:#dde3ee;flex:1;min-width:0;font-size:.875rem;font-weight:600}.sp-zone-tile-count{color:var(--sp-zone-c,#7dd3fc);flex-shrink:0;font-size:1.25rem;font-weight:700;line-height:1}.sp-zone-tile-count small{color:#5a6a82;margin-left:2px;font-size:.625rem;font-weight:400}.sp-zone-tile-coords{color:#5a6a82;margin-bottom:8px;font-family:ui-monospace,monospace;font-size:.6875rem;line-height:1.4}@media (max-width:900px){.sp-zones-grid{grid-template-columns:1fr 1fr}}.sp-alert-grid{grid-template-columns:repeat(2,1fr);display:grid}.sp-alert-grid .s-row{border-bottom:1px solid #ffffff0d;border-right:1px solid #ffffff0a}.sp-alert-grid .s-row:nth-child(2n){border-right:none}.sp-alert-grid .s-row:nth-last-child(-n+2){border-bottom:none}@media (max-width:480px){.sp-alert-grid{grid-template-columns:1fr}.sp-alert-grid .s-row{border-right:none}.sp-alert-grid .s-row:last-child{border-bottom:none}}.cop-container{flex-direction:column;height:100%;display:flex;position:relative;overflow:hidden}.cop-mode-bar{z-index:100;-webkit-backdrop-filter:blur(16px);background:#0a1628e0;border:1px solid #ffffff1a;border-radius:.625rem;gap:.125rem;padding:.25rem;display:flex;position:absolute;top:.75rem;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #0006}.cop-mode-btn{color:var(--text-2);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:.375rem;align-items:center;gap:.375rem;padding:.375rem .875rem;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s;display:flex}.cop-mode-btn:hover{color:var(--text-1);background:#ffffff0f}.cop-mode-btn-active{color:var(--sky);background:#0ea5e926;border:1px solid #0ea5e940}.cop-mode-btn-active:hover{background:#0ea5e933}.cop-subheader{flex-shrink:0;padding:3.5rem 1.5rem 0}.cop-scroll-view{flex:1;min-height:0;overflow-y:auto}.tab-page{flex-direction:column;height:100%;display:flex;overflow:hidden}.tab-bar{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;gap:0;padding:0 1.5rem;display:flex}.tab-btn{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.5rem;margin-bottom:-1px;padding:.875rem 1.25rem;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s;display:flex}.tab-btn:hover{color:var(--text-1)}.tab-btn-active{color:var(--sky);border-bottom-color:var(--sky)}.tab-content{flex:1;min-height:0;overflow-y:auto}.maritime-canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.lx-waves{pointer-events:none;height:160px;position:absolute;bottom:36px;left:0;right:0;overflow:hidden}.lx-wave{width:200%;height:100%;position:absolute;bottom:0}.lx-wave-a{animation:18s linear infinite lxWave}.lx-wave-b{animation:26s linear infinite reverse lxWave}.lx-wave-c{opacity:.65;animation:11s linear infinite lxWave}@keyframes lxWave{0%{transform:translate(0)}to{transform:translate(-50%)}}.lx-corner{pointer-events:none;border-style:solid;border-color:#0ea5e929;width:20px;height:20px;position:absolute}.lx-corner-tl{border-width:1px 0 0 1px;top:18px;left:18px}.lx-corner-tr{border-width:1px 1px 0 0;top:18px;right:18px}.lx-corner-bl{border-width:0 0 1px 1px;bottom:52px;left:18px}.lx-corner-br{border-width:0 1px 1px 0;bottom:52px;right:18px}.lx-sysbar{letter-spacing:.07em;color:#94a3b873;-webkit-backdrop-filter:blur(8px);pointer-events:none;z-index:20;background:#0a1628d1;border-top:1px solid #ffffff0b;align-items:center;gap:14px;height:36px;padding:0 22px;font-family:ui-monospace,SF Mono,monospace;font-size:.625rem;display:flex;position:absolute;bottom:0;left:0;right:0}.lx-sysbar-dot{background:#10b981;border-radius:50%;flex-shrink:0;width:5px;height:5px;animation:2.4s ease-in-out infinite lxDotPulse;box-shadow:0 0 7px #10b981}@keyframes lxDotPulse{0%,to{opacity:1}50%{opacity:.3}}.lx-sysbar-sep{background:#ffffff14;flex-shrink:0;width:1px;height:10px}.lx-sysbar-coord{color:#0ea5e980}.lx-panel{z-index:10;-webkit-backdrop-filter:blur(36px);background:#0a1628db;border:1px solid #ffffff13;border-radius:4px;width:100%;max-width:390px;padding:2rem 1.875rem 1.625rem;animation:.55s cubic-bezier(.16,1,.3,1) both lxPanelIn;position:relative;box-shadow:0 0 0 1px #0ea5e90e,0 32px 72px -12px #000000bf,0 0 80px -28px #0ea5e91f}@keyframes lxPanelIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.lx-panel:before,.lx-panel:after{content:"";pointer-events:none;border-style:solid;border-color:#0ea5e952;width:10px;height:10px;position:absolute}.lx-panel:before{border-width:1px 0 0 1px;border-radius:2px 0 0;top:-1px;left:-1px}.lx-panel:after{border-width:0 1px 1px 0;border-radius:0 0 2px;bottom:-1px;right:-1px}.lx-badge{letter-spacing:.11em;color:#0ea5e980;text-align:center;border-bottom:1px solid #ffffff0e;margin-bottom:1.375rem;padding-bottom:1rem;font-family:ui-monospace,SF Mono,monospace;font-size:.5625rem;font-weight:600}.lx-logo-wrap{justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 1.125rem;display:flex;position:relative}.lx-logo-ring{border:1px solid #0ea5e92e;border-radius:50%;animation:3.2s ease-in-out infinite lxRingPulse;position:absolute;inset:0}.lx-logo-ring:before{content:"";border:1px solid #0ea5e917;border-radius:50%;animation:3.2s ease-in-out .6s infinite lxRingPulse;position:absolute;inset:8px}@keyframes lxRingPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.95)}}.lx-logo-svg{z-index:1;width:38px;height:38px;position:relative}.lx-title{letter-spacing:-.02em;color:#f1f5f9;text-align:center;margin-bottom:.25rem;font-size:1.3125rem;font-weight:700;line-height:1.2}.lx-subtitle{color:#64748b;text-align:center;margin-bottom:.25rem;font-size:.8125rem}.lx-sysid{letter-spacing:.09em;color:#0ea5e959;text-align:center;margin-bottom:1.625rem;font-family:ui-monospace,SF Mono,monospace;font-size:.5625rem;display:block}.lx-form{flex-direction:column;gap:1rem;display:flex}.lx-field{flex-direction:column;gap:.375rem;display:flex}.lx-label{letter-spacing:.065em;color:#94a3b8b3;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.6875rem;font-weight:600;display:flex}.lx-label-num{color:#0ea5e973;font-family:ui-monospace,SF Mono,monospace;font-size:.5625rem;font-weight:400}.lx-input-wrap{align-items:center;display:flex;position:relative}.lx-input-icon{color:#64748bcc;pointer-events:none;flex-shrink:0;width:12px;height:12px;position:absolute;left:11px}.lx-input{color:#e2e8f0;background:#0f172aa6;border:1px solid #ffffff12;border-radius:3px;outline:none;width:100%;padding:.625rem .75rem .625rem 2.125rem;font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.lx-input::placeholder{color:#475569e6}.lx-input:focus{border-color:#0ea5e961;box-shadow:0 0 0 3px #0ea5e912}.lx-input-pass{padding-right:2.5rem}.lx-input-eye{color:#475569e6;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;transition:color .12s;display:flex;position:absolute;right:8px}.lx-input-eye:hover{color:#94a3b8e6}.lx-error{color:#fca5a5e6;background:#ef444414;border:1px solid #ef444433;border-radius:3px;align-items:flex-start;gap:8px;padding:.625rem .75rem;font-size:.8125rem;line-height:1.5;display:flex}.lx-btn{color:#020617;letter-spacing:.015em;cursor:pointer;background:#0ea5e9;border:none;border-radius:3px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:.25rem;padding:.6875rem 1rem;font-size:.875rem;font-weight:700;transition:background .15s,box-shadow .15s,transform .1s;display:flex;position:relative;overflow:hidden}.lx-btn:hover:not(:disabled){background:#38bdf8;box-shadow:0 4px 20px #0ea5e959}.lx-btn:active:not(:disabled){transform:scale(.985)}.lx-btn:disabled{opacity:.65;cursor:not-allowed}.lx-btn:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff1f 50%,#0000 100%);transition:none;position:absolute;inset:0;transform:translate(-100%)}.lx-btn:hover:not(:disabled):after{animation:.6s ease-out forwards lxBtnShimmer}@keyframes lxBtnShimmer{to{transform:translate(100%)}}.lx-btn-spin{border:2px solid #02061740;border-top-color:#020617d9;border-radius:50%;flex-shrink:0;width:13px;height:13px;animation:.55s linear infinite lxSpin}@keyframes lxSpin{to{transform:rotate(360deg)}}.lx-footer{color:#475569cc;border-top:1px solid #ffffff0d;justify-content:center;align-items:center;gap:6px;margin-top:1.25rem;padding-top:1rem;font-size:.6875rem;display:flex}@media (max-width:480px){.lx-panel{padding:1.5rem 1.25rem 1.375rem}.lx-corner,.lx-sysbar{display:none}}.notif-wrap{position:relative}.notif-panel{background:var(--surface);border:1px solid var(--border);z-index:1000;border-radius:.75rem;width:320px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 32px #0006}.notif-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.notif-panel-title{color:var(--text-1);font-size:.8125rem;font-weight:600}.notif-panel-close{width:24px;height:24px;color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;display:flex}.notif-panel-close:hover{color:var(--text-1);background:#ffffff12}.notif-panel-empty{text-align:center;color:var(--text-3);padding:1.5rem 1rem;font-size:.8125rem}.notif-panel-list{max-height:360px;overflow-y:auto}.notif-item{cursor:pointer;text-align:left;background:0 0;border:none;border-bottom:1px solid #ffffff0a;align-items:flex-start;gap:.625rem;width:100%;padding:.75rem 1rem;transition:background .12s;display:flex}.notif-item:hover{background:#ffffff0a}.notif-item:last-child{border-bottom:none}.notif-item-icon{width:28px;height:28px;color:var(--sky);background:#0ea5e91f;border-radius:.5rem;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:flex}.notif-item-body{flex:1;min-width:0}.notif-item-title{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;margin:0 0 2px;font-size:.75rem;font-weight:600;overflow:hidden}.notif-item-sub{color:var(--text-3);margin:0;font-size:.6875rem}.notif-item-badge{border-radius:4px;flex-shrink:0;margin-top:2px;padding:2px 6px;font-size:.625rem;font-weight:700}.notif-badge-confirmed{color:#10b981;background:#10b98126}.notif-badge-ongoing{color:#f59e0b;background:#f59e0b26}.notif-badge-estimated{color:var(--text-3);background:#94a3b81a}.dash-avatar{cursor:pointer;transition:opacity .15s,box-shadow .15s}.dash-avatar:hover{opacity:.85;box-shadow:0 0 0 3px #0ea5e933}.profile-panel{background:var(--surface);border:1px solid var(--border);z-index:1000;border-radius:.75rem;width:340px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 32px #0006}.profile-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.profile-panel-title{color:var(--text-1);font-size:.8125rem;font-weight:600}.profile-panel-loading{justify-content:center;align-items:center;padding:2rem;display:flex}.profile-panel-body{flex-direction:column;gap:.875rem;padding:1rem;display:flex}.profile-avatar-row{border-bottom:1px solid #ffffff0f;align-items:center;gap:.875rem;padding-bottom:.75rem;display:flex}.profile-avatar-lg{width:44px;height:44px;color:var(--sky);background:#0ea5e926;border:1.5px solid #0ea5e94d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.profile-display-name{color:var(--text-1);margin:0 0 2px;font-size:.875rem;font-weight:600}.profile-role-label{color:var(--sky);text-transform:uppercase;letter-spacing:.04em;margin:0 0 1px;font-size:.6875rem;font-weight:600}.profile-username{color:var(--text-3);margin:0;font-size:.6875rem}.profile-error{color:#ef4444;background:#ef444414;border:1px solid #ef444433;border-radius:.375rem;margin:0;padding:.5rem .625rem;font-size:.75rem}.profile-saved{color:#10b981;background:#10b98114;border:1px solid #10b98133;border-radius:.375rem;margin:0;padding:.5rem .625rem;font-size:.75rem}.profile-fields{flex-direction:column;gap:.625rem;display:flex}.profile-row-2{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.profile-field{flex-direction:column;gap:.25rem;display:flex}.profile-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:.6875rem;font-weight:600}.profile-input{border:1px solid var(--border);width:100%;height:34px;color:var(--text-1);background:#ffffff0a;border-radius:.5rem;outline:none;padding:0 .75rem;font-size:.8125rem;transition:border-color .15s}.profile-input:focus{border-color:#0ea5e980}.profile-input::placeholder{color:var(--text-3)}.profile-save-btn{background:var(--sky);color:#fff;cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.375rem;height:36px;font-size:.8125rem;font-weight:600;transition:opacity .15s;display:flex}.profile-save-btn:hover{opacity:.9}.profile-save-btn:disabled{opacity:.6;cursor:not-allowed}.ais-page{flex-direction:column;min-height:0;display:flex}.ais-header{z-index:60;background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.5rem .875rem;display:flex;position:sticky;top:0}.ais-title{color:var(--text-1);margin:0;font-size:1.25rem;font-weight:700;line-height:1.2}.ais-subtitle{color:var(--text-3);margin:.25rem 0 0;font-size:.75rem}.ais-refresh-btn{border:1px solid var(--border2);height:34px;color:var(--text-2);cursor:pointer;white-space:nowrap;background:#ffffff0a;border-radius:.5rem;flex-shrink:0;align-items:center;gap:.375rem;padding:0 .875rem;font-size:.8125rem;font-weight:500;transition:background .15s,color .15s;display:flex}.ais-refresh-btn:hover{color:var(--text-1);background:#ffffff12}.ais-refresh-btn:disabled{opacity:.5;cursor:not-allowed}@keyframes ais-rotate{to{transform:rotate(360deg)}}.ais-spin{animation:.8s linear infinite ais-rotate}.ais-filters{background:var(--bg);border-bottom:1px solid var(--border);top:var(--header-h,52px);z-index:40;flex-wrap:wrap;align-items:flex-end;gap:.75rem;padding:.875rem 1.5rem;display:flex;position:sticky}.ais-filter-group{flex-direction:column;gap:.25rem;display:flex}.ais-filter-label{color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:600}.ais-filter-input,.ais-filter-select{border:1px solid var(--border2);height:32px;color:var(--text-1);background:#ffffff0a;border-radius:.4rem;outline:none;min-width:0;padding:0 .625rem;font-size:.8125rem;transition:border-color .15s}.ais-filter-input:focus,.ais-filter-select:focus{border-color:#0ea5e980}.ais-filter-select option{color:var(--text-1);background:#0f172a}.ais-filter-num{width:70px}.ais-filter-mobile-trigger{color:var(--text-2);cursor:pointer;background:#ffffff0d;border:1px solid #ffffff21;border-radius:.45rem;flex-shrink:0;align-items:center;gap:.4rem;padding:.45rem .875rem;font-size:.8125rem;font-weight:500;transition:border-color .15s,background .15s;display:none}.ais-filter-mobile-trigger:active{background:#ffffff17}.ais-filter-badge{color:#fff;background:#0088a6;background:lab(51.9662% -34.4939 -39.294);border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:.65rem;font-weight:700;line-height:1;display:inline-flex}.ais-filter-mobile-summary{color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.73rem;display:none;overflow:hidden}.ais-filter-sheet-backdrop{z-index:70;background:#000001b8;background:lab(.0571346% -.0323504 -.16574/.72);animation:.18s ais-fade-in;position:fixed;inset:0}.ais-filter-sheet{z-index:71;padding:0 1.25rem max(1.5rem, env(safe-area-inset-bottom));background:#00070d;background:lab(1.57619% -1.30331 -3.08833);border-top:1px solid #ffffff1a;border-radius:1.125rem 1.125rem 0 0;max-height:88dvh;animation:.28s cubic-bezier(.16,1,.3,1) ais-slide-up;position:fixed;bottom:0;left:0;right:0;overflow-y:auto}.ais-filter-sheet-handle{background:#ffffff2e;border-radius:2px;width:36px;height:3.5px;margin:.625rem auto 0}.ais-filter-sheet-header{border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;margin-bottom:1.125rem;padding:1rem 0 .875rem;display:flex}.ais-filter-sheet-title{color:var(--text-1);letter-spacing:.01em;font-size:.9375rem;font-weight:600}.ais-filter-sheet-close{width:28px;height:28px;color:var(--text-2);cursor:pointer;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .15s;display:flex}.ais-filter-sheet-close:active{background:#ffffff24}.ais-filter-sheet-body{grid-template-columns:1fr 1fr;gap:1.125rem .875rem;margin-bottom:1.5rem;display:grid}.ais-filter-sheet-body .ais-filter-group{display:flex}.ais-filter-sheet-body .ais-filter-input,.ais-filter-sheet-body .ais-filter-select{border-radius:.5rem;width:100%;height:44px;padding:0 .75rem;font-size:.875rem}.ais-filter-sheet-body .ais-filter-num{width:100%}.ais-filter-sheet-toggle-row{align-items:flex-start}.ais-filter-sheet-toggle-row .ais-active-toggle{border-radius:.5rem;justify-content:center;width:100%;height:44px;font-size:.8125rem}.ais-filter-sheet-footer{grid-template-columns:1fr 2fr;gap:.75rem;padding-bottom:.25rem;display:grid}.ais-filter-sheet-reset{height:46px;color:var(--text-2);cursor:pointer;background:0 0;border:1px solid #ffffff24;border-radius:.5rem;font-size:.875rem;transition:border-color .15s}.ais-filter-sheet-reset:active{border-color:#ffffff47}.ais-filter-sheet-apply{color:#fff;cursor:pointer;background:#007795;background:lab(44.9692% -34.2287 -41.3451);border:none;border-radius:.5rem;height:46px;font-size:.875rem;font-weight:600;transition:background .15s}.ais-filter-sheet-apply:active{background:#0086a5;background:lab(50.8137% -35.5623 -41.4878)}@keyframes ais-slide-up{0%{opacity:.6;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes ais-fade-in{0%{opacity:0}to{opacity:1}}@media (max-width:639px){.ais-filters{flex-wrap:nowrap;align-items:center;gap:.5rem;padding:.625rem 1rem}.ais-filter-group--desktop{display:none}.ais-filter-mobile-trigger{display:flex}.ais-sort-bar--in-filters{border-left:1px solid var(--border);gap:.2rem;padding-left:.5rem}}.ais-error{color:var(--danger);background:#ef444414;border:1px solid #ef444433;border-radius:.375rem;align-self:center;padding:.25rem .5rem;font-size:.78rem}.ais-stat-grid{grid-template-columns:repeat(5,1fr);gap:.65rem;display:grid}@media (max-width:1100px){.ais-stat-grid{grid-template-columns:repeat(3,1fr)}}.ais-stat-carousel{align-items:center;gap:.5rem;padding-bottom:1.5rem;display:flex;position:relative}.ais-car-track{border-radius:.75rem;flex:1;overflow:hidden}.ais-car-slide{animation:.28s cubic-bezier(.25,.46,.45,.94) both car-in}.ais-car-slide.slide-out-l{animation:.28s cubic-bezier(.55,0,.75,.2) both car-out-l}.ais-car-slide.slide-out-r{animation:.28s cubic-bezier(.55,0,.75,.2) both car-out-r}@keyframes car-in{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}@keyframes car-out-l{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-32px)}}@keyframes car-out-r{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(32px)}}.ais-car-arrow{border:1px solid var(--border);background:var(--surface);width:2rem;height:2rem;color:var(--text-2);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;line-height:1;transition:background .15s,color .15s;display:flex}.ais-car-arrow:hover{background:var(--surface-2);color:var(--text-1)}.ais-car-dots{gap:.35rem;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.ais-car-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:background .2s,transform .2s}.ais-car-dot.active{background:var(--accent,#0089cb);transform:scale(1.3)}@supports (color:lab(0% 0 0)){.ais-car-dot.active{background:var(--accent,lab(53.3277% -13.7061 -46.5518))}}.ais-stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;flex-direction:column;gap:.2rem;padding:.75rem .875rem;display:flex}.ais-stat-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-size:.65rem;font-weight:600}.ais-stat-value{color:var(--text-1);font-variant-numeric:tabular-nums;font-size:1.375rem;font-weight:700;line-height:1.1}.ais-stat-sub{color:var(--text-3);font-size:.65rem}.ais-charts-row{grid-template-columns:auto 1fr 1fr 1fr;align-items:stretch;gap:.75rem;display:grid}@media (max-width:1100px){.ais-charts-row{grid-template-columns:1fr 1fr}}@media (max-width:700px){.ais-charts-row{grid-template-columns:1fr}}.ais-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1rem 1.125rem;display:flex;overflow:hidden}.ais-chart-title{color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.ais-chart-body{justify-content:center;display:flex;overflow-x:auto}.ais-chart-empty{color:var(--text-3);font-size:.78rem;font-style:italic}.ais-chart-carousel{flex-direction:column;gap:.5rem;display:flex}.ais-carousel-dots{justify-content:center;gap:.4rem;padding:.25rem 0;display:flex}.ais-carousel-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:6px;height:6px;padding:0;transition:background .2s,transform .2s}.ais-carousel-dot--active{background:var(--text-2);transform:scale(1.5)}.ais-donut-wrap{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.ais-legend{flex-direction:column;gap:.4rem;display:flex}.ais-legend-row{align-items:center;gap:.375rem;font-size:.75rem;display:flex}.ais-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.ais-legend-label{color:var(--text-2)}.ais-legend-val{color:var(--text-1);margin-left:auto;padding-left:.5rem;font-weight:600}.ais-hbars{flex-direction:column;gap:.5rem;width:100%;display:flex}.ais-hbar-row{align-items:center;gap:.5rem;font-size:.75rem;display:flex}.ais-hbar-label{min-width:90px;max-width:120px;color:var(--text-2);white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.ais-hbar-track{background:#ffffff0d;border-radius:4px;flex:1;height:8px;overflow:hidden}.ais-hbar-fill{opacity:.85;border-radius:4px;height:100%;transition:width .4s ease-out}.ais-hbar-count{text-align:right;min-width:24px;color:var(--text-1);font-weight:600}.ais-table-section{flex-direction:column;gap:.5rem;display:flex}.ais-table-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.ais-table-title{color:var(--text-1);font-size:.875rem;font-weight:600}.ais-table-count{color:var(--text-3);font-size:.75rem}.ais-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;overflow-x:auto}.ais-table{border-collapse:collapse;width:100%}.ais-th{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.625rem .75rem;font-size:.7rem;font-weight:600}.ais-th-pair{width:32%;min-width:220px}.ais-th-zone{text-align:center;width:80px}.ais-th-date{width:90px}.ais-th-dur{width:80px}.ais-th-score{width:140px}.ais-th-cls{width:130px}.ais-th-action{text-align:center;width:44px}.ais-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.ais-sortable:hover{color:var(--text-1)}.ais-sort-icon{opacity:.5;font-size:.75em}.ais-tr{transition:background .12s}.ais-tr:hover{background:#ffffff06}.ais-tr-open{background:#0ea5e90a}.ais-td{color:var(--text-2);border-bottom:1px solid var(--border);vertical-align:middle;padding:.625rem .75rem;font-size:.8125rem}.ais-td-pair{min-width:220px}.ais-td-zone{text-align:center;color:var(--text-3);font-size:.75rem}.ais-td-date{font-variant-numeric:tabular-nums;white-space:nowrap}.ais-td-dur{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-1);font-weight:500}.ais-td-action{text-align:center}.ais-pair-names{flex-wrap:wrap;align-items:center;gap:.375rem;margin-bottom:.2rem;display:flex}.ais-pair-sep{color:var(--text-3);font-size:.75rem}.ais-pair-types{gap:.3rem;display:flex}.ais-type-tag{text-transform:capitalize;border-radius:.3rem;padding:.1rem .4rem;font-size:.65rem;font-weight:600}.ais-score-cell{align-items:center;gap:.5rem;display:flex}.ais-score-track{background:#ffffff12;border-radius:3px;flex:1;min-width:55px;height:5px;overflow:hidden}.ais-score-fill{opacity:.9;border-radius:2px;height:100%;transition:width .3s ease-out}.ais-score-num{text-align:right;font-variant-numeric:tabular-nums;min-width:24px;font-size:.8rem;font-weight:700}.ais-tonnage-cell{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.ais-tonnage-qty{color:var(--text-1);font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:600}.ais-tonnage-meta{color:var(--text-3);font-size:.7rem}.ais-tinfo{align-items:center;display:inline-flex;position:relative}.ais-tinfo-icon{width:14px;height:14px;color:var(--sky);cursor:default;background:#0ea5e926;border:1px solid #0ea5e94d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.6rem;font-weight:800;line-height:1;display:inline-flex}.ais-tinfo-tip{border:1px solid var(--border);white-space:pre-line;color:var(--text-2);z-index:200;pointer-events:none;background:#101214;background:lab(5.27309% -.596084 -1.29687);border-radius:8px;width:220px;padding:.55rem .7rem;font-size:.7rem;line-height:1.5;display:none;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000073}.ais-tinfo:hover .ais-tinfo-tip{display:block}.ais-tonnage-none{color:var(--text-3);font-size:.8rem}.ais-td-tonnage,.ais-th-tonnage{min-width:105px}.ais-cls-badge{white-space:nowrap;letter-spacing:.02em;border:1px solid;border-radius:.35rem;padding:.2rem .5rem;font-size:.7rem;font-weight:700;display:inline-block}.ais-expand-btn{border:1px solid var(--border2);width:24px;height:24px;color:var(--text-3);cursor:pointer;background:#ffffff0f;border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;font-style:normal;font-weight:700;transition:background .15s,color .15s,border-color .15s;display:flex}.ais-expand-btn:hover{color:var(--sky);background:#0ea5e91f;border-color:#0ea5e94d}.ais-expand-open{color:var(--sky);background:#0ea5e926;border-color:#0ea5e966}.ais-explain-td{border-bottom:1px solid var(--border);padding:0}.ais-explain-inner{background:#0ea5e908;border-top:1px solid #0ea5e91a;flex-direction:column;gap:.625rem;padding:.75rem 1rem;display:flex}.ais-explain-table{border-collapse:collapse;width:100%;font-size:.78rem}.ais-explain-table th{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;text-align:left;border-bottom:1px solid var(--border);padding:.3rem .5rem;font-size:.68rem;font-weight:600}.ais-pts-th{text-align:right}.ais-explain-table td{color:var(--text-2);vertical-align:top;border-bottom:1px solid #ffffff08;padding:.35rem .5rem}.ais-ec-crit{color:var(--text-1);min-width:100px;font-weight:600}.ais-ec-val{font-variant-numeric:tabular-nums;min-width:80px}.ais-ec-interp{color:var(--text-2)}.ais-ec-pts{text-align:right;font-variant-numeric:tabular-nums;min-width:36px;font-weight:700}.ais-pts-pos{color:#e28247;color:lab(64.3787% 34.747 47.8413)}.ais-pts-neg{color:var(--success)}.ais-erow-pos td{background:#f9731608}.ais-erow-neg td{background:#10b98108}.ais-explain-summary{color:var(--text-2);align-items:center;gap:.75rem;padding-top:.25rem;font-size:.8rem;display:flex}.ais-explain-summary strong{color:var(--text-1)}.ais-loading,.ais-empty{text-align:center;color:var(--text-3);padding:3rem 1.5rem;font-size:.875rem}.ais-draft-section{flex-direction:column;gap:.5rem;display:flex}.ais-draft-sig-badge{color:#d2a249;color:lab(69.9073% 11.8094 51.9441);background:#f59e0b1f;border:1px solid #f59e0b40;border-radius:.35rem;align-items:center;margin-left:.5rem;padding:.1rem .45rem;font-size:.68rem;font-weight:700;display:inline-flex}.ais-draft-sig-row{background:#f59e0b08}.ais-draft-delta{font-variant-numeric:tabular-nums;font-weight:700}.ais-delta-up{color:#e28247;color:lab(64.3787% 34.747 47.8413)}.ais-delta-down{color:var(--success)}.ais-cards-section{flex-direction:column;gap:.5rem;width:100%;min-width:0;padding:1rem 1.5rem 3rem;display:flex}.ais-cards-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.ais-cards-header-left{align-items:baseline;gap:.625rem;display:flex}.ais-sort-bar{align-items:center;gap:.25rem;display:flex}.ais-sort-bar--in-filters{border-left:1px solid var(--border);margin-left:auto;padding-left:.5rem}.ais-sort-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin-right:.125rem;font-size:.7rem;font-weight:600}.ais-sort-btn{height:28px;color:var(--text-2);border:1px solid var(--border);cursor:pointer;background:#ffffff08;border-radius:.4rem;align-items:center;gap:.25rem;padding:0 .625rem;font-size:.75rem;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.ais-sort-btn:hover{color:var(--text-1);background:#ffffff0f}.ais-sort-btn--active{color:var(--sky);background:#0ea5e91a;border-color:#0ea5e94d}.ais-timeline{background:var(--ais-surface);border:1px solid var(--border);border-radius:10px;align-items:stretch;margin-bottom:4px;display:flex;overflow:hidden}.ais-tl-all{border-right:1px solid var(--border);cursor:pointer;color:var(--text-3);white-space:nowrap;transition:background .15s var(--ease-out-quart), color .15s var(--ease-out-quart);background:0 0;border-top:none;border-bottom:none;border-left:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:10px 14px;font-size:11px;font-weight:600;display:flex}.ais-tl-all:hover{color:var(--text-2);background:#0ea5e90f}.ais-tl-all--active{color:var(--sky);background:#0ea5e91a}.ais-tl-all-count{color:var(--text-3);font-size:9px;font-weight:400}.ais-tl-month{cursor:pointer;border-right:1px solid var(--border);min-width:0;transition:background .15s var(--ease-out-quart);background:0 0;border-top:none;border-bottom:none;border-left:none;flex-direction:column;flex:1;align-items:center;padding:8px 4px 6px;display:flex;position:relative}.ais-tl-month:last-child{border-right:none}.ais-tl-month:hover{background:#0ea5e90d}.ais-tl-month--active{background:#0ea5e91a}.ais-tl-month--active:after{content:"";background:var(--sky);height:2px;position:absolute;bottom:0;left:0;right:0}.ais-tl-bar-wrap{align-items:flex-end;width:100%;height:24px;margin:4px 0 3px;padding:0 6px;display:flex}.ais-tl-bar-inner{background:#ffffff1a;border-radius:2px 2px 0 0;width:100%;min-height:2px;transition:background .15s}.ais-tl-month--active .ais-tl-bar-inner{background:#0ea5e966}.ais-tl-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:9px}.ais-tl-month--active .ais-tl-label{color:var(--sky)}.ais-tl-count{color:var(--text-3);font-size:10px;font-weight:700}.ais-tl-month--active .ais-tl-count{color:#1db8ce;color:lab(68.422% -33.1133 -22.2254)}.ais-cards-wrap{min-width:0}.ais-cards-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:10px;display:grid}@media (max-width:1100px){.ais-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.ais-cards-grid{grid-template-columns:minmax(0,1fr);gap:8px;padding:8px}}.ais-card{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;flex-direction:column;gap:.5rem;padding:.75rem;transition:background .12s,border-color .12s;display:flex}.ais-card:hover{border-color:var(--border2);background:#ffffff06}.ais-card:focus-visible{outline:2px solid var(--sky);outline-offset:2px}.ais-card--very_probable{background:#a20519;background:lab(34.3495% 57.1812 37.8813)}@supports (color:color-mix(in lab, red, red)){.ais-card--very_probable{background:color-mix(in oklch, lab(34.3495% 57.1812 37.8813) 3%, var(--surface))}}.ais-card--probable{background:#b45000;background:lab(46.7395% 41.5551 69.2451)}@supports (color:color-mix(in lab, red, red)){.ais-card--probable{background:color-mix(in oklch, lab(46.7395% 41.5551 69.2451) 3%, var(--surface))}}.ais-card--suspect{background:#b58629;background:lab(59.43% 12.4412 54.1424)}@supports (color:color-mix(in lab, red, red)){.ais-card--suspect{background:color-mix(in oklch, lab(59.43% 12.4412 54.1424) 2%, var(--surface))}}.ais-card-top{flex-direction:column;gap:.3rem;min-width:0;display:flex}.ais-card-pair{font-variant-numeric:tabular-nums;align-items:center;gap:.3rem;min-width:0;line-height:1.3;display:flex}.ais-card-pair-vessel{min-width:0;color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.8rem;font-weight:600;overflow:hidden}.ais-card-pair-sep{color:var(--text-3);flex-shrink:0;font-size:.75rem}.ais-card-badges{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.ais-card-score{align-items:center;gap:.5rem;display:flex}.ais-card-score-track{background:#ffffff0f;border-radius:2px;flex:1;height:6px;overflow:hidden}.ais-card-score-fill{border-radius:2px;height:100%;transition:width .3s ease-out}.ais-card-score-num{font-variant-numeric:tabular-nums;text-align:right;min-width:28px;font-size:.875rem;font-weight:700}.ais-card-data{flex-direction:column;gap:.2rem;display:flex}.ais-card-data-row{color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.ais-card-data-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-right:.3rem;font-size:.62rem;font-weight:600}.ais-card-foot{color:var(--text-3);border-top:1px solid var(--border);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:.5rem;margin-top:auto;padding-top:.375rem;font-size:.7rem;display:flex}.ais-card-foot-dur{color:var(--text-2);font-weight:600}.ais-status-badge{letter-spacing:.04em;white-space:nowrap;border:1px solid;border-radius:.25rem;align-items:center;gap:3px;padding:.15rem .4rem;font-size:.62rem;font-weight:700;display:inline-flex}.ais-status-live-badge{color:#4cc157;color:lab(69.679% -50.5618 42.4636);background:#10b9811f;border-color:#10b98140;animation:2s ease-in-out infinite ais-pulse-glow}.ais-status-closed-badge{color:var(--text-3);border-color:var(--border);background:#ffffff0a}@keyframes ais-pulse-glow{0%,to{box-shadow:0 0 #10b98100}50%{box-shadow:0 0 0 3px #10b98133}}.ais-skeleton-card{border:1px solid var(--border);background:var(--surface);border-radius:8px;height:140px;padding:.75rem;animation:1.4s ease-in-out infinite ais-skeleton-pulse}@keyframes ais-skeleton-pulse{0%,to{opacity:.5}50%{opacity:1}}.ais-pagination{border-top:1px solid var(--border);background:#ffffff04;border-radius:0 0 .75rem .75rem;align-items:center;gap:.5rem;padding:.75rem 1.25rem;display:flex}.ais-page-nav{color:var(--text-2);border:1px solid var(--border);cursor:pointer;white-space:nowrap;letter-spacing:.01em;background:#ffffff0a;border-radius:999px;align-items:center;gap:.375rem;padding:.35rem .75rem;font-size:.75rem;font-weight:600;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.ais-page-nav:hover:not(:disabled){color:var(--sky);background:#0ea5e91a;border-color:#0ea5e959;box-shadow:0 0 0 3px #0ea5e914}.ais-page-nav:disabled{opacity:.28;cursor:not-allowed;box-shadow:none}.ais-page-nav svg{flex-shrink:0}.ais-page-numbers{align-items:center;gap:.2rem;margin:0 .25rem;display:flex}.ais-page-num{min-width:30px;height:30px;color:var(--text-2);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:.4rem;justify-content:center;align-items:center;padding:0 .35rem;font-size:.75rem;font-weight:500;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.ais-page-num:hover:not(.ais-page-active){color:var(--text-1);border-color:var(--border);background:#ffffff0f}.ais-page-active{font-weight:700;box-shadow:0 0 0 3px #0ea5e91a;color:var(--sky)!important;background:#0ea5e92e!important;border-color:#0ea5e973!important}.ais-page-ellipsis{width:28px;height:30px;color:var(--text-3);letter-spacing:.05em;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.ais-page-info{color:var(--text-3);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:.35rem;margin-left:auto;font-size:.72rem;display:flex}.ais-page-info-range{color:var(--text-1);font-weight:600}.ais-page-info-sep{opacity:.4}.ais-modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#020617e0;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.ais-modal-panel{background:var(--surface);border:1px solid #0ea5e926;border-radius:12px;width:100%;max-width:640px;max-height:85vh;padding:24px;position:relative;overflow-y:auto}.ais-modal-close{color:var(--text-3);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:20px;line-height:1;transition:color .12s,background .12s;position:absolute;top:16px;right:16px}.ais-modal-close:hover{color:var(--text-1);background:#ffffff0f}.ais-modal-hd{margin-bottom:18px;padding-right:32px}.ais-modal-hd-pair{color:var(--text-1);margin-bottom:8px;font-size:1.05rem;font-weight:700;line-height:1.3}.ais-modal-hd-badges{flex-wrap:wrap;align-items:center;gap:.3rem;margin-bottom:8px;display:flex}.ais-modal-hd-meta{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:.78rem}.ais-modal-score{margin-bottom:18px}.ais-modal-score-header{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.ais-modal-score-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;font-size:.68rem;font-weight:600}.ais-modal-score-num{font-variant-numeric:tabular-nums;font-size:1rem;font-weight:700}.ais-modal-score-track{background:#ffffff0f;border-radius:2px;width:100%;height:8px;overflow:hidden}.ais-modal-score-fill{border-radius:2px;height:100%;transition:width .4s ease-out}.ais-modal-section{border-top:1px solid var(--border);padding:14px 0}.ais-modal-section:last-child{padding-bottom:0}.ais-modal-section-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;font-size:.68rem;font-weight:600}.ais-modal-bottom{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (max-width:480px){.ais-modal-bottom{grid-template-columns:1fr}}.ais-modal-bottom-cell-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:.68rem;font-weight:600}.map-fab-row{z-index:1200;pointer-events:none;justify-content:space-between;padding:0 .875rem;display:flex;position:absolute;bottom:1rem;left:0;right:0}.map-fab{pointer-events:auto;border:1px solid var(--border2);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(12px);background:#0a1628eb;border-radius:999px;align-items:center;gap:.375rem;padding:.5rem .875rem;font-size:.75rem;font-weight:600;transition:background .15s,border-color .15s;display:flex;box-shadow:0 4px 16px #0006}.map-fab:hover{background:#0ea5e926;border-color:#0ea5e966}.map-fab-mobile,.kpler-panel-backdrop,.vp-mobile-list,.vp-filter-toggle{display:none}@keyframes mobile-fade-in{0%{opacity:0}to{opacity:1}}@media (max-width:768px){.sidebar{z-index:200;width:240px;height:100dvh;transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1);position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar-collapsed{width:240px;box-shadow:none;transform:translate(-100%)}.sidebar:not(.sidebar-collapsed){transform:translate(0);box-shadow:4px 0 40px #0000008c}.sidebar{-webkit-overflow-scrolling:touch}.sidebar-backdrop{z-index:199;background:#0000008c;animation:.2s mobile-fade-in;display:block;position:fixed;inset:0}.dash-hamburger-hidden{display:flex}.dash-header{gap:.375rem;padding:0 .75rem}.dash-header-right{gap:.375rem}.dash-header-breadcrumb,.dash-clock,.dash-live>span:not(.dash-live-dot){display:none}.dash-live{gap:0;padding:.25rem .4rem}.dash-help-btn>span{display:none}.dash-help-btn{justify-content:center;width:34px;padding:0}.kpler-sync-btn>span{display:none}.kpler-sync-btn{border-radius:.5rem;justify-content:center;width:34px;padding:0}.notif-panel{width:min(320px,100vw - 1rem)}.profile-panel{width:min(340px,100vw - 1rem)}.kpler-left-panel{z-index:150;width:min(280px,85vw);height:calc(100dvh - 56px);transition:transform .35s cubic-bezier(.4,0,.2,1);position:fixed;top:56px;left:0;transform:translate(-100%);box-shadow:4px 0 40px #00000073}.kpler-left-panel-open{z-index:155;transform:translate(0)}.kpler-right-panel{z-index:150;width:min(340px,90vw);height:calc(100dvh - 56px);transition:transform .35s cubic-bezier(.4,0,.2,1);position:fixed;top:56px;right:0;transform:translate(0)}.kpler-right-panel-collapsed{width:min(340px,90vw);transform:translate(100%)}.kpler-panel-backdrop{z-index:149;background:#0000008c;animation:.2s mobile-fade-in;display:block;position:fixed;inset:56px 0 0}.map-fab-mobile{display:flex}.traf-cols{grid-template-columns:1fr;overflow-y:auto}.vp-page{padding:.75rem}.vp-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.vp-kpi-row{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto}.vp-kpi-card{flex-shrink:0;min-width:110px}.klp-close-btn{border:1px solid var(--border2);width:28px;height:28px;color:var(--text-3);cursor:pointer;background:0 0;border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.klp-close-btn:hover{color:var(--text-1);background:#ffffff0f}.cop-subheader{padding:.625rem 0 0}.cop-mode-bar{width:fit-content;margin:.625rem auto 0;position:relative;top:auto;left:auto;transform:none}.cop-subheader{padding-top:0}.vp-kpi-row{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:.375rem;margin-bottom:0;padding:0 .75rem;overflow-x:auto;grid-template-columns:none!important;display:flex!important}.vp-kpi-row::-webkit-scrollbar{display:none}.vp-kpi-card{border-radius:.5rem;flex:none;gap:.0625rem;min-width:76px;max-width:88px;padding:.5rem .625rem}.vp-kpi-num{font-size:1.125rem;font-weight:700;line-height:1}.vp-kpi-label{color:var(--text-3);font-size:.5625rem;line-height:1.35}.vp-page{gap:0;padding:.5rem 0 0}.vp-toolbar{flex-direction:column;align-items:stretch;gap:.5rem;margin-bottom:0;padding:.5rem .75rem 0}.vp-search-wrap{flex-shrink:unset}.vp-search-input{width:100%}.vp-type-chips{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:0;overflow-x:auto}.vp-type-chips::-webkit-scrollbar{display:none}.vp-filter-toggle{border:1px solid var(--border2);color:var(--text-3);cursor:pointer;text-transform:uppercase;letter-spacing:.05em;background:0 0;border-radius:.5rem;align-self:flex-start;align-items:center;gap:.375rem;margin:.375rem .75rem 0;padding:.375rem .75rem;font-size:.6875rem;font-weight:600;transition:color .15s,border-color .15s;display:flex}.vp-filter-toggle:hover{color:var(--text-2);border-color:var(--border2)}.vp-filter-toggle--active{color:var(--sky);background:var(--sky-dim);border-color:#0ea5e966}.vp-filter-toggle-chevron{width:10px;height:10px;transition:transform .2s var(--ease-out-quart)}.vp-filter-toggle--active .vp-filter-toggle-chevron{transform:rotate(180deg)}.vp-filter-panel{border-radius:.5rem;margin:.375rem .75rem 0;padding:.625rem .75rem}.vp-filter-panel--hidden,.vp-table-wrap{display:none}.vp-mobile-list{margin-top:.5rem;padding-bottom:5rem;display:block}.vpm-row{border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;align-items:center;gap:.625rem;width:100%;min-height:54px;padding:.75rem .875rem;transition:background .12s;display:flex}.vpm-row:active{background:#ffffff0a}.vpm-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.vpm-body{flex:1;min-width:0}.vpm-name-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.vpm-name{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.875rem;font-weight:600;overflow:hidden}.vpm-sog{letter-spacing:.03em;white-space:nowrap;flex-shrink:0;font-size:.625rem;font-weight:600}.vpm-sog--moving{color:#10b981}.vpm-sog--still{color:var(--text-3)}.vpm-meta-row{flex-wrap:nowrap;align-items:center;gap:.375rem;margin-top:.1875rem;display:flex}.vpm-mmsi{color:var(--text-3);letter-spacing:.02em;font-family:ui-monospace,SF Mono,monospace;font-size:.625rem}.vpm-sep{color:var(--text-3);opacity:.4;font-size:.5625rem}.vpm-type{text-transform:uppercase;letter-spacing:.05em;font-size:.5625rem;font-weight:700}.vpm-sts{color:var(--sky);text-transform:uppercase;letter-spacing:.06em;background:#0ea5e91f;border:1px solid #0ea5e947;border-radius:2px;flex-shrink:0;padding:.125rem .3125rem;font-size:.5rem;font-weight:700}.vpm-arrow{width:13px;height:13px;color:var(--text-3);opacity:.5;flex-shrink:0}.vp-mobile-empty{text-align:center;color:var(--text-3);padding:2rem .75rem;font-size:.8125rem}}@media (max-width:480px){.notif-panel,.profile-panel{border-radius:0 0 .75rem .75rem;width:100vw;position:fixed;top:56px;right:0}.kpler-left-panel,.kpler-right-panel{width:92vw}}.ais-active-toggle{color:var(--text-2);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:.72rem;font-weight:500;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.ais-active-toggle:hover{color:var(--text-1);border-color:#ffffff40}.ais-active-toggle--on{color:#57cb60;color:lab(73.1677% -50.536 42.2263);background:#008a221f;background:lab(49.8938% -50.813 44.8413/.12);border-color:#008a2299;border-color:lab(49.8938% -50.813 44.8413/.6)}.ais-active-dot{background:var(--text-3);border-radius:50%;flex-shrink:0;width:7px;height:7px}.ais-active-dot--on{background:#11ad32;background:lab(61.7444% -56.3779 49.029);animation:2s ease-in-out infinite ais-pulse;box-shadow:0 0 4px #11ad32b3;box-shadow:0 0 4px lab(61.7444% -56.3779 49.029/.7)}@keyframes ais-pulse{0%,to{opacity:1}50%{opacity:.5}}.ais-status-live{color:#30bd44;color:lab(67.5649% -56.2955 48.2502);letter-spacing:.02em;margin-top:2px;font-size:.65rem;font-weight:600;display:block}.ais-status-closed{color:var(--text-3);margin-top:2px;font-size:.65rem;display:block}[data-theme=light]{--bg:#fff;--surface:#f8fafc;--surface2:#f1f5f9;--border:#00000014;--border2:#0000001f;--text-1:#0f172a;--text-2:#475569;--text-3:#64748b;--sky:#0284c7;--sky-dim:#0284c71a;--cyan:#0891b2;--ais-surface:#f1f5f9}[data-theme=light] .tab-btn-active,[data-theme=light] .tab-btn:hover{color:#0f172a}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}
