@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}:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0c1311;--bg-canvas: #0a100e;--bg-elev: #101a17;--bg-panel: #14201c;--bg-hover: #1a2a25;--line: #21342e;--line-strong: #2f4840;--text: #dbe5df;--text-dim: #9db0a6;--text-faint: #7d958a;--control-border: #5b7569;--accent: #d4a05f;--accent-strong: #e8b877;--accent-soft: #f0c98e;--accent-wash: rgba(212, 160, 95, .12);--accent-ink: #1b1204;--wire: #5fb9a0;--sym: #d5e3db;--pin: #8fb3a4;--label-ref: #e6c48f;--label-val: #a9c2b7;--label-net: #7fc9b3;--grid-dot: #2a3f38;--grid-line: #12201b;--ok: #6cbf8c;--warn: #e2b04a;--err: #e6786a;--info: #78aedb;--ok-wash: rgba(108, 191, 140, .12);--warn-wash: rgba(226, 176, 74, .12);--err-wash: rgba(230, 120, 106, .13);--info-wash: rgba(120, 174, 219, .12);--shadow: 0 8px 28px rgba(0, 0, 0, .45)}:root[data-theme=light]{color-scheme:light;--bg: #e9eee9;--bg-canvas: #f6f8f3;--bg-elev: #f2f5f0;--bg-panel: #ffffff;--bg-hover: #e4ebe5;--line: #cbd6cd;--line-strong: #aab9ae;--text: #17231e;--text-dim: #45574d;--text-faint: #52655a;--control-border: #75897c;--accent: #9a5b14;--accent-strong: #7f4a0d;--accent-soft: #b8752b;--accent-wash: rgba(154, 91, 20, .1);--accent-ink: #ffffff;--wire: #0e7a64;--sym: #1a2a23;--pin: #3f6153;--label-ref: #8a4f0e;--label-val: #34483e;--label-net: #0e6c59;--grid-dot: #c3d0c6;--grid-line: #e3eae4;--ok: #1f7a45;--warn: #986a00;--err: #b53a2b;--info: #22608f;--ok-wash: rgba(31, 122, 69, .1);--warn-wash: rgba(152, 106, 0, .1);--err-wash: rgba(181, 58, 43, .09);--info-wash: rgba(34, 96, 143, .09);--shadow: 0 8px 24px rgba(23, 35, 30, .14)}:root{--font-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--r-sm: 3px;--r-md: 6px;--r-lg: 10px;--header-h: 52px;--sidebar-w: 232px;--focus: 0 0 0 2px var(--bg), 0 0 0 4px var(--accent)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:14.5px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.2;letter-spacing:-.01em}h1{font-size:clamp(1.7rem,1.2rem + 2vw,2.6rem)}h2{font-size:1.3rem}h3{font-size:1.02rem}p{margin:0}a{color:var(--accent-strong);text-underline-offset:3px}a:hover{color:var(--accent-soft)}code,kbd,.mono{font-family:var(--font-mono);font-size:.92em}kbd{padding:1px 5px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:var(--r-sm);background:var(--bg-elev)}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm)}::selection{background:var(--accent);color:var(--accent-ink)}button,input,select,textarea{font:inherit;color:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.skip{position:absolute;left:8px;top:-60px;z-index:100;padding:8px 14px;background:var(--accent);color:var(--accent-ink);border-radius:var(--r-md);text-decoration:none;font-weight:500}.skip:focus{top:8px}.shell{display:flex;flex-direction:column;height:100dvh}.shell__body{display:flex;flex:1;min-height:0}.header{display:flex;align-items:center;gap:10px;height:var(--header-h);padding:0 16px;background:var(--bg-elev);border-bottom:1px solid var(--line);flex:none;position:relative;z-index:20}.header__spacer{flex:1}.header__menu{display:none}.header__user{display:flex;align-items:center;gap:4px}.header__email{display:inline-flex;align-items:center;gap:5px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim);font-size:13px}.brand{display:flex;align-items:baseline;gap:8px;font-family:var(--font-mono);font-size:15px;letter-spacing:.02em}.brand a{text-decoration:none}.brand__parent{color:var(--text-dim)}.brand__parent:hover{color:var(--text)}.brand__slash{color:var(--accent)}.brand__lab{color:var(--text);font-weight:500}.sidebar{width:var(--sidebar-w);flex:none;padding:14px 10px;background:var(--bg-elev);border-right:1px solid var(--line);overflow-y:auto}.sidebar ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.sidebar__head{display:none}.navlink{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-md);border-left:2px solid transparent;color:var(--text-dim);text-decoration:none;font-weight:500}.navlink:hover{background:var(--bg-hover);color:var(--text)}.navlink.is-active{background:var(--accent-wash);color:var(--text);border-left-color:var(--accent)}.navlink.is-active svg{color:var(--accent)}.scrim{display:none}.main{flex:1;min-width:0;overflow:auto;background:var(--bg)}.main:focus{outline:none}.page{max-width:1180px;margin:0 auto;padding:28px 32px 64px;display:flex;flex-direction:column;gap:22px}.page__header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.page__title{font-size:1.7rem}.page__lead{margin-top:6px;max-width:68ch;color:var(--text-dim)}.page__actions{display:flex;gap:8px}.route-fallback{display:flex;align-items:center;justify-content:center;gap:10px;height:100%;min-height:40vh;color:var(--text-dim)}.landing-shell{min-height:100dvh;display:flex;flex-direction:column}.landing-shell>main{flex:1;width:100%;max-width:1180px;margin:0 auto;padding:0 32px}.footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 32px;border-top:1px solid var(--line);color:var(--text-faint);font-size:13px}.footer a{color:var(--text-dim)}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.row--between{justify-content:space-between}.row--tight{gap:4px}.small{font-size:12.5px}.pad{padding:10px}.prewrap{white-space:pre-wrap}.plain{margin:0;padding-left:18px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-strong);background:var(--bg-panel);color:var(--text);font-weight:500;border-radius:var(--r-md);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .12s,border-color .12s}.btn--md{padding:8px 14px;min-height:38px}.btn--sm{padding:5px 10px;min-height:30px;font-size:13px}.btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-faint);color:var(--text)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn--primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:var(--accent-ink)}.btn--ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.btn--danger{color:var(--err);border-color:var(--err);background:transparent}.btn--danger:hover:not(:disabled){background:var(--err-wash);border-color:var(--err);color:var(--err)}.linkbtn{border:0;background:none;padding:0;color:var(--accent-strong);cursor:pointer;text-decoration:underline;text-underline-offset:3px;font-size:13px}.iconbtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex:none;border:1px solid transparent;background:transparent;color:var(--text-dim);border-radius:var(--r-md);cursor:pointer}.iconbtn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.iconbtn:disabled{opacity:.35;cursor:not-allowed}.iconbtn.is-active{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-strong)}.spinner{width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field label{font-size:13px;color:var(--text-dim);font-weight:500}.field__row{display:flex;align-items:center;gap:8px}.field__suffix{color:var(--text-dim);font-size:13px}.field__hint{font-size:12px;color:var(--text-faint)}.field__error{font-size:12.5px;color:var(--err)}.input{width:100%;min-height:38px;padding:7px 10px;background:var(--bg-canvas);border:1px solid var(--control-border);border-radius:var(--r-md);color:var(--text)}textarea.input{resize:vertical;min-height:70px}.input::placeholder{color:var(--text-faint)}.input:hover{border-color:var(--text-faint)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.field--error .input{border-color:var(--err)}.mono-input .input{font-family:var(--font-mono)}.check{display:flex;align-items:flex-start;gap:8px;color:var(--text-dim);font-size:13.5px}.check input{margin-top:3px;accent-color:var(--accent)}.notice{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line-strong);border-left-width:3px;border-radius:var(--r-md);background:var(--bg-panel)}.notice__icon{flex:none;margin-top:2px}.notice__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.notice__body>div{color:var(--text-dim);font-size:13.5px}.notice__action{flex:none}.notice--info{border-left-color:var(--info);background:var(--info-wash)}.notice--info .notice__icon{color:var(--info)}.notice--warn{border-left-color:var(--warn);background:var(--warn-wash)}.notice--warn .notice__icon{color:var(--warn)}.notice--error{border-left-color:var(--err);background:var(--err-wash)}.notice--error .notice__icon{color:var(--err)}.notice--ok{border-left-color:var(--ok);background:var(--ok-wash)}.notice--ok .notice__icon{color:var(--ok)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;border:1px solid var(--line-strong);font-size:12px;font-weight:500;color:var(--text-dim);white-space:nowrap}.badge--ok{color:var(--ok);border-color:var(--ok);background:var(--ok-wash)}.badge--warn{color:var(--warn);border-color:var(--warn);background:var(--warn-wash)}.badge--error{color:var(--err);border-color:var(--err);background:var(--err-wash)}.badge--info{color:var(--info);border-color:var(--info);background:var(--info-wash)}.badge--accent{color:var(--accent-strong);border-color:var(--accent);background:var(--accent-wash)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;flex:none}.tab{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:none;color:var(--text-dim);font-weight:500;cursor:pointer;white-space:nowrap}.tab:hover{color:var(--text)}.tab.is-active{color:var(--text);border-bottom-color:var(--accent)}.tab__count{min-width:18px;padding:0 5px;border-radius:999px;background:var(--warn);color:#1b1204;font-size:11px;font-weight:600;text-align:center}.dialog-backdrop{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:#0408079e}.dialog{width:min(560px,100%);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:var(--r-lg);box-shadow:var(--shadow)}.dialog__head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 10px 20px}.dialog__body{padding:4px 20px 18px;overflow-y:auto}.dialog__foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--line)}.toasts{position:fixed;right:16px;bottom:16px;z-index:80;display:flex;flex-direction:column;gap:8px;max-width:min(380px,calc(100vw - 32px))}.toast{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;padding:10px 12px 10px 14px;background:var(--bg-panel);border:1px solid var(--line-strong);border-left:3px solid var(--info);border-radius:var(--r-md);box-shadow:var(--shadow);font-size:13.5px}.toast--success{border-left-color:var(--ok)}.toast--error{border-left-color:var(--err)}.toast__close{border:0;background:none;color:var(--text-dim);font-size:18px;line-height:1;cursor:pointer}.menu{position:relative}.menu__list{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:220px;padding:4px;display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow)}.menu__list button{display:flex;align-items:center;gap:8px;padding:8px 10px;border:0;background:none;border-radius:var(--r-sm);text-align:left;cursor:pointer}.menu__list button:hover:not(:disabled){background:var(--bg-hover)}.menu__list button:disabled{opacity:.4;cursor:not-allowed}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--line)}.table th{color:var(--text-dim);font-weight:500}.panel{padding:20px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-lg)}.tabs+.panel{border-top-left-radius:0;border-top-right-radius:0;margin-top:-22px;border-top:0}.section{display:flex;flex-direction:column;gap:14px}.section__lead{max-width:64ch}.empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:48px 16px;border:1px dashed var(--line-strong);border-radius:var(--r-lg);color:var(--text-dim);text-align:center}.cols{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px;align-items:start}.cols--wide{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.kv{display:flex;flex-direction:column;gap:10px;margin:0}.kv>div{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.kv dt{color:var(--text-dim)}.kv dd{margin:0;display:flex;align-items:center;gap:8px}.caps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}.caps li{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-md)}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:48px;align-items:center;padding:64px 0 56px}.hero__copy{display:flex;flex-direction:column;gap:20px}.hero h1{font-size:clamp(2rem,1.3rem + 2.6vw,3.2rem);line-height:1.08;letter-spacing:-.02em;max-width:14ch}.hero__lead{color:var(--text-dim);font-size:1.05rem;max-width:52ch}.hero__cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.hero__figure{margin:0;display:flex;flex-direction:column;gap:10px}.hero__board{position:relative;padding:26px 22px;border:1px solid var(--accent);border-radius:14px;background:radial-gradient(circle at 14px 14px,var(--bg) 0 5px,var(--accent) 5px 7px,transparent 7.5px),radial-gradient(circle at calc(100% - 14px) 14px,var(--bg) 0 5px,var(--accent) 5px 7px,transparent 7.5px),radial-gradient(circle at 14px calc(100% - 14px),var(--bg) 0 5px,var(--accent) 5px 7px,transparent 7.5px),radial-gradient(circle at calc(100% - 14px) calc(100% - 14px),var(--bg) 0 5px,var(--accent) 5px 7px,transparent 7.5px),var(--bg-canvas)}.preview{display:block;width:100%;height:auto;max-height:60vh}.toolgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.toolcard{display:flex;flex-direction:column;gap:6px;height:100%;padding:16px 18px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-md);color:var(--text);text-decoration:none}.toolcard:hover{border-color:var(--accent);color:var(--text)}.toolcard svg{color:var(--accent)}.toolcard__name{font-weight:600}.toolcard__desc{color:var(--text-dim);font-size:13.5px}.landing-shell .section{padding:0 0 56px}.statusgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.statuscard{padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-panel);display:flex;flex-direction:column;gap:8px}.statuscard__head{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}.dash-current{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:22px;padding:20px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-lg);align-items:center}.dash-current__info{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.dash-current__name{font-size:1.15rem;font-weight:600}.dash-current__preview{min-height:140px;display:flex;align-items:center;justify-content:center;padding:10px;background:var(--bg-canvas);border:1px solid var(--line);border-radius:var(--r-md)}.dash-current__preview .preview{max-height:260px}.recent{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.recent__item{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-md);text-align:left;cursor:pointer}.recent__item:hover{border-color:var(--accent)}.projgrid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.projcard{display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}.projcard__preview{display:flex;align-items:center;justify-content:center;height:150px;padding:10px;border:0;border-bottom:1px solid var(--line);background:var(--bg-canvas);cursor:pointer}.projcard__preview .preview{max-height:130px}.projcard__body{display:flex;flex-direction:column;gap:6px;padding:12px 14px 14px}.projcard__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calc{display:flex;flex-direction:column;gap:16px;max-width:720px}.calc__fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.calc__result{padding:16px;background:var(--bg-canvas);border:1px solid var(--line-strong);border-radius:var(--r-md);display:flex;flex-direction:column;gap:12px}.outputs{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 18px}.outputs dt{font-size:12.5px;color:var(--text-dim)}.outputs dd{margin:2px 0 0;font-size:1.25rem;color:var(--accent-soft)}.calc details summary{cursor:pointer;color:var(--text-dim);font-weight:500}.steps{margin:10px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px;color:var(--text-dim);font-size:13px;overflow-x:auto}.linklist{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.linklist a{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line-strong);border-radius:var(--r-md);text-decoration:none;color:var(--text)}.linklist a:hover{border-color:var(--accent)}.doclist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.doc{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line)}.doc:first-child{border-top:0}.doc__main{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}.doc__side{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.refform{align-items:end}.refform__btn{padding-bottom:1px}.dropzone{min-height:260px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--bg-canvas);overflow:hidden}.dropzone__empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px;text-align:center;color:var(--text-dim)}.pcbview{position:relative;line-height:0;max-width:100%}.pcbview img{display:block;max-width:100%;max-height:520px}.pcbview__box{position:absolute;border:2px solid var(--accent);border-radius:2px;opacity:.6;pointer-events:none}.pcbview__box.is-hover{opacity:1;background:var(--accent-wash)}.tips{color:var(--text-dim);font-size:13.5px}.tips summary{cursor:pointer}.tips ul{margin:8px 0 0;padding-left:20px}.findings{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.finding{display:flex;flex-direction:column;gap:4px;padding:12px 14px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-md)}.finding__head{display:flex;justify-content:space-between;gap:8px;align-items:center}.finding__text{font-size:1.05rem;overflow-wrap:anywhere}.ai-output{padding:12px 14px;border:1px solid var(--line-strong);border-left:3px solid var(--info);border-radius:var(--r-md);background:var(--bg-canvas)}.ai-output__label{margin-bottom:6px;font-size:12.5px;color:var(--info)}.measures{border:1px solid var(--line);border-radius:var(--r-md);padding:12px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;margin:0;min-width:0}.measures legend{padding:0 6px;color:var(--text-dim);font-size:13px;font-weight:500}.measure{width:100%;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.6fr) auto;gap:10px;align-items:end}.measure__rm{margin-bottom:2px}.legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}.plansec{padding:14px 16px;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-md);display:flex;flex-direction:column;gap:8px}.planlist{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}.planlist li{display:flex;flex-direction:column;gap:3px}.designer{display:flex;flex-direction:column;height:100%;min-height:0}.designer__top{display:flex;flex-direction:column;gap:6px;padding:8px 12px;background:var(--bg-elev);border-bottom:1px solid var(--line);flex:none}.designer__title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.designer__name{max-width:320px;min-height:32px;padding:3px 8px;font-weight:600;background:transparent;border-color:transparent}.designer__name:hover{border-color:var(--line-strong)}.designer__note{padding:8px 12px 0;flex:none}.designer__body{position:relative;flex:1;min-height:0;display:grid;grid-template-columns:272px minmax(0,1fr) 330px}.designer__parts,.designer__side{display:flex;flex-direction:column;min-height:0;background:var(--bg-panel)}.designer__parts{border-right:1px solid var(--line)}.designer__side{border-left:1px solid var(--line)}.designer__sidebody{flex:1;min-height:0;overflow-y:auto;padding:14px}.designer__canvas{min-width:0;min-height:0;position:relative}.designer__bar{display:none}.dtoolbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.dtoolbar__group{display:flex;align-items:center;gap:2px;padding-right:8px;margin-right:2px;border-right:1px solid var(--line)}.dtoolbar__group--text{gap:6px;border-right:0;margin-left:auto;padding-right:0}.canvas-wrap{position:absolute;inset:0;overflow:hidden;background:var(--bg-canvas)}.canvas-wrap:focus{outline:none}.canvas-wrap:focus-visible{box-shadow:inset 0 0 0 2px var(--accent);border-radius:0}.canvas-svg{display:block;width:100%;height:100%;user-select:none;-webkit-user-select:none}.canvas-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;pointer-events:none;padding:24px}.canvas-empty p:first-child{font-weight:600;color:var(--text-dim)}.canvas-hint{position:absolute;left:50%;bottom:14px;transform:translate(-50%);padding:6px 12px;border-radius:999px;background:var(--bg-panel);border:1px solid var(--accent);font-size:12.5px;pointer-events:none;white-space:nowrap}.palette{display:flex;flex-direction:column;min-height:0;height:100%}.palette__search{position:relative;display:flex;align-items:center;padding:12px 12px 6px}.palette__search svg{position:absolute;left:22px;color:var(--text-faint);pointer-events:none}.palette__search .input{padding-left:32px}.chips{display:flex;flex-wrap:wrap;gap:5px;padding:4px 12px 10px;border-bottom:1px solid var(--line)}.chip{padding:3px 10px;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--text-dim);font-size:12.5px;cursor:pointer}.chip:hover{color:var(--text)}.chip.is-active{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-strong)}.palette__list{flex:1;min-height:0;overflow-y:auto;padding:4px 8px 16px}.palette__list ul{list-style:none;margin:0;padding:0}.palette__group{padding:12px 6px 6px;font-size:12.5px;font-weight:600;color:var(--text-faint)}.part{width:100%;display:flex;align-items:center;gap:10px;padding:6px 8px;border:1px solid transparent;border-radius:var(--r-md);background:none;text-align:left;cursor:grab}.part:hover{background:var(--bg-hover)}.part.is-active{background:var(--accent-wash);border-color:var(--accent)}.part__sym{flex:none;width:56px;height:40px;display:flex;align-items:center;justify-content:center;padding:3px;background:var(--bg-canvas);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--sym);overflow:hidden}.part__sym svg{max-width:100%;max-height:100%}.part__text{display:flex;flex-direction:column;min-width:0}.part__name{font-weight:500;font-size:13.5px}.part__desc{color:var(--text-faint);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector{display:flex;flex-direction:column;gap:14px}.inspector__sub{margin-bottom:6px;font-size:13px;color:var(--text-dim)}.stats{margin:0;display:flex;gap:24px}.stats dt{font-size:12.5px;color:var(--text-dim)}.stats dd{margin:0;font-size:1.4rem;font-family:var(--font-mono)}.pins{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.pin-row{display:flex;flex-direction:column;gap:3px;padding:8px 0;border-top:1px solid var(--line)}.pin-row__head{display:flex;justify-content:space-between;align-items:center}.pin-row__head .iconbtn{width:26px;height:26px}.pin-row__select label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.pin-row__select .input{min-height:30px;padding:3px 8px;font-size:13px}.checks{display:flex;flex-direction:column;gap:12px}.checks__summary{display:flex;gap:6px;flex-wrap:wrap}.checks__clear{display:flex;gap:10px;padding:12px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--bg-canvas)}.checks__clear svg{flex:none;color:var(--ok);margin-top:2px}.checks__nets summary{cursor:pointer;color:var(--text-dim);margin-bottom:8px}.issues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.issue{border:1px solid var(--line);border-left-width:3px;border-radius:var(--r-md);background:var(--bg-canvas)}.issue--error{border-left-color:var(--err)}.issue--warning{border-left-color:var(--warn)}.issue--info{border-left-color:var(--info)}.issue__btn{width:100%;display:flex;gap:8px;align-items:flex-start;padding:9px 10px;border:0;background:none;text-align:left}button.issue__btn{cursor:pointer}button.issue__btn:hover{background:var(--bg-hover)}.issue__btn>span{display:flex;flex-direction:column;gap:2px;min-width:0}.issue__icon{flex:none;margin-top:2px}.issue__icon--error{color:var(--err)}.issue__icon--warning{color:var(--warn)}.issue__icon--info{color:var(--info)}.issue__msg{color:var(--text-dim);font-size:13px}.issue__refs{color:var(--accent-strong);font-size:12px}.template-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.template{width:100%;display:flex;gap:14px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-canvas);text-align:left;cursor:pointer}.template:hover{border-color:var(--accent)}.template__thumb{flex:none;width:120px;height:80px}.template__text{display:flex;flex-direction:column;gap:2px}@media (max-width: 1240px){.designer__body{grid-template-columns:240px minmax(0,1fr) 290px}.part__desc{display:none}}@media (max-width: 1000px){.cols,.cols--wide,.hero{grid-template-columns:minmax(0,1fr)}.hero{gap:32px;padding-top:40px}.tabs+.panel{margin-top:-22px}}@media (max-width: 860px){.header__menu{display:inline-flex}.header__email{display:none}.sidebar{position:fixed;z-index:50;top:0;bottom:0;left:0;width:min(280px,86vw);transform:translate(-102%);transition:transform .18s ease-out;box-shadow:var(--shadow)}.sidebar.is-open{transform:none}.sidebar__head{display:flex;justify-content:space-between;align-items:center;padding:0 6px 8px 12px}.scrim{display:block;position:fixed;inset:0;z-index:40;background:#0408078c}.page{padding:20px 16px 48px}.landing-shell>main{padding:0 16px}.dash-current{grid-template-columns:minmax(0,1fr)}.measure{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.measure__rm{justify-self:end}.designer__body{display:block}.designer__canvas{position:absolute;inset:0}.designer__parts,.designer__side{display:none;position:absolute;z-index:15;left:0;right:0;bottom:0;height:58%;border:0;border-top:1px solid var(--accent);box-shadow:0 -10px 30px #00000059}.designer[data-sheet=parts] .designer__parts,.designer[data-sheet=inspect] .designer__side,.designer[data-sheet=checks] .designer__side{display:flex}.designer__bar{display:grid;grid-template-columns:repeat(3,1fr);flex:none;border-top:1px solid var(--line);background:var(--bg-elev)}.designer__bar button{display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 6px;border:0;border-top:2px solid transparent;background:none;color:var(--text-dim);font-weight:500;cursor:pointer}.designer__bar button.is-active{color:var(--text);border-top-color:var(--accent);background:var(--accent-wash)}.dtoolbar__group--text{margin-left:0}.designer__name{max-width:100%;flex:1}.toasts{bottom:70px}}@media (max-width: 480px){.hero__cta .btn{flex:1 1 100%}.hero h1{max-width:none}.doc{flex-direction:column;gap:8px}.doc__side{justify-content:flex-start}.template__thumb{width:84px;height:60px}.dtoolbar__group{padding-right:4px}}
