:root{--navy-950:#071330;--navy-900:#0b1d47;--navy-800:#102a63;--blue-700:#1d46b8;--blue-600:#2459e0;--blue-500:#3b74f6;--orange-500:#f46a12;--accent:#f46a12;--accent-rgb:244 106 18;--accent-contrast:#fff;--card-alpha:.7;--blur:22px;--r:22px;--font-scale:1;--bg-dim:.35;--bg-blur:0px;--radius-xs:calc(var(--r) * .36);--radius-sm:calc(var(--r) * .5);--radius:calc(var(--r) * .72);--radius-lg:var(--r);--radius-xl:calc(var(--r) * 1.3);--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Consolas, monospace;--ease:cubic-bezier(.2, .8, .2, 1);--spring:cubic-bezier(.34, 1.4, .64, 1);--nav-h:66px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#eef1f7;--bg-tint-1:rgb(var(--accent-rgb) / .13);--bg-tint-2:#2459e01f;--surface-rgb:255 255 255;--surface-solid:#fff;--surface-2:#1020480d;--surface-3:#10204817;--border:#10204814;--border-strong:#10204829;--glass-border:#ffffffb3;--glass-hi:#ffffffd9;--text:#0e1a3a;--text-2:#3a4870;--muted:#6d7895;--primary:#1d46b8;--primary-soft:#2459e017;--shadow:0 1px 1px #0e1a3a08, 0 6px 24px #0e1a3a12;--shadow-lg:0 24px 64px #0e1a3a2e;--danger:#d6353a;--danger-soft:#d6353a1a;--warning:#a76400;--warning-soft:#e6961424;--success:#138a5b;--success-soft:#138a5b1c;--navy-grad:linear-gradient(155deg, #19388a 0%, #0b1d47 58%, #081537 100%);--skeleton:#10204812;--seg-track:#76768024;--road:#e3e8f2;--road-edge:#10204821;--road-lane:rgb(var(--accent-rgb) / .4);--th-bg:#0b1d47}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#050a1c;--bg-tint-1:rgb(var(--accent-rgb) / .12);--bg-tint-2:#3b74f629;--surface-rgb:20 29 58;--surface-solid:#121b38;--surface-2:#ffffff0f;--surface-3:#ffffff1a;--border:#ffffff14;--border-strong:#ffffff26;--glass-border:#ffffff1a;--glass-hi:#ffffff1a;--text:#eef2ff;--text-2:#c2cbe6;--muted:#8892b3;--primary:#85a8ff;--primary-soft:#85a8ff21;--shadow:0 1px 1px #00000040, 0 10px 30px #00000059;--shadow-lg:0 24px 70px #0009;--danger:#ff7a7a;--danger-soft:#ff7a7a21;--warning:#ffc15c;--warning-soft:#ffc15c21;--success:#45d69e;--success-soft:#45d69e1f;--navy-grad:linear-gradient(155deg, #142c6e 0%, #0a1940 58%, #050c24 100%);--skeleton:#ffffff12;--seg-track:#7676803d;--road:#0d1530;--road-edge:#ffffff14;--road-lane:rgb(var(--accent-rgb) / .32);--th-bg:#13245a}*{box-sizing:border-box}html{font-size:calc(16px * var(--font-scale));-webkit-text-size-adjust:100%}html,body{min-height:100%;margin:0;padding:0}body{font-family:var(--font);letter-spacing:-.005em;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;transition:background-color .3s var(--ease), color .3s var(--ease);font-size:.9375rem;line-height:1.45;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}h1,h2,h3,h4,p{margin:0}code{font-family:var(--font-mono);font-size:.92em}:focus-visible{outline:2px solid rgb(var(--accent-rgb) / .75);outline-offset:2px}::selection{background:rgb(var(--accent-rgb) / .25)}.page-bg{z-index:-1;pointer-events:none;background:radial-gradient(70vmax 55vmax at 0% 0%, var(--bg-tint-2), transparent 62%), radial-gradient(60vmax 50vmax at 100% 100%, var(--bg-tint-1), transparent 62%), var(--bg);position:fixed;inset:0;overflow:hidden}.page-photo{inset:calc(var(--bg-blur) * -2);background:var(--user-bg,none) center / cover no-repeat;filter:blur(var(--bg-blur));display:none;position:absolute}.page-photo:after{content:"";background:var(--bg);opacity:var(--bg-dim);position:absolute;inset:0}:root[data-backdrop=image] .page-photo{display:block}:root[data-backdrop=image] .road-backdrop,:root[data-backdrop=plain] .road-backdrop{display:none}.road-backdrop{width:100%;height:100%;position:absolute;inset:0}.road-backdrop path{fill:none;stroke-linecap:round}.road-edge{stroke:var(--road-edge)}.road-surface{stroke:var(--road)}.road-lane{stroke:var(--road-lane);stroke-linecap:butt!important}.road-far{opacity:.55}.lane-divider{background:repeating-linear-gradient(90deg, rgb(var(--accent-rgb) / .55) 0 14px, transparent 14px 26px);opacity:.8;border-radius:2px;height:2px;-webkit-mask:linear-gradient(90deg,#0000,#000 18% 82%,#0000);mask:linear-gradient(90deg,#0000,#000 18% 82%,#0000)}.glass{background:rgb(var(--surface-rgb) / var(--card-alpha));-webkit-backdrop-filter:blur(var(--blur)) saturate(1.8);backdrop-filter:blur(var(--blur)) saturate(1.8);border:1px solid var(--glass-border);box-shadow:var(--shadow), inset 0 1px 0 var(--glass-hi)}.card{border-radius:var(--radius-lg);padding:16px}.btn{--btn-bg:var(--surface-2);--btn-fg:var(--text);border-radius:var(--radius);background:var(--btn-bg);min-height:42px;color:var(--btn-fg);cursor:pointer;white-space:nowrap;transition:background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), opacity .2s var(--ease), transform .2s var(--spring);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.875rem;font-weight:600;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{--btn-bg:var(--accent);--btn-fg:var(--accent-contrast);box-shadow:0 6px 18px rgb(var(--accent-rgb) / .28), inset 0 1px 0 #ffffff40}.btn-primary:hover:not(:disabled){background:rgb(var(--accent-rgb) / .88)}.btn-blue{--btn-bg:var(--blue-600);--btn-fg:#fff}.btn-blue:hover:not(:disabled){background:var(--blue-700)}.btn-ghost{--btn-bg:transparent}.btn-danger{--btn-fg:var(--danger);--btn-bg:var(--danger-soft)}.btn-danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn-block{width:100%}.btn-sm{border-radius:var(--radius-sm);min-height:34px;padding:0 12px;font-size:.8125rem}.btn-lg{border-radius:var(--radius);min-height:52px;font-size:1rem}.btn-icon{width:40px;min-height:40px;padding:0}.btn-sm.btn-icon{width:34px;min-height:34px}.danger-text{color:var(--danger)!important}.icon-btn{background:var(--surface-2);width:32px;height:32px;color:var(--text-2);cursor:pointer;transition:background-color .2s var(--ease), transform .2s var(--spring);border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.icon-btn:active{transform:scale(.92)}.round-btn,.corner-btn{cursor:pointer;border:1px solid var(--hdr-line,var(--border));background:var(--hdr-tint,var(--surface-2));color:inherit;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background-color .2s var(--ease), transform .2s var(--spring);border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid}.round-btn{width:40px;height:40px}.corner-btn{opacity:.85;width:32px;height:32px}.round-btn:hover,.corner-btn:hover{background:var(--hdr-tint-strong,var(--surface-3));opacity:1}.round-btn:active,.corner-btn:active{transform:scale(.9)}.round-btn[data-spin] svg{animation:.9s linear infinite spin}.corner-btn.on-dark{--hdr-tint:#ffffff1f;--hdr-tint-strong:#fff3;--hdr-line:#ffffff29;color:#fff}.field{flex-direction:column;gap:7px;display:flex}.field-label{color:var(--text-2);font-size:.8125rem;font-weight:600}.field-hint{color:var(--muted);font-size:.75rem}.center{text-align:center}.input{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);appearance:none;width:100%;min-height:46px;transition:border-color .2s var(--ease), box-shadow .2s var(--ease), background-color .2s var(--ease);outline:none;padding:0 14px;font-size:max(16px,.9375rem)}.input::placeholder{color:var(--muted)}.input:focus{border-color:rgb(var(--accent-rgb) / .7);background:rgb(var(--surface-rgb) / .9);box-shadow:0 0 0 4px rgb(var(--accent-rgb) / .14)}.input.mono,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.key-input{letter-spacing:.14em;text-transform:uppercase;font-weight:600}.input-time{font-variant-numeric:tabular-nums;width:112px;min-height:38px;padding:0 10px}.input-wrap{display:block;position:relative}.input-wrap>svg,.input-wrap>.hash{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:13px;transform:translateY(-50%)}.input-wrap>.hash{font-family:var(--font-mono);font-weight:600}.input-wrap>.input{padding-left:40px}.input-wrap>.hash+.input{padding-left:28px}.dropdown{min-width:0;position:relative}.dropdown-trigger{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);cursor:pointer;text-align:left;width:100%;min-height:44px;transition:border-color .2s var(--ease), background-color .2s var(--ease);justify-content:space-between;align-items:center;gap:8px;padding:0 12px 0 14px;display:flex}.dropdown-trigger:hover{border-color:rgb(var(--accent-rgb) / .5)}.dropdown-trigger .value{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.dropdown-menu{z-index:60;overscroll-behavior:contain;border-radius:var(--radius);background:var(--surface-solid);border:1px solid var(--border-strong);max-height:min(320px,50vh);box-shadow:var(--shadow-lg);animation:pop .18s var(--ease);padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto}.dropdown-search{background:var(--surface-solid);border-bottom:1px solid var(--border);margin:-6px -6px 6px;padding:6px;position:sticky;top:-6px}.dropdown-search .input{min-height:38px}.dropdown-item{border-radius:var(--radius-sm);text-align:left;cursor:pointer;width:100%;transition:background-color .15s var(--ease);background:0 0;border:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.dropdown-item:hover,.dropdown-item[data-active=true]{background:var(--surface-2)}.dropdown-item[aria-selected=true]{color:var(--accent);font-weight:700}.dropdown-empty{text-align:center;color:var(--muted);padding:14px;font-size:.8125rem}.logo{background:#fff;border-radius:28%;flex:none;justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #1020480f,0 6px 18px #0713302e}.logo img{object-fit:contain;width:100%;height:100%}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:18px;height:18px;animation:.7s linear infinite spin}.skeleton{background:var(--skeleton);border-radius:var(--radius);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff59,#0000);animation:1.3s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}:root[data-theme=dark] .skeleton:after{background:linear-gradient(90deg,#0000,#ffffff0f,#0000)}.state{text-align:center;border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:10px;padding:32px 20px;display:flex}.state-icon{background:var(--primary-soft);width:60px;height:60px;color:var(--primary);border-radius:50%;place-items:center;margin-bottom:4px;display:grid}.state-icon.danger{background:var(--danger-soft);color:var(--danger)}.state-icon.accent{background:rgb(var(--accent-rgb) / .12);color:var(--accent)}.state-title{font-size:1.0625rem;font-weight:700}.state-text{color:var(--muted);max-width:340px}.badge{background:var(--primary-soft);color:var(--primary);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-accent{background:rgb(var(--accent-rgb) / .14);color:var(--accent)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-muted{background:var(--surface-2);color:var(--muted)}.tabs{border-radius:calc(var(--radius) + 3px);background:var(--seg-track);scrollbar-width:none;gap:2px;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{border-radius:var(--radius);color:var(--muted);cursor:pointer;transition:background-color .2s var(--ease), color .2s var(--ease);background:0 0;border:0;flex:none;padding:7px 14px;font-size:.875rem;font-weight:600}.tab:hover{color:var(--text)}.tab[aria-selected=true]{background:var(--surface-solid);color:var(--text);box-shadow:0 1px 4px #0000001a}.tab .count{color:var(--muted);margin-left:6px;font-size:.75rem}.seg{border-radius:calc(var(--radius) + 3px);background:var(--seg-track);grid-template-columns:repeat(3,1fr);gap:2px;padding:3px;display:grid}.seg button{border-radius:var(--radius);min-height:36px;color:var(--muted);cursor:pointer;text-align:center;transition:background-color .25s var(--ease), color .2s var(--ease), box-shadow .25s var(--ease);background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:6px 8px;font-size:.8125rem;font-weight:600;display:flex}.seg button:hover{color:var(--text)}.seg button[aria-pressed=true],.seg button[aria-selected=true]{background:var(--surface-solid);color:var(--text);box-shadow:0 1px 2px #0000000f,0 3px 10px #00000014}.seg button[aria-pressed=true] svg,.seg button[aria-selected=true] svg{color:var(--accent)}:root[data-theme=dark] .seg button[aria-pressed=true],:root[data-theme=dark] .seg button[aria-selected=true]{background:#ffffff24}.seg-lg{grid-template-columns:repeat(2,1fr)}.seg-lg button{min-height:42px;font-size:.875rem}.modal-backdrop,.sheet-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade .2s var(--ease);background:#03081852;position:fixed;inset:0}.modal-backdrop{place-items:center;padding:16px;display:grid}.modal{border-radius:var(--radius-xl);background:var(--surface-solid);border:1px solid var(--border);width:min(520px,100%);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-lg);animation:pop .24s var(--spring);overflow:auto}.modal-head{justify-content:space-between;align-items:center;gap:12px;padding:18px 20px 12px;display:flex}.modal-title{font-size:1.125rem;font-weight:700}.modal-body{padding:4px 20px 16px}.modal-foot{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:10px 20px 18px;display:flex}.sheet-backdrop{z-index:110;justify-content:center;align-items:flex-end;display:flex}.sheet{border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:rgb(var(--surface-rgb) / .9);-webkit-backdrop-filter:blur(30px)saturate(1.8);backdrop-filter:blur(30px)saturate(1.8);border:1px solid var(--glass-border);width:min(560px,100%);max-height:min(88dvh,820px);box-shadow:var(--shadow-lg), inset 0 1px 0 var(--glass-hi);animation:sheet-up .34s var(--ease);border-bottom:0;flex-direction:column;display:flex}.sheet-grabber{background:var(--border-strong);border-radius:3px;flex:none;width:38px;height:5px;margin:8px auto 2px}.sheet-head{flex:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 18px 10px;display:flex}.sheet-title{font-size:1.0625rem;font-weight:700}.sheet-body{overscroll-behavior:contain;padding:4px 18px calc(22px + var(--safe-bottom));overflow:auto}@media (min-width:720px){.sheet-backdrop[data-side=corner]{-webkit-backdrop-filter:none;backdrop-filter:none;background:#03081824;justify-content:flex-end;align-items:flex-start;padding:16px}.sheet-backdrop[data-side=corner] .sheet{border-radius:var(--radius-xl);border-bottom:1px solid var(--glass-border);width:400px;max-height:calc(100dvh - 32px);animation:pop-corner .26s var(--spring);transform-origin:100% 0}.sheet-backdrop[data-side=corner] .sheet-grabber{display:none}.sheet-backdrop[data-side=corner] .sheet-head{padding-top:16px}.sheet-backdrop[data-side=corner] .sheet-body{padding-bottom:20px}}.kv{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;padding:10px 0;display:flex}.kv:last-child{border-bottom:0}.kv dt{color:var(--muted)}.kv dd{text-align:right;overflow-wrap:anywhere;margin:0;font-weight:600}.toasts{z-index:200;left:50%;top:calc(12px + var(--safe-top));pointer-events:none;flex-direction:column;gap:8px;width:min(380px,100vw - 24px);display:flex;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;border-radius:var(--radius-lg);background:rgb(var(--surface-rgb) / .92);-webkit-backdrop-filter:blur(24px)saturate(1.8);backdrop-filter:blur(24px)saturate(1.8);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);animation:drop-in .3s var(--spring);align-items:flex-start;gap:10px;padding:12px 12px 12px 14px;display:flex}.toast-icon{flex:none;margin-top:1px}.toast.success .toast-icon{color:var(--success)}.toast.error .toast-icon{color:var(--danger)}.toast.info .toast-icon{color:var(--primary)}.toast-title{font-size:.875rem;font-weight:700}.toast-text{color:var(--muted);font-size:.8125rem}.update-dock{z-index:60;left:50%;bottom:calc(var(--nav-h) + 24px + var(--safe-bottom));flex-direction:column;gap:8px;width:min(400px,100vw - 28px);display:flex;position:fixed;transform:translate(-50%)}.inline-icon{vertical-align:-2px;display:inline}.update-dock.no-nav{bottom:calc(16px + var(--safe-bottom))}.update-banner{border-radius:var(--radius-lg);background:var(--surface-solid);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);animation:pop .24s var(--ease);align-items:center;gap:10px;padding:10px 10px 10px 14px;display:flex}.update-icon{color:var(--accent);flex:none;display:inline-grid}.update-progress{background:var(--border-strong);border-radius:999px;height:8px;margin-top:8px;overflow:hidden}.update-progress>span{border-radius:inherit;background:var(--accent);height:100%;transition:width .2s linear;display:block}.update-title{font-size:.875rem;font-weight:700}.update-text{color:var(--muted);font-size:.8125rem}@media print{.update-dock{display:none!important}}.app-stage{justify-content:center;min-height:100dvh;display:flex}.app-frame{flex-direction:column;width:100%;max-width:480px;min-height:100dvh;display:flex;position:relative}@media (min-width:768px){.app-stage{align-items:flex-start;padding:24px}.app-frame{border:1px solid var(--glass-border);max-width:520px;min-height:calc(100dvh - 48px);box-shadow:var(--shadow-lg);background:rgb(var(--surface-rgb) / .25);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:40px;overflow:clip}}@media (min-width:1100px){.app-frame{max-width:440px}.app-stage{gap:56px}}.desktop-aside{display:none}@media (min-width:1100px){.desktop-aside{flex-direction:column;gap:18px;width:340px;margin-top:48px;display:flex;position:sticky;top:48px}}.desktop-aside h2{letter-spacing:-.02em;font-size:1.875rem;font-weight:800;line-height:1.15}.desktop-aside p{color:var(--text-2)}.app-header{--on-header:#fff;--hdr-bg:var(--navy-grad);--hdr-sel-bg:#fff;--hdr-sel-fg:var(--navy-900);z-index:20;padding:calc(14px + var(--safe-top)) 16px 16px;color:var(--on-header);background:radial-gradient(circle 160px at calc(100% - 30px) -10px, #ffffff29, transparent 70%), var(--hdr-bg);border-radius:0 0 var(--radius-xl) var(--radius-xl);box-shadow:0 14px 34px rgb(var(--accent-rgb) / .16), 0 6px 18px #07133029;--hdr-tint:color-mix(in srgb, var(--on-header) 13%, transparent);--hdr-tint-strong:color-mix(in srgb, var(--on-header) 22%, transparent);--hdr-line:color-mix(in srgb, var(--on-header) 16%, transparent);position:relative;overflow:hidden}:root[data-header=accent] .app-header,:root:not([data-header]) .app-header{--on-header:var(--accent-contrast);--hdr-sel-bg:var(--accent-contrast);--hdr-sel-fg:var(--accent);--hdr-bg:linear-gradient(160deg, color-mix(in oklab, var(--accent) 86%, #fff) 0%, var(--accent) 42%, color-mix(in oklab, var(--accent) 62%, #0b1d47) 100%)}:root[data-theme=dark][data-header=accent] .app-header{--hdr-bg:linear-gradient(160deg, color-mix(in oklab, var(--accent) 80%, #0b1d47) 0%, color-mix(in oklab, var(--accent) 52%, #0b1d47) 55%, color-mix(in oklab, var(--accent) 26%, #050a1c) 100%);--on-header:#fff;--hdr-sel-bg:#fff}:root[data-header=navy] .app-header{--on-header:#fff;--hdr-bg:radial-gradient(circle 200px at 0% 120%, rgb(var(--accent-rgb) / .35), transparent 70%), var(--navy-grad);--hdr-sel-bg:#fff;--hdr-sel-fg:var(--navy-900)}:root[data-header=glass] .app-header{--on-header:var(--text);--hdr-bg:rgb(var(--surface-rgb) / var(--card-alpha));--hdr-sel-bg:var(--accent);--hdr-sel-fg:var(--accent-contrast);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.8);backdrop-filter:blur(var(--blur)) saturate(1.8);border:1px solid var(--glass-border);box-shadow:var(--shadow), inset 0 -1px 0 var(--glass-hi);border-top:0}.app-header>*{z-index:1;position:relative}.app-header>.header-road{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.header-road path{fill:none;stroke:currentColor;vector-effect:non-scaling-stroke}.hr-edge{stroke-width:34px;opacity:.05;stroke-linecap:round}.hr-surface{stroke-width:28px;opacity:.07;stroke-linecap:round}.hr-lane{stroke-width:1.6px;stroke-dasharray:9 11;opacity:.42;animation:3.6s linear infinite lane}.hr-thin{stroke-width:1px;opacity:.16}.header-row{align-items:center;gap:12px;display:flex}.header-titles{flex:1;min-width:0}.header-title{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:1rem;font-weight:700;line-height:1.2}.header-kicker{opacity:.78;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.78rem;font-weight:500;overflow:hidden}.header-actions{flex:none;align-items:center;gap:8px;display:flex}.header-sub{flex-direction:column;gap:12px;margin-top:14px;display:flex}.app-header .dropdown-trigger{background:var(--hdr-tint);border-color:var(--hdr-line);color:inherit}.app-header .dropdown-menu{color:var(--text)}.chip-row{gap:8px;min-width:0;display:flex}.chip{border:1px solid var(--hdr-line,var(--border));background:var(--hdr-tint-strong,var(--surface-2));min-width:0;height:36px;color:inherit;cursor:pointer;white-space:nowrap;transition:background-color .2s var(--ease), transform .2s var(--spring);border-radius:999px;align-items:center;gap:7px;padding:0 12px;font-size:.875rem;font-weight:650;display:inline-flex}.chip:active{transform:scale(.96)}.chip:hover{background:color-mix(in srgb, var(--on-header,var(--text)) 26%, transparent)}.chip-soft{background:var(--hdr-tint,var(--surface-2));flex:auto;justify-content:center;font-weight:550}.chip-soft>span,.chip-text{text-overflow:ellipsis;overflow:hidden}.chip-chev{opacity:.65;flex:none;margin-right:-4px}.week-nav{grid-template-columns:38px 1fr 38px;align-items:center;gap:8px;display:grid}.week-arrow{border:1px solid var(--hdr-line,var(--border));background:var(--hdr-tint,var(--surface-2));width:38px;height:38px;color:inherit;cursor:pointer;transition:opacity .2s var(--ease), transform .2s var(--spring), background-color .2s var(--ease);border-radius:50%;place-items:center;padding:0;display:grid}.week-arrow:hover:not(:disabled){background:var(--hdr-tint-strong,var(--surface-3))}.week-arrow:active:not(:disabled){transform:scale(.9)}.week-arrow:disabled{opacity:.3;cursor:default}.week-label{text-align:center;min-width:0;line-height:1.2}.week-label strong{letter-spacing:-.01em;font-size:1rem;font-weight:700;display:block}.week-label small{opacity:.72;margin-top:2px;font-size:.72rem;font-weight:500;display:block}.days{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:6px;display:grid}.day{border-radius:var(--radius);background:var(--hdr-tint,var(--surface-2));color:inherit;cursor:pointer;transition:background-color .25s var(--ease), color .2s var(--ease), transform .2s var(--spring), box-shadow .25s var(--ease);border:1px solid #0000;flex-direction:column;align-items:center;gap:1px;padding:8px 2px 7px;display:flex}.day:active{transform:scale(.94)}.day .wd{text-transform:uppercase;letter-spacing:.04em;opacity:.72;font-size:.68rem;font-weight:600}.day .dm{font-variant-numeric:tabular-nums;font-size:1.15rem;font-weight:700;line-height:1.15}.day .dots{gap:3px;height:5px;margin-top:3px;display:flex}.day .dots i{opacity:.75;background:currentColor;border-radius:50%;width:4px;height:4px}.day .dots i.none{opacity:.22}.day[data-today]:not([aria-selected=true]){border-color:color-mix(in srgb, var(--on-header,var(--accent)) 55%, transparent)}.day[aria-selected=true]{background:var(--hdr-sel-bg,var(--accent));color:var(--hdr-sel-fg,var(--accent-contrast));box-shadow:0 6px 16px #00000024}.day[aria-selected=true] .dots i:not(.none){opacity:1}.skeleton-day{cursor:default;height:60px;animation:1.4s ease-in-out infinite pulse}.days-plain .day{background:var(--surface-2)}.days-plain .day[aria-selected=true]{background:var(--accent);color:var(--accent-contrast)}.days-plain .day[data-today]:not([aria-selected=true]){border-color:rgb(var(--accent-rgb) / .6)}.app-main{padding:16px 14px calc(var(--nav-h) + 30px + var(--safe-bottom));flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.section-title{letter-spacing:-.01em;justify-content:space-between;align-items:baseline;gap:8px;padding:0 4px;font-size:1.0625rem;font-weight:700;display:flex}.section-title small{color:var(--muted);flex:none;font-size:.8125rem;font-weight:500}.today-dot{vertical-align:2px;background:rgb(var(--accent-rgb) / .14);color:var(--accent);border-radius:999px;align-items:center;gap:5px;margin-left:8px;padding:2px 8px 2px 7px;font-size:.7rem;font-weight:600;display:inline-flex}.today-dot:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.bottom-nav{z-index:50;left:50%;bottom:calc(12px + var(--safe-bottom));width:min(100% - 28px,400px);height:var(--nav-h);background:rgb(var(--surface-rgb) / calc(var(--card-alpha) * .9 + .08));-webkit-backdrop-filter:blur(calc(var(--blur) + 8px)) saturate(2);backdrop-filter:blur(calc(var(--blur) + 8px)) saturate(2);border:1px solid var(--glass-border);box-shadow:0 10px 34px #07133033, inset 0 1px 0 var(--glass-hi);border-radius:999px;grid-template-columns:repeat(3,1fr);gap:4px;padding:6px;display:grid;position:fixed;transform:translate(-50%)}@media (min-width:768px){.bottom-nav{margin:0 auto 16px;position:sticky;left:auto;transform:none}.app-main{padding-bottom:20px}}.nav-item{color:var(--muted);transition:color .2s var(--ease), background-color .25s var(--ease), transform .2s var(--spring);border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:.68rem;font-weight:600;display:flex}.nav-item:hover{color:var(--text)}.nav-item:active{transform:scale(.94)}.nav-item[aria-current=page]{color:var(--accent);background:rgb(var(--accent-rgb) / .12)}.lessons{flex-direction:column;gap:10px;display:flex}.lesson{border-radius:var(--radius-lg);min-width:0;transition:opacity .2s var(--ease), border-color .2s var(--ease);grid-template-columns:40px minmax(0,1fr);gap:12px;padding:14px 14px 14px 12px;display:grid;position:relative;overflow:hidden}.lesson-num{background:rgb(var(--accent-rgb) / .12);width:40px;height:40px;color:var(--accent);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:1.05rem;font-weight:750;display:grid}.lesson-body{flex-direction:column;gap:6px;min-width:0;display:flex}.lesson-head{justify-content:space-between;align-items:center;gap:8px;min-height:22px;display:flex}.lesson-times{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:600}.lesson-line{flex-direction:column;gap:4px;min-width:0;display:flex}.lesson-line+.lesson-line{border-top:1px dashed var(--border-strong);padding-top:8px}.lesson-subject{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:1rem;font-weight:700;line-height:1.25}.lesson-meta{color:var(--text-2);flex-wrap:wrap;gap:4px 14px;font-size:.8125rem;display:flex}.lesson-meta span{overflow-wrap:anywhere;align-items:center;gap:5px;min-width:0;display:inline-flex}.lesson-meta svg{color:var(--muted);flex:none}.lesson-parts{flex-direction:column;gap:8px;margin-top:2px;display:flex}.lesson-part{border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:4px;padding:8px 10px 9px 12px;display:flex;position:relative}.lesson-part:before{content:"";background:var(--border-strong);border-radius:0 3px 3px 0;width:3px;position:absolute;top:10px;bottom:10px;left:0}.lesson-part[data-active]:before{background:var(--accent)}.lesson-part[data-active]{background:rgb(var(--accent-rgb) / .09)}.part-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:.72rem;font-weight:650;display:flex}.part-time{text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums}.part-empty{color:var(--muted);font-size:.875rem;font-style:italic}.lesson-part[data-empty] .lesson-part,.lesson-part[data-empty]{border:1px dashed var(--border-strong);background:0 0}.lesson-progress{background:rgb(var(--accent-rgb) / .12);height:3px;position:absolute;bottom:0;left:0;right:0}.lesson-progress>span{background:var(--accent);height:100%;transition:width .6s var(--ease);border-radius:0 3px 3px 0;display:block}.lesson-progress.static{border-radius:4px;height:4px;margin-top:8px;position:static;overflow:hidden}.lesson[data-state=now]{border-color:rgb(var(--accent-rgb) / .55);box-shadow:0 10px 30px rgb(var(--accent-rgb) / .16), inset 0 1px 0 var(--glass-hi)}.lesson[data-state=now] .lesson-num{background:var(--accent);color:var(--accent-contrast);box-shadow:0 0 0 5px rgb(var(--accent-rgb) / .16)}.lesson[data-state=next] .lesson-num{box-shadow:inset 0 0 0 1.5px rgb(var(--accent-rgb) / .7)}.lesson[data-state=past]{opacity:.58}.pick-list{flex-direction:column;gap:2px;max-height:52dvh;margin:0 -6px;padding:0 6px;display:flex;overflow:auto}.pick-row{border-radius:var(--radius);text-align:left;cursor:pointer;width:100%;min-height:46px;transition:background-color .15s var(--ease);background:0 0;border:0;align-items:center;gap:10px;padding:10px 12px;font-weight:550;display:flex}.pick-row:hover{background:var(--surface-2)}.pick-row[aria-pressed=true]{color:var(--accent);background:rgb(var(--accent-rgb) / .09)}.pick-row small{font-size:.75rem}.pick-own{background:var(--surface-2)}.pick-own>svg:first-child{color:var(--accent)}.pick-own b,.pick-own small{display:block}.pick-own small{color:var(--muted);font-weight:500}.bell-summary{opacity:.9;padding:0 2px;font-size:.9rem;font-weight:550}.bell-road{flex-direction:column;gap:0;padding:4px 0;display:flex;position:relative}.bell-road:before,.bell-road:after{content:"";position:absolute;top:24px;bottom:24px;left:20px}.bell-road:before{background:var(--surface-2);width:16px;box-shadow:inset 1px 0 0 var(--border-strong), inset -1px 0 0 var(--border-strong);border-radius:8px;margin-left:-8px}.bell-road:after{background:repeating-linear-gradient(180deg, rgb(var(--accent-rgb) / .55) 0 8px, transparent 8px 16px);width:2px;margin-left:-1px}.bell-stop{z-index:1;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;display:grid;position:relative}.bell-node{background:var(--surface-solid);border:2px solid rgb(var(--accent-rgb) / .55);width:40px;height:40px;color:var(--accent);font-variant-numeric:tabular-nums;box-shadow:var(--shadow);border-radius:50%;place-items:center;font-weight:750;display:grid}.bell-stop[data-done] .bell-node{border-color:var(--border-strong);color:var(--muted)}.bell-stop[data-done] .bell-card{opacity:.62}.bell-stop[data-active] .bell-node{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);box-shadow:0 0 0 6px rgb(var(--accent-rgb) / .16)}.bell-card{border-radius:var(--radius-lg);min-width:0;padding:12px 14px}.bell-stop[data-active] .bell-card{border-color:rgb(var(--accent-rgb) / .5)}.bell-times{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:750}.bell-halves{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:2px 14px;margin-top:2px;font-size:.78rem;display:flex}.bell-gap{z-index:1;color:var(--muted);align-items:center;gap:6px;margin-left:52px;padding:9px 0;font-size:.78rem;display:flex;position:relative}.bell-gap[data-active]{color:var(--accent);font-weight:600}.bell-inner{opacity:.85;align-items:center;gap:4px;display:inline-flex}.bell-inner[data-active]{color:var(--accent);opacity:1;font-weight:600}.profile-card{text-align:center;border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:10px;padding:24px 16px 20px;display:flex}.profile-name{letter-spacing:-.015em;overflow-wrap:anywhere;font-size:1.3rem;font-weight:750}.list{border-radius:var(--radius-lg);overflow:hidden}.list-row{align-items:center;gap:12px;min-width:0;padding:12px 16px;display:flex;position:relative}.list-row+.list-row:before{content:"";background:var(--border);height:1px;position:absolute;top:0;left:64px;right:0}.list-row .icon{background:rgb(var(--accent-rgb) / .12);width:34px;height:34px;color:var(--accent);border-radius:30%;flex:none;place-items:center;display:grid}.list-row .label{color:var(--muted);font-size:.75rem}.list-row .value{overflow-wrap:anywhere;font-weight:600}.list-btn{text-align:left;cursor:pointer;width:100%;transition:background-color .15s var(--ease);background:0 0;border:0}.list-btn:hover{background:var(--surface-2)}.appearance{flex-direction:column;gap:22px;display:flex}.ap-section{flex-direction:column;gap:10px;display:flex}.ap-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 2px;font-size:.72rem;font-weight:650}.ap-slider{flex-direction:column;gap:8px;display:flex}.ap-row{justify-content:space-between;align-items:baseline;gap:8px;font-size:.875rem;font-weight:550;display:flex}.ap-row .muted{font-variant-numeric:tabular-nums;font-weight:500}.ap-color{align-items:center;gap:10px;display:flex}.color-well{width:46px;height:46px;color:var(--accent-contrast);cursor:pointer;box-shadow:0 0 0 3px var(--surface-solid), 0 0 0 4px var(--border-strong), 0 6px 16px rgb(var(--accent-rgb) / .3);border-radius:50%;flex:none;place-items:center;display:grid;position:relative;overflow:hidden}.color-well:before{content:"";opacity:.9;background:conic-gradient(#ff4d4d,#ffb800,#4ade80,#22d3ee,#6366f1,#e879f9,#ff4d4d);position:absolute;inset:0;-webkit-mask:radial-gradient(circle,#0000 15px,#000 16px);mask:radial-gradient(circle,#0000 15px,#000 16px)}.color-well svg{position:relative}.color-well input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{cursor:pointer;color:#fff;width:32px;height:32px;transition:transform .2s var(--spring), box-shadow .2s var(--ease);border:0;border-radius:50%;place-items:center;display:grid;box-shadow:inset 0 0 0 1px #00000014}.swatch:hover{transform:scale(1.08)}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--surface-solid), 0 0 0 4px var(--text)}.ap-bg{align-items:center;gap:12px;display:flex}.ap-bg-thumb{border-radius:var(--radius);background:center / cover no-repeat var(--surface-2);width:84px;height:84px;box-shadow:inset 0 0 0 1px var(--border);flex:none}.range{--fill:50%;appearance:none;background:linear-gradient(90deg, var(--accent) var(--fill), var(--surface-3) var(--fill));cursor:pointer;border-radius:999px;outline:none;width:100%;height:6px}.range::-webkit-slider-thumb{appearance:none;width:26px;height:26px;transition:transform .2s var(--spring);background:#fff;border:0;border-radius:50%;box-shadow:0 0 0 .5px #0000000f,0 3px 8px #0003}.range:active::-webkit-slider-thumb{transform:scale(1.12)}.range::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:24px;height:24px;box-shadow:0 3px 8px #0003}.setting-head{justify-content:space-between;gap:8px;margin-bottom:10px;font-weight:650;display:flex}.setting-head span:last-child{color:var(--muted);font-weight:500}.login-stage{min-height:100dvh;padding:calc(20px + var(--safe-top)) 14px calc(20px + var(--safe-bottom));justify-content:center;align-items:center;display:flex}.login-wrap{width:min(420px,100%)}.login-corner{z-index:30;top:calc(14px + var(--safe-top));width:38px;height:38px;color:var(--text-2);background:rgb(var(--surface-rgb) / var(--card-alpha));border-color:var(--glass-border);box-shadow:var(--shadow);position:fixed;right:14px}.login-card{border-radius:var(--radius-xl);flex-direction:column;gap:18px;padding:28px 20px 22px;display:flex}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:14px;display:flex}.login-brand h1{letter-spacing:-.02em;font-size:1.6rem;font-weight:750}.login-brand p{color:var(--muted);margin-top:2px;font-size:.875rem}.otp{cursor:text;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid;position:relative}.otp-input{z-index:1;opacity:0;cursor:text;border:0;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.otp-cell{border-radius:var(--radius);background:var(--surface-2);border:1.5px solid var(--border);height:56px;font-family:var(--font-mono);transition:border-color .2s var(--ease), background-color .2s var(--ease), transform .2s var(--spring);place-items:center;font-size:1.5rem;font-weight:650;display:grid}.otp-cell:nth-of-type(3){margin-right:6px}.otp-cell[data-filled]{border-color:var(--border-strong);background:rgb(var(--surface-rgb) / .9);animation:pop-num .22s var(--spring)}.otp-cell[data-caret]{border-color:var(--accent);box-shadow:0 0 0 4px rgb(var(--accent-rgb) / .14)}.otp-cell[data-caret]:not([data-filled]):after{content:"";background:var(--accent);border-radius:1px;width:2px;height:24px;animation:1s step-end infinite blink}.demo-hint{border-radius:var(--radius);background:var(--surface-2);color:var(--text-2);gap:10px;padding:12px;font-size:.8125rem;display:flex}.demo-hint svg{color:var(--primary);flex:none;margin-top:1px}.role-switch{border-radius:calc(var(--radius) + 3px);background:var(--surface-2);grid-template-columns:repeat(2,1fr);gap:2px;padding:3px;display:grid}.text-2{color:var(--text-2)}.form-error{border-radius:var(--radius);background:var(--danger-soft);color:var(--danger);animation:shake .35s var(--ease);align-items:flex-start;gap:8px;padding:10px 12px;font-size:.8125rem;font-weight:600;display:flex}.row{align-items:center;gap:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:10px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.muted{color:var(--muted)}.small{font-size:.8125rem}.grow{flex:1;min-width:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.break{overflow-wrap:anywhere;word-break:break-word}.clickable{cursor:pointer}@media (max-width:600px){.hide-sm{display:none}}.admin{flex-direction:column;min-height:100dvh;display:flex}.admin-top{z-index:40;color:#fff;background:radial-gradient(circle 240px at 85% -60%, rgb(var(--accent-rgb) / .3), transparent 70%), var(--navy-grad);align-items:center;gap:14px;padding:12px 24px 14px;display:flex;position:sticky;top:0;box-shadow:0 8px 24px #07133038}.admin-top:after{content:"";background:repeating-linear-gradient(90deg, rgb(var(--accent-rgb) / .75) 0 18px, transparent 18px 34px) center / 100% 2px no-repeat, linear-gradient(#ffffff0f, #ffffff0f);pointer-events:none;border-top:1px solid #ffffff14;height:6px;position:absolute;bottom:0;left:0;right:0}.admin-top .titles{flex:1;min-width:0}.admin-top .t1{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:700;overflow:hidden}.admin-top .t2{color:#ffffffb3;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.admin-user{align-items:center;gap:10px;font-size:.875rem;font-weight:600;display:flex}.avatar{background:var(--accent);width:36px;height:36px;color:var(--accent-contrast);border-radius:50%;place-items:center;font-weight:800;display:grid}.admin-top .btn{--btn-bg:#ffffff1a;--btn-fg:#fff;border-color:#ffffff24}.admin-top .btn:hover:not(:disabled){background:#ffffff2e}.admin-body{flex:1;grid-template-columns:250px minmax(0,1fr);gap:24px;width:100%;max-width:1480px;margin:0 auto;padding:24px;display:grid}.admin-side{border-radius:var(--radius-xl);flex-direction:column;align-self:start;gap:2px;padding:8px;display:flex;position:sticky;top:90px}.side-link{border-radius:var(--radius);color:var(--text-2);transition:background-color .2s var(--ease), color .2s var(--ease);align-items:center;gap:12px;padding:10px 14px;font-weight:550;display:flex}.side-link:hover{background:var(--surface-2);color:var(--text)}.side-link[aria-current=page]{background:var(--accent);color:var(--accent-contrast);box-shadow:0 6px 16px rgb(var(--accent-rgb) / .28)}.side-sep{background:var(--border);height:1px;margin:6px 10px}.admin-main{flex-direction:column;gap:18px;min-width:0;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.page-title{letter-spacing:-.02em;font-size:1.75rem;font-weight:750;line-height:1.15}.page-sub{color:var(--muted);margin-top:4px;font-size:.875rem}.actions{flex-wrap:wrap;gap:8px;display:flex}.stats{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;display:grid}.stat{border-radius:var(--radius-lg);flex-direction:column;gap:6px;min-width:0;padding:18px;display:flex}.stat-top{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:.8125rem;font-weight:600;display:flex}.stat-icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:30%;place-items:center;display:grid}.stat-icon.accent{background:rgb(var(--accent-rgb) / .13);color:var(--accent)}.stat-icon.danger{background:var(--danger-soft);color:var(--danger)}.stat-icon.success{background:var(--success-soft);color:var(--success)}.stat-value{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:1.75rem;font-weight:750;line-height:1.1}.stat-value.sm{font-size:1.25rem}.stat-note{color:var(--muted);font-size:.75rem}.grid-2{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;display:grid}.panel{border-radius:var(--radius-lg);min-width:0;padding:18px}.panel-title{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;font-size:1rem;font-weight:700;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar .input-wrap{flex:260px}.toolbar .dropdown{flex:0 220px}.preview-phone{max-width:440px}.table-wrap{border-radius:var(--radius-lg);max-width:100%;overflow:auto}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:.875rem}.table th{z-index:1;text-align:left;letter-spacing:.02em;color:#fff;background:var(--th-bg);white-space:nowrap;padding:12px 14px;font-size:.75rem;font-weight:650;position:sticky;top:0}.table td{border-bottom:1px solid var(--border);vertical-align:top;padding:12px 14px}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:background-color .15s var(--ease)}.table tbody tr:hover{background:var(--surface-2)}.table .num{font-variant-numeric:tabular-nums;white-space:nowrap}.table .strong{font-weight:700}.table-foot{color:var(--muted);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;font-size:.8125rem;display:flex}.access-note{border-radius:var(--radius-lg);color:var(--text-2);align-items:flex-start;gap:10px;padding:12px 16px;font-size:.875rem;display:flex}.access-note>svg{color:var(--accent);flex:none;margin-top:1px}.code-cell{align-items:center;gap:6px;display:inline-flex}.access-code{border-radius:var(--radius-xs);background:var(--surface-2);min-width:7.5em;font-family:var(--font-mono);letter-spacing:.08em;text-align:center;font-variant-numeric:tabular-nums;padding:4px 9px;font-size:.95rem;font-weight:700;display:inline-block}.access-code.masked{color:var(--muted);letter-spacing:.18em}.code-cell .icon-btn{width:30px;height:30px}.dropzone{border-radius:var(--radius-lg);border:2px dashed var(--border-strong);background:var(--surface-2);text-align:center;cursor:pointer;transition:border-color .2s var(--ease), background-color .2s var(--ease), transform .2s var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:38px 20px;display:flex;position:relative}.dropzone:hover,.dropzone[data-drag=true]{border-color:var(--accent);background:rgb(var(--accent-rgb) / .07)}.dropzone[data-drag=true]{transform:scale(1.01)}.dropzone[data-error=true]{border-color:var(--danger);background:var(--danger-soft)}.dropzone-icon{background:rgb(var(--accent-rgb) / .13);width:60px;height:60px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.dropzone-title{font-size:1.05rem;font-weight:700}.steps{flex-wrap:wrap;gap:8px;display:flex}.step{border:1px solid var(--border);color:var(--muted);background:rgb(var(--surface-rgb) / .5);border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 6px;font-size:.8125rem;font-weight:600;display:inline-flex}.step .n{background:var(--surface-2);border-radius:50%;place-items:center;width:22px;height:22px;font-size:.75rem;display:grid}.step[data-state=done]{color:var(--success)}.step[data-state=done] .n{background:var(--success-soft)}.step[data-state=active]{color:var(--accent);border-color:rgb(var(--accent-rgb) / .5)}.step[data-state=active] .n{background:var(--accent);color:var(--accent-contrast)}.file-chip{border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);align-items:center;gap:12px;min-width:0;padding:12px 14px;display:flex}.file-chip .name{overflow-wrap:anywhere;font-weight:700}.error-list{flex-direction:column;gap:6px;max-height:340px;display:flex;overflow:auto}.error-item{border-radius:var(--radius-sm);align-items:flex-start;gap:10px;padding:10px 12px;font-size:.8125rem;display:flex}.error-item.error{background:var(--danger-soft)}.error-item.warning{background:var(--warning-soft)}.error-item .where{font-variant-numeric:tabular-nums;flex:none;min-width:70px;font-weight:700}.error-item.error svg{color:var(--danger);flex:none}.error-item.warning svg{color:var(--warning);flex:none}.timeline{flex-direction:column;display:flex}.tl-item{border-bottom:1px solid var(--border);grid-template-columns:36px 1fr;gap:12px;padding:10px 0;display:grid}.tl-item:last-child{border-bottom:0}.tl-icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:50%;place-items:center;display:grid}.tl-icon.publish{background:var(--success-soft);color:var(--success)}.tl-icon.rollback{background:var(--warning-soft);color:var(--warning)}.tl-icon.import{background:rgb(var(--accent-rgb) / .12);color:var(--accent)}.tl-text{overflow-wrap:anywhere;font-weight:600}.tl-meta{color:var(--muted);font-size:.75rem}.info-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.info-cell{border-radius:var(--radius);background:var(--surface-2);min-width:0;padding:12px 14px}.info-cell .k{color:var(--muted);font-size:.75rem}.info-cell .v{overflow-wrap:anywhere;font-weight:650}.admin-mobile-nav,.admin-mobile-nav .side-sep{display:none}@media (max-width:1100px){.grid-2{grid-template-columns:1fr}}@media (max-width:900px){.admin-body{grid-template-columns:1fr;gap:14px;padding:14px}.admin-side{display:none}.admin-mobile-nav{scrollbar-width:none;border-radius:999px;gap:4px;padding:6px;display:flex;overflow-x:auto}.admin-mobile-nav::-webkit-scrollbar{display:none}.admin-mobile-nav .side-link{border-radius:999px;flex:none;padding:8px 12px;font-size:.8125rem}.admin-top{padding:10px 14px 12px}.admin-user .name{display:none}.page-title{font-size:1.375rem}}@media print{.page-bg,.admin-top,.admin-side,.admin-mobile-nav,.page-head .actions,.toolbar,.access-note,.toasts,.no-print{display:none!important}body{color:#000;background:#fff}.admin-body{padding:0;display:block}.glass,.print-area{box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important;border:0!important}.table th{color:#000;background:#fff;border-bottom:2px solid #000;position:static}.table td{border-bottom:1px solid #999}.access-code{background:0 0;font-size:1.1rem;color:#000!important}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{transform:translate(100%)}}@keyframes pulse{50%{opacity:.5}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(-4px)scale(.97)}}@keyframes pop-corner{0%{opacity:0;transform:scale(.92)}}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes drop-in{0%{opacity:0;transform:translateY(-12px)scale(.97)}}@keyframes pop-num{0%{transform:scale(.85)}}@keyframes blink{50%{opacity:0}}@keyframes shake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}@keyframes lane{to{stroke-dashoffset:-40px}}:root[data-lite] *,:root[data-lite] :before,:root[data-lite] :after{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}:root[data-lite] .glass,:root[data-lite] .sheet,:root[data-lite] .toast,:root[data-lite] .bottom-nav,:root[data-lite][data-header=glass] .app-header{background:rgb(var(--surface-rgb) / .96)}:root[data-lite] .modal-backdrop{background:#03081880}:root[data-lite] .page-photo{filter:none}:root[data-lite] .hr-lane{animation:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.hr-lane{animation:none}}
