@font-face{font-family:Onest;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Onest-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/Onest-latin.woff2)format("woff2");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{--font-sans:"Onest", "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, sans-serif;--bg:#f3f4f6;--surface:#fff;--surface-alt:#f8fafc;--border:#e5e7eb;--border-soft:#f0f0f2;--field-border:#868d9a;--text:#111827;--muted:#545c6b;--accent:#1d4f9e;--accent-soft:#eef3fb;--accent-soft-border:#dbe4f3;--ok:#16a34a;--warn:#d61f26;--danger:#d61f26;--shadow:0 1px 3px #1d315e14, 0 6px 18px #1d315e0a;--ease-out:cubic-bezier(.23, 1, .32, 1);--ring:0 0 0 3px #1d4f9e47;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-sans);color:var(--text);background:var(--bg)}:root[data-theme=dark]{--bg:#0f1420;--surface:#1a2233;--surface-alt:#141b29;--border:#2a3547;--border-soft:#222c3d;--field-border:#2a3547;--text:#e6eaf2;--muted:#9aa6bb;--accent:#6ea2f0;--accent-soft:#1e2a42;--accent-soft-border:#2a3547;--ok:#34d399;--warn:#ff6b70;--danger:#ff6b70;--shadow:0 1px 3px #0000004d, 0 6px 18px #0000003d;--ring:0 0 0 3px #7aabf559;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#0f1420;--surface:#1a2233;--surface-alt:#141b29;--border:#2a3547;--border-soft:#222c3d;--field-border:#2a3547;--text:#e6eaf2;--muted:#9aa6bb;--accent:#6ea2f0;--accent-soft:#1e2a42;--accent-soft-border:#2a3547;--ok:#34d399;--warn:#ff6b70;--danger:#ff6b70;--shadow:0 1px 3px #0000004d, 0 6px 18px #0000003d;--ring:0 0 0 3px #7aabf559;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--text);transition:background .25s var(--ease-out), color .25s var(--ease-out);margin:0}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{box-shadow:var(--ring);border-radius:8px;outline:none}button{cursor:pointer;font-family:inherit}button:active{transform:scale(.97)}button{transition:transform .12s var(--ease-out)}input,select{background:var(--surface);color:var(--text);border:1px solid var(--field-border);border-radius:8px;padding:6px 8px;font-family:inherit}input:disabled,select:disabled{opacity:.5}.app{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.topbar{background:var(--surface);border-bottom:1px solid var(--border);min-height:60px;box-shadow:var(--shadow);flex:none;align-items:center;padding:0 20px;display:flex}.topbar-row{flex:1;justify-content:space-between;align-items:center;gap:16px;min-width:0;display:flex}.topbar-tools{flex:none;align-items:center;gap:10px;display:flex}.crumbs{min-width:0;color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex;overflow:hidden}.crumbs:before{content:"";background:var(--border);flex:none;width:1px;height:22px}.crumb{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.crumb--strong{color:var(--text);font-weight:600}.crumb+.crumb:before{content:"/";color:var(--muted);margin-right:8px;font-weight:400}.chip{border:1px solid var(--border);background:var(--surface-alt);color:var(--muted);white-space:nowrap;border-radius:9px;flex:none;align-items:center;gap:7px;padding:6px 11px;font-size:12px;font-weight:600;display:inline-flex}.chip--warn{background:color-mix(in srgb, var(--warn) 12%, transparent);border-color:color-mix(in srgb, var(--warn) 35%, transparent);color:var(--warn)}.layout{background:var(--border);flex:1;grid-template-columns:288px minmax(0,1fr) 320px;gap:1px;min-height:0;display:grid}.panel{background:var(--bg);min-height:0;padding:20px;overflow-y:auto}.side{background:var(--surface-alt);min-height:0;padding:16px 14px;overflow-y:auto}.side--right{background:var(--bg);padding:20px 16px}.side h2{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:0;font-size:11px;font-weight:700}@media (width<=1280px){.layout{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.side{z-index:20;border-right:1px solid var(--border);width:288px;transition:transform .22s var(--ease-out);position:absolute;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:8px 0 24px #0000002e}.side--open{transform:translate(0)}.side--right{border-top:1px solid var(--border);max-height:40vh}.side-toggle{display:inline-flex}}.side-scrim{z-index:15;background:#00000059;border:none;padding:0;position:absolute;inset:0}.layout{position:relative}.side-toggle{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;border-radius:999px;flex:none;align-items:center;gap:6px;margin-right:14px;padding:7px 12px;font-size:13px;font-weight:600;display:none}.side-toggle:hover{border-color:var(--accent);color:var(--accent)}@media (width<=900px){.crumbs{display:none}}.panel h2{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:0;font-size:16px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field label{color:var(--muted);font-size:13px}.field summary{color:var(--muted);cursor:pointer;list-style:revert;font-size:13px}.field summary::marker{color:var(--muted)}.field details[open] summary{margin-bottom:8px}.coeff-row{border-bottom:1px solid var(--border-soft);align-items:center;gap:8px;padding:6px 0;display:flex}.coeff-row label{flex:1;font-size:14px}.coeff-label{cursor:pointer;align-items:center;gap:8px;display:flex}.coeff-label input[type=checkbox]{cursor:pointer;flex:none}.coeff-row input[type=number]{width:80px}.breakdown-item{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:12px;margin-bottom:10px;padding:12px 14px}.breakdown-line{justify-content:space-between;gap:12px;padding:2px 0;font-size:14px;display:flex}.breakdown-line>:last-child,.totals-summary>*>:last-child{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.breakdown-line>:first-child{overflow-wrap:anywhere;min-width:0}.breakdown-line--title>:last-child{white-space:normal;text-align:left;overflow-wrap:anywhere;min-width:0}.breakdown-line--title>:first-child{white-space:nowrap;flex:none}.breakdown-line.dim{color:var(--muted)}.breakdown-line.total{border-top:1px solid var(--border);margin-top:6px;padding-top:6px;font-weight:600}.totals-summary{background:var(--surface);border-top:2px solid var(--border);margin:16px -20px 0;padding:12px 20px 20px;position:sticky;bottom:0;box-shadow:0 -4px 12px #0000000f}.totals-summary--static{box-shadow:none;position:static}.totals-summary .grand-total{color:var(--accent);font-size:22px;font-weight:700}.error-text{color:var(--danger);font-size:14px}.extrapolation-flag{color:var(--warn);font-size:12px;font-weight:600}.theme-toggle{cursor:pointer;background:var(--surface);border:1px solid var(--border);color:var(--text);font:inherit;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;border-radius:999px;flex:none;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;transition:border-color .16s,transform .1s;display:inline-flex}.theme-toggle:hover{border-color:var(--accent);transform:translateY(-1px)}.theme-toggle:active{transform:translateY(0)}.theme-toggle .ico{font-size:15px;line-height:1}.brand{color:inherit;align-items:center;gap:12px;text-decoration:none;display:inline-flex}.brand .name{letter-spacing:-.02em;color:var(--accent);margin:0;font-size:17px;font-weight:700;line-height:1.1}.brand .sub{color:var(--muted);font-size:12px;display:block}.portal-link{border:1px solid var(--border);background:var(--surface);color:var(--muted);transition:border-color .16s var(--ease-out), color .16s var(--ease-out);border-radius:999px;align-items:center;gap:5px;padding:5px 11px;font-size:12px;font-weight:600;text-decoration:none;display:inline-flex}.portal-link:hover{border-color:var(--accent);color:var(--accent)}.confirm-overlay{z-index:2000;background:color-mix(in srgb, var(--bg) 55%, black 45%);animation:confirm-overlay-in .16s var(--ease-out);justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);transform-origin:50%;width:100%;max-width:420px;animation:confirm-dialog-in .16s var(--ease-out);border-radius:12px;padding:20px}.confirm-message{color:var(--text);margin:0 0 16px;font-size:14px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:8px;display:flex}.confirm-cancel,.confirm-ok{border:1px solid var(--border);background:var(--surface);color:var(--text);transition:border-color .16s var(--ease-out), background .16s var(--ease-out), transform .12s var(--ease-out);border-radius:10px;padding:8px 14px;font-size:14px;font-weight:600}.confirm-cancel:hover{border-color:var(--accent);background:var(--surface-alt)}.confirm-ok-danger{background:var(--danger);border-color:var(--danger);color:#fff}.confirm-ok-danger:hover{filter:brightness(1.08)}@keyframes confirm-overlay-in{0%{opacity:0}}@keyframes confirm-dialog-in{0%{opacity:0;transform:scale(.96)}}.toast-stack{z-index:2100;flex-direction:column;gap:8px;max-width:360px;display:flex;position:fixed;bottom:64px;right:16px}.toast{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text);animation:toast-in .2s var(--ease-out);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px 10px 14px;font-size:14px;display:flex}.toast-close{color:var(--muted);transition:color .16s var(--ease-out), background .16s var(--ease-out);background:0 0;border:none;border-radius:6px;padding:2px 4px;font-size:16px;line-height:1}.toast-close:hover{color:var(--text);background:var(--surface-alt)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.confirm-overlay,.confirm-dialog,.toast{animation:none}}.doc-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.doc-head__title h2{letter-spacing:-.02em;color:var(--text);text-transform:none;margin:0 0 6px;font-size:21px;font-weight:700}.doc-head__meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.doc-head__meta .chip{background:var(--accent-soft);border-color:var(--accent-soft-border);color:var(--accent)}.doc-head__meta .chip--fixed{background:color-mix(in srgb, var(--ok) 14%, transparent);border-color:color-mix(in srgb, var(--ok) 35%, transparent);color:var(--ok)}.doc-head__vat{align-items:center;gap:6px;display:inline-flex}.doc-head__vat select{padding:3px 6px;font-size:13px}.doc-head__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.doc-head__actions button{background:var(--surface);color:var(--text);border:1px solid var(--border);transition:border-color .16s var(--ease-out), background .16s var(--ease-out);border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600}.doc-head__actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.doc-head__actions button:not(:disabled):hover{border-color:var(--accent)}.doc-head__actions button:disabled{opacity:.5;cursor:not-allowed}.blank{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:14px;overflow:hidden}.blank__row{border-top:1px solid var(--border-soft);grid-template-columns:52px minmax(0,1fr) 140px 140px 120px;align-items:center;gap:10px;padding:9px 14px;font-size:14px;display:grid}.blank__row:first-child{border-top:none}.blank__row>:nth-child(3),.blank__row>:nth-child(4){text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.blank__row--head{background:var(--surface-alt);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.blank__row--group{background:var(--surface-alt);font-weight:700}.blank__note{background:var(--surface-alt);border:1px solid var(--border);color:var(--muted);vertical-align:middle;border-radius:6px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.blank__amount{text-align:right;font-variant-numeric:tabular-nums;width:100%}.blank__actions{justify-content:flex-end;align-items:center;gap:4px;display:flex}.blank__actions button{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:600}.blank__actions button:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.blank__delete{min-width:24px;min-height:24px;font-size:16px;line-height:1;color:var(--danger)!important;border:none!important;padding:4px!important}.blank__add{border-top:1px solid var(--border-soft);padding:9px 14px}.blank__add>summary{cursor:pointer;color:var(--accent);font-size:13px;font-weight:600;list-style:none}.doc-total{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:16px;padding:16px 18px;display:flex}.doc-total__lines{flex:1;min-width:260px}.doc-total__lines .totals-line{color:var(--muted);justify-content:space-between;gap:16px;padding:2px 0;font-size:14px;display:flex}.doc-total__lines .totals-line>:last-child{font-variant-numeric:tabular-nums;color:var(--text)}.doc-total__grand{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.doc-total__label{color:var(--muted);font-size:12px}.doc-total__value{letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.doc-total__note{color:var(--muted);font-size:12px}@media (width<=900px){.blank{overflow-x:auto}.blank__row{min-width:640px}}.pos{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:14px;margin-bottom:10px;padding:12px 14px}.pos__head{align-items:flex-start;gap:12px;display:flex}.pos__name{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pos__title{color:var(--text);font-size:15px;font-weight:600}.pos__code{color:var(--muted);font-size:12px}.pos__sum{color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:17px;font-weight:700}.pos__delete{color:var(--danger);background:0 0;border:none;flex:none;min-width:24px;min-height:24px;padding:4px;font-size:16px;line-height:1}.pos__trail{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.trail{background:var(--surface-alt);border:1px solid var(--border-soft);color:var(--muted);white-space:nowrap;border-radius:8px;align-items:baseline;gap:5px;padding:3px 9px;font-size:12px;display:inline-flex}.trail b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.trail i{color:var(--muted);opacity:.85;font-style:normal}.pos--other .pos__head+.pos__head{border-top:1px solid var(--border-soft);margin-top:10px;padding-top:10px}.side--right .totals-summary{margin:16px -16px 0;padding:12px 16px 20px}.side--right h2{border-top:1px solid var(--border);margin-top:20px;padding-top:14px}.side--right h2:first-of-type{margin-top:0}.estimates{margin-top:24px}.estimates__row{grid-template-columns:minmax(0,1fr) 110px 130px 150px 230px}.estimates__row>:nth-child(3){text-align:left}.estimates__row>:nth-child(4){text-align:right;font-variant-numeric:tabular-nums}.estimates__name{flex-direction:column;gap:2px;min-width:0;display:flex}.side-nav{flex-direction:column;gap:4px;margin-top:8px;display:flex}.side-nav__item{width:100%;color:var(--text);text-align:left;font:inherit;background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}.side-nav__item:not(:disabled):hover{background:var(--surface);border-color:var(--border)}.side-nav__item--current{background:var(--accent-soft);border-color:var(--accent-soft-border);opacity:1;cursor:default}.side-nav__name{font-size:13px;font-weight:600}.side-nav__meta{color:var(--muted);font-size:11px}@media (width<=1280px){.estimates__row{grid-template-columns:minmax(0,1fr) 100px 120px 130px 200px}}@media (width<=900px){.estimates__row{min-width:760px}}
