@font-face{font-family:Fraunces;font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/fraunces-300.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/fraunces-500.woff2) format("woff2")}@font-face{font-family:Fraunces;font-style:italic;font-weight:300;font-display:swap;src:url(../fonts/fraunces-300-italic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/inter-variable.woff2) format("woff2")}:root{--bg: #f6f7f6;--bg-inset: #eef1ee;--surface: #ffffff;--surface-2: #f2f4f2;--surface-hover: #e9ece9;--border: rgba(15, 30, 20, .22);--border-strong: rgba(15, 30, 20, .38);--text: #12160f;--text-dim: #5c6a5f;--text-faint: #93a196;--accent: #159a52;--accent-strong: #0f7d42;--accent-text: #f4fff8;--accent-soft: rgba(21, 154, 82, .1);--accent-soft-border: rgba(21, 154, 82, .28);--ok: #159a52;--ok-text: #f4fff8;--warn: #b9740f;--warn-soft: rgba(185, 116, 15, .12);--danger: #d4463a;--danger-soft: rgba(212, 70, 58, .1);--held: #4a5bd6;--held-soft: rgba(74, 91, 214, .1);--tier-pro: var(--ok);--tier-pro-soft: rgba(21, 154, 82, .14);--tier-lab: #a8790a;--tier-lab-soft: rgba(168, 121, 10, .14);--nav-accessions: #0b7a70;--nav-inventory: #2563eb;--nav-session: #0891b2;--nav-media: #7c3aed;--nav-autoclave: #be123c;--nav-insights: #4f46e5;--chart-1: #2a78d6;--chart-1-soft: rgba(42, 120, 214, .14);--chart-2: #eb6834;--chart-2-soft: rgba(235, 104, 52, .14);--chart-grid: #e6e8e5;--chart-axis: #c3c2b7;--radius-sm: 7px;--radius: 10px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgba(20, 30, 25, .05);--shadow-md: 0 6px 20px -10px rgba(20, 30, 25, .16);--shadow-lg: 0 16px 40px -14px rgba(20, 30, 25, .2);--shadow-focus: 0 0 0 3px var(--accent-soft-border);--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-display: "Fraunces", ui-serif, Georgia, serif;--ease: cubic-bezier(.16, 1, .3, 1);--fast: .11s;--med: .19s;color-scheme:light}:root[data-theme=dark]{--bg: #0b0e0c;--bg-inset: #080a09;--surface: #131813;--surface-2: #181f1a;--surface-hover: #1d251f;--border: rgba(237, 245, 240, .2);--border-strong: rgba(237, 245, 240, .36);--text: #edf5f0;--text-dim: #93a69c;--text-faint: #5d6d65;--accent: #3ecf7e;--accent-strong: #2fb86c;--accent-text: #04150b;--accent-soft: rgba(62, 207, 126, .16);--accent-soft-border: rgba(62, 207, 126, .32);--ok: #3ecf7e;--ok-text: #04150b;--warn: #e8a63b;--warn-soft: rgba(232, 166, 59, .16);--danger: #ef6a5f;--danger-soft: rgba(239, 106, 95, .16);--held: #8b9dfb;--held-soft: rgba(139, 157, 251, .16);--tier-pro: var(--ok);--tier-pro-soft: rgba(62, 207, 126, .18);--tier-lab: #e0b040;--tier-lab-soft: rgba(224, 176, 64, .18);--nav-accessions: #2dd4bf;--nav-inventory: #60a5fa;--nav-session: #22d3ee;--nav-media: #a78bfa;--nav-autoclave: #fb7185;--nav-insights: #818cf8;--chart-1: #3987e5;--chart-1-soft: rgba(57, 135, 229, .18);--chart-2: #d95926;--chart-2-soft: rgba(217, 89, 38, .18);--chart-grid: #24302a;--chart-axis: #384039;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px -10px rgba(0, 0, 0, .5);--shadow-lg: 0 20px 48px -14px rgba(0, 0, 0, .6);color-scheme:dark}:root[data-accent=blue]{--accent: #2563eb;--accent-strong: #1e51c1;--accent-text: #f5f8ff;--accent-soft: rgba(37, 99, 235, .1);--accent-soft-border: rgba(37, 99, 235, .28)}:root[data-theme=dark][data-accent=blue]{--accent: #60a5fa;--accent-strong: #4b81c3;--accent-text: #04101f;--accent-soft: rgba(96, 165, 250, .16);--accent-soft-border: rgba(96, 165, 250, .32)}:root[data-accent=purple]{--accent: #7c3aed;--accent-strong: #6630c2;--accent-text: #faf5ff;--accent-soft: rgba(124, 58, 237, .1);--accent-soft-border: rgba(124, 58, 237, .28)}:root[data-theme=dark][data-accent=purple]{--accent: #a78bfa;--accent-strong: #826cc3;--accent-text: #0f0620;--accent-soft: rgba(167, 139, 250, .16);--accent-soft-border: rgba(167, 139, 250, .32)}:root[data-accent=amber]{--accent: #b45309;--accent-strong: #944407;--accent-text: #fff8ef;--accent-soft: rgba(180, 83, 9, .1);--accent-soft-border: rgba(180, 83, 9, .28)}:root[data-theme=dark][data-accent=amber]{--accent: #fbbf24;--accent-strong: #c4951c;--accent-text: #1f1400;--accent-soft: rgba(251, 191, 36, .16);--accent-soft-border: rgba(251, 191, 36, .32)}:root[data-accent=rose]{--accent: #be123c;--accent-strong: #9c0f31;--accent-text: #fff5f7;--accent-soft: rgba(190, 18, 60, .1);--accent-soft-border: rgba(190, 18, 60, .28)}:root[data-theme=dark][data-accent=rose]{--accent: #fb7185;--accent-strong: #c45868;--accent-text: #200507;--accent-soft: rgba(251, 113, 133, .16);--accent-soft-border: rgba(251, 113, 133, .32)}:root[data-accent=teal]{--accent: #0b7a70;--accent-strong: #09645c;--accent-text: #f0fffd;--accent-soft: rgba(11, 122, 112, .1);--accent-soft-border: rgba(11, 122, 112, .28)}:root[data-theme=dark][data-accent=teal]{--accent: #2dd4bf;--accent-strong: #23a595;--accent-text: #001b18;--accent-soft: rgba(45, 212, 191, .16);--accent-soft-border: rgba(45, 212, 191, .32)}:root[data-accent=indigo]{--accent: #4f46e5;--accent-strong: #4038b8;--accent-text: #f5f4ff;--accent-soft: rgba(79, 70, 229, .1);--accent-soft-border: rgba(79, 70, 229, .28)}:root[data-theme=dark][data-accent=indigo]{--accent: #818cf8;--accent-strong: #6870c9;--accent-text: #0c0a2e;--accent-soft: rgba(129, 140, 248, .16);--accent-soft-border: rgba(129, 140, 248, .32)}:root[data-accent=cyan]{--accent: #0891b2;--accent-strong: #077490;--accent-text: #eefdff;--accent-soft: rgba(8, 145, 178, .1);--accent-soft-border: rgba(8, 145, 178, .28)}:root[data-theme=dark][data-accent=cyan]{--accent: #22d3ee;--accent-strong: #1baac0;--accent-text: #00232b;--accent-soft: rgba(34, 211, 238, .16);--accent-soft-border: rgba(34, 211, 238, .32)}:root[data-accent=orange]{--accent: #ea580c;--accent-strong: #bc460a;--accent-text: #fff7ed;--accent-soft: rgba(234, 88, 12, .1);--accent-soft-border: rgba(234, 88, 12, .28)}:root[data-theme=dark][data-accent=orange]{--accent: #fb923c;--accent-strong: #c97530;--accent-text: #2a1200;--accent-soft: rgba(251, 146, 60, .16);--accent-soft-border: rgba(251, 146, 60, .32)}:root[data-density=compact] .card{padding:9px 11px;margin-bottom:8px}:root[data-density=compact] .side-nav button{padding:4px 8px 4px 11px}:root[data-density=compact] .side-nav{gap:0}:root[data-density=compact] table.data td{padding:4px 10px}:root[data-density=compact] .content{padding:14px 18px 30px}*{box-sizing:border-box}*:focus-visible{outline:2px solid var(--accent);outline-offset:2px}html,body{overflow-x:hidden;max-width:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13.5px;line-height:1.45;-webkit-font-smoothing:antialiased;transition:background var(--med) var(--ease),color var(--med) var(--ease)}h1,h2,h3,p,dl,dd{margin:0}::selection{background:var(--accent-soft-border)}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}.shell{display:flex;min-height:100vh}.shell-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--text-dim);font-size:13px}.sidebar{width:196px;flex-shrink:0;display:flex;flex-direction:column;background:var(--bg-inset);border-right:1px solid var(--border);padding:calc(14px + env(safe-area-inset-top)) 10px 14px;position:fixed;inset:0 auto 0 0;overflow:hidden}.brand{display:flex;align-items:center;gap:8px;padding:4px 6px 16px}.brand-home-link{display:flex;align-items:center;gap:8px;background:none;border:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;text-align:left;flex:1;min-width:0}.brand-home-link:hover .brand-text strong{text-decoration:underline}.brand-mark{width:24px;height:24px;border-radius:7px;position:relative;overflow:hidden;flex-shrink:0;box-shadow:var(--shadow-sm)}.brand-mark-light,.brand-mark-dark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.brand-mark-dark{display:none}:root[data-theme=dark] .brand-mark-light{display:none}:root[data-theme=dark] .brand-mark-dark{display:block}.brand-text{display:flex;flex-direction:column;line-height:1.2}.brand-text strong{font-size:13px;font-weight:650;letter-spacing:-.01em}.brand-text span{font-size:10.5px;color:var(--text-faint)}.side-nav{display:flex;flex-direction:column;gap:14px;flex:1;min-height:0;overflow-y:auto}.side-nav-group{display:flex;flex-direction:column;gap:2px}.side-nav-group-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--text-faint);padding:0 11px 2px;margin-top:2px}.side-nav button{position:relative;display:flex;align-items:center;gap:8px;background:transparent;border:none;color:var(--text-dim);padding:7px 8px 7px 11px;border-radius:var(--radius-sm);font:inherit;font-size:12px;cursor:pointer;text-align:left;width:100%;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.side-nav button:before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;background:var(--accent);border-radius:0 3px 3px 0;transform:translateY(-50%);transition:height var(--med) var(--ease)}.side-nav button[aria-current=page]:before{height:58%}.side-nav button svg{flex-shrink:0;opacity:.8}.side-nav button:hover{background:var(--surface-hover);color:var(--text)}.side-nav button[aria-current=page]{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.side-nav button[aria-current=page] svg{opacity:1}.nav-icon-dashboard{color:var(--accent)}.nav-icon-accessions{color:var(--nav-accessions)}.nav-icon-locations{color:var(--tier-lab)}.nav-icon-inventory{color:var(--nav-inventory)}.nav-icon-due{color:var(--warn)}.nav-icon-held{color:var(--held)}.nav-icon-session{color:var(--nav-session)}.nav-icon-media{color:var(--nav-media)}.nav-icon-autoclave{color:var(--nav-autoclave)}.nav-icon-forensics{color:var(--danger)}.nav-icon-import,.nav-icon-protocols,.nav-icon-analytics,.nav-icon-economics,.nav-icon-planner{color:var(--accent)}.nav-icon-activity{color:var(--text-faint)}.nav-icon-admin{color:var(--text-dim)}.nav-icon-insights{color:var(--nav-insights)}.side-nav .nav-count{margin-left:auto;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;background:var(--surface);border:1px solid var(--border);color:var(--text-faint);padding:1px 5px;border-radius:99px}.side-nav button[aria-current=page] .nav-count{color:var(--accent-strong);border-color:var(--accent-soft-border)}.side-nav .nav-count.warn{color:var(--warn);border-color:transparent;background:var(--warn-soft)}.side-nav .nav-tier{margin-left:auto;font-size:9px;font-weight:700;letter-spacing:.02em;padding:1px 5px;border-radius:99px;flex-shrink:0}.side-nav .nav-tier-pro{color:var(--tier-pro);background:var(--tier-pro-soft)}.side-nav .nav-tier-lab{color:var(--tier-lab);background:var(--tier-lab-soft)}.side-nav .nav-count+.nav-tier{margin-left:6px}.side-nav button.nav-tier-outline-pro,.side-nav button.nav-tier-outline-lab{overflow:visible}.side-nav button.nav-tier-outline-pro:after,.side-nav button.nav-tier-outline-lab:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-sm);padding:1px;background-size:250% 250%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;pointer-events:none;transition:opacity var(--fast) var(--ease)}.side-nav button.nav-tier-outline-pro:after{background-image:linear-gradient(120deg,var(--tier-pro),var(--accent-soft-border),var(--tier-pro))}.side-nav button.nav-tier-outline-lab:after{background-image:linear-gradient(120deg,var(--tier-lab),#f5d67a,var(--tier-lab))}.side-nav button.nav-tier-outline-pro:hover:after,.side-nav button.nav-tier-outline-lab:hover:after{opacity:1;animation:nav-tier-outline-shift 2.4s linear infinite}@keyframes nav-tier-outline-shift{0%{background-position:0% 50%}to{background-position:200% 50%}}@media (prefers-reduced-motion: reduce){.side-nav button.nav-tier-outline-pro:hover:after,.side-nav button.nav-tier-outline-lab:hover:after{animation:none}}.side-group-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:650;color:var(--text-faint);padding:12px 8px 4px}.side-foot{display:flex;flex-direction:column;gap:10px;padding-top:10px;border-top:1px solid var(--border)}.side-foot .meta{font-size:10px;color:var(--text-faint);padding:0 8px;font-variant-numeric:tabular-nums}.account-card{position:relative}.account-card-main,.account-card-signin{display:flex;align-items:center;gap:9px;width:100%;background:transparent;border:none;border-radius:var(--radius);font:inherit;padding:7px;cursor:pointer;text-align:left;transition:background var(--fast) var(--ease)}.account-card-main:hover{background:var(--surface-hover)}.account-card-signin:hover{background:var(--accent-soft)}.account-card-signin:active,.account-card-main:active{transform:scale(.98)}.avatar{width:27px;height:27px;border-radius:50%;flex-shrink:0;background:linear-gradient(155deg,var(--accent),var(--accent-strong));color:var(--accent-text);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;box-shadow:var(--shadow-sm)}.avatar-ghost{background:var(--surface);border:1.5px dashed var(--border-strong);color:var(--text-faint);box-shadow:none}.account-card-enter .avatar{animation:avatar-in var(--med) var(--ease)}@keyframes avatar-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}.account-card-body{display:flex;flex-direction:column;min-width:0;flex:1;gap:1.5px}.account-card-name{font-size:12px;font-weight:650;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-card-signin .account-card-name{color:var(--text-dim)}.account-card-email{font-size:10.5px;color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.tier-row{display:flex;align-items:center;gap:6px;margin-top:1px}.tier-badge{font-size:9.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;padding:1px 6px;border-radius:999px;line-height:1.5}.tier-badge-free{background:var(--surface-2);color:var(--text-faint)}.tier-badge-pro{background:var(--accent-soft);color:var(--accent-strong)}.tier-badge-lab{background:var(--held-soft);color:var(--held)}.tier-upgrade-link{display:block;background:none;border:none;padding:0;font:inherit;font-size:10px;font-weight:650;color:var(--accent-strong);cursor:pointer;text-decoration:underline;text-underline-offset:2px;margin:-2px 0 4px 43px}.tier-upgrade-link:hover{color:var(--accent)}.account-card-chevron{flex-shrink:0;color:var(--text-faint);transition:transform var(--fast) var(--ease)}.account-card-chevron-open{transform:rotate(180deg)}.account-menu{padding:3px 8px 2px 44px;animation:rise var(--fast) var(--ease)}.account-menu .act{width:100%;justify-content:flex-start}.account-card-compact .account-card-main{width:auto;padding:5px 6px}.account-card-compact .account-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;width:max-content;min-width:220px;max-width:min(300px,90vw);padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md)}.account-menu-header{padding:6px 8px 8px;margin-bottom:4px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.account-menu-header .account-card-name{font-size:13px}.account-menu-header .tier-row{margin-top:3px}.account-menu-header .tier-upgrade-link,.account-menu-header .sync-line,.account-menu-header .sync-muted{margin-left:0}.account-menu-header .sync-line,.account-menu-header .sync-muted{margin-top:4px}.topbar-signin,.topbar-upgrade{font-size:12px;padding:6px 11px;min-height:30px}.sync-line,.sync-muted{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;margin:-3px 0 4px 43px}.sync-line{background:none;border:none;padding:0;font:inherit;color:var(--text-faint);cursor:pointer;text-align:left}.sync-line:hover:not(:disabled){color:var(--text-dim)}.sync-line:disabled{cursor:default}.sync-muted{color:var(--text-faint);cursor:default}.sync-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:var(--text-faint)}.sync-dot-ok{background:var(--accent)}.sync-dot-error{background:var(--danger)}.sync-dot-icon{color:var(--accent)}.side-utility{display:flex;flex-direction:column;gap:1px}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;padding:calc(13px + env(safe-area-inset-top)) 16px 13px;border-bottom:1px solid var(--border)}.topbar .spacer{flex:1}.topbar-mobile-only{min-width:0}strong.topbar-mobile-only{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1}@media (max-width: 480px){strong.topbar-mobile-only{display:none}.topbar{gap:7px;padding-left:12px;padding-right:12px}}.content{flex:1;max-width:1160px;width:100%;margin:0 auto;padding:20px 22px 44px}.content.narrow{max-width:760px}.page-head{display:flex;align-items:baseline;gap:8px;margin-bottom:14px;flex-wrap:wrap}.page-head h1{font-size:17px;font-weight:650;letter-spacing:-.01em}.page-head .page-sub{color:var(--text-dim);font-size:12px}.page-head .spacer{flex:1}.topbar-active-icon{display:flex;align-items:center}.hint{color:var(--text-dim);font-size:12px;margin:0 0 10px;line-height:1.5}.hint:last-child{margin-bottom:0}.section-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--text-faint);margin-bottom:8px;display:flex;align-items:center;gap:6px}.disclosure{margin:4px 0 12px}.disclosure-toggle{background:none;border:none;padding:4px 0;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--accent-strong)}.disclosure-chevron{display:inline-block;transition:transform var(--fast) var(--ease)}.disclosure-chevron.open{transform:rotate(90deg)}.disclosure-body{margin-top:8px}.template-own-data-btn{display:block;width:100%;max-width:420px;text-align:left;border:none;border-radius:12px;padding:2px;cursor:pointer;background:linear-gradient(90deg,#4285f4,#ea4335,#fbbc05,#34a853,#4285f4);background-size:300% 100%;animation:template-rainbow 6s linear infinite;margin-bottom:12px}.template-own-data-inner{display:flex;flex-direction:column;gap:3px;background:var(--surface);border-radius:10px;padding:10px 14px}.template-own-data-btn.active .template-own-data-inner{background:var(--accent-soft)}.template-own-data-btn:hover{filter:brightness(1.06)}@keyframes template-rainbow{0%{background-position:0% 50%}to{background-position:300% 50%}}.dash-section{margin-top:28px}.dash-section:first-of-type{margin-top:0}.dash-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--text-faint);margin:0 0 12px;padding-top:20px;border-top:1px solid var(--border)}.dash-section:first-of-type .dash-section-title{padding-top:0;border-top:none}.dash-section-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;text-transform:none}.dash-section-title-row>span:first-child{text-transform:uppercase;letter-spacing:.07em}.section-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;align-items:start}.section-grid.trends-grid{grid-template-columns:1fr}.dash-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.dash-section:first-of-type .dash-section-head .dash-section-title{padding-top:0;border-top:none}.dash-edit-toggle{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:650;color:var(--accent-strong);background:none;border:none;cursor:pointer;padding:2px 4px}.dash-edit-toggle:hover{text-decoration:underline}.dash-section-hidden-note{text-transform:none;letter-spacing:normal;font-weight:500;color:var(--text-faint)}.stat-wrap{position:relative}.stat-wrap.stat-hidden-preview .stat{opacity:.4}.stat-hide-btn{position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);color:var(--text-dim);cursor:pointer}.stat-hide-btn:hover{background:var(--surface-hover);color:var(--text)}.card.card-editing{outline:1.5px dashed var(--border-strong);outline-offset:2px}.card.card-hidden-preview{opacity:.5}.card.card-dragging{opacity:.5;cursor:grabbing}.dash-card-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--border)}.dash-card-toolbar-move{display:flex;align-items:center;gap:2px}.dash-card-toolbar-move button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:none;border:none;border-radius:var(--radius);color:var(--text-dim);cursor:pointer}.dash-card-toolbar-move button:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.dash-card-toolbar-move button:disabled{opacity:.3;cursor:default}.dash-card-drag-handle{cursor:grab;touch-action:none}.dash-card-drag-handle:active{cursor:grabbing}.dash-card-toolbar-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dash-card-hide-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);cursor:pointer}.dash-card-hide-btn:hover{background:var(--surface-hover);color:var(--text)}.dash-card-hidden-note{color:var(--text-faint);font-style:italic;margin:0 0 8px}.dash-reset-row{margin:10px 0 0}.dash-reset-btn{font-size:11px;color:var(--danger);background:none;border:none;cursor:pointer;font-weight:600;padding:0}.dash-reset-btn:hover{text-decoration:underline}.card.card-size-wide{grid-column:span 2}.card.card-size-full{grid-column:1 / -1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 15px;margin-bottom:12px;box-shadow:var(--shadow-sm);animation:rise var(--med) var(--ease) backwards}.card:last-child{margin-bottom:0}.card h2{font-size:12.5px;font-weight:650;margin-bottom:3px;letter-spacing:-.003em;display:flex;align-items:center;gap:6px}.card h2 svg{color:var(--text-dim)}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:2px;flex-wrap:wrap}.card-link{font-size:11px;color:var(--accent-strong);background:none;border:none;cursor:pointer;font-weight:600;padding:2px 4px}.card-link:hover{text-decoration:underline}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:8px;margin-bottom:12px}.stat{position:relative;overflow:hidden;display:block;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:11px 12px;box-shadow:var(--shadow-sm);font:inherit;color:inherit;transition:transform var(--fast) var(--ease),box-shadow var(--fast) var(--ease);animation:rise var(--med) var(--ease) backwards;cursor:default}.stat:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.stat.clickable{cursor:pointer}.stat.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.stat .stat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.stat .icon-badge{width:21px;height:21px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-dim)}.stat .n{font-size:21px;font-weight:700;line-height:1;letter-spacing:-.02em}.stat .l{color:var(--text-dim);font-size:10.5px;margin-top:4px}.stat-delta{font-size:10.5px;font-weight:650;margin-top:3px;font-variant-numeric:tabular-nums}.stat-delta.good{color:var(--ok)}.stat-delta.bad{color:var(--danger)}.stat.warn .icon-badge{background:var(--warn-soft);color:var(--warn)}.stat.warn .n{color:var(--warn)}.stat.held .icon-badge{background:var(--held-soft);color:var(--held)}.stat.held .n{color:var(--held)}.stat.ok .icon-badge{background:var(--accent-soft);color:var(--accent-strong)}.stat.danger .icon-badge{background:var(--danger-soft);color:var(--danger)}.stat.danger .n{color:var(--danger)}.stat .delta{font-size:10px;font-weight:650;display:inline-flex;align-items:center;gap:2px;margin-top:3px}.stat .delta.up{color:var(--ok)}.stat .delta.down{color:var(--danger)}.vessel-row{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:1px solid var(--border);border-radius:var(--radius-sm);transition:background var(--fast) var(--ease)}.vessel-row.clickable{cursor:pointer}.vessel-row.alt{background:var(--surface-2)}.vessel-row:hover,.vessel-row.alt:hover{background:var(--surface-hover)}.vessel-row:last-child{border-bottom:none}.code{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.02em;background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:3px 7px;border-radius:6px;white-space:nowrap}button.code{cursor:pointer;transition:border-color var(--fast) var(--ease),color var(--fast) var(--ease)}button.code:hover{border-color:var(--accent-soft-border);color:var(--accent-strong)}.vessel-meta{flex:1;min-width:0}.vessel-meta .name{font-size:12.5px}.vessel-meta .detail{color:var(--text-dim);font-size:11px;font-variant-numeric:tabular-nums;margin-top:0}.vessel-more-actions{position:relative;display:inline-flex}.act-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:max-content;min-width:180px;max-width:min(260px,90vw);padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:1px;animation:toast-in var(--fast) var(--ease)}.act-menu button{display:block;width:100%;text-align:left;background:none;border:none;font:inherit;font-size:12.5px;color:var(--text);padding:7px 9px;border-radius:var(--radius-sm);cursor:pointer}.act-menu button:hover{background:var(--surface-hover)}.searchable-select{position:relative}.searchable-select-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;max-height:220px;overflow-y:auto;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:1px;animation:toast-in var(--fast) var(--ease)}.searchable-select-list button{display:block;width:100%;text-align:left;background:none;border:none;font:inherit;font-size:13px;color:var(--text);padding:7px 9px;border-radius:var(--radius-sm);cursor:pointer}.searchable-select-list button:hover,.searchable-select-list button[aria-selected=true]{background:var(--surface-hover)}.accession-select{position:relative}.accession-select-trigger{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;font:inherit;font-size:12.5px;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.accession-select-trigger:hover{border-color:var(--border-strong)}.accession-select-trigger[aria-expanded=true]{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.accession-select-trigger:disabled{opacity:.6;cursor:not-allowed}.accession-select-chevron{color:var(--text-faint);font-size:10px;flex-shrink:0}.accession-select-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;max-height:260px;overflow-y:auto;padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:1px;animation:toast-in var(--fast) var(--ease)}.accession-select-list button{display:block;width:100%;text-align:left;background:none;border:none;padding:7px 9px;border-radius:var(--radius-sm);cursor:pointer}.accession-select-list button:hover,.accession-select-list button[aria-selected=true]{background:var(--surface-hover)}.accession-option{display:flex;align-items:center;gap:7px;min-width:0;border-left:3px solid transparent;padding-left:7px}.accession-option-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.accession-option-code{color:var(--text-faint);font-size:11px;font-family:var(--mono);flex-shrink:0;margin-left:auto;padding-left:8px}.date-field{position:relative}.date-field-trigger{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;font:inherit;font-size:12.5px;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.date-field-trigger:hover{border-color:var(--border-strong)}.date-field-trigger[aria-expanded=true]{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}.date-field-trigger svg{color:var(--text-faint);flex-shrink:0}.date-field-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:20;width:232px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);animation:toast-in var(--fast) var(--ease)}.date-field-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:12.5px;font-weight:550}.date-field-header button{background:none;border:none;color:var(--text-dim);font-size:16px;line-height:1;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm)}.date-field-header button:hover{background:var(--surface-hover);color:var(--text)}.date-field-weekdays,.date-field-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-field-weekdays span{text-align:center;font-size:10px;color:var(--text-faint);padding-bottom:4px}.date-field-day{aspect-ratio:1;background:none;border:none;border-radius:var(--radius-sm);font:inherit;font-size:12px;color:var(--text);cursor:pointer}.date-field-day:hover:not(:disabled){background:var(--surface-hover)}.date-field-day:disabled{color:var(--text-faint);opacity:.4;cursor:not-allowed}.date-field-day.today{font-weight:700;color:var(--accent-strong)}.date-field-day.selected{background:var(--accent);color:var(--accent-text)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}table.data th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);font-weight:650;padding:0 10px 7px;border-bottom:1px solid var(--border-strong);white-space:nowrap;position:sticky;top:0;background:var(--surface)}table.data th.num,table.data td.num{text-align:right}table.data td{padding:7px 10px;border-bottom:1px solid var(--border);white-space:nowrap}table.data tbody tr{transition:background var(--fast) var(--ease)}table.data tbody tr:nth-child(2n){background:var(--surface-2)}table.data tbody tr:hover{background:var(--surface-hover)}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr.tr-clickable{cursor:pointer}table.data th button,table.data th.sortable{background:none;border:none;font:inherit;cursor:pointer;color:inherit;display:inline-flex;align-items:center;gap:3px;padding:0}.pill{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:3px 8px 3px 6px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);white-space:nowrap}.pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.85}.pill.overdue{color:var(--warn);background:var(--warn-soft);border-color:transparent}.pill.held{color:var(--held);background:var(--held-soft);border-color:transparent}.pill.bad{color:var(--danger);background:var(--danger-soft);border-color:transparent}.pill.ok{color:var(--ok);background:var(--accent-soft);border-color:transparent}button.act,a.act,label.act,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 12px;font:inherit;font-size:12px;font-weight:550;cursor:pointer;min-height:32px;white-space:nowrap;text-decoration:none;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease),transform var(--fast) var(--ease)}button.act:hover,a.act:hover,label.act:hover{border-color:var(--border-strong);background:var(--surface-hover)}button.act:active,a.act:active,label.act:active{transform:scale(.97)}button.act.primary,a.act.primary,label.act.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:650}button.act.primary:hover,a.act.primary:hover,label.act.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}button.act.danger,a.act.danger,label.act.danger{color:var(--danger)}button.act.danger:hover,a.act.danger:hover,label.act.danger:hover{border-color:var(--danger);background:var(--danger-soft)}button.act.ok,a.act.ok,label.act.ok{background:var(--ok);border-color:var(--ok);color:var(--ok-text);font-weight:650}button.act.ok:hover,a.act.ok:hover,label.act.ok:hover{filter:brightness(1.08)}button.act.ghost,a.act.ghost,label.act.ghost{background:transparent;border-color:transparent}button.act.ghost:hover,a.act.ghost:hover,label.act.ghost:hover{background:var(--surface-hover)}button.act.icon,a.act.icon,label.act.icon{min-height:30px;min-width:30px;padding:0}button.act.ghost.active,a.act.ghost.active,label.act.ghost.active{background:var(--accent-soft);color:var(--accent-strong)}button.act.small,a.act.small,label.act.small{min-height:26px;padding:4px 9px;font-size:11px}button.act.large,a.act.large,label.act.large{min-height:42px;padding:10px 20px;font-size:13.5px}button.act:disabled,a.act:disabled,label.act:disabled{opacity:.4;cursor:not-allowed;transform:none}.row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}label.field{display:block;margin-bottom:11px}label.field>span{display:flex;align-items:center;min-height:15px;font-size:11px;color:var(--text-dim);margin-bottom:4px;font-weight:550}.field-label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;font:inherit;font-size:12.5px;min-height:34px;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}textarea{resize:vertical;line-height:1.4}input:not([type=checkbox]):not([type=radio]):hover,select:hover,textarea:hover{border-color:var(--border-strong)}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--shadow-focus)}input[type=checkbox],input[type=radio]{width:15px;height:15px;min-height:0;flex-shrink:0;margin:0;accent-color:var(--accent);cursor:pointer}label.field.invalid span{color:var(--danger)}label.field.invalid input,label.field.invalid select{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 12px}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:0 12px}.search-wrap{position:relative}.search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-faint);pointer-events:none}.search-wrap input:not([type=checkbox]):not([type=radio]){padding-left:30px}.empty{text-align:center;padding:30px 16px;color:var(--text-dim);display:flex;flex-direction:column;align-items:center;gap:3px}.empty .empty-icon{width:40px;height:40px;border-radius:12px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;color:var(--text-faint);margin-bottom:10px}.empty strong{display:block;color:var(--text);font-size:13px;font-weight:620;margin-bottom:1px}.empty p{max-width:340px;font-size:12px;line-height:1.5}.empty .act{margin-top:10px}.result{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:13px;margin-top:12px}.result .big{font-size:24px;font-weight:700;color:var(--accent-strong);letter-spacing:-.02em}.result dl{display:grid;grid-template-columns:1fr auto;gap:6px 14px;margin:12px 0 0;font-size:12px}.result dt{color:var(--text-dim)}.result dd{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.result .warn-box{color:var(--warn);font-size:12px}.notice{border-radius:var(--radius);padding:10px 13px;font-size:12.5px;margin:10px 0}.notice.ok{background:var(--accent-soft);color:var(--ok)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.danger{background:var(--danger-soft);color:var(--danger)}.notice strong{display:block;margin-bottom:2px}.vessel-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.vessel-tile{display:flex;flex-direction:column;text-align:left;padding:0;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer}.vessel-tile:hover{border-color:var(--border-strong)}.vessel-tile:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.vessel-tile-img{position:relative;aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--text-faint)}.vessel-tile-img img{width:100%;height:100%;object-fit:cover;display:block}.vessel-tile-photo-btn{position:absolute;bottom:4px;right:4px;background:#0000008c!important;border-color:transparent!important;color:#fff!important}.vessel-tile-photo-btn:hover{background:#000000bf!important}.vessel-tile-body{display:flex;flex-direction:column;gap:4px;padding:8px 9px 10px}.vessel-tile-body .detail{font-size:11px;color:var(--text-dim)}.vessel-tile-body .pill{width:fit-content}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.photo-tile{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:var(--surface-2);border:1px solid var(--border)}.photo-tile img{width:100%;height:100%;object-fit:cover;display:block}.photo-remove{position:absolute;top:4px;right:4px;min-height:22px;min-width:22px;background:#0000008c;color:#fff;border:none}.photo-remove:hover{background:#000000bf}.photo-apply-all{opacity:0;transition:opacity .15s;font-size:10.5px;padding:3px 4px;height:auto;min-height:0;background:#0009;color:#fff;border:none}.photo-tile:hover .photo-apply-all,.photo-apply-all:focus-visible{opacity:1}.photo-apply-all:hover{background:#000c}.timeline{list-style:none;padding:0;margin:0}.timeline li{display:flex;gap:8px;align-items:baseline;padding:7px 0 7px 14px;font-size:12px;border-left:2px solid var(--border);margin-left:4px;position:relative}.timeline li:before{content:"";position:absolute;left:-4.5px;top:12px;width:7px;height:7px;border-radius:50%;background:var(--accent);border:2px solid var(--surface)}.timeline li:last-child{border-left-color:transparent}.timeline .when{color:var(--text-faint);min-width:76px;flex-shrink:0}.timeline .what{font-family:var(--mono);font-size:10px;color:var(--accent-strong);background:var(--accent-soft);padding:1px 6px;border-radius:5px;min-width:96px;text-align:center;flex-shrink:0}.feed{display:flex;flex-direction:column}.feed-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--border);font-size:12px}.feed-row:last-child{border-bottom:none}.feed-row .feed-icon{width:22px;height:22px;border-radius:6px;background:var(--surface-2);color:var(--text-dim);display:flex;align-items:center;justify-content:center;flex-shrink:0}.feed-row .feed-body{flex:1;min-width:0}.feed-row .feed-what{color:var(--text-dim)}.feed-row .feed-when{color:var(--text-faint);font-size:10.5px;flex-shrink:0}.tip{display:inline-block;width:15px;height:15px;line-height:15px;text-align:center;padding:0;border-radius:50%;border:1px solid var(--border);color:var(--text-faint);font-size:9.5px;cursor:help;margin-left:5px;vertical-align:middle;transition:color var(--fast) var(--ease),border-color var(--fast) var(--ease);background:none;font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.tip:hover{color:var(--accent-strong);border-color:var(--accent-soft-border)}.tip-wrap{position:relative;display:inline-block}.tip-popover{position:absolute;z-index:30;top:calc(100% + 6px);left:0;width:max-content;max-width:min(260px,72vw);background:var(--text);color:var(--bg);font-size:12px;line-height:1.45;font-weight:400;text-align:left;padding:8px 10px;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);animation:toast-in var(--fast) var(--ease)}.term-beginner{text-decoration:underline dotted var(--border-strong);text-underline-offset:2px}.toast-stack{position:fixed;z-index:56;display:flex;flex-direction:column;align-items:center;gap:8px;top:calc(14px + env(safe-area-inset-top));left:50%;transform:translate(-50%);width:min(320px,calc(100vw - 28px))}.toast{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:10px 12px;box-shadow:var(--shadow-lg);font-size:12.5px;animation:toast-in var(--med) var(--ease)}.toast .toast-icon{color:var(--accent-strong);flex-shrink:0}.toast.toast-error{border-color:var(--danger);background:var(--danger-soft)}.toast.toast-error .toast-icon{color:var(--danger)}.toast.leaving{animation:toast-out var(--fast) var(--ease) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}.cookie-banner{position:fixed;z-index:60;left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));max-width:560px;margin:0 auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:12px 14px;box-shadow:var(--shadow-lg);font-size:12.5px;color:var(--text);animation:toast-in var(--med) var(--ease)}.cookie-banner p{margin:0;flex:1 1 240px}.update-banner{bottom:calc(74px + env(safe-area-inset-bottom));z-index:61}@keyframes toast-out{0%{opacity:1}to{opacity:0;transform:translate(12px)}}.plan-gate,.onboarding-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;overflow-y:auto;background:var(--bg);display:flex;flex-direction:column;align-items:center;padding:0 0 24px;animation:toast-in var(--med) var(--ease)}.plan-gate-topbar{position:sticky;top:0;z-index:2;width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--bg);border-bottom:1px solid var(--border)}.plan-gate-brand{display:flex;align-items:center;gap:8px}.plan-gate-brand .brand-mark{width:26px;height:26px;border-radius:8px}.plan-gate-brand strong{font-size:14px;font-weight:700;letter-spacing:-.01em}button.plan-gate-brand{background:none;border:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;text-align:left}button.plan-gate-brand:hover strong{text-decoration:underline}.plan-gate-topbar-actions{display:flex;align-items:center;gap:8px}@media (max-width: 420px){.plan-gate-brand strong{display:none}.plan-gate-topbar-actions .act{padding:7px 12px;font-size:12.5px}}.plan-gate-inner{width:100%;max-width:960px;padding:20px 20px 0}.plan-gate-footer{text-align:center;padding:24px 20px 32px;font-size:12px}.plan-gate-footer a{color:var(--text-faint)}.plan-gate-footer a:hover{color:var(--text-dim)}.legal-doc{max-width:720px;margin:0 auto 60px;padding-bottom:20px}.legal-doc h1{font-size:24px;font-weight:700;letter-spacing:-.015em;margin:0 0 4px}.legal-doc h2{font-size:15px;font-weight:650;margin:28px 0 8px}.legal-doc p{font-size:13.5px;line-height:1.65;color:var(--text-dim);margin:0 0 10px}.legal-doc p strong{color:var(--text)}.legal-doc a{color:var(--accent-strong)}.plan-gate-head{text-align:center;margin-bottom:22px}.plan-gate-head h1{font-family:var(--font-display);font-size:30px;font-weight:300;letter-spacing:0;line-height:1.25;max-width:560px;margin:0 auto 8px}.plan-gate-head .hint{font-size:13.5px;max-width:440px;margin:0 auto;line-height:1.5}.plan-gate-tagline{font-family:var(--font-display);font-style:italic;font-weight:300;font-size:15.5px}.plan-gate-hero-actions{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;flex-wrap:wrap}@media (max-width: 480px){.plan-gate-hero-actions{flex-direction:column}.plan-gate-hero-actions .act{width:100%}}.plan-gate-plans-head{text-align:center;margin:28px 0 14px}.plan-gate-plans-head h2{font-size:13px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-dim);margin:0 0 3px}.plan-gate-plans-head .hint{font-size:12px;margin:0}.plan-gate-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}@media (max-width: 780px){.plan-gate-cards{grid-template-columns:1fr}}.plan-gate-hero-video{width:100%;max-width:1400px;margin:32px auto 0;padding:0 20px}.plan-gate-hero-video-caption{text-align:center;max-width:560px;margin:14px auto 0}.plan-gate-hero-video-media{position:relative;width:100%;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--border)}.plan-gate-hero-video-media video{display:block;width:100%;height:auto}.plan-gate-showcase{width:100%;max-width:1100px;margin:8px auto 0;padding:0 20px}.showcase-row{display:flex;flex-direction:column;align-items:center;gap:28px;padding:48px 0}.showcase-row:not(:last-child){border-bottom:1px solid var(--border)}.showcase-media{position:relative;width:100%;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--border)}.showcase-media img,.showcase-media video{display:block;width:100%;height:auto}.showcase-text{width:100%;text-align:center}.showcase-text h2{font-family:var(--font-display);font-weight:500;font-size:21px;margin:0 0 8px}.showcase-text .hint{font-size:13.5px;line-height:1.6;max-width:480px;margin:0 auto}.showcase-callout{position:absolute;display:flex;align-items:center;gap:8px;transform:translate(-50%,-50%);pointer-events:none;max-width:min(220px,60%)}.showcase-callout-flip{flex-direction:row-reverse}.showcase-callout-dot{width:14px;height:14px;border-radius:50%;background:var(--accent-strong);border:2px solid var(--surface);box-shadow:0 0 color-mix(in srgb,var(--accent-strong) 55%,transparent);flex-shrink:0}.reveal-visible .showcase-callout-dot{animation:showcase-pulse 2.2s ease-out .6s 3}.showcase-callout-label{font-size:11.5px;font-weight:700;color:var(--surface);background:color-mix(in srgb,var(--text) 92%,var(--surface));padding:4px 9px;border-radius:999px;white-space:normal;line-height:1.3;box-shadow:var(--shadow-sm)}@keyframes showcase-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent-strong) 55%,transparent)}70%{box-shadow:0 0 0 12px color-mix(in srgb,var(--accent-strong) 0%,transparent)}to{box-shadow:0 0 color-mix(in srgb,var(--accent-strong) 0%,transparent)}}.reveal-section{opacity:0;transform:translateY(18px);transition:opacity .5s var(--ease),transform .5s var(--ease)}.reveal-section.reveal-visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.reveal-section{transition:none}.showcase-callout-dot{animation:none!important}}@media (min-width: 840px){.showcase-row{flex-direction:row;text-align:left;gap:48px}.showcase-row-reverse{flex-direction:row-reverse}.showcase-media,.showcase-text{width:50%}.showcase-text{text-align:left}.showcase-text .hint{margin:0}}@media (min-width: 1180px){.plan-gate-showcase{max-width:1280px}}.onboarding-page-body{width:100%;max-width:640px;padding:0 20px}.onboarding-question{margin-bottom:20px}.onboarding-question label.field-label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}.onboarding-question select,.onboarding-question input[type=text]{width:100%}.checkbox-tile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}@media (max-width: 560px){.checkbox-tile-grid{grid-template-columns:repeat(2,1fr)}}.checkbox-tile{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;cursor:pointer;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}.checkbox-tile:hover{border-color:var(--accent)}.checkbox-tile.active{border-color:var(--accent-strong);background:color-mix(in srgb,var(--accent) 10%,transparent)}.checkbox-tile input[type=checkbox]{flex-shrink:0}.onboarding-page-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-bottom:24px}.plan-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px 22px;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),transform var(--fast) var(--ease)}.plan-card-icon{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-strong);margin-bottom:12px}.plan-card-popular{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-md)}.plan-card-badge{position:absolute;top:-11px;left:50%;transform:translate(-50%);background:var(--accent);color:var(--accent-text);font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:4px 12px;border-radius:999px;box-shadow:var(--shadow-sm)}.plan-card-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:6px}.plan-card-head h2{font-family:var(--font-display);font-size:19px;font-weight:500}.plan-card-price-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.plan-card-price{font-size:20px;font-weight:750;color:var(--accent-strong);line-height:1.1;white-space:nowrap}.plan-card-price-note{font-size:10px;font-weight:600;color:var(--accent-strong);white-space:nowrap;opacity:.75}.plan-card-price-compare{font-size:10.5px;font-weight:500;color:var(--text-dim);white-space:nowrap;margin-top:2px}.plan-card .hint{min-height:32px;margin-bottom:14px}.plan-card-features{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:8px;flex:1}.plan-card-features li{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-dim)}.plan-card-features li svg{color:var(--accent-strong);flex-shrink:0}.plan-card-features li.plan-card-feature-soon{opacity:.55}.plan-card-features li.plan-card-feature-soon svg{color:var(--text-faint)}.plan-card-clickable{cursor:pointer}.plan-card-clickable:hover,.plan-card-clickable:focus-visible{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow-lg);transform:translateY(-3px)}.plan-card-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plan-card-cta{margin-top:auto;padding-top:4px;font-size:13px;font-weight:650;color:var(--accent-strong);display:inline-flex;align-items:center;gap:4px;transition:gap var(--fast) var(--ease)}.plan-card-clickable:hover .plan-card-cta,.plan-card-clickable:focus-visible .plan-card-cta{gap:8px}.modal-card.upgrade-modal{width:min(920px,100%);padding:30px 34px 28px}.upgrade-modal .plan-gate-head{margin-bottom:22px}.upgrade-modal .plan-gate-head h1{font-size:23px}.upgrade-modal .plan-gate-cards{grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 780px){.upgrade-modal .plan-gate-cards{grid-template-columns:1fr}}.upgrade-modal .plan-card{position:relative;padding:26px 24px;border-radius:calc(var(--radius-lg) + 2px);transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),opacity var(--fast) var(--ease)}.upgrade-modal .plan-card-current{padding-top:0;overflow:hidden}.upgrade-modal .plan-card-current-banner{background:var(--ok);color:var(--ok-text);font-size:11.5px;font-weight:700;letter-spacing:.02em;text-align:center;padding:8px 12px;margin:0 -24px 20px}.upgrade-modal .plan-card-free{background:var(--surface-2);box-shadow:none}.upgrade-modal .plan-card-free .plan-card-icon{background:var(--surface);color:var(--text-dim)}.upgrade-modal .plan-card-free .plan-card-features li svg{color:var(--text-dim)}.upgrade-modal .plan-card-head h2{font-size:18px}.upgrade-modal .plan-card-price{font-size:22px}.upgrade-modal .plan-card .hint{font-size:12.5px;min-height:36px}.upgrade-modal .plan-card-features li{font-size:12.5px}.checkout-cart{display:grid;grid-template-columns:1fr 360px;gap:32px;align-items:start;max-width:980px;margin:0 auto}@media (max-width: 780px){.checkout-cart{grid-template-columns:1fr}}.checkout-hero{background:radial-gradient(ellipse 620px 220px at 50% 0%,var(--accent-soft),transparent 70%);padding:36px 20px 8px;margin:-20px -20px 8px;border-radius:var(--radius-lg)}.checkout-hero .plan-gate-head h1{font-size:34px}.checkout-hero-plan-icon{width:52px;height:52px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);color:var(--accent-strong)}.checkout-cart-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-sm)}.checkout-cart-summary h2,.checkout-cart-buy h2{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-dim);margin:0 0 14px}.checkout-cart-table-head{display:grid;grid-template-columns:1fr 90px 100px;gap:12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);padding-bottom:10px;border-bottom:1px solid var(--border)}.checkout-cart-row{display:grid;grid-template-columns:1fr 90px 100px;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid var(--border)}.checkout-cart-row-plan{display:flex;align-items:center;gap:12px}.checkout-cart-row-plan strong{display:block;font-size:14px;font-weight:700}.checkout-cart-row-plan .hint{display:block;margin:2px 0 0;font-size:12px}.checkout-cart-row-cycle{font-size:13px;color:var(--text-dim)}.checkout-cart-row-price{font-size:15px;font-weight:750;color:var(--accent-strong);white-space:nowrap}@media (max-width: 480px){.checkout-cart-table-head{display:none}.checkout-cart-row{grid-template-columns:1fr;gap:6px}.checkout-cart-row-cycle,.checkout-cart-row-price{padding-left:46px}}.checkout-next-steps{display:flex;flex-direction:column;gap:14px;margin-top:4px}.checkout-next-step{display:flex;align-items:flex-start;gap:12px}.checkout-next-step-icon{flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);display:flex;align-items:center;justify-content:center}.checkout-next-step strong{display:block;font-size:13px}.checkout-next-step .hint{margin:2px 0 0;font-size:12px}.checkout-review-savings{font-size:12px;font-weight:650;color:var(--accent-strong);text-align:center;margin:6px 0 0}.checkout-review-section-title{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-dim);margin:20px 0 8px}.checkout-review-legal{font-size:11px;line-height:1.5;margin:0}.checkout-review-legal a{color:var(--accent-strong)}.checkout-cart-buy{position:sticky;top:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-md);display:flex;flex-direction:column}.checkout-cart-buy-divider{border-top:1px dashed var(--border);margin:14px 0}.checkout-cart-buy-total{display:flex;align-items:baseline;justify-content:space-between;font-size:14px;font-weight:700}.checkout-cart-buy-price{font-size:26px;font-weight:800;color:var(--accent-strong);display:flex;align-items:baseline;gap:4px}.checkout-buy-btn{width:100%;font-size:14.5px;font-weight:700;padding:13px;margin:0 0 8px}.checkout-cart-secure{display:flex;align-items:center;justify-content:center;gap:5px;text-align:center;margin:0}.checkout-payfast-logo{height:13px;width:auto;vertical-align:-3px;background:#fff;border-radius:3px;padding:2px 4px}.checkout-payment-section{max-width:980px;margin:36px auto 0;padding-top:28px;border-top:1px solid var(--border)}.checkout-payment-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:18px}.checkout-pay-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:18px 14px;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease),transform var(--fast) var(--ease);font-family:inherit;min-height:84px}.checkout-pay-option:hover:not(:disabled){border-color:var(--accent-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.checkout-pay-option:disabled{opacity:.55;cursor:default}.checkout-pay-option-icons{display:flex;align-items:center;justify-content:center;gap:6px;height:26px;background:#fff;border-radius:4px;padding:3px 8px}.checkout-pay-option-icons img{height:20px;width:auto;max-width:60px;object-fit:contain}.checkout-pay-option-label{font-size:12.5px;font-weight:600;color:var(--text)}@media (max-width: 480px){.checkout-payment-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}.checkout-review-real-total{font-size:12px;line-height:1.5;color:var(--text-dim);text-align:center;margin:8px 0 0}.checkout-review-real-total strong{color:var(--text)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;display:flex;align-items:center;justify-content:center;background:#0a0e0b99;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:16px;animation:backdrop-in var(--fast) var(--ease)}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:18px 20px;width:min(360px,100%);max-height:calc(100vh - 32px);overflow-y:auto;animation:modal-in var(--med) var(--ease)}@keyframes modal-in{0%{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:none}}.login-modal{padding:26px 24px 22px}.settings-modal{width:min(440px,100%);padding:26px 24px 22px}.settings-section{margin-bottom:20px}.settings-section:last-child{margin-bottom:0}.settings-section h2{font-size:12.5px;font-weight:650;margin-bottom:3px}.settings-section .hint{margin-bottom:8px}.settings-option-row{display:flex;gap:6px;flex-wrap:wrap}.settings-option{display:flex;align-items:center;gap:5px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-dim);padding:6px 11px;border-radius:var(--radius-sm);font:inherit;font-size:12px;cursor:pointer;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),border-color var(--fast) var(--ease)}.settings-option:hover{background:var(--surface-hover);color:var(--text)}.settings-option.active{background:var(--accent-soft);border-color:var(--accent-soft-border);color:var(--accent-strong);font-weight:600}.settings-option.active svg:last-child{color:var(--accent-strong)}.theme-switch{background:none;border:none;padding:0;cursor:pointer;display:inline-flex;flex-shrink:0}.theme-switch-track{position:relative;display:flex;align-items:center;justify-content:space-between;width:42px;height:23px;padding:0 4px;border-radius:99px;background:var(--border-strong);transition:background var(--fast) var(--ease)}.theme-switch-on .theme-switch-track{background:var(--accent)}.theme-switch-icon{position:relative;z-index:1;color:var(--text-faint);transition:color var(--fast) var(--ease)}.theme-switch:not(.theme-switch-on) .theme-switch-icon-sun{color:var(--warn)}.theme-switch-on .theme-switch-icon-moon{color:var(--accent-text)}.theme-switch-thumb{position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-sm);transition:transform var(--med) var(--ease)}.theme-switch-on .theme-switch-thumb{transform:translate(19px)}.modal-close{position:absolute;top:10px;right:10px;font-size:20px;line-height:1}.act.modal-close{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border)}.act.modal-close:hover{background:var(--surface-hover);border-color:var(--border-strong)}.login-modal-head{text-align:center;margin-bottom:18px}.login-modal-mark{width:40px;height:40px;border-radius:11px;margin:0 auto 12px}.login-modal-head h2{font-size:16.5px;font-weight:650;letter-spacing:-.01em;margin:0 0 6px}.login-modal-head .hint{margin:0 auto;max-width:280px}.login-google-slot{display:flex;justify-content:center;padding:2px 0;min-height:44px;border-radius:999px;overflow:hidden}.login-google-slot iframe{background:transparent!important}.login-status{display:flex;align-items:center;gap:7px;justify-content:center;font-size:12px;color:var(--text-dim);margin:6px 0 0}.login-error{font-size:12px;color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);padding:7px 9px;margin:8px 0 0}.login-divider{display:flex;align-items:center;gap:10px;color:var(--text-faint);font-size:11px;text-transform:uppercase;letter-spacing:.04em;margin:18px 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.login-form{display:flex;flex-direction:column;gap:10px}.login-form .act.primary{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:4px}.login-field-hint{margin:-4px 0 0}.login-toggle-mode{width:100%}.spinner{width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:currentColor;display:inline-block;flex-shrink:0}.login-status .spinner{border:2px solid var(--border-strong);border-top-color:var(--accent)}.icon-spin{animation:icon-spin .9s linear infinite}@keyframes icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.theme-toggle{display:flex;align-items:center;gap:8px;padding:6.5px 8px;border-radius:var(--radius-sm);color:var(--text-dim);font-size:12px;cursor:pointer;background:transparent;border:none;width:100%;font:inherit;transition:background var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--fast) var(--ease)}.theme-toggle:hover{background:var(--surface-hover);color:var(--text)}.theme-toggle:active:not(:disabled){transform:scale(.98)}.theme-toggle:disabled{cursor:default;opacity:.6}.accent-row{display:flex;align-items:center;gap:9px;padding:6.5px 8px}.accent-swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;padding:0;cursor:pointer;transition:transform var(--fast) var(--ease),border-color var(--fast) var(--ease)}.accent-swatch:hover{transform:scale(1.15)}.accent-swatch[aria-pressed=true]{border-color:var(--text)}.chart-legend{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap}.chart-legend .key{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--text-dim)}.chart-legend .swatch{width:8px;height:8px;border-radius:2px;flex-shrink:0}.bar-list{display:flex;flex-direction:column;gap:9px}.bar-list-row{display:flex;flex-direction:column;gap:3px;padding-bottom:9px}.bar-list-row.separated{border-bottom:1px solid var(--border)}.bar-list-row.clickable{cursor:pointer;border-radius:6px;margin:-4px;padding:4px 4px 13px}.bar-list-row.clickable:hover{background:var(--surface-2)}.bar-list-head{display:flex;justify-content:space-between;font-size:11.5px;gap:8px}.bar-list-head .name{font-weight:550}.bar-list-head .value{font-variant-numeric:tabular-nums;color:var(--text-dim);flex-shrink:0}.bar-track{height:7px;background:var(--surface-2);border-radius:99px;overflow:hidden}.bar-fill{height:100%;border-radius:99px;transition:width .42s var(--ease)}.funnel-chart{display:flex;flex-direction:column;gap:12px;margin-top:4px}.funnel-row{display:flex;flex-direction:column;gap:4px}.funnel-head{display:flex;justify-content:space-between;font-size:11.5px;gap:8px}.funnel-head .name{font-weight:550}.funnel-head .value{font-variant-numeric:tabular-nums;color:var(--text-dim);flex-shrink:0}.funnel-track{height:9px;background:var(--surface-2);border-radius:99px;overflow:hidden;display:flex}.funnel-seg{height:100%;box-shadow:2px 0 0 var(--surface-2);transition:width .42s var(--ease)}.funnel-seg:last-child{box-shadow:none}.funnel-loss-detail{display:flex;flex-wrap:wrap;gap:5px}.funnel-loss-chip{font-size:10.5px;color:var(--danger);background:var(--danger-soft);border-radius:99px;padding:2px 8px}.heatmap{display:flex;gap:2px}.heatmap .hm-col{display:flex;flex-direction:column;gap:2px}.heatmap .hm-cell{width:10px;height:10px;border-radius:2.5px;background:var(--surface-2);cursor:default}.heatmap-wrap{overflow-x:auto;padding-bottom:2px}.heatmap-foot{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:10.5px;color:var(--text-faint)}.heatmap-foot .hm-cell{width:9px;height:9px;border-radius:2px}.area-chart{display:block;width:100%;height:180px}.area-chart .grid-line{stroke:var(--chart-grid);stroke-width:1}.area-chart .axis-label{fill:var(--text-faint);font-size:9px}.area-chart .axis-label-y{text-anchor:end;dominant-baseline:middle;font-variant-numeric:tabular-nums}.area-chart .hover-line{stroke:var(--border-strong);stroke-width:1}.chart-tooltip{position:absolute;pointer-events:none;background:var(--text);color:var(--bg);font-size:11px;padding:5px 8px;border-radius:6px;white-space:nowrap;box-shadow:var(--shadow-md);transform:translate(-50%,-100%);margin-top:-8px;z-index:5;font-variant-numeric:tabular-nums}:root[data-theme=dark] .chart-tooltip{background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong)}.chart-card{position:relative}.mini-donut-wrap{display:flex;align-items:center;gap:12px}@keyframes rise{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.screen-enter{animation:screen-in var(--med) var(--ease)}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.detail-enter{animation:detail-in var(--med) var(--ease)}@keyframes detail-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.card,.stat,.toast,.screen-enter,.detail-enter{animation:none!important}*{transition-duration:.001ms!important}}@media (max-width: 900px){.sidebar{display:flex;position:fixed;inset:0 auto 0 0;z-index:57;width:min(240px,82vw);box-shadow:var(--shadow-lg);transform:translate(-100%);transition:transform var(--med) var(--ease)}.sidebar.sidebar-open{transform:translate(0)}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:44;background:#0a0e0b73;animation:toast-in var(--fast) var(--ease)}.content{padding:16px 14px 44px}}@media (min-width: 901px){.topbar-mobile-only,button.topbar-mobile-only{display:none}.shell{padding-left:196px}}@media (max-width: 520px){.vessel-row{flex-wrap:wrap}.toast-stack{left:14px;right:14px;width:auto;top:auto;bottom:calc(14px + env(safe-area-inset-bottom));transform:none}}.hood{--hood-bg: var(--bg);--hood-bg-inset: var(--bg-inset);--hood-surface: var(--surface);--hood-surface-2: var(--surface-2);--hood-text: var(--text);--hood-text-dim: var(--text-dim);--hood-accent: var(--accent);--hood-accent-text: var(--accent-text);--hood-border: var(--border);--hood-danger: var(--danger);min-height:100vh;display:flex;flex-direction:column;background:var(--hood-bg);color:var(--hood-text);font-size:18px;padding:16px;gap:16px}.hood.lowlight{--hood-bg: #180404;--hood-bg-inset: #220808;--hood-surface: #2a0a0a;--hood-surface-2: #360d0d;--hood-text: #fff3ee;--hood-text-dim: #e2b3ab;--hood-accent: #ff5a3c;--hood-accent-text: #180404;--hood-border: rgba(255, 243, 238, .16);--hood-danger: #ef6a5f;color-scheme:dark}.hood-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:15px;color:var(--hood-text-dim);font-variant-numeric:tabular-nums}.hood-topbar-actions{display:flex;align-items:center;gap:8px;flex:none}.hood-lowlight-toggle{min-height:56px;padding:0 14px;display:inline-flex;align-items:center;gap:6px;background:transparent;border:2px solid var(--hood-border);color:var(--hood-text-dim);border-radius:var(--radius);font-size:14px;font-weight:650;cursor:pointer}.hood-lowlight-toggle.active{background:var(--hood-accent);border-color:var(--hood-accent);color:var(--hood-accent-text)}.hood-exit{min-height:56px;padding:0 20px;background:transparent;border:2px solid var(--hood-border);color:var(--hood-text);border-radius:var(--radius);font-size:16px;font-weight:650;cursor:pointer}.hood-exit:active{background:var(--hood-surface-2)}.hood-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;font-size:22px;color:var(--hood-text-dim)}.hood-vessel{text-align:center;padding:10px 0 0}.hood-code{font-family:var(--mono);font-size:clamp(40px,12vw,72px);font-weight:700;letter-spacing:-.01em;line-height:1}.hood-sub{font-size:17px;color:var(--hood-text-dim);margin-top:8px}.hood-codes{text-align:center;font-family:var(--mono);font-size:clamp(16px,4vw,22px);color:var(--hood-accent);background:var(--hood-surface);border:1px solid var(--hood-border);border-radius:var(--radius);padding:10px;word-break:break-word}.hood-flow{display:flex;flex-direction:column;gap:14px;padding-bottom:env(safe-area-inset-bottom,0)}.hood-card{background:var(--hood-bg-inset);border:2px solid var(--hood-border);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:12px}.hood-card-title{font-size:16px;font-weight:700;color:var(--hood-text)}.hood-card-hint{display:block;font-size:12px;font-weight:500;color:var(--hood-text-dim);margin-top:2px}.hood-setting-group{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.hood-setting-group>span{font-size:14px;color:var(--hood-text-dim);min-width:78px;flex:none;padding-top:17px}.hood-pills{display:flex;flex-wrap:wrap;gap:8px;flex:1}.hood-pill{min-height:56px;min-width:56px;padding:0 16px;background:var(--hood-surface);border:2px solid var(--hood-border);color:var(--hood-text);border-radius:var(--radius);font-size:16px;font-weight:600;cursor:pointer}.hood-pill.active{background:var(--hood-accent);border-color:var(--hood-accent);color:var(--hood-accent-text)}.hood-btn{min-height:72px;width:100%;border-radius:var(--radius-lg);font-size:19px;font-weight:700;cursor:pointer;background:var(--hood-surface);border:2px solid var(--hood-border);color:var(--hood-text)}.hood-btn:active{transform:scale(.97)}.hood-btn.primary{min-height:88px;background:var(--hood-accent);border-color:var(--hood-accent);color:var(--hood-accent-text);font-size:22px}.hood-btn.ghost{background:transparent;color:var(--hood-text-dim)}.hood-btn.danger{border-color:var(--hood-danger);color:var(--hood-danger)}.hood-btn.small{min-height:56px;font-size:14px;padding:0 14px;flex:none}.hood .disclosure{margin:0}.hood .disclosure-toggle{width:100%;min-height:56px;padding:0 16px;background:var(--hood-bg-inset);border:2px solid var(--hood-border);border-radius:var(--radius-lg);color:var(--hood-text);font-size:16px;font-weight:700}.hood .disclosure-chevron{color:var(--hood-text-dim)}.hood .disclosure-body{margin-top:12px;display:flex;flex-direction:column;gap:12px}.hood-card-danger .disclosure-toggle{border-color:var(--hood-danger);color:var(--hood-danger)}.hood-log{margin-top:4px;border-top:1px solid var(--hood-border);padding-top:14px}.hood-log-head{font-size:14px;font-weight:700;color:var(--hood-text-dim);margin-bottom:8px}.hood-note-add{display:flex;gap:8px;margin-bottom:10px}.hood-note-add input{flex:1;min-height:56px;background:var(--hood-surface);border:2px solid var(--hood-border);color:var(--hood-text);border-radius:var(--radius);padding:0 12px;font-size:15px}.hood-log-empty{color:var(--hood-text-dim);font-size:14px}.hood-log-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.hood-log-list li{background:var(--hood-surface);border:1px solid var(--hood-border);border-radius:var(--radius);padding:8px 10px}.hood-log-list li.done{opacity:.55}.hood-log-list li.done span:not(.hood-log-caption){text-decoration:line-through}.hood-log-list label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:15px}.hood-log-list input[type=checkbox]{width:20px;height:20px;flex:none;accent-color:var(--hood-accent)}.hood-log-list label span:first-of-type{flex:1}.hood-log-caption{font-size:12px;color:var(--hood-text-dim);flex:none}@media (min-width: 640px){.hood{padding:28px;max-width:720px;margin:0 auto;width:100%}}.tour-blur-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#140c2873;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:tour-fade-in .18s ease-out,tour-blur-clear 2.2s ease-out forwards;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-mode:alpha;-webkit-mask-mode:alpha}@keyframes tour-blur-clear{0%,55%{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}to{backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px)}}.tour-spotlight-ring{position:fixed;z-index:61;pointer-events:none;box-shadow:0 0 0 3px #ffd23f,0 0 12px 1px #ffd23f73;transition:top .28s cubic-bezier(.2,.8,.2,1),left .28s cubic-bezier(.2,.8,.2,1),width .28s cubic-bezier(.2,.8,.2,1),height .28s cubic-bezier(.2,.8,.2,1);animation:tour-pulse 1.8s ease-in-out infinite}.tour-card{position:fixed;z-index:62;bottom:calc(24px + env(safe-area-inset-bottom));width:min(340px,calc(100vw - 32px));max-height:min(60vh,380px);overflow-x:visible;overflow-y:auto;background:linear-gradient(160deg,#6c3ce0,#a238c9 55%,#e0388f);color:#fff8ff;border-radius:16px;padding:16px 18px 13px;box-shadow:0 20px 50px -12px #5a14788c,0 0 0 1px #ffffff1f inset;animation:tour-pop-in .32s cubic-bezier(.34,1.56,.64,1)}.tour-card.tour-card-top{bottom:auto;top:24px}.tour-callout-arrow{position:fixed;z-index:62;width:16px;height:16px;background:#a238c9;border-radius:3px;transform:rotate(45deg);box-shadow:0 4px 10px -4px #5a147880;pointer-events:none}.tour-close{position:absolute;top:12px;right:12px;width:26px;height:26px;border-radius:999px;border:none;background:#ffffff29;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}.tour-close:hover{background:#ffffff47}.tour-emoji{font-size:26px;line-height:1;margin-bottom:4px}.tour-title{margin:0 0 4px;font-size:15px;font-weight:800;color:#fff}.tour-body{margin:0;font-size:12.5px;line-height:1.45;color:#ffffffeb}.tour-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:10px;flex-wrap:wrap}.tour-dots{display:flex;gap:5px}.tour-dot{width:6px;height:6px;border-radius:999px;background:#ffffff59;transition:all .2s}.tour-dot.active{width:15px;background:#ffd23f}.tour-actions{display:flex;gap:6px;margin-left:auto}.tour-btn{border:none;border-radius:999px;padding:6px 13px;font-size:12px;font-weight:700;cursor:pointer;transition:transform .12s ease}.tour-btn:active{transform:scale(.95)}.tour-btn-ghost{background:#ffffff24;color:#fff}.tour-btn-skip{background:transparent;color:#ffffffbf}.tour-btn-next{background:#ffd23f;color:#3a2400;box-shadow:0 4px 14px -4px #ffd23fb3}.tour-btn-next:hover{background:#ffdc66}.tour-replay-btn{width:26px;height:26px;border-radius:999px;border:none;flex:none;background:linear-gradient(160deg,#6c3ce0,#e0388f);color:#fff;font-weight:800;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 8px -2px #8c28b499}.tour-replay-btn:hover{filter:brightness(1.1)}.confetti-burst{position:fixed;width:0;height:0;pointer-events:none;z-index:70}.confetti-piece{position:absolute;top:0;left:0;border-radius:2px;animation:confetti-pop 1.2s cubic-bezier(.2,.7,.3,1) forwards}@keyframes confetti-pop{0%{transform:translate(-50%,-50%) rotate(0) scale(.4);opacity:1}70%{opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--rotate)) scale(1);opacity:0}}@keyframes tour-fade-in{0%{opacity:0}to{opacity:1}}@keyframes tour-pop-in{0%{opacity:0;transform:translateY(16px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tour-pulse{0%,to{box-shadow:0 0 0 3px #ffd23f,0 0 12px 1px #ffd23f73}50%{box-shadow:0 0 0 3px #ffd23f,0 0 18px 3px #ffd23fa6}}@media (max-width: 640px){.tour-card{bottom:10px;padding:12px 14px 10px;max-height:min(40vh,260px)}.tour-card.tour-card-top{top:10px}.tour-emoji{font-size:24px;margin-bottom:3px}.tour-title{font-size:15px;margin-bottom:4px}.tour-body{font-size:12.5px;line-height:1.42}.tour-footer{margin-top:10px}}.print-label-sheet{display:none}@media print{body *{visibility:hidden}.print-label-sheet,.print-label-sheet *{visibility:visible}.print-label-sheet{display:flex;flex-wrap:wrap;gap:3mm;align-content:flex-start;position:absolute;top:0;left:0;width:100%;margin:0;padding:4mm}}.print-label{color:#12160f;box-sizing:border-box;overflow:hidden;border:.2mm dashed #999;display:flex;align-items:center;justify-content:center;gap:1.5mm;padding:1mm;flex:none}.print-label.round{flex-direction:column;text-align:center;padding:2.5mm}.print-label.round .print-label-qr{width:56%}.print-label.round .print-label-code{font-size:2.6mm}.print-label.round .print-label-context{font-size:1.6mm}.print-label-qr{width:45%;height:auto;flex:none}.print-label-text{display:flex;flex-direction:column;justify-content:center;overflow:hidden;min-width:0;width:100%}.print-label-code{font-weight:800;font-size:3.2mm;line-height:1.15;white-space:nowrap}.print-label-context{font-size:2mm;color:#333;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.print-label-location{font-size:1.6mm;-webkit-line-clamp:1;opacity:.85}.tier-gate{position:relative;border-radius:var(--radius-lg);overflow:hidden;min-height:220px}.tier-gate-full{min-height:min(60vh,520px)}.tier-gate-content{filter:blur(5px);pointer-events:none;-webkit-user-select:none;user-select:none;transform:scale(1.01)}.tier-gate-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;padding:20px;background:color-mix(in srgb,var(--surface) 72%,transparent);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.tier-gate-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent-strong);margin-bottom:2px}.tier-gate-overlay h3{font-size:14px;font-weight:650;margin:0}.tier-gate-overlay .hint{margin:0 0 6px;max-width:32ch}.tier-gate-overlay .act[disabled]{opacity:1;cursor:not-allowed}.tier-preview-toggle{display:inline-flex;gap:4px;background:var(--surface-2);border-radius:var(--radius);padding:3px}.tier-preview-toggle button{border:none;background:none;padding:5px 10px;border-radius:calc(var(--radius) - 3px);font-size:12px;font-weight:600;color:var(--text-dim);cursor:pointer;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.tier-preview-toggle button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.chip-row{display:inline-flex;gap:4px;background:var(--surface-2);border-radius:var(--radius);padding:3px;flex-wrap:wrap}.chip{border:none;background:none;padding:6px 11px;border-radius:calc(var(--radius) - 3px);font-size:12.5px;font-weight:600;color:var(--text-dim);cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.chip.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.chip-count{font-family:var(--mono);font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:999px;background:var(--surface-hover);color:var(--text-faint)}.chip.active .chip-count{background:var(--accent-soft);color:var(--accent-strong)}.range-toggle{display:inline-flex;gap:4px;background:var(--surface-2);border-radius:var(--radius);padding:3px}.range-toggle button{border:none;background:none;padding:5px 10px;border-radius:calc(var(--radius) - 3px);font-size:12px;font-weight:600;color:var(--text-dim);cursor:pointer;transition:background var(--fast) var(--ease),color var(--fast) var(--ease)}.range-toggle button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.range-toggle button:disabled{color:var(--text-faint);cursor:not-allowed;opacity:.5}.admin-dash-section{margin-top:22px}.admin-dash-section:first-of-type{margin-top:12px}.admin-dash-section h3{font-size:13px;font-weight:650;margin:0 0 10px}.dash-barchart{display:flex;align-items:flex-end;gap:6px;height:130px;overflow-x:auto;padding-bottom:2px}.dash-bar-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-width:26px;flex:1 0 auto;height:100%}.dash-bar-track{width:100%;flex:1 1 auto;display:flex;align-items:flex-end;background:var(--surface-2);border-radius:3px 3px 0 0;overflow:hidden}.dash-bar-fill{width:100%;background:var(--accent);min-height:2px;transition:height var(--fast) var(--ease)}.dash-bar-value{font-size:10px;font-weight:650;color:var(--text-dim);margin-top:4px}.dash-bar-label{font-size:9px;color:var(--text-faint);white-space:nowrap}.dash-tier-bars{display:flex;flex-direction:column;gap:8px}.dash-tier-row{display:flex;align-items:center;gap:10px}.dash-tier-label{width:68px;font-size:12px;font-weight:600;color:var(--text-dim);flex-shrink:0}.dash-tier-track{flex:1 1 auto;height:14px;background:var(--surface-2);border-radius:7px;overflow:hidden}.dash-tier-fill{height:100%;border-radius:7px;min-width:3px;transition:width var(--fast) var(--ease)}.dash-tier-count{width:32px;text-align:right;font-size:12px;font-weight:650;flex-shrink:0}.dash-revenue-stat{font-size:26px;font-weight:700;color:var(--text)}.dash-revenue-stat span{font-size:12px;font-weight:500;color:var(--text-dim);margin-left:6px}.dash-leader-bar-wrap{position:relative;min-width:100px;height:18px;display:flex;align-items:center}.dash-leader-bar{position:absolute;top:0;right:0;bottom:0;left:0;width:0;background:var(--accent-soft);border-radius:3px;z-index:0}.dash-leader-bar-wrap span{position:relative;z-index:1;font-size:12px;font-weight:600;padding-left:6px}.location-node{background:var(--surface-2);border:1px solid var(--border);border-left-width:3px;border-radius:var(--radius-sm);padding:8px 11px;margin-top:8px;transition:background var(--fast) var(--ease)}.location-node:hover{background:var(--surface-hover)}.location-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.location-occupied{color:var(--text);font-weight:600}
