@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--accent: #00b048;--dark: #0f172a;--panel: #1e293b;--danger: #dc2626;--font: "Inter Variable", Inter, "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--on-accent: #06210f;--accent-text: color-mix(in srgb, var(--accent) 58%, #000);--accent-soft: color-mix(in srgb, var(--accent) 12%, var(--surface));--accent-line: color-mix(in srgb, var(--accent) 35%, var(--surface));--danger-dark: color-mix(in srgb, var(--danger) 80%, #000);--bg: #ffffff;--surface: #ffffff;--surface-2: #f1f5f9;--surface-3: #e8edf4;--text: #0f172a;--text-muted: #475569;--text-faint: #64748b;--border: #e2e8f0;--border-strong: #cbd5e1;--ring: color-mix(in srgb, var(--accent) 70%, #000);--scrim: rgba(15, 23, 42, .55);--tile: var(--dark);--th: var(--dark);--on-tile: #ffffff;--on-th: #ffffff;--good-bg: #dcfce7;--good-bd: #86efac;--good-fg: #166534;--good-solid: #16a34a;--warn-bg: #fef3c7;--warn-bd: #fcd34d;--warn-fg: #854d0e;--warn-solid: #d97706;--bad-bg: #fee2e2;--bad-bd: #fca5a5;--bad-fg: #991b1b;--bad-solid: #dc2626;--info-bg: #e0f2fe;--info-bd: #7dd3fc;--info-fg: #075985;--info-solid: #0284c7;--muted: var(--text-muted);--line: var(--border);--line2: var(--border-strong);--soft: var(--accent-soft);--good: var(--accent-text);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-pill: 999px;--shadow-1: 0 1px 2px rgba(15, 23, 42, .08), 0 1px 3px rgba(15, 23, 42, .06);--shadow-2: 0 4px 12px rgba(15, 23, 42, .1);--shadow-3: 0 16px 40px rgba(15, 23, 42, .22);--t-xs: 12px;--t-sm: 13px;--t-md: 14px;--t-base: 15px;--t-lg: 18px;--t-xl: 20px;--t-2xl: 24px;--t-3xl: 30px;--z-sticky: 10;--z-side: 30;--z-modal: 50;--z-toast: 60;--dur: .16s;--ease: cubic-bezier(.2, .7, .2, 1);--side-w: 264px;--top-h: 60px}.fv{--accent-text: color-mix(in srgb, var(--accent) 58%, #000);--accent-soft: color-mix(in srgb, var(--accent) 12%, var(--surface));--accent-line: color-mix(in srgb, var(--accent) 35%, var(--surface));--danger-dark: color-mix(in srgb, var(--danger) 80%, #000);--ring: color-mix(in srgb, var(--accent) 70%, #000);--soft: var(--accent-soft);--good: var(--accent-text)}:root[data-theme=dark]{color-scheme:dark}:root[data-theme=dark],:root[data-theme=dark] .fv{--bg: #0a1020;--surface: #111a2e;--surface-2: #17223b;--surface-3: #1f2d4a;--text: #e8eef8;--text-muted: #a9b8cf;--text-faint: #8696b0;--border: #26334f;--border-strong: #3a4a6b;--ring: color-mix(in srgb, var(--accent) 75%, #fff);--scrim: rgba(2, 6, 16, .7);--tile: #17223b;--th: #17223b;--on-tile: #ffffff;--on-th: #ffffff;--accent-text: color-mix(in srgb, var(--accent) 78%, #fff);--good-bg: #0f2e1b;--good-bd: #1f6b3b;--good-fg: #86efac;--warn-bg: #33270a;--warn-bd: #7a5b12;--warn-fg: #fcd34d;--bad-bg: #3a1414;--bad-bd: #7f2a2a;--bad-fg: #fca5a5;--info-bg: #0b2a40;--info-bd: #1d5f8a;--info-fg: #7dd3fc;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 4px 12px rgba(0, 0, 0, .45);--shadow-3: 0 16px 40px rgba(0, 0, 0, .6)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark}:root:not([data-theme=light]),:root:not([data-theme=light]) .fv{--bg: #0a1020;--surface: #111a2e;--surface-2: #17223b;--surface-3: #1f2d4a;--text: #e8eef8;--text-muted: #a9b8cf;--text-faint: #8696b0;--border: #26334f;--border-strong: #3a4a6b;--ring: color-mix(in srgb, var(--accent) 75%, #fff);--scrim: rgba(2, 6, 16, .7);--tile: #17223b;--th: #17223b;--on-tile: #ffffff;--on-th: #ffffff;--accent-text: color-mix(in srgb, var(--accent) 78%, #fff);--good-bg: #0f2e1b;--good-bd: #1f6b3b;--good-fg: #86efac;--warn-bg: #33270a;--warn-bd: #7a5b12;--warn-fg: #fcd34d;--bad-bg: #3a1414;--bad-bd: #7f2a2a;--bad-fg: #fca5a5;--info-bg: #0b2a40;--info-bd: #1d5f8a;--info-fg: #7dd3fc;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 4px 12px rgba(0, 0, 0, .45);--shadow-3: 0 16px 40px rgba(0, 0, 0, .6)}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--t-md);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{text-wrap:balance}a{color:var(--accent-text);text-underline-offset:3px}a:hover{color:var(--text)}button,input,select,textarea{font:inherit;color:inherit}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:var(--r-sm)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:12px;top:-64px;z-index:100;background:var(--surface);color:var(--text);padding:12px 16px;border-radius:var(--r-md);font-weight:600;box-shadow:var(--shadow-2);transition:top var(--dur) var(--ease)}.skip:focus{top:12px}.fv{font-family:var(--font);color:var(--text);font-size:var(--t-md);line-height:1.5;min-height:100vh;min-height:100dvh;display:flex;background:var(--bg)}.disp{font-family:inherit;font-weight:650;letter-spacing:-.01em}.mono{font-family:inherit;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.side{position:sticky;top:0;align-self:flex-start;width:var(--side-w);flex:none;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:var(--dark);color:#e2e8f0;padding:20px 12px 16px;display:flex;flex-direction:column;gap:20px;z-index:var(--z-side)}.side .brand{display:flex;align-items:center;gap:10px;padding:0 8px}.side .grp{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#94a3b8;padding:0 12px 6px}.side nav{display:flex;flex-direction:column;gap:18px}.side .nav-group{display:flex;flex-direction:column;gap:2px}.nav{font:inherit;font-size:13.5px;text-align:left;text-decoration:none;width:100%;min-height:44px;padding:0 12px;border-radius:var(--r-md);border:0;cursor:pointer;display:flex;align-items:center;gap:12px;background:transparent;color:#cbd5e1;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav:hover{background:color-mix(in srgb,#fff 8%,transparent);color:#fff}.nav.on{background:var(--panel);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.nav .ico{flex:none;width:18px;height:18px;opacity:.85}.nav .nav-label{flex:1;min-width:0}.nav .badge{font-size:11px;padding:1px 7px;border-radius:var(--r-pill);background:#334155;color:#e2e8f0}.nav:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.side-scrim{display:none}.main{flex:1 1 0;min-width:0;display:flex;flex-direction:column}.top{position:sticky;top:0;z-index:var(--z-sticky);min-height:var(--top-h);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 32px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}.top .crumb{display:flex;align-items:center;gap:8px;min-width:0;font-size:var(--t-sm)}.top .crumb>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top .acts{display:flex;align-items:center;gap:8px;flex:none}.btn.menu-btn{display:none}.page{width:100%;max-width:1440px;margin:0 auto;padding:28px 32px 56px;display:flex;flex-direction:column;gap:var(--s-5)}.page-head{display:flex;flex-direction:column;gap:6px;max-width:72ch}.page h1{margin:0;font-size:var(--t-3xl);line-height:1.15;font-weight:700;letter-spacing:-.02em}.page-head p{margin:0;font-size:var(--t-base);color:var(--text-muted)}.umenu{position:relative}.avatar-btn{cursor:pointer;font:inherit;font-size:var(--t-xs);font-weight:650}.avatar-btn:hover{box-shadow:0 0 0 3px var(--accent-soft)}.umenu-pop{position:absolute;right:0;top:calc(100% + 8px);width:248px;max-width:calc(100vw - 24px);padding:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-3);z-index:var(--z-pop, 20);animation:pop var(--dur) var(--ease)}.umenu-head{display:flex;flex-direction:column;gap:2px;padding:8px 10px 10px;font-size:var(--t-sm);border-bottom:1px solid var(--border);margin-bottom:4px}.umenu-item{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;padding:8px 10px;border:0;background:none;color:var(--text);font:inherit;font-size:var(--t-sm);text-align:left;border-radius:var(--r-sm);cursor:pointer}.umenu-item:hover,.umenu-item:focus-visible{background:var(--surface-2)}.umenu-item.danger{color:var(--bad-fg)}.umenu-check{width:16px;color:var(--accent-text)}.umenu-sep{height:1px;background:var(--border);margin:6px 0}.umenu-label{padding:4px 10px;font-size:var(--t-xs);font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.avatar{width:36px;height:36px;border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-text);display:inline-flex;align-items:center;justify-content:center;font-size:var(--t-xs);font-weight:650;flex:none;border:1px solid var(--accent-line)}.banner{padding:10px 32px;font-size:var(--t-sm);font-weight:500;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.banner.info{background:var(--accent-soft);border-bottom:1px solid var(--accent-line)}.banner.warn{background:var(--bad-bg);color:var(--bad-fg);border-bottom:1px solid var(--bad-bd)}.banner.dark{background:var(--panel);color:#fff}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.tile{background:var(--tile);border-color:var(--tile);color:var(--on-tile, #fff)}.tile .lbl{color:color-mix(in srgb,var(--on-tile, #fff) 72%,transparent)}.tile .muted{color:color-mix(in srgb,var(--on-tile, #fff) 82%,transparent)}.lbl{font-size:11px;font-weight:650;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted)}.muted{color:var(--text-muted)}.panel{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border)}.pill{display:inline-flex;align-items:center;gap:6px;padding:2px 10px 2px 8px;border-radius:var(--r-pill);font-size:var(--t-xs);font-weight:550;white-space:nowrap;line-height:20px;border:1px solid transparent}.pill svg{width:12px;height:12px;flex:none}.pill.good{background:var(--good-bg);color:var(--good-fg);border-color:var(--good-bd)}.pill.warn{background:var(--warn-bg);color:var(--warn-fg);border-color:var(--warn-bd)}.pill.bad{background:var(--bad-bg);color:var(--bad-fg);border-color:var(--bad-bd)}.pill.info{background:var(--info-bg);color:var(--info-fg);border-color:var(--info-bd)}.pill.none{background:var(--surface-2);color:var(--text-muted);border-color:var(--border)}.chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--r-sm);font-size:var(--t-xs);background:var(--accent-soft);color:var(--text);white-space:nowrap}.note-good,.note.good{font-size:12.5px;font-weight:600;padding-top:10px;color:var(--good-fg)}.note-bad,.note.bad{font-size:12.5px;font-weight:600;padding-top:10px;color:var(--bad-fg)}.err{color:var(--bad-fg);font-size:var(--t-sm);font-weight:500}.btn{font:inherit;font-weight:600;font-size:var(--t-sm);min-height:44px;padding:0 16px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform 80ms var(--ease)}.btn:hover{background:var(--surface-2);border-color:var(--text-faint);color:var(--text)}.btn:active{transform:translateY(1px)}.btn.sm{min-height:36px;font-size:12.5px;padding:0 12px}.btnp{border-color:transparent;color:var(--on-accent);background:var(--accent)}.btnp:hover{background:color-mix(in srgb,var(--accent) 88%,#000);border-color:transparent;color:var(--on-accent)}.btnd{color:var(--bad-fg);border-color:var(--bad-bd)}.btnd:hover{background:var(--bad-bg);border-color:var(--bad-solid);color:var(--bad-fg)}.btnd.solid{background:var(--bad-solid);color:#fff;border-color:var(--bad-solid)}.btnd.solid:hover{background:color-mix(in srgb,var(--bad-solid) 85%,#000);color:#fff}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.btn.loading{position:relative;color:transparent!important;pointer-events:none}.btn.loading:after{content:"";position:absolute;width:16px;height:16px;border-radius:50%;border:2px solid var(--text);border-right-color:transparent;animation:spin .7s linear infinite}.btnp.loading:after{border-color:var(--on-accent);border-right-color:transparent}.btn-link{background:none;border:0;padding:0;min-height:0;color:var(--accent-text);text-decoration:underline;cursor:pointer;font-weight:550}.icon-btn{width:40px;height:40px;min-height:40px;padding:0}.chipbtn{font:inherit;font-size:12.5px;min-height:36px;padding:0 12px;border-radius:var(--r-pill);cursor:pointer;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);transition:background var(--dur) var(--ease)}.chipbtn:hover{background:var(--surface-2)}.chipbtn.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.scroll:focus-visible{outline-offset:-2px}.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--t-sm)}.tbl caption{text-align:left;padding:0 0 8px;color:var(--text-muted)}.tbl th{position:sticky;top:0;text-align:left;font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--on-th, #fff);background:var(--th);padding:11px 12px;white-space:nowrap}.tbl th:first-child{border-top-left-radius:var(--r-md)}.tbl th:last-child{border-top-right-radius:var(--r-md)}.tbl td{padding:12px;border-bottom:1px solid var(--border);vertical-align:top}.tbl tbody tr{transition:background var(--dur) var(--ease)}.tbl tbody tr:hover td{background:var(--surface-2)}.tbl tbody tr[tabindex]{cursor:pointer}.tbl tbody tr[aria-selected=true] td{background:var(--accent-soft)}.tbl-empty{padding:28px 12px;text-align:center;color:var(--text-muted)}.tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:thin;padding:2px;margin:-2px;-webkit-overflow-scrolling:touch}.tab{font:inherit;font-size:var(--t-sm);font-weight:500;min-height:40px;padding:0 14px;border-radius:var(--r-pill);cursor:pointer;display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--text);border:1px solid transparent;white-space:nowrap;flex:none;transition:background var(--dur) var(--ease)}.tab:hover{background:var(--surface-2)}.tab.on,.tab[aria-pressed=true]{background:var(--dark);color:#fff;font-weight:600}.inp{font:inherit;font-size:14px;min-height:44px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);width:100%;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.inp:hover{border-color:var(--text-faint)}.inp:focus{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);outline:none}.inp::placeholder{color:var(--text-faint)}.inp[aria-invalid=true]{border-color:var(--bad-solid);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad-solid) 16%,transparent)}.inp[disabled]{background:var(--surface-2);color:var(--text-muted);cursor:not-allowed}textarea.inp{padding:10px 12px;min-height:88px;resize:vertical;line-height:1.5}select.inp{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}input[type=color].inp{padding:3px;cursor:pointer}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{font-size:var(--t-sm);font-weight:600}.field .req{color:var(--bad-fg);margin-left:2px}.field .help{font-size:var(--t-xs);color:var(--text-muted)}.field .field-err{font-size:var(--t-xs);color:var(--bad-fg);font-weight:550}.field .suffix{font-size:var(--t-xs);color:var(--text-muted);margin-left:8px;white-space:nowrap}.field .inline{display:flex;align-items:center;position:relative}.field .reveal{position:absolute;right:4px;top:50%;transform:translateY(-50%);min-height:36px;padding:0 10px;border:0;background:transparent;color:var(--text-muted);font-size:var(--t-xs);font-weight:600;cursor:pointer;border-radius:var(--r-sm)}.field .reveal:hover{color:var(--text);background:var(--surface-2)}.check{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;min-height:28px;cursor:pointer}.check input{margin-top:2px;width:20px;height:20px;flex:none;accent-color:var(--accent);cursor:pointer}.perm-group{display:flex;flex-direction:column;gap:6px}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}.stack{display:flex;flex-direction:column;gap:var(--s-4)}.stack-sm{display:flex;flex-direction:column;gap:var(--s-2)}.cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3)}.split{display:grid;gap:var(--s-4);grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}fieldset.multi{margin:0;padding:12px;border:1px solid var(--border);border-radius:var(--r-md);display:grid;gap:4px;max-height:260px;overflow:auto;grid-column:1 / -1}fieldset.multi legend{padding:0 6px;font-size:var(--t-sm);font-weight:600}.setlayout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s-6);align-items:start}.setnav{position:sticky;top:calc(var(--top-h) + 16px);display:flex;flex-direction:column;gap:var(--s-4)}.setgroup{display:flex;flex-direction:column;gap:2px}.setgroup .grp{padding:0 10px 4px;font-size:var(--t-xs);font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.setitem{text-align:left;min-height:38px;padding:8px 10px;border:0;border-radius:var(--r-sm);background:none;color:var(--text);font:inherit;font-size:var(--t-sm);cursor:pointer;border-left:3px solid transparent}.setitem:hover{background:var(--surface-2)}.setitem.on{background:var(--accent-soft);color:var(--accent-text);font-weight:650;border-left-color:var(--accent)}.setbody{display:flex;flex-direction:column;gap:var(--s-4);min-width:0}.cal-bar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}.seg{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px}.seg .btn.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-text);font-weight:650}.cal{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:10px;min-width:860px}.cal-day{padding:10px;border-radius:var(--r-md);background:var(--surface-2);display:flex;flex-direction:column;gap:8px;min-height:130px}.cal-day.today{outline:2px solid var(--accent)}.grid.side-main{grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start}.split-even{display:grid;gap:var(--s-4);grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));align-items:start}.checklist{list-style:none;margin:0;padding:0;display:grid;gap:4px}.checklist li{display:flex;align-items:center;gap:12px;padding:8px 4px;border-bottom:1px solid var(--border)}.checklist li:last-child{border-bottom:0}.checklist li>span:nth-child(2){flex:1}.checklist .tick{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:2px solid var(--border-strong);font-size:12px;font-weight:700}.checklist li.done .tick{background:var(--accent);border-color:var(--accent);color:var(--on-accent, #06210f)}.checklist li.done>span:nth-child(2){color:var(--text-muted);text-decoration:line-through}.savebar{position:sticky;bottom:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-2);z-index:var(--z-sticky)}.savebar.dirty{background:var(--accent-soft);border-color:var(--accent-line)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:16px;z-index:var(--z-modal);animation:fade var(--dur) var(--ease)}.modal{position:relative;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-3);padding:24px;max-width:560px;width:100%;max-height:min(90vh,90dvh);overflow:auto;display:flex;flex-direction:column;gap:14px;animation:pop var(--dur) var(--ease)}.modal-x{position:absolute;top:10px;right:10px}.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:var(--z-toast);max-width:min(420px,calc(100vw - 32px))}.toast{display:flex;align-items:flex-start;gap:10px;background:var(--dark);color:#fff;padding:12px 14px;border-radius:var(--r-md);font-size:13.5px;box-shadow:var(--shadow-3);animation:pop var(--dur) var(--ease);border:1px solid rgba(255,255,255,.12)}.toast.bad{background:var(--bad-fg)}:root[data-theme=dark] .toast.bad{background:#7f1d1d}.toast svg{flex:none;width:18px;height:18px;margin-top:1px}.toast .toast-x{margin-left:auto;background:none;border:0;color:inherit;opacity:.75;cursor:pointer;min-width:28px;min-height:28px;border-radius:var(--r-sm)}.toast .toast-x:hover{opacity:1;background:#ffffff1f}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--border-strong);border-top-color:var(--accent);animation:spin .7s linear infinite;display:inline-block}.skel{display:block;border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.4s linear infinite}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:32px 16px;color:var(--text-muted)}.empty h3{margin:0;color:var(--text);font-size:var(--t-lg)}.empty p{margin:0;max-width:44ch}.empty .art{width:112px;height:112px;color:var(--accent)}.authwrap{min-height:100vh;min-height:100dvh;width:100%;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);background:var(--bg);font-family:var(--font);color:var(--text);font-size:var(--t-md);line-height:1.5}.auth-brand{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:32px;padding:40px 48px;background:var(--dark, #0f172a);color:#fff}.auth-brand .auth-logo .disp{color:#fff}.auth-logo{display:flex;align-items:center;gap:10px}.auth-logo .disp{font-size:18px;font-weight:700;letter-spacing:-.01em}.auth-pitch h2{margin:0 0 20px;font-size:var(--t-3xl);line-height:1.15;letter-spacing:-.02em;font-weight:750;max-width:16ch}.auth-pitch ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.auth-pitch li{display:flex;gap:10px;align-items:flex-start;color:#ffffffd1}.auth-pitch li svg{flex:none;margin-top:2px;color:var(--accent)}.auth-motif{width:100%;height:96px;color:var(--accent);opacity:.85}.auth-main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px 24px}.authcard{width:100%;max-width:440px;padding:32px 28px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-2)}.authcard h1{margin:0;font-size:var(--t-2xl);letter-spacing:-.02em}.auth-sub{margin:-8px 0 0}.auth-mobile-logo{display:none}.auth-mobile-logo .disp{color:var(--text)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-note{font-size:var(--t-sm)}.auth-foot{margin:0;font-size:var(--t-sm);text-align:center}.btn.lg{min-height:48px;font-size:var(--t-md)}.btn.sm{min-height:34px;padding:4px 12px;font-size:var(--t-sm)}.linkbtn{background:none;border:0;padding:8px;min-height:44px;color:var(--accent-text);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px;align-self:center}.linkbtn:hover{color:var(--text)}.auth-steps{list-style:none;margin:0;padding:0;display:flex;gap:6px;font-size:var(--t-xs);font-weight:600;color:var(--text-faint)}.auth-steps li{flex:1;display:flex;align-items:center;gap:6px;padding-top:8px;border-top:3px solid var(--border)}.auth-steps li.now{color:var(--text);border-top-color:var(--accent)}.auth-steps li.done{color:var(--accent-text);border-top-color:var(--accent)}.auth-steps .dot{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--surface-3);font-size:10px}.auth-steps li.now .dot,.auth-steps li.done .dot{background:var(--accent);color:var(--on-accent, #06210f)}.qr{display:flex;justify-content:center;padding:12px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md)}.keybox{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.keybox .lbl{display:block;font-size:var(--t-xs);color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.keybox code{word-break:break-all;font-size:var(--t-sm)}.code{font-size:22px;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}.rcodes{font-family:ui-monospace,SF Mono,Consolas,monospace;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:14px}.picklist{display:flex;flex-direction:column;gap:8px}.pickcard{display:flex;align-items:center;gap:12px;width:100%;padding:12px;text-align:left;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;min-height:64px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.pickcard:hover:not(:disabled){border-color:var(--accent);box-shadow:var(--shadow-1)}.pickcard:disabled{opacity:.55;cursor:not-allowed}.pickcard .avatar{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-md);background:var(--accent-soft);color:var(--accent-text);font-weight:700}.pick-text{flex:1;min-width:0;display:flex;flex-direction:column}.pick-name{font-weight:650}.pick-note{font-size:var(--t-sm)}@media print{.authwrap{display:block}.auth-brand,.auth-foot,.auth-steps,.auth-form,.btn{display:none!important}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(6px) scale(.98)}}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}@media (max-width: 900px){.authwrap{grid-template-columns:minmax(0,1fr)}.auth-brand{display:none}.auth-mobile-logo{display:block}.auth-main{padding-top:24px}}@media (max-width: 900px){.setlayout{grid-template-columns:minmax(0,1fr);gap:var(--s-3)}.setnav{position:static;flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:4px;scrollbar-width:none}.setgroup{flex-direction:row;gap:6px;flex:none}.setgroup .grp{display:none}.setitem{white-space:nowrap;border:1px solid var(--border);border-radius:var(--r-pill);padding:8px 14px;background:var(--surface)}.setitem.on{border-color:var(--accent-line)}}@media (max-width: 1100px){.split{grid-template-columns:minmax(0,1fr)}}@media (max-width: 900px){.fv{display:block}.btn.menu-btn{display:inline-flex}.side{position:fixed;inset:0 auto 0 0;width:min(86vw,320px);transform:translate(-102%);transition:transform .22s var(--ease);box-shadow:var(--shadow-3)}.side.open{transform:none}.side-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:calc(var(--z-side) - 1);animation:fade var(--dur) var(--ease)}.top{padding:8px 16px}.page{padding:20px 16px 48px}.banner{padding:10px 16px}}@media (max-width: 900px){.grid.side-main{grid-template-columns:minmax(0,1fr)}}@media (max-width: 640px){.cal{grid-template-columns:minmax(0,1fr);min-width:0;gap:8px}.cal-day{min-height:0}.page h1{font-size:var(--t-2xl)}.page-head p{font-size:var(--t-md)}.top .acts .btn{flex:none}.toasts{left:16px;right:16px;bottom:16px;max-width:none}.modal-bg{align-items:flex-end;padding:0}.modal{max-width:none;border-bottom-left-radius:0;border-bottom-right-radius:0;max-height:92dvh;padding:20px 16px 24px;animation:sheet .22s var(--ease)}.authcard{padding:24px 18px}.auth-main{padding:16px;justify-content:flex-start}.tbl.cards{display:block}.tbl.cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.tbl.cards tbody,.tbl.cards tr{display:block}.tbl.cards tr{border:1px solid var(--border);border-radius:var(--r-md);padding:4px 12px;margin-bottom:10px;background:var(--surface)}.tbl.cards td{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:8px 0;border-bottom:1px solid var(--border);text-align:right}.tbl.cards td:last-child{border-bottom:0}.tbl.cards td[data-label]:before{content:attr(data-label);flex:none;max-width:42%;text-align:left;font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.tbl.cards td[colspan]{display:block;text-align:left}.tbl.cards td:empty{display:none}.tbl.cards tbody tr:hover td{background:transparent}}@media (pointer: coarse),(max-width: 640px){.inp{font-size:16px}}@keyframes sheet{0%{transform:translateY(24px);opacity:0}}@media print{.side,.top,.toasts,.skip,.savebar,.menu-btn{display:none!important}.fv{display:block;background:#fff}.page{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid}}.card.pad{padding:20px;display:flex;flex-direction:column;gap:12px}.card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.card-title{margin:0;font-size:var(--t-lg)}.card-desc{margin:0;font-size:13.5px}.tiles{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr))}.tile{padding:16px;display:flex;flex-direction:column;gap:4px}.tile .val{font-size:var(--t-2xl);font-weight:700;letter-spacing:-.02em;line-height:1.15}@media (max-width: 640px){.card.pad{padding:16px}.tile .val{font-size:22px}}.fs-11-5{font-size:11.5px}.fs-12{font-size:12px}.fs-12-5{font-size:12.5px}.fs-13{font-size:13px}.fs-13-5{font-size:13.5px}.fs-18{font-size:18px}.fw-600{font-weight:600}.m0{margin:0}.pl-20{padding-left:20px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.between{justify-content:space-between}.text-right{text-align:right}.block{display:block}.stack{display:flex;flex-direction:column}.cluster-20{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.palette{display:flex;flex-direction:column;gap:10px}.palette ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;max-height:50vh;overflow:auto}.palette li[role=option]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r-sm);cursor:pointer;min-height:44px}.palette li[role=option]>span:nth-of-type(1){flex:1;font-weight:600}.palette li.on{background:var(--accent-soft);color:var(--accent-text)}.palette .ico{width:18px;height:18px;flex:none}:root{--accent: #4f46e5;--on-accent: #ffffff;--dark: #1e1b4b;--panel: #312e81;--tile: #1e1b4b;--th: #1e1b4b}
