:root{--orange-50:#fff4ec;--orange-100:#ffe6d3;--orange-200:#ffc8a0;--orange-300:#ffa666;--orange-400:#ff8a3d;--orange-500:#f97316;--orange-600:#ea6307;--orange-700:#c14d05;--orange-800:#8f3a06;--orange-900:#5e2705;--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--font-display:"Space Grotesk", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SFMono-Regular", "Cascadia Code", Menlo, Consolas, monospace;--topbar-h:64px;--sidebar-w:264px;--ease:cubic-bezier(.2, .7, .3, 1);--dur:.18s}:root,[data-theme=light]{--bg:#f6f6f8;--surface:#fff;--surface-2:#f1f1f4;--surface-3:#e9e9ee;--border:#e3e3e9;--border-strong:#d2d2da;--text:#18181c;--text-muted:#6a6a76;--text-faint:#9a9aa6;--primary:var(--orange-500);--primary-hover:var(--orange-600);--primary-active:var(--orange-700);--primary-weak:var(--orange-50);--primary-weak-2:var(--orange-100);--on-primary:#fff;--ring:#f9731659;--success:#16a34a;--warning:#d97706;--danger:#dc2626;--danger-weak:#fdecec;--success-weak:#e6f4ea;--warning-weak:#fdf3e3;--shadow-sm:0 1px 2px #14141e0f, 0 1px 3px #14141e0d;--shadow-md:0 4px 12px #14141e14, 0 2px 4px #14141e0d;--shadow-lg:0 12px 32px #14141e24, 0 4px 8px #14141e0f}[data-theme=dark]{--bg:#0e0e11;--surface:#17171c;--surface-2:#1e1e25;--surface-3:#262630;--border:#2b2b34;--border-strong:#3a3a45;--text:#f3f3f6;--text-muted:#a2a2b0;--text-faint:#6e6e7c;--primary:var(--orange-500);--primary-hover:var(--orange-400);--primary-active:var(--orange-300);--primary-weak:#281606;--primary-weak-2:#36200b;--on-primary:#1a0f04;--ring:#ff8a3d66;--success:#34d399;--warning:#fbbf24;--danger:#f87171;--danger-weak:#2a1414;--success-weak:#11231a;--warning-weak:#2a2110;--shadow-sm:0 1px 2px #0006;--shadow-md:0 6px 16px #00000080;--shadow-lg:0 16px 40px #0009}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.2}a{color:inherit;text-decoration:none}button{font-family:inherit}::selection{background:var(--primary-weak-2);color:var(--text)}:focus-visible{box-shadow:0 0 0 3px var(--ring);border-radius:var(--r-sm);outline:none}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);background-clip:padding-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-track{background:0 0}.icon{stroke:currentColor;fill:none;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.icon-sm{width:16px;height:16px}.icon-lg{width:24px;height:24px}.app{min-height:100vh}.topbar{z-index:40;height:var(--topbar-h);align-items:center;gap:var(--sp-4);padding:0 var(--sp-5);background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.topbar__left,.brand{align-items:center;gap:var(--sp-3);display:flex}.brand__logo{object-fit:contain;width:38px;height:38px;color:var(--primary);background:0 0;border:none;padding:0}.brand__logo .icon{stroke-width:1.6px;width:34px;height:34px}.brand__name{font-family:var(--font-display);letter-spacing:-.02em;font-size:18px;font-weight:700}.brand__name b{color:var(--primary)}.brand__sub{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:11px}.topnav{align-items:center;gap:var(--sp-1);margin-left:var(--sp-4);display:flex}.topnav__link{border-radius:var(--r-sm);color:var(--text-muted);cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:none;align-items:center;gap:6px;padding:8px 12px;font-size:14px;font-weight:500;display:inline-flex}.topnav__link:hover{background:var(--surface-2);color:var(--text)}.topnav__link.is-active{color:var(--primary);background:var(--primary-weak)}.topbar__right{align-items:center;gap:var(--sp-3);margin-left:auto;display:flex}.icon-btn{border-radius:var(--r-sm);width:40px;height:40px;color:var(--text-muted);cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);background:0 0;border:1px solid #0000;place-items:center;display:inline-grid;position:relative}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.icon-btn--bordered{border-color:var(--border)}.hamburger{display:none}.layout{grid-template-columns:var(--sidebar-w) 1fr;align-items:start;display:grid}.sidebar{top:var(--topbar-h);height:calc(100vh - var(--topbar-h));background:var(--surface);border-right:1px solid var(--border);padding:var(--sp-4);gap:var(--sp-2);flex-direction:column;display:flex;position:sticky;overflow-y:auto}.side-group{margin-top:var(--sp-4)}.side-group:first-child{margin-top:0}.side-group__title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);padding:0 var(--sp-3) var(--sp-2);font-size:11px;font-weight:600}.side-link{align-items:center;gap:var(--sp-3);padding:10px var(--sp-3);border-radius:var(--r-sm);color:var(--text-muted);cursor:pointer;text-align:left;width:100%;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:none;font-family:inherit;font-size:14px;font-weight:500;display:flex;position:relative}.side-link:hover{background:var(--surface-2);color:var(--text)}.side-link.is-active{background:var(--primary-weak);color:var(--primary);font-weight:600}.side-link.is-active:before{content:"";background:var(--primary);border-radius:999px;width:4px;height:20px;position:absolute;top:50%;left:-4px;transform:translateY(-50%)}.side-link .icon{width:19px;height:19px}.side-link__badge{background:var(--primary);color:var(--on-primary);border-radius:var(--r-pill);margin-left:auto;padding:1px 8px;font-size:11px;font-weight:600}.sidebar__footer{padding-top:var(--sp-4);margin-top:auto}.user-card{align-items:center;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border);display:flex}.user-card__meta{min-width:0}.user-card__name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.user-card__mail{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.content{padding:var(--sp-6);min-width:0;min-height:calc(100vh - var(--topbar-h))}.content__inner{max-width:1100px;margin:0 auto}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--sp-4);margin-bottom:var(--sp-6);flex-wrap:wrap;display:flex}.breadcrumb{align-items:center;gap:var(--sp-2);color:var(--text-muted);margin-bottom:6px;font-size:13px;display:flex}.breadcrumb span.sep{color:var(--text-faint)}.page-title{font-size:28px}.page-subtitle{color:var(--text-muted);margin-top:6px;font-size:15px}.section{margin-top:var(--sp-6)}.section__head{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap;display:flex}.section__title{font-size:18px}.section__hint{color:var(--text-muted);font-size:13px}.avatar{border-radius:var(--r-pill);background:var(--primary-weak-2);width:38px;height:38px;color:var(--primary);font-size:14px;font-weight:700;font-family:var(--font-display);border:1px solid var(--border);text-transform:uppercase;flex:none;place-items:center;display:grid}.avatar--sm{width:30px;height:30px;font-size:12px}.avatar--lg{width:48px;height:48px;font-size:18px}.btn{--h:42px;justify-content:center;align-items:center;gap:var(--sp-2);height:var(--h);border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;transition:background var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease), transform 60ms var(--ease), box-shadow var(--dur) var(--ease);border:1px solid #0000;padding:0 18px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--primary);color:var(--on-primary)}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--primary:active{background:var(--primary-active)}.btn--secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--surface-2)}.btn--ghost{color:var(--text-muted);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn--soft{background:var(--primary-weak);color:var(--primary)}.btn--soft:hover:not(:disabled){background:var(--primary-weak-2)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){filter:brightness(.94)}.btn--danger-ghost{color:var(--danger);background:0 0;border-color:#0000}.btn--danger-ghost:hover:not(:disabled){background:var(--danger-weak)}.btn--xs{--h:30px;border-radius:var(--r-xs);padding:0 10px;font-size:12px}.btn--sm{--h:36px;padding:0 14px;font-size:13px}.btn--lg{--h:50px;border-radius:var(--r-md);padding:0 26px;font-size:16px}.btn--block{width:100%;display:flex}.btn .icon{width:18px;height:18px}.btn--xs .icon,.btn--sm .icon{width:16px;height:16px}.btn--platform{background:var(--surface);color:var(--text);border:1px solid var(--border-strong);gap:var(--sp-3)}.btn--platform:hover:not(:disabled){background:var(--surface-2);border-color:var(--primary)}.btn--platform .platform-mark{border-radius:var(--r-xs);background:var(--primary);width:22px;height:22px;color:var(--on-primary);place-items:center;display:grid}.field{margin-bottom:var(--sp-4);flex-direction:column;gap:6px;display:flex}.field--tight{margin-bottom:0}.field__label{color:var(--text);font-size:13px;font-weight:600}.field__label .req{color:var(--primary)}.field__hint{color:var(--text-muted);font-size:12px}.field__error{color:var(--danger);font-size:12px}.input-wrap{align-items:center;display:flex;position:relative}.input-wrap .lead-icon{color:var(--text-faint);pointer-events:none;position:absolute;left:14px}.input-wrap .lead-icon~.input{padding-left:42px}.input-wrap .trail-btn{cursor:pointer;color:var(--text-faint);border-radius:var(--r-xs);background:0 0;border:none;place-items:center;padding:6px;display:grid;position:absolute;right:8px}.input-wrap .trail-btn:hover{color:var(--text);background:var(--surface-2)}.input-wrap:has(.trail-btn) .input{padding-right:44px}.input,.select,.textarea{width:100%;height:44px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), background var(--dur) var(--ease);-webkit-appearance:none;appearance:none;padding:0 14px;font-family:inherit;font-size:15px}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.input:hover,.select:hover,.textarea:hover{border-color:var(--text-faint)}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring);outline:none}.input:disabled,.select:disabled{background:var(--surface-2);color:var(--text-faint);cursor:not-allowed}.input--sm,.select--sm{border-radius:var(--r-xs);height:36px;padding:0 12px;font-size:13px}.input--lg,.select--lg{border-radius:var(--r-md);height:54px;padding:0 18px;font-size:16px}.input-wrap .lead-icon~.input--lg{padding-left:48px}.input--mono{font-family:var(--font-mono)}.textarea{resize:vertical;height:auto;min-height:90px;padding:12px 14px;line-height:1.5}.input.is-invalid,.select.is-invalid{border-color:var(--danger)}.input.is-invalid:focus{box-shadow:0 0 0 3px var(--danger-weak)}.select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236a6a76' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:40px}.check{align-items:center;gap:var(--sp-2);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px;display:inline-flex}.check input{opacity:0;position:absolute}.check__box{border-radius:var(--r-xs);border:1.5px solid var(--border-strong);background:var(--surface);width:20px;height:20px;transition:all var(--dur) var(--ease);flex:none;place-items:center;display:grid}.check__box .icon{width:14px;height:14px;color:var(--on-primary);opacity:0;stroke-width:3px}.check input:checked+.check__box{background:var(--primary);border-color:var(--primary)}.check input:checked+.check__box .icon{opacity:1}.check input:focus-visible+.check__box{box-shadow:0 0 0 3px var(--ring)}.switch{align-items:center;gap:var(--sp-3);cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex}.switch input{opacity:0;position:absolute}.switch__track{border-radius:var(--r-pill);background:var(--surface-3);border:1px solid var(--border-strong);width:40px;height:24px;transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease);flex:none;position:relative}.switch__track:after{content:"";width:18px;height:18px;box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease);background:#fff;border-radius:999px;position:absolute;top:2px;left:2px}.switch input:checked+.switch__track{background:var(--primary);border-color:var(--primary)}.switch input:checked+.switch__track:after{transform:translate(16px)}.switch input:focus-visible+.switch__track{box-shadow:0 0 0 3px var(--ring)}.dropdown{display:inline-block;position:relative}.dropdown__menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);min-width:220px;box-shadow:var(--shadow-lg);z-index:50;opacity:0;visibility:hidden;transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);padding:6px;position:absolute;top:calc(100% + 8px);transform:translateY(-6px)}.dropdown__menu--right{right:0}.dropdown__menu--left{left:0}.dropdown.is-open>.dropdown__menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown__header{align-items:center;gap:var(--sp-3);padding:10px 12px;display:flex}.menu-item{align-items:center;gap:var(--sp-3);border-radius:var(--r-sm);width:100%;color:var(--text);cursor:pointer;text-align:left;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:none;padding:9px 12px;font-family:inherit;font-size:14px;display:flex}.menu-item:hover{background:var(--surface-2)}.menu-item .icon{color:var(--text-muted);width:18px;height:18px}.menu-item__kbd{color:var(--text-faint);border:1px solid var(--border);border-radius:4px;margin-left:auto;padding:1px 5px;font-size:11px}.menu-item--danger,.menu-item--danger .icon{color:var(--danger)}.menu-item--danger:hover{background:var(--danger-weak)}.menu-sep{background:var(--border);height:1px;margin:6px 4px}.dropselect{position:relative}.dropselect__trigger{justify-content:space-between;align-items:center;gap:var(--sp-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer;width:100%;height:44px;color:var(--text);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);padding:0 12px 0 14px;font-family:inherit;font-size:15px;display:flex}.dropselect__trigger:hover{border-color:var(--text-faint)}.dropselect.is-open .dropselect__trigger{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.dropselect__trigger .chev{color:var(--text-muted);transition:transform var(--dur) var(--ease)}.dropselect.is-open .dropselect__trigger .chev{transform:rotate(180deg)}.dropselect__panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:50;opacity:0;visibility:hidden;max-height:260px;transition:opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility var(--dur);padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;transform:translateY(-6px)}.dropselect.is-open .dropselect__panel{opacity:1;visibility:visible;transform:translateY(0)}.dropselect__option{align-items:center;gap:var(--sp-2);border-radius:var(--r-sm);cursor:pointer;padding:9px 12px;font-size:14px;display:flex}.dropselect__option:hover{background:var(--surface-2)}.dropselect__option.is-selected{background:var(--primary-weak);color:var(--primary);font-weight:600}.dropselect__option .icon{opacity:0;margin-left:auto}.dropselect__option.is-selected .icon{opacity:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:var(--sp-5)}.card--pad-sm{padding:var(--sp-4)}.card__head{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.card__head .icon{color:var(--primary)}.card__title{font-size:17px}.card__desc{color:var(--text-muted);margin-top:2px;font-size:13px}.tiles{gap:var(--sp-4);grid-template-columns:repeat(4,1fr);display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm)}.tile__top{margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;display:flex}.tile__icon{border-radius:var(--r-md);background:var(--primary-weak);width:44px;height:44px;color:var(--primary);place-items:center;display:grid}.tile__value{font-family:var(--font-display);letter-spacing:-.02em;font-size:30px;font-weight:700}.tile__label{color:var(--text-muted);margin-top:2px;font-size:13px}.badge{border-radius:var(--r-pill);align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge--primary{background:var(--primary-weak);color:var(--primary)}.badge--neutral{background:var(--surface-2);color:var(--text-muted)}.badge--success{background:var(--success-weak);color:var(--success)}.badge--danger{background:var(--danger-weak);color:var(--danger)}.badge--warning{background:var(--warning-weak);color:var(--warning)}.badge .icon{width:13px;height:13px}.chip{border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--border);cursor:pointer;transition:all var(--dur) var(--ease);align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;display:inline-flex}.chip:hover{border-color:var(--primary);color:var(--primary)}.chip.is-active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.chip--static{cursor:default}.chip--static:hover{border-color:var(--border);color:inherit}.chip__x{cursor:pointer;opacity:.7;place-items:center;display:inline-grid}.chip__x:hover{opacity:1}.row{gap:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.row--between{justify-content:space-between}.stack{gap:var(--sp-3);flex-direction:column;display:flex}.stack--lg{gap:var(--sp-4)}.divider{background:var(--border);height:1px;margin:var(--sp-5) 0}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.grow{flex:1;min-width:0}.mono{font-family:var(--font-mono);font-size:13px}.text-sm{font-size:13px}.text-center{text-align:center}.grid-2{gap:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.grid-3{gap:var(--sp-4);grid-template-columns:repeat(3,1fr);display:grid}.table-wrap{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:14px}table.data th,table.data td{text-align:left;padding:12px var(--sp-4);border-bottom:1px solid var(--border);vertical-align:middle}table.data thead th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);background:var(--surface-2);font-size:12px;font-weight:600}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:var(--surface-2)}table.data td.actions{text-align:right;white-space:nowrap}.empty{align-items:center;gap:var(--sp-2);padding:var(--sp-7) var(--sp-4);color:var(--text-muted);text-align:center;flex-direction:column;display:flex}.empty .icon{width:30px;height:30px;color:var(--text-faint)}.alert{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);border:1px solid #0000;align-items:flex-start;font-size:14px;display:flex}.alert .icon{flex:none;margin-top:1px}.alert--info{background:var(--primary-weak);color:var(--primary)}.alert--success{background:var(--success-weak);color:var(--success)}.alert--danger{background:var(--danger-weak);color:var(--danger)}.alert--warning{background:var(--warning-weak);color:var(--warning)}.tabs{gap:var(--sp-1);border-bottom:1px solid var(--border);margin-bottom:var(--sp-5);display:flex;overflow-x:auto}.tab{cursor:pointer;color:var(--text-muted);white-space:nowrap;transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:7px;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:600;display:inline-flex}.tab:hover{color:var(--text)}.tab.is-active{color:var(--primary);border-bottom-color:var(--primary)}.tab .icon{width:17px;height:17px}.code-inline{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-xs);padding:2px 7px;font-size:13px}.code-block{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-3);white-space:pre-wrap;word-break:break-all;font-size:13px;overflow-x:auto}.recovery-grid{gap:var(--sp-2);margin:var(--sp-3) 0;grid-template-columns:repeat(2,1fr);display:grid}.recovery-grid code{font-family:var(--font-mono);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-xs);text-align:center;letter-spacing:.04em;padding:8px 10px;font-size:14px}.auth-page{min-height:100vh;padding:var(--sp-5);flex-direction:column;justify-content:center;align-items:center;display:flex}.auth-top{height:var(--topbar-h);padding:0 var(--sp-5);justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.auth-card-wrap{width:100%;max-width:420px}.auth-brand{justify-content:center;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5);display:flex}.auth-brand .brand__logo{width:44px;height:44px}.auth-brand .brand__logo .icon{width:40px;height:40px}.auth-brand__name{font-family:var(--font-display);letter-spacing:-.02em;font-size:22px;font-weight:700}.auth-card{padding:var(--sp-6)}.auth-card h1{margin-bottom:4px;font-size:22px}.auth-card .sub{color:var(--text-muted);margin:0 0 var(--sp-5);font-size:14px}.auth-foot{text-align:center;color:var(--text-muted);margin-top:var(--sp-5);font-size:13px}.auth-foot a,.link{color:var(--primary);cursor:pointer;font-weight:600}.auth-foot a:hover,.link:hover{text-decoration:underline}.or{align-items:center;gap:var(--sp-3);color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;margin:var(--sp-4) 0;font-size:12px;display:flex}.or:before,.or:after{content:"";background:var(--border);flex:1;height:1px}.modal-backdrop{z-index:80;padding:var(--sp-4);animation:fadeIn .15s var(--ease);background:#08080c80;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--shadow-lg);animation:fadeInUp .2s var(--ease);overflow-y:auto}.modal--lg{max-width:680px}.modal__head{align-items:center;gap:var(--sp-3);padding:var(--sp-5) var(--sp-5) var(--sp-3);display:flex}.modal__title{font-size:18px}.modal__close{margin-left:auto}.modal__body{padding:0 var(--sp-5) var(--sp-5)}.modal__foot{justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--border);display:flex}.toast-wrap{top:var(--sp-4);right:var(--sp-4);z-index:100;gap:var(--sp-2);flex-direction:column;max-width:calc(100vw - 32px);display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--sp-3);width:360px;max-width:100%;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:fadeInUp .25s var(--ease);display:flex}.toast__icon{border-radius:var(--r-pill);flex:none;place-items:center;width:28px;height:28px;display:grid}.toast__icon .icon{width:16px;height:16px}.toast--success .toast__icon{background:var(--success-weak);color:var(--success)}.toast--error .toast__icon{background:var(--danger-weak);color:var(--danger)}.toast--info .toast__icon{background:var(--primary-weak);color:var(--primary)}.toast__body{flex:1;min-width:0;font-size:14px}.toast__close{cursor:pointer;color:var(--text-faint);background:0 0;border:none;padding:2px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--primary);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}.spinner--lg{border-width:3px;width:32px;height:32px}.loading-screen{place-items:center;min-height:60vh;display:grid}@keyframes spin{to{transform:rotate(360deg)}}.qr-box{padding:var(--sp-3);border:1px solid var(--border);border-radius:var(--r-md);background:#fff;display:inline-block}.qr-box img{width:188px;height:188px;display:block}.backdrop{z-index:35;opacity:0;visibility:hidden;transition:opacity var(--dur) var(--ease), visibility var(--dur);background:#08080c80;position:fixed;top:0;bottom:0;left:0;right:0}.backdrop.is-open{opacity:1;visibility:visible}@media (max-width:1024px){.tiles{grid-template-columns:repeat(2,1fr)}.topnav{display:none}}@media (max-width:860px){:root{--sidebar-w:280px}.hamburger{display:inline-grid}.layout{grid-template-columns:1fr}.sidebar{height:100vh;width:var(--sidebar-w);z-index:45;transition:transform var(--dur) var(--ease);box-shadow:var(--shadow-lg);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar.is-open{transform:translate(0)}.content{padding:var(--sp-4)}.grid-2,.grid-3{grid-template-columns:1fr}.page-title{font-size:23px}}@media (max-width:540px){.tiles{grid-template-columns:1fr}.topbar{padding:0 var(--sp-4);gap:var(--sp-2)}.brand__sub{display:none}.hide-xs{display:none!important}.recovery-grid{grid-template-columns:1fr}}html{scroll-behavior:smooth}*,:before,:after{transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.anim-up{animation:fadeInUp .5s var(--ease) both}.anim-fade{animation:fadeIn .45s var(--ease) both}.page-head{animation:fadeInUp .5s var(--ease) both}.section{animation:fadeInUp .5s var(--ease) both;animation-delay:50ms}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
