@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff");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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff");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}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2) format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2) format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2) format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff) format("woff");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff");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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");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}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-vietnamese-500-normal-BmEvtly_.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-500-normal-BTqKIpxg.woff) format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-ext-500-normal-DUe3BAxM.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-500-normal-3dgZTiw9.woff) format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2) format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff) format("woff");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}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2) format("woff2"),url(/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff) format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2) format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff) format("woff");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:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2) format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff) format("woff");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{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-12: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--font-display: "Space Grotesk", "IBM Plex Sans", system-ui, sans-serif;--font-ui: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--text-xs: 11px;--text-sm: 12px;--text-md: 13px;--text-base: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 26px;--text-3xl: 40px;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--z-canvas: 1;--z-float: 5;--z-panel: 20;--z-drawer: 30;--z-modal: 40;--z-menu: 50;--z-toast: 60;--duration-fast: .12s;--duration-base: .2s;--ease: cubic-bezier(.2, 0, 0, 1);--target-min: 32px;--paper: #ffffff;--paper-ink: #111111;--plan-grid: #eef0f3;--color-slate: #0F172A;--color-amber: #F2A900;--color-copper: #B45309;--color-paper: #F6F5F1;--color-graphite: #4B5563;--color-ok: #15803D;--color-error: #DC2626;--accent-text-light: #B45309;--accent-text-dark: #F2A900;--accent-text-contrast: #7A3500}:root,:root[data-theme=light]{color-scheme:light;--accent: #0F172A;--accent-contrast: #ffffff;--brand-ink: #0F172A;--brand-cad: #B45309;--surface: #ffffff;--surface-elevated: #ffffff;--surface-sunken: #F6F5F1;--surface-hover: #eceff3;--surface-inverse: #0f172a;--text-inverse: #ffffff;--border: #e2e6ec;--border-strong: #7c8696;--text: #0f172a;--text-2: #334155;--text-muted: #4B5563;--text-faint: #6b7584;--danger: #c81e1e;--danger-soft: #fef2f2;--warning: #9a4a07;--warning-soft: #fffbeb;--warning-dot: #d97706;--success: #15803D;--success-soft: #f0fdf4;--info: #1d4ed8;--info-soft: #eff6ff;--accent-text: var(--accent-text-light);--selection: #2563eb;--selection-fill: rgba(37, 99, 235, .1);--guide: #db2777;--canvas-bg: #e9ecf0;--canvas-grid: #c9cfd8;--overlay: rgba(15, 23, 42, .35);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .08);--shadow-md: 0 1px 2px rgba(15, 23, 42, .06), 0 4px 16px rgba(15, 23, 42, .06);--shadow-lg: 0 10px 40px rgba(15, 23, 42, .18);--shadow-sheet: 0 2px 6px rgba(0, 0, 0, .08), 0 12px 32px rgba(15, 23, 42, .1);--focus-width: 2px}:root[data-theme=dark]{color-scheme:dark;--accent: #F2A900;--accent-contrast: #0F172A;--brand-ink: #FFFFFF;--brand-cad: #F2A900;--surface: #162033;--surface-elevated: #1E293B;--surface-sunken: #0F172A;--surface-hover: #26334A;--surface-inverse: #e7ecf2;--text-inverse: #0F172A;--border: #2A3851;--border-strong: #7385A1;--text: #F1F5F9;--text-2: #CBD5E1;--text-muted: #A3B0C2;--text-faint: #95A3B8;--danger: #fca5a5;--danger-soft: #3a1a1d;--warning: #fcd34d;--warning-soft: #332a10;--warning-dot: #f59e0b;--success: #86efac;--success-soft: #13291b;--info: #93b4ff;--info-soft: #18233d;--accent-text: var(--accent-text-dark);--selection: #2563eb;--selection-fill: rgba(37, 99, 235, .14);--guide: #db2777;--canvas-bg: #0A1020;--canvas-grid: #24304A;--overlay: rgba(0, 0, 0, .55);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .6);--shadow-sheet: 0 2px 6px rgba(0, 0, 0, .5), 0 12px 32px rgba(0, 0, 0, .45);--focus-width: 2px}:root[data-theme=contrast]{color-scheme:light;--accent: #0F172A;--accent-contrast: #ffffff;--brand-ink: #000000;--brand-cad: #7A3500;--surface: #ffffff;--surface-elevated: #ffffff;--surface-sunken: #ffffff;--surface-hover: #e6e6e6;--surface-inverse: #000000;--text-inverse: #ffffff;--border: #000000;--border-strong: #000000;--text: #000000;--text-2: #000000;--text-muted: #262626;--text-faint: #262626;--danger: #9b0000;--danger-soft: #ffffff;--warning: #6b3400;--warning-soft: #ffffff;--warning-dot: #8a4b00;--success: #0b4d23;--success-soft: #ffffff;--info: #0033aa;--info-soft: #ffffff;--accent-text: var(--accent-text-contrast);--selection: #0033aa;--selection-fill: rgba(0, 51, 170, .12);--guide: #b0005a;--canvas-bg: #ffffff;--canvas-grid: #9a9a9a;--overlay: rgba(0, 0, 0, .6);--shadow-sm: none;--shadow-md: 0 0 0 1px #000000;--shadow-lg: 0 0 0 2px #000000;--shadow-sheet: 0 0 0 1px #000000;--focus-width: 3px}:root{--accent-soft: color-mix(in srgb, var(--accent) 12%, var(--surface));--accent-border: color-mix(in srgb, var(--accent) 35%, var(--surface));--accent-hover: color-mix(in srgb, var(--accent) 88%, var(--text));--focus: var(--accent-text)}@media(pointer:coarse){:root{--target-min: 44px}}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-base: 0ms}*,*:before,*:after{animation-duration:0ms!important;animation-iteration-count:1!important;transition-duration:0ms!important;scroll-behavior:auto!important}}:root{font-family:var(--font-ui);font-size:var(--text-base);color:var(--text);background:var(--surface-sunken);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}fieldset{min-width:0}html,body,#root{height:100%;margin:0}body{overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent-text)}h1,h2,h3{margin:0;font-family:var(--font-display);font-weight:700;letter-spacing:-.02em}.side-head h2,.insp-title,.modal-head h2,.card-title{font-weight:600;letter-spacing:-.01em}.muted{color:var(--text-muted)}.small{font-size:var(--text-sm)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.row{display:flex;align-items:center;gap:var(--space-2)}.grow{flex:1;min-width:0}.stack{display:flex;flex-direction:column;gap:var(--space-3)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;font-weight:var(--weight-medium);white-space:nowrap;transition:background var(--duration-fast),border-color var(--duration-fast),box-shadow var(--duration-fast)}.btn:hover{background:var(--surface-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface-hover)}.btn.danger{color:var(--danger)}.btn.sm{height:28px;padding:0 9px;font-size:var(--text-md)}.btn.lg{height:42px;padding:0 18px;font-size:15px}.icon-btn{display:inline-grid;place-items:center;width:var(--target-min);height:var(--target-min);border-radius:var(--radius-md);border:0;background:transparent;cursor:pointer;color:var(--text-2)}.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.icon-btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text)}.icon-btn:disabled{opacity:.35;cursor:default;background:transparent}.icon-btn.tool{width:auto;padding:0 var(--space-2);gap:5px;grid-auto-flow:column;font-size:var(--text-sm);font-weight:var(--weight-medium)}.tool-label{display:none}@media(min-width:1700px){.tool-label{display:inline}}@media(pointer:coarse){.icon-btn.tool{padding:0 10px}.chip{padding:var(--space-2)}}.field{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-sm);color:var(--text-muted);font-weight:var(--weight-medium);min-width:0}.input,.select,.field input,.field select,.field textarea{height:34px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--text);font-size:var(--text-base);font-weight:400;min-width:0;width:100%}.field input[type=checkbox],.field input[type=range],.field input[type=color]{height:auto;padding:0;border:0;width:auto}.field input[type=range]{width:100%}.field textarea{height:auto;padding:var(--space-2) 10px;resize:vertical}.input:focus,.select:focus,.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent-text);box-shadow:0 0 0 3px var(--accent-soft)}.input:disabled,.select:disabled,.field input:disabled,.field select:disabled{background:var(--surface-sunken);color:var(--text-muted)}::placeholder{color:var(--text-faint)}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.check{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);color:var(--text-2);cursor:pointer}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);height:20px;padding:0 7px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);background:var(--surface-hover);color:var(--text-2)}.badge.err{background:var(--danger-soft);color:var(--danger)}.badge.warn{background:var(--warning-soft);color:var(--warning)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.ok{background:var(--success-soft);color:var(--success)}.banner{padding:9px 14px;font-size:var(--text-md);display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);background:var(--warning-soft);color:var(--warning)}.banner.err{background:var(--danger-soft);color:var(--danger)}.banner.info{background:var(--info-soft);color:var(--info)}.empty{padding:28px var(--space-4);text-align:center;color:var(--text-muted);font-size:var(--text-md)}.kbd{font-family:var(--font-mono);font-size:var(--text-xs);padding:1px 5px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted)}.app{display:flex;flex-direction:column;height:100%}.topnav{height:56px;display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-5);background:var(--surface);border-bottom:1px solid var(--border)}.logo{display:flex;align-items:center;gap:10px;font-weight:var(--weight-bold);font-size:15px;color:var(--text);text-decoration:none}.logo img{max-height:30px;max-width:120px;object-fit:contain}.logo-mark{width:28px;height:28px;border-radius:var(--radius-md);background:var(--accent);display:grid;place-items:center;color:var(--accent-contrast)}.nav-links{display:flex;gap:2px}.nav-links a{padding:7px var(--space-3);border-radius:var(--radius-md);color:var(--text-2);text-decoration:none;font-weight:var(--weight-medium);display:flex;gap:7px;align-items:center}.nav-links a:hover{background:var(--surface-hover)}.nav-links a[aria-current=page]{background:var(--accent-soft);color:var(--accent-text)}.page{flex:1;overflow:auto}.page-inner{max-width:1120px;margin:0 auto;padding:var(--space-8) var(--space-6) 64px}.page-head{display:flex;align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}.page-head h1{font-size:var(--text-2xl)}.lede{margin:6px 0 0}.card-title{font-size:var(--text-lg)}.card-pad{padding:var(--space-5)}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-4)}.proj{padding:18px;display:flex;flex-direction:column;gap:10px;cursor:pointer;transition:transform var(--duration-fast),box-shadow var(--duration-fast);text-align:left}.proj:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.proj h3{font-size:var(--text-lg)}.proj .meta{display:flex;gap:6px;flex-wrap:wrap}.proj .meta-line{min-height:18px}.proj .date{margin-left:auto}.proj .thumb{height:92px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--accent-soft),var(--surface));border:1px solid var(--border);display:grid;place-items:center;color:var(--accent-text)}.search{position:relative}.search svg{position:absolute;left:10px;color:var(--text-muted)}.search .input{padding-left:32px;width:240px}.empty-card{padding:40px;text-align:center}.auth{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr}.auth-hero{--hero-text: #E2E8F0;--hero-muted: #A3B0C2;background-color:var(--color-slate);background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:40px 40px;background-position:-1px -1px;color:var(--hero-text);padding:56px;display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-8)}.auth-hero .hero-lede{margin:var(--space-4) 0 0;font-size:var(--text-lg);color:var(--hero-text);max-width:520px}.auth-hero h1{font-size:var(--text-3xl);line-height:1.08;color:#fff;max-width:560px;letter-spacing:-.03em}.auth-hero ul{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:var(--space-3)}.auth-hero li{display:flex;gap:10px;align-items:center}.auth-hero .brandline{gap:10px;font-weight:var(--weight-bold);font-size:var(--text-lg)}.auth-hero .fineprint{color:var(--hero-muted)}.auth-hero .hero-check{color:var(--color-amber);flex:none}.auth-form{display:grid;place-items:center;padding:var(--space-8) var(--space-5);background:var(--surface-sunken)}.auth-form form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}.auth-form h2{font-size:24px}.form-error{color:var(--danger);font-size:var(--text-md);background:var(--danger-soft);padding:var(--space-2) 10px;border-radius:var(--radius-md)}@media(max-width:860px){.auth{grid-template-columns:1fr}.auth-hero{padding:var(--space-8) var(--space-5)}.auth-hero h1{font-size:28px}}.cart-preview{padding:var(--space-4);margin-bottom:var(--space-5);overflow:auto}.cart-preview svg{width:100%;min-width:820px;display:block;font-family:Arial,Helvetica,sans-serif;background:var(--paper);border-radius:var(--radius-sm)}.logo-box{width:120px;height:64px;border:1px dashed var(--border-strong);border-radius:var(--radius-md);display:grid;place-items:center;overflow:hidden;background:var(--paper)}.logo-box img{max-width:100%;max-height:100%;object-fit:contain}.field input.color-swatch,.color-swatch{width:52px;height:34px;padding:2px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface)}.editor{display:grid;grid-template-rows:52px auto 1fr;height:100%;background:var(--surface-sunken)}.ed-top{display:flex;align-items:center;gap:10px;padding:0 var(--space-3);background:var(--surface);border-bottom:1px solid var(--border);min-width:0}.ed-title{font-weight:650;font-size:15px;border:1px solid transparent;border-radius:var(--radius-sm);padding:var(--space-1) 6px;background:transparent;color:var(--text);min-width:80px;max-width:320px}.ed-title:hover{border-color:var(--border)}.ed-title:focus{outline:none;border-color:var(--accent-text)}.save-state{font-size:var(--text-sm);color:var(--text-muted);display:flex;align-items:center;gap:5px;white-space:nowrap}.tabs{display:flex;background:var(--surface-hover);padding:3px;border-radius:9px;gap:2px}.tab{border:0;background:transparent;padding:5px var(--space-3);border-radius:7px;cursor:pointer;font-weight:var(--weight-medium);color:var(--text-2);display:flex;gap:6px;align-items:center;font-size:var(--text-md)}.tab[aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.sep{width:1px;height:24px;background:var(--border)}.ed-body{--insp-w: 340px;--side-w: 300px;--rail-w: 56px;display:grid;grid-template-columns:var(--rail-w) var(--side-w) 1fr var(--insp-w);min-height:0;position:relative}.ed-body.no-inspector{grid-template-columns:var(--rail-w) var(--side-w) 1fr}.ed-body.panel-closed{grid-template-columns:var(--rail-w) 1fr var(--insp-w)}.ed-body.panel-closed.no-inspector{grid-template-columns:var(--rail-w) 1fr}.rail{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:var(--space-2) 0;gap:var(--space-1)}.rail button{width:44px;height:48px;border:0;background:transparent;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:10px;color:var(--text-muted);cursor:pointer;font-weight:var(--weight-medium)}.rail button:hover{background:var(--surface-hover);color:var(--text)}.rail button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-text)}.rail .alerts.has-err{color:var(--danger)}.side{background:var(--surface);border-right:1px solid var(--border);overflow:hidden;min-height:0;position:relative;display:flex}.side-scroll{flex:1;min-width:0;overflow:auto}.side-close{position:absolute;right:6px;top:9px;z-index:4;width:28px;height:28px}.side-head{position:sticky;top:0;z-index:2;background:var(--surface);padding:14px 42px 10px 14px;display:flex;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border)}.side-head h2{font-size:var(--text-base);flex:1}.side-sec{padding:var(--space-3) 14px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.side-sec.current{background:var(--accent-soft)}.eyebrow{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-weight:650}.inspector{background:var(--surface);border-left:1px solid var(--border);overflow:hidden;min-height:0;position:relative;display:flex}.insp-scroll{flex:1;min-width:0;overflow:auto}.insp-resize{position:absolute;left:-1px;top:0;bottom:0;width:7px;cursor:col-resize;z-index:4}.insp-resize:hover{background:var(--accent-soft)}.insp-close{position:absolute;right:var(--space-2);top:var(--space-2);z-index:3}.clist{list-style:none;margin:0;padding:6px}.citem{display:flex;align-items:center;gap:var(--space-2);padding:7px var(--space-2);border-radius:var(--radius-md);cursor:pointer;border:1px solid transparent}.citem:hover{background:var(--surface-hover)}.citem[aria-selected=true]{background:var(--accent-soft);border-color:var(--accent-border)}.citem.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.citem .letter{width:30px;height:26px;border-radius:var(--radius-sm);background:var(--surface-hover);display:grid;place-items:center;font-weight:var(--weight-bold);font-size:var(--text-sm);font-family:var(--font-mono);flex:none}.citem[aria-selected=true] .letter{background:var(--accent);color:var(--accent-contrast)}.citem .name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:var(--weight-medium)}.citem .sub{font-size:var(--text-xs);color:var(--text-muted)}.grip{color:var(--text-faint);cursor:grab;display:grid;place-items:center}.dot{width:8px;height:8px;border-radius:50%;flex:none}.dot.err{background:var(--color-error)}.dot.warn{background:var(--warning-dot)}.rcd-group{padding:var(--space-2) var(--space-2) 2px;font-size:var(--text-xs);color:var(--text-muted);font-weight:var(--weight-semibold);display:flex;gap:6px;align-items:center}.rcd-group svg,.accent-icon{color:var(--accent-text)}.sym-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.sym{border:1px solid var(--border);border-radius:9px;background:var(--surface);padding:6px var(--space-1) 5px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:grab;font-size:10.5px;color:var(--text-2);text-align:center;line-height:1.2;min-height:74px}.sym:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.sym svg{width:46px;height:34px}.sym svg,.chip svg,svg.symprev{background:var(--paper);border-radius:var(--radius-sm)}.workspace{position:relative;overflow:hidden;min-width:0;min-height:0;background:var(--canvas-bg);background-image:radial-gradient(var(--canvas-grid) 1px,transparent 1px);background-size:20px 20px;touch-action:none}.workspace.panning{cursor:grabbing}.workspace.plain{overflow:auto;background:var(--surface-sunken);background-image:none}.workspace.center{display:grid;place-items:center}.canvas{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.sheet{background:var(--paper);box-shadow:var(--shadow-sheet);margin-bottom:28px;display:block}.sheet svg{display:block}.plan-paper{fill:var(--paper)}.plan-grid-line{stroke:var(--plan-grid)}.canvas .ui-sel{stroke:var(--selection)}.canvas .ui-sel-fill{fill:var(--selection-fill)}.canvas .ui-handle{fill:var(--selection)}.canvas .ui-guide{stroke:var(--guide)}.canvas .ui-dim{fill:var(--selection)}.ws-tools{position:absolute;right:14px;bottom:14px;display:flex;gap:2px;background:var(--surface-elevated);border-radius:10px;box-shadow:var(--shadow-md);padding:3px;align-items:center;z-index:var(--z-float)}.ws-tools .z{min-width:46px;text-align:center;font-size:var(--text-sm);color:var(--text-muted);font-variant-numeric:tabular-nums}.ws-float{position:absolute;left:14px;top:14px;display:flex;gap:var(--space-1);background:var(--surface-elevated);border-radius:10px;box-shadow:var(--shadow-md);padding:var(--space-1);z-index:var(--z-float);align-items:center;flex-wrap:wrap;max-width:calc(100% - 28px)}.ws-hint{position:absolute;left:50%;bottom:var(--space-4);transform:translate(-50%);background:var(--surface-inverse);color:var(--text-inverse);padding:7px var(--space-3);border-radius:var(--radius-md);font-size:12.5px;z-index:var(--z-float);box-shadow:var(--shadow-lg)}.ws-hint.raised{bottom:64px}.ws-hint .kbd{background:transparent;color:inherit;border-color:currentColor}.tray{position:absolute;left:14px;bottom:14px;top:64px;width:230px;background:var(--surface-elevated);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);z-index:4;display:flex;flex-direction:column;overflow:hidden}.tray-head{padding:10px var(--space-3);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px;font-weight:var(--weight-semibold);font-size:var(--text-md)}.tray-filters{padding:var(--space-2) var(--space-2) 0;display:flex;flex-direction:column;gap:6px}.tray-filters .select{height:28px;font-size:var(--text-sm);padding:0 6px}.tray-list{overflow:auto;padding:6px;display:flex;flex-direction:column;gap:3px}.chip{display:flex;align-items:center;gap:var(--space-2);padding:5px 7px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:grab;font-size:var(--text-sm);text-align:left}.chip:hover{border-color:var(--accent)}.chip[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.chip svg{width:30px;height:22px;flex:none}.chip b{font-size:var(--text-sm);font-family:var(--font-mono)}.chip .chip-sub{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.insp-head{padding:14px 46px 14px 14px;border-bottom:1px solid var(--border);display:flex;gap:10px;align-items:center}.insp-head .letter{width:38px;height:34px;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-contrast);display:grid;place-items:center;font-weight:750;font-family:var(--font-mono)}.insp-sec{padding:14px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.pt{border:1px solid var(--border);border-radius:10px;padding:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2);background:var(--surface)}.pt[aria-selected=true]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.pt-row{display:flex;align-items:center;gap:6px}.pt.pt-compact{padding:var(--space-1) 6px;cursor:pointer;gap:0}.pt.pt-compact:hover{background:var(--surface-hover)}.pt-row svg.symprev{width:34px;height:26px;flex:none}.issues{display:flex;flex-direction:column;gap:6px}.issue{display:flex;gap:var(--space-2);padding:var(--space-2) 10px;border-radius:var(--radius-md);font-size:12.5px;line-height:1.35;align-items:flex-start;cursor:pointer;border:1px solid transparent;text-align:left;background:none;width:100%}.issue.err{background:var(--danger-soft);color:var(--danger)}.issue.warn{background:var(--warning-soft);color:var(--warning)}.issue.info{background:var(--info-soft);color:var(--info)}.issue:hover{border-color:currentColor}.issue .ref{opacity:1;font-weight:var(--weight-medium)}.issue:has(>.issue-main){padding:0;cursor:default}.issue.is-muted{opacity:.75}.issue-main{all:unset;flex:1;cursor:pointer;padding:var(--space-2) var(--space-1) var(--space-2) 10px;border-radius:var(--radius-md)}.issue-main:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:1px}.issue .icon-btn{color:inherit}.insp-title{font-size:15px}.pt-code{font-size:12.5px;min-width:26px}fieldset.plain{border:0;margin:0;padding:0;min-width:0}fieldset.insp-sec.plain{padding:14px}.input.sm,.select.sm{height:30px}.menu{position:fixed;z-index:var(--z-menu);background:var(--surface-elevated);color:var(--text);border-radius:10px;box-shadow:var(--shadow-lg);border:1px solid var(--border);padding:5px;min-width:210px}.menu button{display:flex;width:100%;align-items:center;gap:9px;border:0;background:none;padding:7px 9px;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-md);text-align:left;color:var(--text)}.menu button:hover,.menu button:focus-visible{background:var(--surface-hover)}.menu button:focus-visible{outline-offset:-2px}.menu button.danger{color:var(--danger)}.menu hr{border:0;border-top:1px solid var(--border);margin:var(--space-1) 0}.menu .label{padding:6px 9px 3px;font-size:var(--text-xs);color:var(--text-muted);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.05em}.overlay{position:fixed;inset:0;background:var(--overlay);z-index:var(--z-modal);display:grid;place-items:center;padding:var(--space-4)}.modal{background:var(--surface-elevated);color:var(--text);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;overflow:auto}.modal-head{padding:18px var(--space-5) 6px;display:flex;align-items:center}.modal-head h2{font-size:18px;flex:1}.modal-body{padding:10px var(--space-5) var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.drawer{position:absolute;right:0;top:0;bottom:0;width:380px;background:var(--surface-elevated);box-shadow:var(--shadow-lg);z-index:var(--z-drawer);display:flex;flex-direction:column}.toast{position:fixed;bottom:var(--space-5);left:50%;transform:translate(-50%);background:var(--surface-inverse);color:var(--text-inverse);padding:10px var(--space-4);border-radius:10px;z-index:var(--z-toast);box-shadow:var(--shadow-lg);font-size:var(--text-md)}.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4)}.plan{padding:var(--space-6);display:flex;flex-direction:column;gap:14px}.plan.current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.plan .price{font-size:28px;font-weight:750;letter-spacing:-.02em}.plan ul{margin:0;padding:0;list-style:none;display:grid;gap:var(--space-2)}.plan li{display:flex;gap:var(--space-2);align-items:center;font-size:var(--text-md)}.banner.inline{border-radius:var(--radius-md);margin-bottom:var(--space-4);border:0}.list-wrap{max-width:1100px;margin:var(--space-6) auto;padding:0 var(--space-5)}.list-wrap>.card{overflow:hidden}.ctable{width:100%;border-collapse:collapse;font-size:var(--text-md);background:var(--surface)}.ctable th{text-align:left;font-size:var(--text-xs);color:var(--text-muted);font-weight:var(--weight-semibold);padding:9px 10px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface)}.ctable td{padding:var(--space-2) 10px;border-bottom:1px solid var(--border)}.ctable tr{cursor:pointer}.ctable tr:hover td{background:var(--surface-hover)}.ctable tr[aria-selected=true] td{background:var(--accent-soft)}@media(max-width:1280px){.ed-body{--side-w: 260px}}@media(max-width:1180px){.ed-body,.ed-body.no-inspector,.ed-body.panel-closed,.ed-body.panel-closed.no-inspector{grid-template-columns:var(--rail-w) 1fr}.ed-body.panel-open .side{position:absolute;left:var(--rail-w);top:0;bottom:0;width:300px;z-index:var(--z-panel);box-shadow:var(--shadow-lg)}.inspector{position:absolute;right:0;top:0;bottom:0;width:min(var(--insp-w),100% - var(--rail-w));z-index:calc(var(--z-panel) + 5);box-shadow:var(--shadow-lg)}.hide-md{display:none!important}}@media(max-width:860px){.hide-sm{display:none!important}}@media(max-width:720px){.ed-body.panel-open .side{width:calc(100% - var(--rail-w))}.inspector{top:auto;left:var(--rail-w);right:0;bottom:0;width:auto;height:56%;border-top:1px solid var(--border);border-left:0;border-radius:14px 14px 0 0}.insp-resize{display:none}.tray{width:200px;top:100px}.ws-float{max-width:calc(100% - 28px)}.ws-hint{max-width:calc(100% - 28px);font-size:var(--text-sm);text-align:center}.ed-top{gap:6px;padding:0 var(--space-2);overflow-x:auto}.ed-title{max-width:140px;min-width:60px}.rail button{width:40px;font-size:9px}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:root[data-theme=contrast] .issue,:root[data-theme=contrast] .badge,:root[data-theme=contrast] .banner{border:1px solid currentColor}:root[data-theme=contrast] .citem[aria-selected=true],:root[data-theme=contrast] .chip[aria-pressed=true]{outline:2px solid var(--text)}.plan-tb{flex-wrap:nowrap}.plan-tb .tb-group{display:flex;gap:2px}.plan-tb .plan-pick{width:120px}.plan-tb .badge{margin-left:2px}.tb-menu .caret{margin-left:-3px;opacity:.7}[data-tip]{position:relative}[data-tip]:hover:after,[data-tip]:focus-visible:after{content:attr(data-tip);position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%);white-space:nowrap;background:var(--surface-inverse);color:var(--text-inverse);font-size:var(--text-sm);font-weight:var(--weight-medium);padding:5px var(--space-2);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);pointer-events:none;z-index:var(--z-menu)}.plan-tb>:first-child[data-tip]:hover:after,.plan-tb>:first-child[data-tip]:focus-visible:after{left:0;transform:none}[data-tip][aria-expanded=true]:after{display:none}@media(pointer:coarse){[data-tip]:hover:after{display:none}}.ed-view{display:contents}.boot{height:100%;min-height:240px;display:grid;place-items:center;align-content:center;gap:var(--space-3);color:var(--text-muted);background:var(--surface-sunken);font-size:var(--text-md)}.state-card{max-width:440px;display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.state-card p{margin:0}.empty-guide{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(460px,calc(100% - 32px));padding:var(--space-5);z-index:var(--z-float)}.empty-guide ol{margin:var(--space-3) 0 0;padding-left:22px;display:grid;gap:var(--space-3)}.empty-guide li{padding-left:var(--space-1)}.empty-guide li>*{display:flex}.empty-guide li .muted{margin-top:var(--space-1)}.state-card{color:var(--text)}a.btn{text-decoration:none;color:var(--text)}a.btn.primary{color:var(--accent-contrast)}.sym-tile{position:relative}.sym-tile .sym{width:100%}.sym-fav{position:absolute;top:3px;right:3px;width:22px;height:22px;display:grid;place-items:center;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-faint);cursor:pointer;opacity:0}.sym-tile:hover .sym-fav,.sym-fav:focus-visible,.sym-fav.on{opacity:1}.sym-fav:hover{background:var(--surface-hover);color:var(--text)}.sym-fav.on{color:var(--warning-dot)}.sym-fav.on svg{fill:currentColor}@media(pointer:coarse){.sym-fav{opacity:1;width:32px;height:32px}}.sym-peek{position:fixed;transform:translateY(-50%);z-index:var(--z-menu);background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-3);display:flex;flex-direction:column;align-items:center;gap:var(--space-1);width:180px;text-align:center;pointer-events:none}.sym-peek svg{width:150px;height:110px;background:var(--paper);border-radius:var(--radius-md)}.side .search{display:flex;align-items:center}.side .search .input{width:100%}.with-unit{position:relative;display:flex;align-items:center}.with-unit input{padding-right:34px}.with-unit .unit{position:absolute;right:10px;color:var(--text-muted);font-size:var(--text-sm);pointer-events:none}.with-unit.invalid input,.field input[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.field-error{color:var(--danger);font-size:var(--text-xs);font-weight:var(--weight-medium)}@media(pointer:coarse){.btn,.btn.sm{min-height:var(--target-min)}.tab{min-height:var(--target-min);padding:0 14px}.tabs{padding:2px}.ed-title{min-height:var(--target-min)}.input,.select,.field input,.field select{height:var(--target-min)}.field input[type=checkbox],.check input{width:22px;height:22px}.check,.citem,.menu button,.chip{min-height:var(--target-min)}.issue-main{min-height:var(--target-min);box-sizing:border-box}.side-close{width:var(--target-min);height:var(--target-min)}.insp-resize{width:18px;left:-9px}.sym-fav{width:var(--target-min);height:var(--target-min);top:0;right:0}.ws-tools .z{min-width:52px}}.insp-resize{width:9px;left:-4px}.insp-resize:after{content:"";position:absolute;top:50%;left:50%;width:3px;height:32px;transform:translate(-50%,-50%);border-radius:2px;background:var(--border-strong);opacity:0;transition:opacity var(--duration-fast)}.insp-resize:hover:after,.inspector:hover .insp-resize:after{opacity:.6}.workspace.plain:has(.table-scroll){overflow:hidden}.list-wrap{height:100%;display:flex;flex-direction:column;margin:0 auto;padding:var(--space-6) var(--space-5);box-sizing:border-box}.table-scroll{overflow:auto;max-height:100%}.table-scroll:focus-visible{outline-offset:2px}.ctable{min-width:820px}.ctable td.nowrap,.ctable th{white-space:nowrap}.ctable .c-name{min-width:150px}.ctable .c-rooms{min-width:120px}.ctable .c-key{position:sticky;left:0;background:var(--surface);z-index:1}.ctable th.c-key{z-index:2}.ctable tr:hover td.c-key{background:var(--surface-hover)}.ctable tr[aria-selected=true] td.c-key{background:var(--accent-soft)}.ctable tr:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:-2px}.rail button{width:52px;letter-spacing:-.01em}.dropzone{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-5);border:2px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface-sunken);color:var(--text-2);flex-wrap:wrap;text-align:center}.dropzone.busy{opacity:.8}.import-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--space-3);max-height:46vh;overflow:auto;padding:2px}.import-page{display:flex;flex-direction:column;gap:6px;padding:var(--space-2);border:2px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.import-page img{width:100%;height:110px;object-fit:contain;background:var(--paper);border-radius:var(--radius-sm)}.import-page.role-uni{border-color:var(--accent)}.import-page.role-plan{border-color:var(--success)}.import-page.role-skip img{opacity:.45}.import-preview{max-width:420px;max-height:300px;object-fit:contain;background:var(--paper);border:1px solid var(--border);border-radius:var(--radius-md)}.import-sheets{display:grid;gap:var(--space-3);max-height:40vh;overflow:auto;padding:2px}.import-sheets .sheet{width:100%;margin:0}.import-sheets .sheet svg{width:100%;height:100%}.import-warn{margin:6px 0 0;padding-left:18px;display:grid;gap:2px}.update-banner{position:fixed;top:var(--space-3);left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-lg);background:var(--surface-inverse);color:var(--text-inverse);box-shadow:var(--shadow-lg);font-size:var(--text-md);max-width:calc(100% - 32px)}.brand-logo{display:block;flex:none}.logo .brand-logo{height:26px;width:auto}.app-footer{display:flex;align-items:center;gap:var(--space-2);max-width:1120px;margin:0 auto;padding:var(--space-6) var(--space-6) var(--space-8);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--text-2);flex-wrap:wrap}.app-footer b{font-family:var(--font-display)}.auth-form .btn.lg{height:46px;font-size:var(--text-lg);font-weight:var(--weight-semibold)}.auth-form .field input{height:44px}
