@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-semi-condensed-vietnamese-500-normal-DGADhYWF.woff2)format("woff2"),url(/assets/barlow-semi-condensed-vietnamese-500-normal-hJ2t9k9e.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-semi-condensed-latin-ext-500-normal-BXdp1BvY.woff2)format("woff2"),url(/assets/barlow-semi-condensed-latin-ext-500-normal-rZeYuEMb.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-semi-condensed-latin-500-normal-G0uxJNrM.woff2)format("woff2"),url(/assets/barlow-semi-condensed-latin-500-normal-CFOoVYFH.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-vietnamese-600-normal-b1FQiZcx.woff2)format("woff2"),url(/assets/barlow-semi-condensed-vietnamese-600-normal-DzVrjA0Q.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-latin-ext-600-normal-BkQ9hN72.woff2)format("woff2"),url(/assets/barlow-semi-condensed-latin-ext-600-normal-BuP8AaxH.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Barlow Semi Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-semi-condensed-latin-600-normal-BkLiAYu4.woff2)format("woff2"),url(/assets/barlow-semi-condensed-latin-600-normal-DyOfdMBA.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-cyrillic-ext-400-normal-BwJdxs7r.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-400-normal-Cd63HKDh.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-cyrillic-400-normal-DjhbW-4D.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-400-normal-7kQcAFpS.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-greek-ext-400-normal-CpIwTHMM.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-400-normal-BI1kUwmR.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-greek-400-normal-DZReXJla.woff2)format("woff2"),url(/assets/source-sans-3-greek-400-normal-DJm9Ud5h.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-vietnamese-400-normal-CwtaIDr2.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-400-normal-dYp9C364.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-ext-400-normal-UNsKFIBq.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-400-normal-BGPHfnm_.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/source-sans-3-latin-400-normal-DQi5PRDE.woff2)format("woff2"),url(/assets/source-sans-3-latin-400-normal-AFMiCETP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-cyrillic-ext-600-normal-6AhwUnSr.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-600-normal-uAL1a5gb.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-cyrillic-600-normal-BnFu5nHC.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-600-normal-y-RO8wOd.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-greek-ext-600-normal-DynePNDL.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-600-normal-D7vJ4nVX.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-greek-600-normal-BSO157bq.woff2)format("woff2"),url(/assets/source-sans-3-greek-600-normal-BNF9LBpG.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-vietnamese-600-normal-B2sTNYey.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-600-normal-DpSexF-T.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-ext-600-normal-AEyhgUpm.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-600-normal-Wy7HIzqC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:600;src:url(/assets/source-sans-3-latin-600-normal-DeckBYAU.woff2)format("woff2"),url(/assets/source-sans-3-latin-600-normal-BvDVuF-j.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-cyrillic-ext-700-normal-BhUSqjb8.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-ext-700-normal-B6RPsSdD.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-cyrillic-700-normal-CIuudVLB.woff2)format("woff2"),url(/assets/source-sans-3-cyrillic-700-normal-DYE6gq6k.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-greek-ext-700-normal-Dd6uIcuy.woff2)format("woff2"),url(/assets/source-sans-3-greek-ext-700-normal-C6ITAlBU.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-greek-700-normal-C8Tp2qRF.woff2)format("woff2"),url(/assets/source-sans-3-greek-700-normal-BWdBblwd.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-vietnamese-700-normal-Bgamivog.woff2)format("woff2"),url(/assets/source-sans-3-vietnamese-700-normal-BHxM10oo.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-latin-ext-700-normal-6Xi0A2be.woff2)format("woff2"),url(/assets/source-sans-3-latin-ext-700-normal-ChH_v7nA.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:"Source Sans 3";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/source-sans-3-latin-700-normal-CkzU-mV9.woff2)format("woff2"),url(/assets/source-sans-3-latin-700-normal-BBbVrHF_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#f3f5f2;--panel:#fff;--panel-2:#f8faf7;--ink:#17201d;--ink-2:#4b5853;--ink-3:#6b7873;--line:#d3dad5;--line-2:#e4e9e5;--mat:#24483d;--mat-2:#1d3c33;--mat-grid:#ecf6f012;--mat-grid-2:#ecf6f029;--mat-ink:#cfe0d8;--fabric:#fbfbf8;--fabric-edge:#d9ddd6;--card:#e9d8a8;--card-2:#f1e6c4;--card-ink:#2f2816;--tape:#f2c230;--tape-2:#e2b01c;--tape-ink:#17140a;--cut:#17201d;--sew:#2d6cdf;--grain:#b23a2e;--danger:#b8322a;--danger-bg:#fbe9e7;--warn:#8a5a00;--warn-bg:#fdf3dc;--ok:#23704a;--ok-bg:#e5f3ea;--info:#2d5f9a;--info-bg:#e7eef8;--focus:#2d6cdf;--shadow:0 1px 2px #141e1a0f, 0 8px 24px #141e1a14;--radius:8px;--f-display:"Barlow Semi Condensed", "Arial Narrow", system-ui, sans-serif;--f-body:"Source Sans 3", "Segoe UI", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#101614;--panel:#161e1b;--panel-2:#1a2420;--ink:#e6ece9;--ink-2:#a6b5ae;--ink-3:#8b9a93;--line:#2c3833;--line-2:#232d29;--mat:#163128;--mat-2:#11281f;--mat-ink:#9fbcb0;--fabric:#e9ebe6;--card:#d6c38f;--card-2:#e2d4ab;--danger:#ff8a7f;--danger-bg:#3a1714;--warn:#f0c060;--warn-bg:#33270d;--ok:#74d39c;--ok-bg:#11301f;--info:#8db8f0;--info-bg:#142338;--focus:#8db8f0;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font:400 15px/1.45 var(--f-body);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1;margin:0}h1,h2,h3,h4{font-family:var(--f-display);letter-spacing:.005em;margin:0;font-weight:600;line-height:1.15}h1{font-size:28px}h2{font-size:20px}h3{font-size:16px}p{margin:0}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}[hidden]{display:none!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mut{color:var(--ink-2)}.small{font-size:13px}.num{font-variant-numeric:tabular-nums}.btn{border:1px solid var(--line);background:var(--panel);min-height:36px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-weight:600;text-decoration:none;transition:background .12s,border-color .12s,transform 80ms;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ink-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--tape);border-color:var(--tape-2);color:var(--tape-ink)}.btn-primary:hover:not(:disabled){background:var(--tape-2);border-color:#c99a10}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--line-2);border-color:#0000}.btn-danger{color:var(--danger)}.btn-danger:hover:not(:disabled){border-color:var(--danger)}.btn-sm{min-height:30px;padding:3px 10px;font-size:14px}.btn-block{width:100%}.icon-btn{min-width:36px;padding:6px 8px}.btn svg{flex:none}.btn[aria-pressed=true]{background:var(--ink);color:var(--panel);border-color:var(--ink)}.field{gap:4px;min-width:0;display:grid}.field>label,.label{color:var(--ink-2);font-size:13px;font-weight:600}.input,.select,textarea.input{border:1px solid var(--line);background:var(--panel);width:100%;min-height:36px;color:var(--ink);border-radius:6px;padding:6px 10px}.input:hover,.select:hover{border-color:var(--ink-3)}.input[aria-invalid=true]{border-color:var(--danger);background:var(--danger-bg)}.hint{color:var(--ink-3);font-size:12.5px;line-height:1.35}.field-error{background:var(--danger-bg);color:var(--danger);border-radius:6px;flex-wrap:wrap;align-items:center;gap:2px 8px;margin-top:4px;padding:6px 8px;font-size:13px;line-height:1.35;display:flex}.field-error .btn{color:var(--danger);min-height:26px;padding:2px 8px;text-decoration:underline}.err-text{color:var(--danger);font-size:13px}.unit-input{position:relative}.unit-input .input{text-align:right;padding-right:34px}.unit-input span{color:var(--ink-3);pointer-events:none;font-size:13px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.seg{border:1px solid var(--line);background:var(--panel-2);border-radius:7px;flex-wrap:wrap;gap:2px;padding:2px;display:inline-flex}.seg label{cursor:pointer;position:relative}.seg input{opacity:0;cursor:pointer;position:absolute;inset:0}.seg span{color:var(--ink-2);border-radius:5px;padding:4px 11px;font-size:14px;font-weight:600;display:block}.seg input:checked+span{background:var(--panel);color:var(--ink);box-shadow:0 0 0 1px var(--line), 0 1px 2px #00000014}.seg input:focus-visible+span{outline:2px solid var(--focus)}.check{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.check input{width:16px;height:16px;accent-color:var(--ink)}.badge{letter-spacing:.02em;background:var(--line-2);color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 7px;font-size:11.5px;font-weight:700;display:inline-flex}.badge-body{background:var(--info-bg);color:var(--info)}.badge-fin{background:var(--card-2);color:var(--card-ink)}.badge-err{background:var(--danger-bg);color:var(--danger)}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.note{background:var(--panel-2);border:1px solid var(--line-2);border-radius:7px;gap:10px;padding:10px 12px;font-size:14px;display:flex}.note-warn{background:var(--warn-bg);color:var(--warn);border-color:#0000}.note-err{background:var(--danger-bg);color:var(--danger);border-color:#0000}.note-ok{background:var(--ok-bg);color:var(--ok);border-color:#0000}.note-info{background:var(--info-bg);color:var(--info);border-color:#0000}.note>svg{flex:none;margin-top:2px}.tape{background:repeating-linear-gradient(90deg, var(--tape-ink) 0 1px, transparent 1px 10px) 0 0 / 100% 5px no-repeat, repeating-linear-gradient(90deg, var(--tape-ink) 0 1.5px, transparent 1.5px 50px) 0 0 / 100% 9px no-repeat, var(--tape);border-bottom:1px solid var(--tape-2);height:14px}.art-piece{animation:.5s cubic-bezier(.2,.7,.2,1) both art-in}@keyframes art-in{0%{opacity:0;transform:translateY(-6px)}}.auth{grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);min-height:100%;display:grid}.auth-art{background:var(--mat);background-image:linear-gradient(var(--mat-grid-2) 1px, transparent 1px), linear-gradient(90deg, var(--mat-grid-2) 1px, transparent 1px), linear-gradient(var(--mat-grid) 1px, transparent 1px), linear-gradient(90deg, var(--mat-grid) 1px, transparent 1px);color:var(--mat-ink);background-size:100px 100px,100px 100px,20px 20px,20px 20px;flex-direction:column;justify-content:space-between;padding:36px 40px;display:flex;position:relative;overflow:hidden}.auth-art h1{color:#f2f6f3;max-width:13ch;font-size:clamp(34px,4.2vw,56px);font-weight:600;line-height:1}.auth-art p{max-width:46ch;margin-top:14px;font-size:16px}.auth-art .brand{font-family:var(--f-display);letter-spacing:.04em;text-transform:uppercase;color:#f2f6f3;align-items:center;gap:10px;font-size:18px;font-weight:600;display:flex}.auth-marker{margin:22px -40px 0 0}.auth-marker svg{width:100%;height:auto;display:block}.auth-form{background:var(--paper);justify-content:center;align-items:center;padding:32px 24px;display:flex}.auth-card{gap:16px;width:100%;max-width:380px;display:grid}.auth-card h2{font-size:26px}.auth-card form{gap:14px;display:grid}.auth-alt{color:var(--ink-2);font-size:14px}.auth-alt a{color:var(--ink);font-weight:600}@media (max-width:860px){.auth{grid-template-columns:1fr}.auth-art{padding:22px 18px 0}.auth-art h1{font-size:30px}.auth-art p{font-size:14.5px}.auth-marker{margin:14px -18px 0 0}}.topbar{background:var(--panel);border-bottom:1px solid var(--line);z-index:20;align-items:center;gap:10px;min-height:54px;padding:8px 16px;display:flex;position:relative}.topbar .brand{font-family:var(--f-display);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:9px;font-size:17px;font-weight:600;text-decoration:none;display:flex}.topbar .spacer{flex:1}.menu{position:relative}.menu-pop{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:220px;box-shadow:var(--shadow);z-index:50;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);right:0}.menu-pop .head{border-bottom:1px solid var(--line-2);margin-bottom:4px;padding:8px 10px}.menu-pop button,.menu-pop a{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:8px 10px;text-decoration:none}.menu-pop button:hover,.menu-pop a:hover{background:var(--line-2)}.page{max-width:1120px;margin:0 auto;padding:28px 20px 60px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-head p{color:var(--ink-2);margin-top:4px}.toolbar-row{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.proj-list{gap:10px;display:grid}.proj{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:76px minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 14px;transition:border-color .12s,box-shadow .12s;display:grid}.proj:hover{border-color:var(--ink-3);box-shadow:var(--shadow)}.proj-thumb{background:var(--mat);border-radius:6px;place-items:center;width:76px;height:56px;display:grid;overflow:hidden}.proj-thumb svg{width:auto;max-width:86%;max-height:76%}.proj-thumb img{object-fit:cover;width:100%;height:100%}.proj-title{font-family:var(--f-display);text-overflow:ellipsis;white-space:nowrap;font-size:19px;font-weight:600;text-decoration:none;display:block;overflow:hidden}.proj-title:hover{text-decoration:underline}.proj-meta{color:var(--ink-2);flex-wrap:wrap;gap:4px 14px;margin-top:2px;font-size:13.5px;display:flex}.proj-actions{gap:6px;display:flex}.empty{text-align:center;border:1.5px dashed var(--line);border-radius:12px;justify-items:center;gap:12px;padding:56px 20px;display:grid}@media (max-width:640px){.proj{grid-template-columns:56px minmax(0,1fr)}.proj-thumb{width:56px;height:48px}.proj-actions{grid-column:1/-1;justify-content:flex-end}}.type-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px;display:grid}.type-opt{border:1px solid var(--line);background:var(--panel);cursor:pointer;text-align:center;border-radius:8px;justify-items:center;gap:4px;padding:10px 6px 8px;font-size:14px;font-weight:600;display:grid;position:relative}.type-opt input{opacity:0;cursor:pointer;position:absolute;inset:0}.type-opt:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:var(--card-2);color:var(--card-ink)}.type-opt:has(input:focus-visible){outline:2px solid var(--focus)}.type-opt svg{width:auto;max-width:100%;height:48px}dialog.dlg{background:var(--panel);color:var(--ink);border:0;border-radius:12px;width:min(560px,100vw - 24px);max-height:calc(100vh - 32px);padding:0;box-shadow:0 20px 60px #0a141059}dialog.dlg.wide{width:min(820px,100vw - 24px)}dialog.dlg::backdrop{background:#0c161273}.dlg-head{justify-content:space-between;align-items:center;gap:10px;padding:16px 18px 10px;display:flex}.dlg-body{gap:14px;max-height:calc(100vh - 170px);padding:4px 18px 16px;display:grid;overflow:auto}.dlg-foot{border-top:1px solid var(--line-2);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 18px 16px;display:flex}.toasts{z-index:100;gap:8px;width:min(520px,100vw - 24px);display:grid;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--panel);box-shadow:var(--shadow);border-radius:8px;align-items:center;gap:10px;padding:10px 12px 10px 14px;animation:.18s ease-out toast-in;display:flex}.toast .btn{color:var(--tape);background:0 0;border-color:#0000}.toast p{flex:1}.toast-err{background:var(--danger);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.ws{grid-template-rows:auto 1fr;height:100%;display:grid}.ws-top{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:8px;min-width:0;min-height:54px;padding:6px 12px;display:flex}.ws-name{align-items:baseline;gap:10px;min-width:0;display:flex}.ws-name input{font-family:var(--f-display);text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:5px;min-width:80px;max-width:42vw;padding:2px 6px;font-size:20px;font-weight:600}.ws-name input:hover{border-color:var(--line)}.ws-name input:focus{border-color:var(--ink-3);background:var(--panel)}.save-state{color:var(--ink-2);white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:inline-flex}.save-state i{background:var(--ok);border-radius:50%;width:8px;height:8px}.save-state[data-s=kaydediliyor] i,.save-state[data-s=bekliyor] i{background:var(--tape-2)}.save-state[data-s=hata] i,.save-state[data-s=cakisma] i{background:var(--danger)}.save-state[data-s=hata],.save-state[data-s=cakisma]{color:var(--danger);font-weight:600}.ws-body{grid-template-columns:380px minmax(0,1fr);min-height:0;display:grid}.ws-side{border-right:1px solid var(--line);background:var(--panel);grid-template-rows:auto 1fr;min-height:0;display:grid}.steps{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.step{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-bottom:3px solid #0000;justify-items:center;gap:1px;padding:10px 2px 9px;font-size:13.5px;font-weight:600;display:grid;position:relative}.step small{font-family:var(--f-display);letter-spacing:.08em;color:var(--ink-3);font-size:11px}.step[aria-selected=true]{color:var(--ink);border-bottom-color:var(--tape)}.step .dot{border-radius:50%;width:7px;height:7px;position:absolute;top:7px;right:10px}.step .dot.err{background:var(--danger)}.step .dot.ok{background:var(--ok)}.side-scroll{align-content:start;gap:18px;padding:16px 16px 40px;display:grid;overflow:auto}.sec{gap:10px;display:grid}.sec-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.sec-head h3{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);font-size:15px}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.divider{background:var(--line-2);height:1px}.measure{border-bottom:1px solid var(--line-2);grid-template-columns:minmax(0,1fr) 108px;align-items:center;gap:4px 10px;padding:8px 0;display:grid}.measure:last-child{border-bottom:0}.measure .m-label{flex-wrap:wrap;align-items:center;gap:6px;font-weight:600;display:flex}.measure .hint{grid-column:1/-1}.derived{background:var(--card-2);color:var(--card-ink);border-radius:7px;gap:4px;padding:10px 12px;font-size:13.5px;display:grid}.derived div{justify-content:space-between;gap:10px;display:flex}.tbl{border-collapse:collapse;width:100%;font-size:13.5px}.tbl th,.tbl td{border-bottom:1px solid var(--line-2);text-align:right;white-space:nowrap;padding:5px 6px}.tbl th:first-child,.tbl td:first-child{text-align:left;white-space:normal}.tbl thead th{color:var(--ink-2);font-size:12.5px;font-weight:700}.tbl .base{background:var(--card-2);color:var(--card-ink);font-weight:700}.tbl-wrap{overflow-x:auto}.qty-row{border-bottom:1px solid var(--line-2);grid-template-columns:52px 128px minmax(0,1fr);align-items:center;gap:10px;padding:6px 0;display:grid}.qty-row .sz{font-family:var(--f-display);font-size:18px;font-weight:600}.stepper{border:1px solid var(--line);background:var(--panel);border-radius:6px;grid-template-columns:34px 1fr 34px;display:grid;overflow:hidden}.stepper button{background:var(--panel-2);cursor:pointer;border:0;font-size:18px;line-height:1}.stepper button:hover{background:var(--line-2)}.stepper input{text-align:center;-moz-appearance:textfield;background:0 0;border:0;width:100%;min-height:34px;font-weight:700}.stepper input::-webkit-inner-spin-button{display:none}.total-bar{background:var(--ink);color:var(--panel);border-radius:8px;justify-content:space-between;align-items:baseline;padding:12px 14px;display:flex}.total-bar b{font-family:var(--f-display);font-size:26px}.rule-card{border:1px solid var(--line);border-radius:8px;gap:8px;padding:10px 12px;display:grid}.rule-card h4{font-family:var(--f-body);justify-content:space-between;gap:8px;font-size:15px;display:flex}.photo{border:1.5px dashed var(--line);background:var(--panel-2);text-align:center;border-radius:8px;place-items:center;min-height:120px;padding:8px;display:grid;overflow:hidden}.photo img{border-radius:5px;max-width:100%;max-height:260px;display:block}.ws-main{grid-template-rows:auto 1fr auto;min-width:0;min-height:0;display:grid}.canvas-bar{background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;min-height:50px;padding:7px 10px;display:flex}.canvas-bar .sep{background:var(--line);align-self:stretch;width:1px;margin:2px 4px}.canvas{background-color:var(--mat);touch-action:none;-webkit-user-select:none;user-select:none;min-height:0;position:relative;overflow:hidden}.canvas svg.board{width:100%;height:100%;display:block;position:absolute;inset:0}.canvas.panning{cursor:grabbing}.canvas .piece{cursor:grab}.canvas .piece:hover .p-cut{stroke-width:1.6px}.canvas-float{z-index:3;gap:6px;display:flex;position:absolute}.canvas-float.br{bottom:12px;right:12px}.canvas-float.tl{top:12px;left:12px}.float-card{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.zoom-ctl{align-items:center;display:flex}.zoom-ctl button{cursor:pointer;background:0 0;border:0;min-width:34px;min-height:34px;font-weight:700}.zoom-ctl button:hover{background:var(--line-2)}.zoom-ctl span{text-align:center;min-width:52px;font-size:13px}.progress{z-index:5;background:#1428218c;place-items:center;display:grid;position:absolute;inset:0}.progress .float-card{gap:10px;min-width:280px;padding:16px 18px;display:grid}.bar{background:var(--line-2);border-radius:99px;height:8px;overflow:hidden}.bar>i{background:var(--tape);height:100%;transition:width .15s;display:block}.stats{background:var(--panel);border-top:1px solid var(--line);align-items:stretch;gap:0;min-height:52px;display:flex;overflow-x:auto}.stat{border-right:1px solid var(--line-2);white-space:nowrap;align-content:center;padding:4px 14px;display:grid}.stat small{color:var(--ink-3);letter-spacing:.02em;font-size:11.5px;font-weight:600}.stat b{font-family:var(--f-display);font-size:17px;font-weight:600}.stat.err b{color:var(--danger)}.stat.ok b{color:var(--ok)}.stat-btn{cursor:pointer;text-align:left;background:0 0;border:0}.stat-btn:hover{background:var(--panel-2)}.tray{z-index:4;gap:8px;width:290px;max-height:calc(100% - 80px);padding:10px 12px;display:grid;position:absolute;top:12px;right:12px;overflow:auto}.tray-item{border-top:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:14px;display:flex}.drawer{background:var(--panel);border-left:1px solid var(--line);z-index:60;grid-template-rows:auto 1fr;width:min(440px,100vw);animation:.18s ease-out drawer-in;display:grid;position:fixed;top:0;bottom:0;right:0;box-shadow:-10px 0 40px #0a14102e}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}}.issues{align-content:start;gap:8px;padding:4px 16px 24px;display:grid;overflow:auto}.issue{border:1px solid var(--line);border-left-width:4px;border-radius:7px;gap:4px;padding:10px 12px;font-size:14px;display:grid}.issue.hata{border-left-color:var(--danger)}.issue.uyari{border-left-color:var(--tape-2)}.issue.bilgi{border-left-color:var(--info)}.issue b{font-size:14.5px}.issue .fix{color:var(--ink-2)}.banner{flex-wrap:wrap;align-items:center;gap:12px;padding:8px 14px;font-size:14px;display:flex}.banner.err{background:var(--danger-bg);color:var(--danger)}.banner.warn{background:var(--warn-bg);color:var(--warn)}.banner.info{background:var(--info-bg);color:var(--info)}.banner p{flex:1;min-width:200px}.export-choice{gap:8px;display:grid}.choice{border:1px solid var(--line);cursor:pointer;border-radius:8px;grid-template-columns:auto 1fr;align-items:start;gap:2px 10px;padding:10px 12px;display:grid}.choice:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.choice input{accent-color:var(--ink);margin-top:4px}.choice .hint{grid-column:2}.kv{grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px;display:grid}.kv dt{color:var(--ink-2)}.kv dd{margin:0}.bottom-nav{display:none}@media (max-width:960px){.ws-body{grid-template-columns:330px minmax(0,1fr)}}@media (max-width:760px){.ws{grid-template-rows:auto 1fr auto}.ws-body{grid-template-columns:1fr}.ws-body[data-view=form] .ws-main,.ws-body[data-view=canvas] .ws-side{display:none}.ws-side{border-right:0}.steps{display:none}.ws-name input{max-width:52vw;font-size:17px}.ws-top .hide-sm{display:none}.bottom-nav{background:var(--panel);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);grid-template-columns:repeat(6,1fr);display:grid}.bottom-nav button{color:var(--ink-2);background:0 0;border:0;border-top:3px solid #0000;justify-items:center;gap:2px;padding:8px 0 7px;font-size:12px;font-weight:600;display:grid;position:relative}.bottom-nav button[aria-current=true]{color:var(--ink);border-top-color:var(--tape)}.bottom-nav .dot{background:var(--danger);border-radius:50%;width:7px;height:7px;position:absolute;top:5px;right:calc(50% - 16px)}.tray{width:auto;max-height:40%;left:12px}.stat{padding:4px 10px}.canvas-bar .hide-sm{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.analysis{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;gap:8px;padding:12px;display:grid}.analysis .tbl td,.analysis .tbl th{text-align:left;white-space:normal}.analysis .select{min-height:30px;padding:3px 6px}.junction{border:1px solid var(--line);border-left-width:4px;border-radius:7px;gap:2px;padding:8px 10px;display:grid}.junction.uygun{border-left-color:var(--ok)}.junction.kontrol{border-left-color:var(--tape-2)}.junction.uyumsuz{border-left-color:var(--danger)}.analysis-mode{border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-size:13.5px}.analysis-mode.gercek{background:var(--info-bg);color:var(--info);border-color:#0000}.analysis-mode.test{background:var(--warn-bg);color:var(--warn);border-color:#0000}.analysis-mode.kapali{background:var(--panel-2);color:var(--ink-2)}.badge.basis-gorulen{background:var(--ok-bg);color:var(--ok)}.badge.basis-cikarim{background:var(--warn-bg);color:var(--warn)}.badge.basis-aciklama{background:var(--info-bg);color:var(--info)}.export-target{background:var(--card-2);color:var(--card-ink);border-radius:7px;padding:8px 10px;font-size:14px}.option-source{color:var(--card-ink);margin-top:4px;font-size:13px}.option-source.src-varsayilan{color:var(--warn)}
