:root,[data-theme=dark]{color-scheme:dark;--bg-0:#0b0e14;--bg-1:#111620;--bg-2:#161c28;--bg-3:#1d2431;--bg-hover:#222b3a;--border:#252d3b;--border-strong:#374252;--text-1:#e7ebf2;--text-2:#9aa6b6;--text-3:#616c7e;--accent:#2dd4bf;--accent-hover:#5eead4;--accent-press:#14b8a6;--on-accent:#04211d;--accent-soft:rgba(45,212,191,.14);--accent-border:rgba(45,212,191,.34);--success:#34d399;--warning:#fbbf24;--danger:#f87171;--on-danger:#2a0808;--info:#60a5fa;--ops:#a78bfa;--focus:#5eead4;--skeleton:rgba(255,255,255,.05);--skeleton-hi:rgba(255,255,255,.09);--success-soft:rgba(52,211,153,.15);--warning-soft:rgba(251,191,36,.15);--danger-soft:rgba(248,113,113,.15);--info-soft:rgba(96,165,250,.15);--ops-soft:rgba(167,139,250,.16);--shadow-sm:0 1px 2px rgba(0,0,0,.4);--shadow-md:0 4px 16px rgba(0,0,0,.5);--shadow-lg:0 16px 48px rgba(0,0,0,.6);--code-key:#c792ea;--code-str:#c3e88d;--code-num:#f78c6c;--code-fn:#82aaff;--code-com:#5b6673;--code-tag:#f07178;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Roboto,Helvetica,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:22px;--fs-3xl:28px;--fs-4xl:36px;--fs-5xl:48px;--lh-tight:1.15;--lh-snug:1.35;--lh-normal:1.55;--s1:2px;--s2:4px;--s3:6px;--s4:8px;--s5:12px;--s6:16px;--s7:20px;--s8:24px;--s9:32px;--s10:40px;--s11:48px;--s12:64px;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;--r-2xl:16px;--r-full:9999px;--dur-fast:120ms;--dur-base:180ms;--dur-slow:260ms;--ease:cubic-bezier(.2,.6,.2,1)}[data-theme=light]{color-scheme:light;--bg-0:#ffffff;--bg-1:#f5f7fa;--bg-2:#ffffff;--bg-3:#eef1f6;--bg-hover:#e6ebf2;--border:#dce2ea;--border-strong:#c3ccd8;--text-1:#141922;--text-2:#54606f;--text-3:#8b96a5;--accent:#0d9488;--accent-hover:#0f766e;--accent-press:#115e59;--on-accent:#ffffff;--accent-soft:rgba(13,148,136,.10);--accent-border:rgba(13,148,136,.30);--success:#059669;--warning:#b45309;--danger:#dc2626;--on-danger:#ffffff;--info:#2563eb;--ops:#7c3aed;--focus:#0d9488;--skeleton:rgba(20,25,34,.05);--skeleton-hi:rgba(20,25,34,.09);--success-soft:rgba(5,150,105,.12);--warning-soft:rgba(180,83,9,.13);--danger-soft:rgba(220,38,38,.12);--info-soft:rgba(37,99,235,.12);--ops-soft:rgba(124,58,237,.13);--shadow-sm:0 1px 2px rgba(16,24,40,.07);--shadow-md:0 6px 20px rgba(16,24,40,.10);--shadow-lg:0 20px 48px rgba(16,24,40,.16);--code-key:#7c3aed;--code-str:#0a7d55;--code-num:#c2410c;--code-fn:#2563eb;--code-com:#8b96a5;--code-tag:#dc2626}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--bg-1);color:var(--text-1);font-family:var(--font-sans)}a{color:inherit;text-decoration:none}.s2u-mark{align-items:center;aspect-ratio:1;background:linear-gradient(140deg,var(--accent),var(--accent-press));border:1px solid var(--accent-border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);color:var(--on-accent);display:inline-flex;flex:0 0 auto;font-weight:800;justify-content:center;letter-spacing:0;line-height:1;min-width:16px}button,input,textarea{font:inherit}.app-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100svh}.sidebar{background:var(--bg-0);color:var(--text-1);display:flex;flex-direction:column;gap:34px;padding:24px}.brand{font-size:1rem;font-weight:800}nav{display:grid;grid-gap:6px;gap:6px}nav a{border-radius:8px;color:var(--text-2);font-size:.95rem;padding:10px 12px}nav a.active,nav a:hover{background:var(--bg-hover);color:var(--text-1)}.subtabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}.subtabs a{border-radius:0;border-bottom:2px solid transparent;color:var(--text-2);font-weight:600;padding:10px 16px}.subtabs a:hover{background:transparent;color:var(--text-1)}.subtabs a.active{background:transparent;border-bottom-color:var(--accent);color:var(--accent)}.subtabs button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-2);font-family:inherit;font-size:var(--fs-base);font-weight:600;padding:10px 16px;cursor:pointer}.subtabs button:hover{color:var(--text-1)}.subtabs button.active{border-bottom-color:var(--accent);color:var(--accent)}.workspace{min-width:0;padding:clamp(20px,4vw,42px)}.topbar{gap:20px;margin-bottom:28px}.kicker,.label{color:var(--accent);font-size:.78rem;font-weight:800;letter-spacing:0;margin:0 0 8px;text-transform:uppercase}h1{font-size:clamp(2rem,4vw,3.8rem);line-height:1;margin:0}h1,h2{letter-spacing:0}h2{font-size:1.25rem;margin:0 0 14px}.actions button,.button,.table-sort{background:var(--accent);border:1px solid var(--accent);border-radius:8px;color:var(--on-accent);cursor:pointer;font-weight:750;min-height:38px;padding:8px 12px}.button.secondary{background:var(--bg-2);border-color:var(--border);color:var(--text-1)}.button.wide{width:100%}.button:disabled{cursor:not-allowed;opacity:.7}.actions{display:flex;flex-wrap:wrap;gap:6px}.actions button,.table-sort{background:var(--bg-2);border-color:var(--border);color:var(--text-1);min-height:30px;padding:5px 8px}.dashboard-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.panel{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:clamp(18px,3vw,28px)}.span-2{grid-column:span 2}.metric strong{display:block;font-size:clamp(1.7rem,3vw,2.5rem);line-height:1}.analytics-metrics{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:22px}.mini-metric{background:var(--bg-3);border:1px solid var(--border);border-radius:8px;padding:14px}.mini-metric strong{display:block;font-size:1.1rem;overflow-wrap:anywhere}.timeline-bars{display:grid;grid-gap:10px;gap:10px}.timeline-bars.compact{margin-bottom:22px}.bar-row{align-items:center;display:grid;grid-gap:10px;gap:10px;grid-template-columns:96px minmax(100px,1fr) 38px}.bar-row span:first-child,.bar-row strong{color:var(--text-2);font-size:.84rem}.bar-track{background:var(--bg-3);border-radius:999px;height:10px;overflow:hidden}.bar-track span{background:var(--accent);display:block;height:100%}.metric-row{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.badge,.status{border:1px solid var(--border);border-radius:999px;color:var(--text-2);display:inline-flex;flex:0 0 auto;font-size:.82rem;font-weight:750;padding:7px 10px}.inline-badge{-webkit-margin-start:8px;margin-inline-start:8px;padding:3px 8px}.meter{background:var(--bg-3);border-radius:999px;height:10px;overflow:hidden;width:100%}.meter span{background:var(--accent);display:block;height:100%}.muted,.subtle{color:var(--text-2)}.subtle{display:block;font-size:.8rem;margin-top:4px}.json-block,.snippet{background:var(--bg-0);border-radius:8px;color:var(--text-1);margin:10px 0 0;overflow:auto;padding:14px}.json-block{max-height:420px}.notice{background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:8px;color:var(--accent-press);margin:0 0 16px;padding:12px 14px}.error-text,.notice.error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.upload-result{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.upload-result p{margin:6px 0 0}.selected-file{background:var(--bg-3);border:1px solid var(--border);border-radius:8px;padding:12px}.toolbar{align-items:center;display:flex;gap:12px;margin-bottom:16px}.form input,.form textarea,.search{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;color:var(--text-1);min-height:42px;padding:9px 11px;width:100%}.form textarea{line-height:1.45;resize:vertical}.table-wrap{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;overflow-x:auto}table{border-collapse:collapse;min-width:760px;width:100%}td,th{border-bottom:1px solid var(--border);padding:12px 14px;text-align:start;vertical-align:top}th{color:var(--text-2);font-size:.8rem;text-transform:uppercase}tr:last-child td{border-bottom:0}.appeal-shell,.centered-panel,.login-shell{align-items:center;display:flex;justify-content:center;min-height:100svh;padding:20px}.appeal-panel,.login-panel{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;max-width:420px;padding:28px;width:100%}.appeal-panel h1,.login-panel h1{font-size:2.4rem;margin-bottom:18px}.appeal-panel{max-width:560px}.appeal-panel .muted{line-height:1.55;margin:0 0 20px}.form{display:grid;grid-gap:14px;gap:14px}.form label{color:var(--text-2);display:grid;font-size:.9rem;font-weight:700;grid-gap:6px;gap:6px}.divider{align-items:center;color:var(--text-2);display:flex;gap:12px;margin:18px 0}.divider:after,.divider:before{background:var(--border);content:"";flex:1 1;height:1px}.account-grid{align-items:end;display:grid;grid-gap:20px;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}@media (max-width:960px){.account-grid,.analytics-metrics,.dashboard-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}}@media (max-width:780px){.app-shell{grid-template-columns:1fr}.sidebar{gap:16px}nav{display:flex;flex-wrap:wrap}.toolbar,.topbar,.upload-result{align-items:flex-start;flex-direction:column}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.mono{font-family:var(--font-mono)}.muted{color:var(--text-2)}.muted3{color:var(--text-3)}.app{display:grid;position:relative;grid-template-columns:240px 1fr;min-height:100svh;background:var(--bg-1);color:var(--text-1);font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased}.side{background:var(--bg-0);-webkit-border-end:1px solid var(--border);border-inline-end:1px solid var(--border);display:flex;flex-direction:column;padding:var(--s6) var(--s5);overflow-y:auto;position:-webkit-sticky;position:sticky;top:0;height:100svh}.brand{gap:var(--s4);padding:var(--s3) var(--s4) var(--s7)}.blogo,.brand{display:flex;align-items:center}.blogo{width:30px;height:30px;border-radius:var(--r-md);background:linear-gradient(140deg,var(--accent),var(--accent-press));justify-content:center;color:var(--on-accent);font-family:var(--font-mono);font-weight:800;font-size:var(--fs-sm)}.brand b{font-size:var(--fs-md);letter-spacing:-.01em}.nav-item{display:flex;align-items:center;gap:var(--s5);padding:var(--s4) var(--s5);border-radius:var(--r-md);font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;font-weight:500;border:none;background:none;width:100%;text-align:start;font-family:inherit;text-decoration:none;transition:background var(--dur-fast),color var(--dur-fast)}.nav-item svg{width:17px;height:17px;flex:none}.nav-item:hover{background:var(--bg-3);color:var(--text-1)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-group{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:var(--text-3);padding:var(--s6) var(--s5) var(--s3);font-weight:700}.side-foot{margin-top:auto;padding-top:var(--s6);border-top:1px solid var(--border);display:flex;align-items:center;gap:var(--s4)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fs-sm);border:1px solid var(--accent-border);flex:none;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit;display:block}.main{display:flex;flex-direction:column;overflow:hidden;min-width:0;position:relative}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding:var(--s5) var(--s8);border-bottom:1px solid var(--border);background:var(--bg-1);flex:none;position:-webkit-sticky;position:sticky;top:0;z-index:20}.route-progress{height:2px;flex:none;opacity:0;overflow:hidden;background:transparent;transition:opacity var(--dur-fast) var(--ease)}.route-progress span{display:block;width:42%;height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,transparent,var(--accent),var(--accent-hover),transparent);box-shadow:0 0 18px color-mix(in srgb,var(--accent) 60%,transparent);transform:translateX(-120%)}.route-loading .route-progress{opacity:1}.route-loading .route-progress span{animation:routebar 1.05s var(--ease) infinite}.crumb,.crumbnav{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3)}.crumbnav{display:flex;align-items:center;gap:var(--s2)}.crumbnav-back{display:inline-flex;align-items:center;justify-content:center;color:var(--text-3);padding:2px;-webkit-margin-end:2px;margin-inline-end:2px;border-radius:var(--r-sm);transition:color var(--dur-fast)}.crumbnav-back svg{width:15px;height:15px}.crumbnav-back:hover{color:var(--text-1)}.crumbnav-link{color:var(--text-3);text-decoration:none;transition:color var(--dur-fast)}.crumbnav-link:hover{color:var(--accent)}.crumbnav-sep{color:var(--text-3);opacity:.5}.crumbnav-id{color:var(--text-2)}.radio-row{display:flex;align-items:flex-start;gap:var(--s3);font-size:var(--fs-sm);cursor:pointer;line-height:1.35}.radio-row input{margin-top:2px;accent-color:var(--accent);flex:none}.chip-row{display:flex;flex-wrap:wrap;gap:var(--s2)}.chip-pick{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text-2);background:var(--bg-3);border:1px solid var(--border-strong);border-radius:999px;cursor:pointer;transition:all var(--dur-fast)}.chip-pick:hover{background:var(--bg-hover)}.chip-pick.on,.chip-pick:hover{color:var(--text-1);border-color:var(--accent)}.chip-pick.on{background:color-mix(in srgb,var(--accent) 16%,transparent)}.content{padding:var(--s8);overflow-y:auto;flex:1 1;transition:opacity var(--dur-base) var(--ease),filter var(--dur-base) var(--ease)}.route-loading .content{opacity:.78;filter:saturate(.92)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s6);margin-bottom:var(--s7)}.page-head-lead{display:flex;align-items:center;gap:var(--s4);min-width:0}.page-head-icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;flex:none;border-radius:var(--r-md);background:var(--bg-3);border:1px solid var(--border);color:var(--accent)}.page-head-icon svg{width:22px;height:22px}.page-head-actions{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}.tbl-toolbar{gap:var(--s3);padding:var(--s3) var(--s4);border:1px solid var(--border);border-bottom:none;border-radius:var(--r-md) var(--r-md) 0 0;background:var(--bg-2);flex-wrap:wrap}.tbl-toolbar+.tbl-wrap{border-start-start-radius:0;border-start-end-radius:0}.th-sort{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.th-sort:hover{color:var(--text-1)}.th-sort .caret{opacity:.55;font-size:.7em;-webkit-margin-start:4px;margin-inline-start:4px}@media(max-width:640px){.page-head-icon{width:36px;height:36px}.page-head-icon svg{width:19px;height:19px}}.page-head h1{margin:0;font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em}.page-head p{margin:var(--s2) 0 0;color:var(--text-2);font-size:var(--fs-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s3);font-family:var(--font-sans);font-size:var(--fs-base);font-weight:600;line-height:1;height:36px;padding:0 var(--s6);border-radius:var(--r-md);border:1px solid transparent;cursor:pointer;transition:background var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast);white-space:nowrap;text-decoration:none}.btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.btn svg{width:16px;height:16px}.btn-sm{height:30px;padding:0 var(--s5);font-size:var(--fs-sm);border-radius:var(--r-sm)}.btn-lg{height:44px;padding:0 var(--s8);font-size:var(--fs-lg)}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-3);color:var(--text-1);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--bg-hover)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--bg-3);color:var(--text-1)}.btn-danger{background:var(--danger);color:var(--on-danger)}.btn-danger:hover{filter:brightness(1.07)}.btn-danger-ghost{background:transparent;color:var(--danger);border-color:var(--danger)}.btn-danger-ghost:hover{background:var(--danger-soft)}.btn.is-disabled,.btn[disabled]{opacity:.42;cursor:not-allowed;pointer-events:none}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--bg-3);color:var(--text-2);cursor:pointer;transition:all var(--dur-fast)}.icon-btn:hover{background:var(--bg-hover);color:var(--text-1)}.icon-btn svg{width:16px;height:16px}.icon-btn.bare{border:none;background:none}.icon-btn.loading{position:relative;color:var(--accent);background:var(--accent-soft)}.icon-btn.loading svg{opacity:.24}.icon-btn.loading:after{content:"";position:absolute;inset:9px;border:2px solid color-mix(in srgb,var(--accent) 24%,transparent);border-top-color:var(--accent);border-radius:50%;animation:spin .72s linear infinite}.card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.card-pad{padding:var(--s7)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding:var(--s6) var(--s7);border-bottom:1px solid var(--border)}.card-head h3{margin:0;font-size:var(--fs-md);font-weight:700}.card-head .desc{font-size:var(--fs-xs);color:var(--text-3);margin-top:2px}.grid{display:grid;grid-gap:var(--s6);gap:var(--s6)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g2-1{grid-template-columns:2fr 1fr}.stat{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s7)}.stat .k{font-size:var(--fs-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;font-weight:600;display:flex;align-items:center;gap:var(--s3)}.stat .k svg{width:14px;height:14px;color:var(--accent)}.stat .v{font-size:var(--fs-3xl);font-weight:800;letter-spacing:-.02em;margin-top:var(--s4);line-height:1.12}.stat .d{font-size:var(--fs-xs);color:var(--text-2);margin-top:var(--s3)}.stat .d .up{color:var(--success)}.stat .d .down{color:var(--danger)}.meter{display:flex;flex-direction:column;gap:var(--s3)}.meter-top{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-2)}.meter-top b{color:var(--text-1);font-weight:700}.meter-bar{height:8px;background:var(--bg-3);overflow:hidden}.meter-bar,.meter-fill{border-radius:var(--r-full)}.meter-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-hover))}.meter-fill.warn{background:linear-gradient(90deg,var(--warning),#fbbf24)}.meter-fill.crit{background:linear-gradient(90deg,var(--danger),#f87171)}.tbl-wrap{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;background:var(--bg-2)}.tbl-wrap.scrollx{overflow-x:auto}.tbl-wrap.scrollx .col-act{position:-webkit-sticky;position:sticky;inset-inline-end:0}.tbl-wrap.scrollx td.col-act{background:var(--bg-2)}.tbl-wrap.scrollx tbody tr:hover td.col-act,.tbl-wrap.scrollx th.col-act{background:var(--bg-1)}table.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.tbl thead th{text-align:start;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);background:var(--bg-1)}.tbl tbody td,.tbl thead th{padding:var(--s5) var(--s6);border-bottom:1px solid var(--border);white-space:nowrap}.tbl tbody td{vertical-align:middle}.tbl thead th.sortable{cursor:pointer}.tbl thead th .sort{color:var(--accent);-webkit-margin-start:4px;margin-inline-start:4px}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr.clickable{cursor:pointer}.tbl tbody tr:hover{background:var(--bg-1)}.tbl.dense tbody td,.tbl.dense thead th{padding:var(--s3) var(--s6)}.cell-id{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-2)}.cell-name{font-weight:600;color:var(--text-1)}.tbl td.col-act,.tbl th.col-act{text-align:end;white-space:nowrap;width:1%}.act-btns{display:inline-flex;gap:var(--s2);justify-content:flex-end}.act-btns .del:hover{color:var(--danger)!important}.col-st{width:1%;-webkit-padding-end:0!important;padding-inline-end:0!important}.st{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center}.st svg{width:17px;height:17px}.st-ready{color:var(--success)}.st-live{color:var(--accent)}.st-scanning{color:var(--info)}.st-expired{color:var(--warning)}.st-revoked{color:var(--danger)}.st-locked{color:var(--text-3)}.st-live svg,.st-scanning svg{animation:pulse 1.6s ease-in-out infinite}.way{display:inline-flex;align-items:center;gap:var(--s4)}.tag2{font-size:10px;font-weight:700;padding:2px 6px;border-radius:var(--r-sm);text-transform:uppercase;letter-spacing:.05em;flex:none}.way-out .tag2{background:var(--accent-soft);color:var(--accent)}.way-in .tag2{background:var(--info-soft);color:var(--info)}.tbl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding:var(--s5) var(--s6);border-bottom:1px solid var(--border);background:var(--bg-1)}.tbl-search{position:relative;flex:1 1;max-width:340px}.tbl-search svg{position:absolute;inset-inline-start:12px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--text-3);pointer-events:none}.tbl-search input{width:100%;height:34px;padding-block:0;padding-inline:34px var(--s5);background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-md);color:var(--text-1);font-size:var(--fs-sm);outline:none;font-family:inherit}.tbl-search input::placeholder{color:var(--text-3)}.tbl-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.tbl-count{font-size:var(--fs-xs);color:var(--text-3);font-family:var(--font-mono)}.copyid{display:inline-flex;align-items:center;gap:var(--s3);cursor:pointer;color:var(--text-2)}.copyid:hover{color:var(--accent)}.copyid svg{width:12px;height:12px;opacity:.6}.badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:600;line-height:1;padding:4px 9px;border-radius:var(--r-full);border:1px solid transparent;white-space:nowrap}.badge .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.badge-ready{background:var(--success-soft);color:var(--success);border-color:var(--success)}.badge-live{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.badge-scanning{background:var(--info-soft);color:var(--info);border-color:var(--info)}.badge-expired,.badge-warn{background:var(--warning-soft);color:var(--warning);border-color:var(--warning)}.badge-blocked,.badge-revoked{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.badge-neutral{background:var(--bg-3);color:var(--text-2);border-color:var(--border-strong)}.badge-live .dot,.badge-scanning .dot{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes spin{to{transform:rotate(1turn)}}.code{background:var(--bg-0);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;font-family:var(--font-mono);font-size:var(--fs-sm)}.code-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--s4) var(--s5);background:var(--bg-1);border-bottom:1px solid var(--border)}.code-bar .fname{font-size:var(--fs-xs);color:var(--text-2)}.code pre{margin:0;padding:var(--s6);overflow:auto;line-height:1.7;color:var(--text-1)}.tk-key{color:var(--code-key)}.tk-str{color:var(--code-str)}.tk-num{color:var(--code-num)}.tk-fn{color:var(--code-fn)}.tk-com{color:var(--code-com)}.copylink{display:flex;align-items:center;max-width:100%;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-2);overflow:hidden}.copylink .cl-url{flex:1 1;font-family:var(--font-mono);color:var(--text-1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.copylink .cl-btn,.copylink .cl-url{padding:0 var(--s5);height:38px;display:flex;align-items:center;font-size:var(--fs-sm)}.copylink .cl-btn{background:var(--bg-3);border:none;-webkit-border-start:1px solid var(--border);border-inline-start:1px solid var(--border);color:var(--text-2);cursor:pointer;gap:var(--s3);font-weight:600;font-family:var(--font-sans)}.copylink .cl-btn:hover{background:var(--bg-hover);color:var(--accent)}.share-detail-head{justify-content:space-between;gap:var(--s5) var(--s6);margin-bottom:var(--s7)}.sd-left,.share-detail-head{display:flex;align-items:center;flex-wrap:wrap}.sd-left{gap:var(--s4);min-width:0}.sd-fileicon{display:inline-flex;flex:none;color:var(--accent)}.sd-fileicon svg{width:20px;height:20px}.sd-name{font-weight:600;font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.sd-meta{font-size:var(--fs-sm)}.sd-right{display:flex;align-items:center;gap:var(--s3);flex:1 1 320px;justify-content:flex-end;min-width:260px}.sd-url{flex:1 1;min-width:0;max-width:440px}.sd-right .icon-btn{width:38px;height:38px;flex:none}.sd-right .icon-btn svg{width:16px;height:16px}.sd-right .icon-btn:hover{background:var(--bg-hover);color:var(--accent)}.sd-pause{color:var(--danger)}.sd-pause,.sd-pause:hover{border-color:var(--danger)}.sd-pause:hover{background:var(--danger);color:var(--on-danger)}.sd-resume{color:var(--accent);border-color:var(--accent-border)}.sd-resume:hover{background:var(--accent);color:var(--on-accent)}.toast-viewport{position:fixed;inset-inline-end:var(--s6);top:var(--s6);z-index:100;display:flex;flex-direction:column;gap:var(--s3);width:min(460px,calc(100vw - var(--s7)));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:var(--s4);padding:var(--s5) var(--s6);border-radius:var(--r-md);background:var(--bg-2);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);font-size:var(--fs-md);color:var(--text-1);animation:toastIn var(--dur-slow) cubic-bezier(.2,.7,.3,1)}.toast-ico{flex:none;display:inline-flex;margin-top:1px}.toast-ico svg{width:18px;height:18px}.toast-success{-webkit-border-start:4px solid var(--success);border-inline-start:4px solid var(--success)}.toast-success .toast-ico{color:var(--success)}.toast-error{-webkit-border-start:4px solid var(--danger);border-inline-start:4px solid var(--danger)}.toast-error .toast-ico{color:var(--danger)}.toast-info{-webkit-border-start:4px solid var(--accent);border-inline-start:4px solid var(--accent)}.toast-info .toast-ico{color:var(--accent)}.toast-msg{flex:1 1;min-width:0;line-height:1.45}.toast-x{flex:none;border:none;background:none;color:var(--text-3);cursor:pointer;padding:2px;display:inline-flex;border-radius:var(--r-sm)}.toast-x:hover{color:var(--text-1);background:var(--bg-3)}.toast-x svg{width:14px;height:14px}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.field{display:flex;flex-direction:column;gap:var(--s3)}.field>label{font-size:var(--fs-sm);font-weight:600}.field .hint{font-size:var(--fs-xs);color:var(--text-3)}.field .err{font-size:var(--fs-xs);color:var(--danger);display:flex;align-items:center;gap:4px}.input,.select,.textarea{width:100%;font-family:var(--font-sans);font-size:var(--fs-base);color:var(--text-1);background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:0 var(--s5);height:38px;outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.textarea{height:auto;padding:var(--s5);min-height:80px;line-height:var(--lh-snug);resize:vertical}.input.mono{font-family:var(--font-mono);font-size:var(--fs-sm)}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input.is-error{border-color:var(--danger)}.input.is-error:focus{box-shadow:0 0 0 3px var(--danger-soft)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-3) 50%),linear-gradient(135deg,var(--text-3) 50%,transparent 50%);background-position:calc(100% - 16px) 16px,calc(100% - 11px) 16px;background-size:5px 5px;background-repeat:no-repeat;-webkit-padding-end:var(--s9);padding-inline-end:var(--s9)}[dir=rtl] .select{background-position:16px 16px,11px 16px}.checkline{display:flex;align-items:center;gap:var(--s4);font-size:var(--fs-sm);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.checkline input{width:17px;height:17px;accent-color:var(--accent)}.switch{position:relative;display:inline-flex;align-items:center;width:38px;height:21px;flex:none;cursor:pointer}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch .track{width:100%;height:100%;border-radius:var(--r-full);background:var(--bg-hover);border:1px solid var(--border-strong);transition:background var(--dur-base)}.switch .knob{position:absolute;left:3px;top:3px;width:15px;height:15px;border-radius:50%;background:var(--text-2);transition:transform var(--dur-base),background var(--dur-base)}.switch input:checked+.track{background:var(--accent);border-color:var(--accent)}.switch input:checked~.knob{transform:translateX(17px);background:var(--on-accent)}.switch input:focus-visible+.track{outline:2px solid var(--focus);outline-offset:2px}.banner{display:flex;align-items:center;gap:var(--s5);padding:var(--s5) var(--s6);border-radius:var(--r-md);border:1px solid var(--accent-border);background:var(--accent-soft);font-size:var(--fs-sm)}.banner .b-ico{color:var(--accent);flex:none;display:flex}.banner.warn{border-color:var(--warning);background:var(--warning-soft)}.banner.warn .b-ico{color:var(--warning)}.banner .b-body{flex:1 1}.banner b{font-weight:700}.empty{text-align:center;padding:var(--s11) var(--s6);border:1px dashed var(--border-strong);background:var(--bg-1)}.empty,.empty .e-ico{border-radius:var(--r-lg)}.empty .e-ico{width:46px;height:46px;background:var(--bg-3);display:inline-flex;align-items:center;justify-content:center;color:var(--text-3);margin-bottom:var(--s5)}.empty .e-ico svg{width:22px;height:22px}.empty h4{margin:0 0 var(--s3);font-size:var(--fs-md)}.empty p{margin:0 auto var(--s6);color:var(--text-2);font-size:var(--fs-sm);max-width:40ch}.skel{background:linear-gradient(90deg,var(--skeleton) 25%,var(--skeleton-hi) 37%,var(--skeleton) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skel-line{height:12px;margin-bottom:var(--s4)}.dropzone{border:2px dashed var(--border-strong);border-radius:var(--r-xl);background:var(--bg-1);padding:var(--s11) var(--s6);text-align:center;transition:border-color var(--dur-base),background var(--dur-base)}.dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone .dz-ico{width:52px;height:52px;border-radius:var(--r-lg);background:var(--bg-3);display:inline-flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:var(--s5)}.dropzone .dz-ico svg{width:26px;height:26px}.dropzone h3{margin:0 0 var(--s3);font-size:var(--fs-lg)}.dropzone p{margin:0;color:var(--text-2);font-size:var(--fs-sm)}.seg{display:inline-flex;background:var(--bg-3);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:2px}.seg button{border:none;background:none;color:var(--text-2);font-size:var(--fs-xs);font-weight:600;padding:5px 10px;border-radius:var(--r-sm);cursor:pointer;font-family:inherit}.seg button.on{background:var(--bg-1);color:var(--accent);box-shadow:var(--shadow-sm)}.seg-icon button{padding:6px 10px;display:inline-flex;align-items:center}.seg-icon button svg{width:16px;height:16px}.seg button.seg-new{color:var(--accent);font-weight:700}.seg button.seg-new:hover{background:var(--accent-soft)}.seg button.seg-new svg{width:14px;height:14px}.auth{min-height:100svh;display:flex;align-items:center;justify-content:center;background:var(--bg-0);color:var(--text-1);font-family:var(--font-sans);padding:var(--s8);position:relative;overflow:hidden}.auth-grid{position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,var(--border) 1px,transparent 0);background-size:28px 28px;opacity:.5}.auth-back{position:absolute;top:var(--s6);left:var(--s6);z-index:1;display:inline-flex;align-items:center;gap:var(--s2);color:var(--text-3);font-size:var(--fs-sm);text-decoration:none;transition:color .15s}.auth-back:hover{color:var(--text-1)}.auth-back svg{width:16px;height:16px}.auth-wrap{min-height:100svh;display:flex;flex-direction:column}.auth-wrap .auth{min-height:0;flex:1 1}.beta-banner{position:relative;z-index:2;display:flex;align-items:center;gap:var(--s3);padding:var(--s4) var(--s5);background:var(--accent-soft);color:var(--accent);border-bottom:1px solid var(--accent-border);font-size:var(--fs-sm)}.beta-banner-ico{display:inline-flex;flex:none}.beta-banner-ico svg{width:16px;height:16px}.beta-banner-msg{flex:1 1;text-align:center;line-height:1.35}.beta-banner-x{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:inherit;cursor:pointer;border-radius:var(--r-sm);opacity:.75;transition:opacity .15s,background .15s}.beta-banner-x:hover{opacity:1;background:var(--accent-border)}.beta-banner-x svg{width:15px;height:15px}.auth-card{position:relative;width:100%;max-width:400px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-2xl);padding:var(--s10);box-shadow:var(--shadow-lg);text-align:center}.auth-logo{width:52px;height:52px;border-radius:var(--r-lg);background:linear-gradient(140deg,var(--accent),var(--accent-press));display:inline-flex;align-items:center;justify-content:center;color:var(--on-accent);font-family:var(--font-mono);font-weight:800;font-size:var(--fs-xl);margin-bottom:var(--s6);box-shadow:var(--shadow-md)}.auth-card h2{margin:0 0 var(--s3);font-size:var(--fs-2xl);letter-spacing:-.02em}.auth-card .lede{margin:0 0 var(--s8);color:var(--text-2);font-size:var(--fs-sm)}.gbtn{display:flex;align-items:center;justify-content:center;gap:var(--s5);width:100%;height:46px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--bg-1);color:var(--text-1);font-weight:600;font-size:var(--fs-base);cursor:pointer;font-family:inherit;transition:background var(--dur-fast)}.gbtn:hover{background:var(--bg-3)}.gbtn:disabled{opacity:.5;cursor:not-allowed}.gbtn svg{width:18px;height:18px}.auth-note{display:flex;gap:var(--s4);align-items:flex-start;margin-top:var(--s7);padding:var(--s5);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-md);text-align:start;font-size:var(--fs-xs);color:var(--text-2)}.auth-note svg{width:15px;height:15px;color:var(--accent);flex:none;margin-top:1px}.auth-err{margin-top:var(--s6);padding:var(--s4) var(--s5);border-radius:var(--r-md);background:var(--danger-soft);border:1px solid var(--danger);color:var(--danger);font-size:var(--fs-xs);text-align:start}.devcode{gap:var(--s4);margin:var(--s7) 0}.devcode,.devcode span{display:flex;justify-content:center}.devcode span{width:44px;height:56px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--bg-1);align-items:center;font-family:var(--font-mono);font-size:var(--fs-2xl);font-weight:700;color:var(--accent)}.chart{display:flex;align-items:flex-end;gap:6px;height:120px;padding-top:var(--s5)}.chart .bar{flex:1 1;background:linear-gradient(180deg,var(--accent),var(--accent-press));border-radius:3px 3px 0 0;min-height:4px;opacity:.85}.chart .bar.hi{opacity:1}.spark{display:flex;align-items:flex-end;gap:2px;height:34px}.spark i{flex:1 1;background:var(--accent-soft);border-radius:1px}.tag{display:inline-flex;gap:var(--s3);padding:3px 8px;border-radius:var(--r-sm);background:var(--bg-3);border:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-2);font-family:var(--font-mono)}.list-row,.tag{align-items:center}.list-row{display:flex;gap:var(--s5);padding:var(--s5) 0;border-bottom:1px solid var(--border)}.list-row:last-child{border-bottom:none}.list-ico{width:34px;height:34px;border-radius:var(--r-md);background:var(--bg-3);display:flex;align-items:center;justify-content:center;color:var(--text-2);flex:none}.list-ico svg{width:16px;height:16px}.danger-zone{border:1px solid var(--danger);border-radius:var(--r-lg);background:var(--danger-soft);padding:var(--s7)}.danger-zone h3{margin:0 0 var(--s3);font-size:var(--fs-md);color:var(--danger)}.soon-wrap{position:relative}.soon-wrap .soon-inner{filter:blur(3.5px);opacity:.5;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.soon-over{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s4)}.cs-wrap{position:relative;overflow:hidden;border-radius:var(--r-lg)}.cs-wrap .cs-preview{position:absolute;inset:0;filter:blur(10px);opacity:.32;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cs-over{position:relative;z-index:1;align-items:center;text-align:center;gap:var(--s4);padding:var(--s8,48px) var(--s6);background:color-mix(in srgb,var(--bg-1) 45%,transparent)}.cs-over,.cs-skeleton{display:flex;flex-direction:column;justify-content:center}.cs-skeleton{position:absolute;inset:0;padding:var(--s6);gap:var(--s5)}.cs-skeleton .sk-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}.cs-skeleton .sk-line{height:12px;border-radius:6px;background:var(--bg-3)}.cs-skeleton .sk-btn{width:96px;height:32px;border-radius:var(--r-md);background:var(--bg-3)}.cs-skeleton .sk-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:var(--s4);gap:var(--s4)}.cs-skeleton .sk-card{height:96px;border-radius:var(--r-md);background:var(--bg-2);border:1px solid var(--border)}.cs-skeleton .sk-rows{display:flex;flex-direction:column;gap:var(--s4)}.connector-preview{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));grid-gap:var(--s5);gap:var(--s5);padding:var(--s7);align-content:center}.connector-card{min-height:112px;border:1px solid var(--border);border-radius:var(--r-lg);background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 14%,var(--bg-2)),var(--bg-2));box-shadow:var(--shadow-sm);display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:var(--s4);padding:var(--s5)}.connector-mark{width:36px;height:36px;border-radius:var(--r-md);background:var(--brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xs)}.connector-mark,.connector-name{font-weight:800;letter-spacing:0}.connector-name{font-size:var(--fs-md);color:var(--text-1)}.connector-status{font-size:10px;font-family:var(--font-mono);text-transform:uppercase;color:var(--text-3);letter-spacing:.08em}@media(max-width:900px){.connector-preview{grid-template-columns:repeat(3,minmax(120px,1fr));padding:var(--s6)}}@media(max-width:640px){.connector-preview{grid-template-columns:repeat(2,minmax(110px,1fr));gap:var(--s4)}.connector-card{min-height:96px}}.soon-pill{display:inline-flex;align-items:center;gap:var(--s3);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--text-2);background:color-mix(in srgb,var(--bg-3) 70%,transparent);border:1px solid var(--border);padding:6px 14px;border-radius:var(--r-full);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.soon-pill svg{width:14px;height:14px}.shai-fab{position:fixed;width:56px;height:56px;padding:0;border-radius:var(--r-full);border:1px solid var(--accent-border);background:linear-gradient(140deg,var(--accent),var(--accent-press));color:var(--on-accent);display:flex;align-items:center;justify-content:center;cursor:-webkit-grab;cursor:grab;box-shadow:var(--shadow-lg);z-index:90;touch-action:none;transition:transform var(--dur-fast),box-shadow var(--dur-fast)}.shai-fab svg{width:26px;height:26px}.shai-fab:hover{transform:translateY(-2px)}.shai-fab:active{cursor:-webkit-grabbing;cursor:grabbing}.shai-fab.open{transform:scale(.94)}.shai-fab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shai-fab-badge{position:absolute;top:-4px;inset-inline-end:-4px;background:var(--bg-2);color:var(--accent);border:1px solid var(--accent-border);border-radius:var(--r-full);font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 5px;line-height:1;pointer-events:none}.shai-panel{position:fixed;width:320px;max-width:calc(100vw - 32px);background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);z-index:91;overflow:hidden;animation:pop var(--dur-base) var(--ease)}.shai-panel-head{gap:var(--s5);padding:var(--s5) var(--s6);border-bottom:1px solid var(--border)}.shai-avatar,.shai-panel-head{display:flex;align-items:center}.shai-avatar{width:34px;height:34px;border-radius:var(--r-full);background:linear-gradient(140deg,var(--accent),var(--accent-press));color:var(--on-accent);justify-content:center;flex:none}.shai-avatar svg{width:20px;height:20px}.shai-name{display:flex;align-items:center;gap:var(--s3);font-weight:700;font-size:var(--fs-sm)}.shai-close{-webkit-margin-start:auto;margin-inline-start:auto;background:none;border:none;color:var(--text-3);font-size:20px;line-height:1;cursor:pointer;padding:0 4px;border-radius:var(--r-md)}.shai-close:hover{color:var(--text-1)}.shai-panel-body{padding:var(--s6);display:flex;flex-direction:column;gap:var(--s5)}.shai-panel-body p{margin:0;font-size:var(--fs-sm);line-height:1.55}.shai-feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s4)}.shai-feats li{position:relative;-webkit-padding-start:22px;padding-inline-start:22px;font-size:var(--fs-sm);color:var(--text-2)}.shai-feats li:before{content:"";position:absolute;inset-inline-start:4px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.shai-input{display:flex;align-items:center;gap:var(--s4);padding:var(--s4) var(--s5);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-1);opacity:.7;cursor:not-allowed}.shai-input .muted{flex:1 1;font-size:var(--fs-sm)}.shai-send{width:26px;height:26px;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;flex:none}.shai-send svg{width:15px;height:15px}@media (prefers-reduced-motion:reduce){.shai-panel{animation:none}.shai-fab{transition:none}}.tgl svg{width:17px;height:17px}[data-theme=dark] .ico-moon,[data-theme=light] .ico-sun{display:none}.overlay{position:fixed;inset:0;background:rgba(4,7,12,.62);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:var(--s10) var(--s6);overflow-y:auto}.modal{width:100%;max-width:560px;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);overflow:hidden;animation:pop var(--dur-base) var(--ease)}@keyframes pop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding:var(--s6) var(--s7);border-bottom:1px solid var(--border)}.modal-head h3{margin:0;font-size:var(--fs-lg);font-weight:700}.modal-title-row{display:flex;align-items:center;gap:var(--s3);min-width:0}.modal-body{padding:var(--s7);display:flex;flex-direction:column;gap:var(--s6)}.modal-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--s4);padding:var(--s6) var(--s7);background:var(--bg-1);border-top:1px solid var(--border)}.profile-card{display:flex;flex-direction:column;gap:var(--s6)}.profile-avatar-row{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:var(--s6);gap:var(--s6)}.profile-avatar-panel{display:flex;align-items:center;justify-content:center;min-width:0}.profile-avatar-trigger{position:relative;width:116px;aspect-ratio:1;border:0;background:transparent;padding:0;border-radius:var(--r-full);color:var(--text-1);cursor:pointer}.profile-avatar-trigger:disabled{cursor:wait;opacity:.75}.profile-avatar-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.profile-avatar-empty,.profile-avatar-image{width:100%;height:100%;border-radius:var(--r-full);object-fit:cover;box-shadow:0 0 0 1px var(--border-strong),var(--shadow-md)}.profile-avatar-empty{display:flex;font-size:clamp(var(--fs-2xl),5vw,44px)}.profile-avatar-edit{position:absolute;inset-inline-end:0;bottom:0;width:32px;height:32px;border-radius:var(--r-full);display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg-2) 78%,transparent);color:var(--text-1);border:1px solid color-mix(in srgb,var(--border-strong) 80%,transparent);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform var(--dur-fast),background var(--dur-fast),color var(--dur-fast)}.profile-avatar-edit svg{width:15px;height:15px}.profile-avatar-trigger:hover .profile-avatar-edit{transform:scale(1.06);background:color-mix(in srgb,var(--accent) 14%,var(--bg-2));color:var(--accent)}.profile-avatar-copy{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s2);min-width:0}.profile-remove-avatar{margin-top:var(--s2)}.profile-avatar-actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s3)}.profile-sync-btn{display:inline-flex;align-items:center}.profile-sync-btn svg{width:14px;height:14px;-webkit-margin-end:6px;margin-inline-end:6px}.profile-sync-btn .spin{animation:spin 1s linear infinite}.avatar-crop-overlay{align-items:center}.avatar-crop-modal{max-width:520px}.avatar-crop-body{align-items:center;gap:var(--s4)}.avatar-crop-stage{width:280px;height:280px;border-radius:var(--r-xl);background:var(--bg-0);position:relative;overflow:hidden;touch-action:none;cursor:-webkit-grab;cursor:grab;box-shadow:inset 0 0 0 1px var(--border),inset 0 0 0 999px rgba(0,0,0,.18)}.avatar-crop-stage:active{cursor:-webkit-grabbing;cursor:grabbing}.avatar-crop-frame{position:absolute;inset:0;border-radius:50%;overflow:hidden;box-shadow:0 0 0 999px rgba(0,0,0,.38),0 0 0 1px var(--accent-border);background:var(--bg-2)}.avatar-crop-frame img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;will-change:transform}.avatar-canvas-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;width:280px;min-height:86px;padding:12px;border:1px solid color-mix(in srgb,var(--border-strong) 72%,transparent);border-radius:var(--r-lg);background:color-mix(in srgb,var(--bg-1) 58%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bg-2) 65%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:default}.avatar-canvas-btn{position:relative;width:32px;height:32px;border-radius:var(--r-md);border-color:color-mix(in srgb,var(--border-strong) 62%,transparent);background:color-mix(in srgb,var(--bg-3) 42%,transparent);color:var(--text-1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.avatar-canvas-btn:hover{background:color-mix(in srgb,var(--accent) 13%,var(--bg-2));border-color:var(--accent-border);color:var(--accent)}.avatar-canvas-btn:disabled{opacity:.42;cursor:not-allowed}.avatar-canvas-btn svg{width:16px;height:16px}.avatar-canvas-btn.is-active{background:color-mix(in srgb,var(--accent) 22%,var(--bg-2));border-color:var(--accent-border);color:var(--accent)}.avatar-contrast-btn svg:first-child{width:15px;height:15px}.avatar-contrast-btn svg:last-child{position:absolute;inset-inline-end:5px;bottom:5px;width:9px;height:9px;stroke-width:3}.avatar-canvas-tools .themed-tip:after,.avatar-canvas-tools .themed-tip:before{top:auto;bottom:calc(100% + 8px)}.avatar-canvas-tools .themed-tip:before{bottom:calc(100% + 4px);transform:translate(-50%,3px) rotate(225deg)}.avatar-canvas-tools .themed-tip:after{transform:translate(-50%,3px)}.avatar-canvas-tools .themed-tip:focus-visible:before,.avatar-canvas-tools .themed-tip:hover:before{transform:translate(-50%) rotate(225deg)}.avatar-canvas-tools .themed-tip:focus-visible:after,.avatar-canvas-tools .themed-tip:hover:after{transform:translate(-50%)}.avatar-discard-overlay{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:var(--s6);background:rgba(4,7,12,.48);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.avatar-discard-modal{max-width:380px}.avatar-choice-picker{position:relative;flex:none}.avatar-choice-menu{position:absolute;top:calc(100% + 8px);inset-inline-start:0;z-index:20;min-width:190px}.avatar-choice-menu svg{width:16px;height:16px}.avatar-choice-trigger{position:relative;width:72px;height:72px;flex:none;border:0;background:transparent;padding:0;border-radius:var(--r-full);cursor:pointer}.avatar-choice-trigger:disabled{cursor:wait;opacity:.75}.avatar-choice-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.avatar-choice-preview{width:72px;height:72px;border-radius:var(--r-full);object-fit:cover;box-shadow:0 0 0 1px var(--border-strong);font-size:var(--fs-xl)}.avatar-choice-edit{position:absolute;inset-inline-end:-2px;bottom:-2px;width:26px;height:26px;border-radius:var(--r-full);display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg-2) 82%,transparent);color:var(--text-1);border:1px solid var(--border-strong);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:transform var(--dur-fast),background var(--dur-fast),color var(--dur-fast)}.avatar-choice-edit svg{width:14px;height:14px}.avatar-choice-trigger:hover .avatar-choice-edit{transform:scale(1.06);background:color-mix(in srgb,var(--accent) 14%,var(--bg-2));color:var(--accent)}@media(max-width:760px){.profile-avatar-row{grid-template-columns:1fr;justify-items:center;text-align:center}.profile-avatar-trigger{width:clamp(132px,44vw,168px)}.profile-avatar-copy{align-items:center}.profile-remove-avatar{align-self:center}}@media(max-width:560px){.avatar-canvas-tools,.avatar-crop-stage{width:min(280px,calc(100vw - 72px))}.avatar-canvas-tools{gap:5px;min-height:84px;padding:10px}.avatar-canvas-btn{width:31px;height:31px}}.avatar-choice-modal{max-width:560px}.avatar-picture-btn{width:-moz-fit-content;width:fit-content}.ntabs{display:flex;gap:2px;background:var(--bg-3);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:3px}.ntabs button{flex:1 1;border:none;background:none;color:var(--text-2);font-size:var(--fs-sm);font-weight:600;padding:7px 10px;border-radius:var(--r-sm);cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:var(--s3)}.ntabs button svg{width:15px;height:15px}.ntabs button.on{background:var(--bg-1);color:var(--accent);box-shadow:var(--shadow-sm)}.opt-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s5);gap:var(--s5)}.rowcard{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-2);padding:var(--s5);flex-direction:column}.rowcard,.rowcard .rc-top{display:flex;gap:var(--s4)}.rowcard .rc-top{align-items:center;justify-content:space-between}.rowcard dl{display:grid;grid-template-columns:auto 1fr;grid-gap:3px var(--s5);gap:3px var(--s5);font-size:var(--fs-xs);margin:0}.rowcard dt{color:var(--text-3)}.rowcard dd{margin:0;color:var(--text-2);text-align:end}.dir{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);font-weight:600;line-height:1;padding:4px 9px;border-radius:var(--r-full);border:1px solid transparent;white-space:nowrap}.dir svg{width:12px;height:12px}.dir-out{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.dir-in{background:var(--info-soft);color:var(--info);border-color:var(--info)}.filter-in .rowcard.d-out,.filter-in tr.d-out,.filter-out .rowcard.d-in,.filter-out tr.d-in,.mcards,.mob-tab{display:none}@media(max-width:820px){.app{grid-template-columns:1fr}.side{display:none}.content{padding:var(--s6);padding-bottom:calc(var(--s12) + var(--s8))}.mob-tab{display:flex;align-items:center;justify-content:space-around;position:fixed;bottom:0;inset-inline-start:0;inset-inline-end:0;border-top:1px solid var(--border);background:var(--bg-0);padding:var(--s4) 0;z-index:30}.mob-tab a,.mob-tab button{border:none;background:none;color:var(--text-3);display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;cursor:pointer;font-family:inherit;text-decoration:none}.mob-tab a svg,.mob-tab button svg{width:20px;height:20px}.mob-tab a.loading,.mob-tab a.on,.mob-tab button.on{color:var(--accent)}.mob-tab a.loading svg{animation:pulse .8s ease-in-out infinite}}@media(max-width:640px){.g2-1,.g3,.g4{grid-template-columns:1fr}.desk-only{display:none!important}.mcards{display:flex;flex-direction:column;gap:var(--s5)}.opt-grid{grid-template-columns:1fr}}.load-screen{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:var(--bg-0)}.load-ring{width:46px;height:46px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:loadspin .8s linear infinite}.load-screen p{margin:0;color:var(--text-2);font-family:var(--font-mono);font-size:.82rem;letter-spacing:.04em}.nf{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;background:var(--bg-0);padding:24px}.nf-code{font-family:var(--font-mono);font-size:clamp(3.5rem,14vw,6rem);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--accent);text-shadow:0 0 40px color-mix(in srgb,var(--accent) 40%,transparent);animation:nffloat 3s ease-in-out infinite}.nf h1{margin:6px 0 0;font-size:1.35rem;font-weight:700;color:var(--text-1)}.nf p{margin:0;color:var(--text-2);max-width:40ch;line-height:1.5}.nf .btn{margin-top:10px}@keyframes loadspin{to{transform:rotate(1turn)}}@keyframes routebar{0%{transform:translateX(-120%)}55%{transform:translateX(95%)}to{transform:translateX(260%)}}@keyframes nffloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media(prefers-reduced-motion:reduce){.icon-btn.loading:after,.load-ring,.mob-tab a.loading svg,.nav-spin,.nf-code,.route-loading .route-progress span{animation:none}}.thread{display:flex;flex-direction:column;gap:var(--s2)}.msg-row{display:flex;gap:var(--s4);align-items:flex-end;max-width:100%}.msg-row.me{flex-direction:row-reverse}.msg-av{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:10px;letter-spacing:.02em;flex:none;border:1px solid var(--border);background:var(--bg-3);color:var(--text-2);align-self:flex-end}.msg-row.me .msg-av{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border)}.msg-av.spacer{visibility:hidden}.msg-col{display:flex;flex-direction:column;gap:var(--s2);min-width:0;max-width:min(86%,560px)}.msg-row.me .msg-col{align-items:flex-end}.msg-meta{display:flex;gap:var(--s3);align-items:baseline;font-size:var(--fs-xs);padding:0 var(--s2)}.msg-meta .who{font-weight:600;color:var(--text-1)}.msg-meta .when{color:var(--text-3)}.msg-bubble{background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r-lg);border-end-start-radius:var(--r-sm);padding:var(--s4) var(--s5);font-size:var(--fs-sm);line-height:1.6;color:var(--text-1);box-shadow:var(--shadow-sm);word-break:break-word;overflow-wrap:anywhere}.msg-row.me .msg-bubble{background:var(--accent-soft);border-color:var(--accent-border);border-end-start-radius:var(--r-lg);border-end-end-radius:var(--r-sm)}.msg-bubble>p{margin:0;white-space:pre-wrap}.msg-grouped{margin-top:calc(-1 * var(--s1,2px))}.msg-sys{display:flex;align-items:center;gap:var(--s4);margin:var(--s3) 0;color:var(--text-3);font-size:var(--fs-xs)}.msg-sys:after,.msg-sys:before{content:"";flex:1 1;height:1px;background:var(--border)}.msg-sys-txt{white-space:nowrap;max-width:75%;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:var(--s2)}@keyframes msgIn{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.msg-anim{animation:msgIn var(--dur-slow) cubic-bezier(.2,.7,.3,1) both}.msg-sending{opacity:.72}.msg-sending .msg-bubble{position:relative;overflow:hidden}.msg-sending .msg-bubble:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 20%,rgba(127,127,127,.14),transparent 80%);background-size:220% 100%;animation:shimmer 1.25s ease infinite}.msg-spin{display:inline-block;width:11px;height:11px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;vertical-align:-1px}.thread-skel{display:flex;flex-direction:column;gap:var(--s5)}.skel-row{display:flex;gap:var(--s4);align-items:flex-end}.skel-row.me{flex-direction:row-reverse}.skel-av{width:30px;height:30px;border-radius:50%;flex:none}.skel-bub{border-radius:var(--r-lg)}.composer{position:-webkit-sticky;position:sticky;bottom:0;z-index:1;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:var(--s2);padding:var(--s3);transition:border-color var(--dur-fast)}.composer:focus-within{border-color:var(--accent-border)}.composer-text{border:none;background:transparent;resize:none;color:var(--text-1);font-family:var(--font-sans);font-size:var(--fs-sm);line-height:1.55;padding:var(--s3) var(--s3) 0;max-height:200px;min-height:2.6em;width:100%}.composer-text:focus{outline:none}.composer-bar{justify-content:space-between;gap:var(--s3);padding:0 var(--s2) var(--s1,2px)}.composer-bar,.composer-tools{display:flex;align-items:center}.composer-tools{gap:var(--s2);min-width:0;flex-wrap:wrap}.composer-hint{font-size:var(--fs-xs);color:var(--text-3)}.send-btn svg{transition:transform var(--dur-fast)}.send-btn:not([disabled]):active svg{transform:translateX(2px)}@media(prefers-reduced-motion:reduce){.msg-anim,.msg-sending .msg-bubble:after,.msg-spin{animation:none}.send-btn svg{transition:none}}.attach-wrap{display:inline-flex}.attach-trigger,.attach-wrap{position:relative}.attach-trigger.is-open{background:var(--bg-hover);color:var(--text-1);border-color:var(--accent-border)}.attach-count{position:absolute;top:-5px;inset-inline-end:-5px;min-width:15px;height:15px;padding:0 3px;border-radius:var(--r-full);background:var(--accent);color:var(--on-accent);font-size:9px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1}.attach-pop{position:absolute;bottom:calc(100% + 8px);inset-inline-start:0;width:min(340px,80vw);background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:30;overflow:hidden}.attach-pop-head{padding:var(--s3);border-bottom:1px solid var(--border)}.attach-pop-list{max-height:280px;overflow:auto;padding:var(--s2)}.attach-pop-row{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s3);border-radius:var(--r-sm);cursor:pointer}.attach-pop-row:hover{background:var(--bg-3)}.composer-chips{display:flex;flex-wrap:wrap;gap:var(--s2);padding:0 var(--s2) 2px;align-items:center}.attach-chip{display:inline-flex;align-items:center;gap:6px;max-width:220px;padding:3px 6px 3px 8px;border:1px solid var(--border-strong);border-radius:var(--r-full);background:var(--bg-3);color:var(--text-2);font-size:var(--fs-xs);line-height:1}.attach-chip svg{width:12px;height:12px;flex:none;opacity:.75}.attach-chip.act{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.attach-chip .chip-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip-x{border:none;background:none;color:inherit;cursor:pointer;font-size:14px;line-height:1;padding:0 2px;opacity:.7}.chip-x:hover{opacity:1}.attach-chip.attach-view{cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.attach-chip.attach-view:hover{background:var(--bg-hover);color:var(--text-1)}.attach-err{font-size:var(--fs-xs);color:var(--danger)}.att-grid{display:flex;flex-direction:column;gap:var(--s3)}.att-card{gap:var(--s4);padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-3)}.att-card,.att-preview{display:flex;align-items:center}.att-preview{width:48px;height:48px;flex:none;border-radius:var(--r-sm);overflow:hidden;justify-content:center;background:var(--bg-1);border:1px solid var(--border)}.att-thumb{width:100%;height:100%;object-fit:cover}.att-glyph{color:var(--text-3)}.att-glyph svg{width:22px;height:22px}.att-meta{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.att-name{font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att-dl{flex:none}.dlmap-body{display:grid;grid-template-columns:1fr 264px}.dlmap-canvas{position:relative;padding:var(--s6);-webkit-border-end:1px solid var(--border);border-inline-end:1px solid var(--border);min-width:0;display:flex;align-items:center;justify-content:center}.dlmap-svg{width:100%;height:auto;max-height:400px;display:block}.dlmap-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm)}.dlmap-list{padding:var(--s6);display:flex;flex-direction:column;gap:var(--s2)}.dlmap-legend{display:flex;gap:var(--s5);font-size:var(--fs-xs);color:var(--text-2)}.dlmap-legend .lg{display:inline-flex;align-items:center;gap:6px}.dlmap-legend .lg i{width:8px;height:8px;border-radius:50%;flex:none}.dlmap-legend .lg-v i{background:var(--info)}.dlmap-legend .lg-d i{background:var(--success)}.dlmap-totals{display:flex;gap:var(--s7);margin:var(--s3) 0 var(--s4)}.dlmap-totals .tt{display:flex;flex-direction:column}.dlmap-totals .v{font-size:var(--fs-xl);font-weight:700;letter-spacing:-.01em}.c-v{color:var(--info)}.c-d{color:var(--success)}.dlim{width:100%;max-width:540px;text-align:start}.dlim-title{margin:0 0 var(--s3);font-size:var(--fs-xl);font-weight:700}.dlim-sub{margin:0 0 var(--s5);font-size:var(--fs-sm)}.dlim-quick{width:100%}.dlim-group,.dlim-quick{margin-bottom:var(--s6)}.dlim-head{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);margin-bottom:var(--s3)}.dlim-head .muted{font-weight:400;text-transform:none;letter-spacing:0}.dlim-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding:var(--s4) var(--s5);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-1);margin-bottom:var(--s3)}.dlim-info{display:flex;flex-direction:column;gap:2px;min-width:0}.dlim-name{font-size:var(--fs-sm);font-weight:600}.dlim-meta,.dlim-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dlim-meta{font-size:var(--fs-xs)}.dlim-foot{display:flex;justify-content:flex-end;border-top:1px solid var(--border);padding-top:var(--s5)}.dlmap-row{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"flag nm cts" "flag bars bars";grid-column-gap:var(--s3);column-gap:var(--s3);grid-row-gap:4px;row-gap:4px;align-items:center;padding:var(--s2) var(--s3);border-radius:var(--r-sm);transition:background var(--dur-fast)}.dlmap-row.on{background:var(--bg-3)}.dlmap-row .flag{grid-area:flag;font-size:15px;line-height:1}.dlmap-row .nm{grid-area:nm;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dlmap-row .cts{grid-area:cts;display:inline-flex;gap:var(--s3);font-size:var(--fs-xs);font-weight:700}.dlmap-row .bars{grid-area:bars;display:flex;flex-direction:column;gap:2px}.dlmap-row .bar{height:3px;border-radius:var(--r-full);background:var(--bg-3);overflow:hidden}.dlmap-row.on .bar{background:var(--bg-1)}.dlmap-row .bar>span{display:block;height:100%;border-radius:var(--r-full)}.dlmap-row .bar-v>span{background:var(--info)}.dlmap-row .bar-d>span{background:var(--success)}@media(max-width:720px){.dlmap-body{grid-template-columns:1fr}.dlmap-canvas{-webkit-border-end:none;border-inline-end:none;border-bottom:1px solid var(--border)}}.side-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.side-top .brand{padding:var(--s3) var(--s4)}.nav-toggle{flex:none}.app.nav-collapsed{grid-template-columns:66px 1fr}.nav-collapsed .side{padding:var(--s6) var(--s3)}.nav-collapsed .brand b,.nav-collapsed .nav-badge,.nav-collapsed .nav-group,.nav-collapsed .nav-label,.nav-collapsed .nav-lock{display:none}.nav-collapsed .side-top{flex-direction:column;gap:var(--s4)}.nav-collapsed .brand{justify-content:center;padding:var(--s3) 0}.nav-collapsed .nav-item{justify-content:center;padding:var(--s4) 0}.nav-item{position:relative}.nav-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-badge{font-size:11px;font-weight:600;font-family:var(--font-mono);background:var(--bg-3);border-radius:var(--r-full);padding:1px 7px}.nav-badge,.nav-lock{color:var(--text-3);flex:none}.nav-lock{-webkit-margin-start:auto;margin-inline-start:auto;display:inline-flex}.nav-lock svg{width:14px;height:14px}.nav-badge.alert,.nav-item.active .nav-badge{color:var(--accent);background:var(--accent-soft)}.nav-dot{display:none;position:absolute;top:5px;inset-inline-end:9px;width:7px;height:7px;border-radius:50%;background:var(--accent);border:1.5px solid var(--bg-0)}.nav-item.loading{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent)}.nav-spin{position:absolute;inset-inline-end:9px;top:50%;width:12px;height:12px;margin-top:-6px;border:2px solid color-mix(in srgb,var(--accent) 22%,transparent);border-top-color:var(--accent);border-radius:50%;animation:spin .72s linear infinite}.nav-item.loading .nav-badge{opacity:0}.nav-collapsed .nav-dot{display:block}.nav-collapsed .nav-spin{inset-inline-end:50%;-webkit-margin-end:-6px;margin-inline-end:-6px}.topbar-right{display:flex;align-items:center;gap:var(--s4)}.themed-tip{position:relative}.themed-tip:after,.themed-tip:before{opacity:0;pointer-events:none;position:absolute;left:50%;transition:opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);z-index:80}.themed-tip:before{content:"";top:calc(100% + 4px);width:8px;height:8px;background:var(--bg-2);-webkit-border-start:1px solid var(--border-strong);border-inline-start:1px solid var(--border-strong);border-top:1px solid var(--border-strong);transform:translate(-50%,-3px) rotate(45deg)}.themed-tip:after{content:attr(data-tooltip);top:calc(100% + 8px);min-width:max-content;max-width:220px;padding:5px 8px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--bg-2);box-shadow:var(--shadow-md);color:var(--text-1);font-size:var(--fs-xs);font-weight:600;line-height:1.2;text-align:center;white-space:nowrap;transform:translate(-50%,-3px)}.themed-tip:focus-visible:after,.themed-tip:focus-visible:before,.themed-tip:hover:after,.themed-tip:hover:before{opacity:1;transform:translate(-50%) rotate(45deg)}.themed-tip:focus-visible:after,.themed-tip:hover:after{transform:translate(-50%)}.side-top .themed-tip:after,.side-top .themed-tip:before{inset-inline-start:auto;inset-inline-end:0}.side-top .themed-tip:before{transform:translateY(-3px) rotate(45deg)}.side-top .themed-tip:after{transform:translateY(-3px)}.side-top .themed-tip:focus-visible:before,.side-top .themed-tip:hover:before{transform:translateY(0) rotate(45deg)}.side-top .themed-tip:focus-visible:after,.side-top .themed-tip:hover:after{transform:translateY(0)}.bell-btn,.td-wrap{position:relative}.bell-dot{position:absolute;top:-3px;inset-inline-end:-3px;min-width:15px;height:15px;padding:0 3px;border-radius:var(--r-full);background:var(--accent);color:var(--on-accent);font-size:9px;font-weight:700;justify-content:center;line-height:1}.bell-dot,.usermenu-btn{display:inline-flex;align-items:center}.usermenu-btn{gap:var(--s3);padding:4px 8px 4px 4px;border:1px solid var(--border-strong);background:var(--bg-2);border-radius:var(--r-full);cursor:pointer;color:var(--text-1);max-width:210px}.usermenu-btn:hover{background:var(--bg-3)}.avatar-sm{width:26px;height:26px;font-size:11px}.um-name{font-size:var(--fs-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.um-chev{display:inline-flex}.um-chev svg{width:14px;height:14px;color:var(--text-3)}.dropdown{position:absolute;top:calc(100% + 8px);inset-inline-end:0;background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:40;min-width:260px;overflow:hidden}.dd-head{display:flex;align-items:center;justify-content:space-between;padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);font-size:var(--fs-sm);font-weight:600}.dd-link{font-size:var(--fs-xs);color:var(--accent)}.dd-body{max-height:360px;overflow:auto;padding:var(--s2)}.dd-empty{padding:var(--s6);text-align:center;font-size:var(--fs-sm)}.notif-dd{width:340px}.notif-row{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s3);border-radius:var(--r-sm)}.notif-ico,.notif-row:hover{background:var(--bg-3)}.notif-ico{width:26px;height:26px;flex:none;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--text-2)}.notif-ico svg{width:15px;height:15px}.notif-t{font-size:var(--fs-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-m{font-size:11px;color:var(--text-3)}.notif-row.unread{background:var(--bg-3)}.notif-row.unread .notif-ico{background:var(--accent);color:var(--on-accent)}.notif-row.unread .notif-t{font-weight:700}.notif-trust{margin-top:var(--s2)}.lang-dd{min-width:170px;padding:var(--s2)}.lang-dd .dd-item{width:100%;justify-content:flex-start;font-weight:500}.lang-dd .dd-item.on{color:var(--accent);font-weight:700}.user-dd{width:266px;padding:var(--s2)}.dd-user{display:flex;gap:var(--s3);align-items:center;padding:var(--s3) var(--s3) var(--s4);border-bottom:1px solid var(--border);margin-bottom:var(--s2)}.um-fullname{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-item,.um-fullname{font-size:var(--fs-sm)}.dd-item{display:flex;align-items:center;gap:var(--s4);width:100%;padding:var(--s3) var(--s4);border-radius:var(--r-sm);color:var(--text-1);background:none;border:none;cursor:pointer;font-family:inherit;text-align:start;text-decoration:none}.dd-item svg{width:16px;height:16px;flex:none;color:var(--text-3)}.dd-item:hover{background:var(--bg-3)}.dd-item.danger,.dd-item.danger svg{color:var(--danger)}.dd-item.is-disabled{opacity:.5;cursor:not-allowed}.dd-tag{-webkit-margin-start:auto;margin-inline-start:auto;font-size:10px;color:var(--text-3);background:var(--bg-3);border-radius:var(--r-full);padding:1px 7px;text-transform:capitalize}.dd-tag.soon{color:var(--accent);background:var(--accent-soft)}.dd-sep{height:1px;background:var(--border);margin:var(--s2) 0}@media(max-width:820px){.um-name{display:none}.app.nav-collapsed{grid-template-columns:1fr}}.dd-subtabs{display:flex;gap:2px;padding:0 var(--s3);border-bottom:1px solid var(--border)}.dd-subtabs button{flex:1 1;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-2);font-family:inherit;font-size:var(--fs-sm);font-weight:600;padding:var(--s3) var(--s2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--s2)}.dd-subtabs button:hover{color:var(--text-1)}.dd-subtabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.dd-count{min-width:16px;height:16px;padding:0 4px;border-radius:var(--r-full);background:var(--accent);color:var(--on-accent);font-size:9px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.dd-foot-link{display:block;text-align:center;padding:var(--s3);font-size:var(--fs-xs);color:var(--accent);border-top:1px solid var(--border);margin-top:var(--s2)}.dd-foot-link:hover{background:var(--bg-3)}.side-bottom{margin-top:auto;padding-top:var(--s5);border-top:1px solid var(--border)}.nav-collapsed .side-bottom .nav-item{justify-content:center;padding:var(--s4) 0}.onboarding-overlay{z-index:200;align-items:flex-start;padding:max(24px,5vh) 16px}.onboarding-modal{max-width:640px;width:100%;display:flex;flex-direction:column;max-height:90vh}.onboarding-modal .modal-head{flex-direction:column;align-items:stretch;gap:var(--s3)}.onboarding-modal .modal-head h2{margin:0;font-size:var(--fs-xl);font-weight:700;line-height:1.25}.onboarding-modal .onb-lang{margin-top:0!important}.onb-steps{display:flex;gap:var(--s3);padding:var(--s4) var(--s6) 0;font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--text-3)}.onb-steps span{padding:2px 8px;border-radius:var(--r-full);border:1px solid var(--border)}.onb-steps span.on{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.onb-steps span.done{color:var(--accent);border-color:var(--accent)}.onb-legal-tabs{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s4)}.onb-legal-tabs button{padding:6px 12px;font-size:var(--fs-sm);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-3);color:var(--text-2);cursor:pointer}.onb-legal-tabs button.active{background:color-mix(in srgb,var(--accent) 16%,transparent);border-color:var(--accent);color:var(--text-1)}.onb-download{-webkit-margin-start:auto;margin-inline-start:auto;font-size:var(--fs-xs);color:var(--accent);cursor:pointer}.onb-legal-scroll{max-height:38vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s5);background:var(--bg-1)}.onb-legal-scroll .md h2{font-size:var(--fs-md);margin:var(--s5) 0 var(--s2)}.onb-legal-scroll .md h3,.onb-legal-scroll .md h4{font-size:var(--fs-sm);margin:var(--s4) 0 var(--s2)}.onb-legal-scroll .md p{font-size:var(--fs-sm);color:var(--text-2);line-height:1.6;margin:0 0 var(--s3)}.onb-legal-scroll .md ul{margin:0 0 var(--s3) var(--s5);display:flex;flex-direction:column;gap:4px}.onb-legal-scroll .md li{font-size:var(--fs-sm);color:var(--text-2);line-height:1.5;list-style:disc}.onb-legal-scroll .md blockquote{-webkit-border-start:3px solid var(--border-strong);border-inline-start:3px solid var(--border-strong);-webkit-padding-start:var(--s4);padding-inline-start:var(--s4);color:var(--text-3);margin:0 0 var(--s3)}.onb-legal-scroll .md a{color:var(--accent)}.onb-legal-scroll .md hr{border:none;border-top:1px solid var(--border);margin:var(--s4) 0}.onb-agree{display:flex;align-items:flex-start;gap:var(--s3);margin-top:var(--s5);font-size:var(--fs-sm);color:var(--text-1);cursor:pointer}.onb-agree input{margin-top:3px;flex:none}.onb-agree a{color:var(--accent)}.onb-avatars{display:flex;flex-wrap:wrap;gap:var(--s3)}.onb-avatars button{width:44px;height:44px;padding:0;border-radius:var(--r-full);border:2px solid transparent;background:var(--bg-3);cursor:pointer;overflow:hidden;display:inline-flex;align-items:center;justify-content:center}.onb-avatars button img{width:40px;height:40px;border-radius:var(--r-full);object-fit:cover}.onb-avatars button.on{border-color:var(--accent)}.onb-avatars .onb-google-photo{border-color:var(--accent-border);box-shadow:0 0 0 2px var(--accent-soft)}.onb-avatars .onb-google-photo.on{border-color:var(--accent)}.onb-avatars .onb-upload{font-size:20px;color:var(--text-2);border:2px dashed var(--border-strong)}.onb-avatars .onb-upload:hover{color:var(--accent);border-color:var(--accent)}.tour-blocker,.tour-root{position:fixed;inset:0;z-index:300}.tour-blocker{cursor:default}.tour-dim{inset:0;background:rgba(0,0,0,.55)}.tour-dim,.tour-spotlight{position:fixed;z-index:301;pointer-events:none}.tour-spotlight{border-radius:var(--r-md);box-shadow:0 0 0 9999px rgba(0,0,0,.55),0 0 0 2px var(--accent);transition:top .2s var(--ease),left .2s var(--ease),width .2s var(--ease),height .2s var(--ease)}.tour-tip{position:fixed;z-index:302;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:var(--s6);max-width:320px}.tour-tip-step{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);margin-bottom:var(--s2)}.tour-tip h3{margin:0 0 var(--s2);font-size:var(--fs-md)}.tour-tip p{margin:0 0 var(--s5);font-size:var(--fs-sm);color:var(--text-2);line-height:1.55}.tour-tip-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}[dir=rtl] .dd-item.danger svg{transform:scaleX(-1)}