@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-cyrillic-ext-400-normal.3vm4r-qr3_yee.woff2)format("woff2"),url(../media/inter-cyrillic-ext-400-normal.2e4vdgi7dy-n4.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-cyrillic-400-normal.1nwx-p2ngx2yg.woff2)format("woff2"),url(../media/inter-cyrillic-400-normal.2jms6gqb5gbhf.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-greek-ext-400-normal.2gr4b827yb2_q.woff2)format("woff2"),url(../media/inter-greek-ext-400-normal.38g6916w0wpxs.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-greek-400-normal.402ep76-j03q8.woff2)format("woff2"),url(../media/inter-greek-400-normal.2x8hqgpakc599.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-vietnamese-400-normal.1sl-kw9vnef9y.woff2)format("woff2"),url(../media/inter-vietnamese-400-normal.3206qgbkgsfc6.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-latin-ext-400-normal.1aowtwjb6jex7.woff2)format("woff2"),url(../media/inter-latin-ext-400-normal.0zt1v0rj9tqox.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:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(../media/inter-latin-400-normal.2qdljeg3s-lsl.woff2)format("woff2"),url(../media/inter-latin-400-normal.102grxki9ek3x.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(../media/inter-cyrillic-ext-500-normal.451fj7ly9889_.woff2)format("woff2"),url(../media/inter-cyrillic-ext-500-normal.0_c2ylqj08xb6.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(../media/inter-cyrillic-500-normal.3zacfqz4x1vrc.woff2)format("woff2"),url(../media/inter-cyrillic-500-normal.05wrgophr2f13.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(../media/inter-greek-ext-500-normal.3k6j2t6znom4a.woff2)format("woff2"),url(../media/inter-greek-ext-500-normal.3qwacgs2d7zx0.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(../media/inter-greek-500-normal.2ofy8orayc7fk.woff2)format("woff2"),url(../media/inter-greek-500-normal.2irgx7vnqhmdq.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(../media/inter-vietnamese-500-normal.1csmxjt29l4d6.woff2)format("woff2"),url(../media/inter-vietnamese-500-normal.315hfdijg963m.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(../media/inter-latin-ext-500-normal.0qn8fxo3_-rz7.woff2)format("woff2"),url(../media/inter-latin-ext-500-normal.39_ak3tg9vcce.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:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(../media/inter-latin-500-normal.1d14jwmkqqa0f.woff2)format("woff2"),url(../media/inter-latin-500-normal.3mx_ru0c2nzc3.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-cyrillic-ext-600-normal.341-hvs74ljp4.woff2)format("woff2"),url(../media/inter-cyrillic-ext-600-normal.1of5i9-_e5ga4.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-cyrillic-600-normal.0tppy39gl-lzn.woff2)format("woff2"),url(../media/inter-cyrillic-600-normal.3jalm3505289h.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-greek-ext-600-normal.20m9kgz843wth.woff2)format("woff2"),url(../media/inter-greek-ext-600-normal.3vzrk1-4zat7v.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-greek-600-normal.2ove9n9b8_3hb.woff2)format("woff2"),url(../media/inter-greek-600-normal.3aakp9m92tg2m.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-vietnamese-600-normal.0m_wd36g8rw-r.woff2)format("woff2"),url(../media/inter-vietnamese-600-normal.0dwa77f5pp57q.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-latin-ext-600-normal.1zn8rwi8y9u6i.woff2)format("woff2"),url(../media/inter-latin-ext-600-normal.1pfmybho54-ry.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:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(../media/inter-latin-600-normal.2dov6rjg62vru.woff2)format("woff2"),url(../media/inter-latin-600-normal.2mum3nstrlzrd.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{--bg:#f7f9fb;--surface:#fff;--hover:#f9fafb;--ink:#141414;--ink-secondary:#52525b;--placeholder:#a1a1aa;--border:#e5e7eb;--border-strong:#d4d4d8;--accent:#b9870e;--ok:#16a34a;--ok-ink:#15803d;--ok-bg:#f0fdf4;--ok-border:#bbf7d0;--alarm:#dc2626;--alarm-ink:#b91c1c;--alarm-bg:#fef2f2;--alarm-border:#fecaca;--shadow-card:0 1px 2px #0000000d;--shadow-pop:0 4px 12px #00000014;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--radius-sm:8px;--radius:12px;--radius-card:16px;--radius-modal:24px;--radius-pill:9999px;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--font-sans:"Inter", -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{color:var(--ink);background:var(--bg);font-family:var(--font-sans);-webkit-text-size-adjust:100%;margin:0;padding:0;font-size:16px;line-height:1.5}::selection{background:var(--accent);color:#fff}a{color:inherit}button,input,textarea,select{caret-color:var(--accent);-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-nav{z-index:10;align-items:center;gap:var(--space-2);padding-block:var(--space-2);padding-inline:max(var(--space-4), calc((100% - 64rem) / 2));background:var(--surface);box-shadow:var(--shadow-card);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex;position:sticky;top:0}.app-nav .brand{align-items:center;gap:var(--space-2);letter-spacing:-.01em;margin-right:var(--space-2);font-weight:600;display:inline-flex}.nav-seal{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);flex:none;width:1.75rem;height:1.75rem}.app-nav a{min-height:2.75rem;padding:0 var(--space-2);color:var(--ink-secondary);border-bottom:2px solid #0000;align-items:center;font-weight:500;text-decoration:none;transition:color .15s ease-out;display:inline-flex}.app-nav a:hover{color:var(--ink)}.app-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.app-nav .spacer{flex:1}.app-main{max-width:64rem;padding:var(--space-8) var(--space-4) var(--space-8);margin:0 auto}.page-header{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-header h1{letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:600;line-height:1.25}.page-header h1.folio{letter-spacing:.01em;font-size:1.25rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-6)}.card+.card,.card+button,.card+.button-row{margin-top:var(--space-4)}.card h2{margin:0 0 var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border);letter-spacing:-.01em;font-size:1.125rem;font-weight:600}.card h3{margin:var(--space-6) 0 var(--space-2);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-secondary);font-size:.75rem;font-weight:500}.field{margin-bottom:var(--space-4);display:block}.field>span{text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1);color:var(--ink-secondary);font-size:.75rem;font-weight:500;display:block}.field input,.field textarea,.field select{width:100%;min-height:2.75rem;padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;background:var(--surface);color:inherit;transition:border-color .15s ease-out}.field textarea{resize:vertical;min-height:4.5rem}.field input::placeholder,.field textarea::placeholder{color:var(--placeholder)}.field input:hover,.field textarea:hover,.field select:hover{border-color:var(--placeholder)}.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.form-row{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));display:grid}.form-error{background:var(--alarm-bg);color:var(--alarm-ink);border:1px solid var(--alarm-border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4)}code{background:var(--hover);border:1px solid var(--border);border-radius:6px;padding:.0625rem .25rem;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:.875em}.form-error p{margin:0}.form-error ul{margin:var(--space-2) 0 0;padding-left:1.25rem}.form-hint{color:var(--ink-secondary);margin:var(--space-1) 0 0;font-size:.875rem}.button+.form-hint{margin-top:var(--space-2)}.button{justify-content:center;align-items:center;gap:var(--space-2);min-height:2.75rem;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;font-weight:500;text-decoration:none;transition:background-color .15s ease-out,border-color .15s ease-out,transform .15s ease-out;display:inline-flex}.button:hover{background:var(--hover);border-color:var(--border-strong)}.button:active{transform:scale(.98)}.button:disabled{opacity:.5;cursor:not-allowed;transform:none}.button-primary{background:var(--ink);color:#fff;border-color:var(--ink);font-weight:500}.button-primary:hover{background:#27272a;border-color:#27272a}.button-danger{color:var(--alarm-ink);border-color:var(--alarm-border);background:var(--surface)}.button-danger:hover{background:var(--alarm-bg);border-color:var(--alarm)}.button-small{padding:var(--space-2) var(--space-4);font-size:.875rem}.button-row{gap:var(--space-2);margin-top:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.button-icon{flex:none}.folio{font-variant-numeric:tabular-nums;white-space:nowrap;letter-spacing:.01em;font-weight:600}.amount{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.button-add{border-style:dashed;border-color:var(--border-strong);width:100%;color:var(--ink-secondary);font-weight:500}.button-add:hover{color:var(--ink);border-color:var(--placeholder);background:var(--hover)}.item-editor{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4);background:var(--surface)}.item-editor-header{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--border);display:flex}.item-editor-header .item-title{align-items:center;gap:var(--space-2);font-weight:600;display:inline-flex}.item-editor-header .amount{margin-left:auto}.item-index{border:1px solid var(--border);background:var(--hover);font-variant-numeric:tabular-nums;width:1.5rem;height:1.5rem;color:var(--ink-secondary);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:inline-flex}.item-toggle{width:100%;min-height:2.75rem;font:inherit;text-align:left;cursor:pointer;padding:var(--space-2) 0;background:0 0;border:none}.item-chevron{color:var(--ink-secondary);flex:none;transition:transform .15s ease-out}.item-toggle[aria-expanded=true] .item-chevron{transform:rotate(180deg)}.quote-list{gap:var(--space-4);display:grid}.quote-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:var(--space-4);text-decoration:none;transition:box-shadow .15s ease-out,border-color .15s ease-out;display:block}.quote-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-pop)}.quote-card:active{border-color:var(--placeholder)}.quote-card-link{color:inherit;text-decoration:none;display:block}.quote-card-top{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);display:flex}.quote-card-top .folio{color:var(--ink-secondary);font-size:.875rem;font-weight:500}.quote-card-client{letter-spacing:-.01em;font-size:1.0625rem;font-weight:600;line-height:1.35}.quote-card-project{color:var(--ink-secondary);font-size:.875rem;font-weight:400;display:block}.quote-card-bottom{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border);color:var(--ink-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap;font-size:.875rem;display:flex}.quote-card-bottom-actions{align-items:center;gap:var(--space-3);display:inline-flex}.quote-card-bottom .amount{color:var(--ink);font-size:1rem;font-weight:600}.badge{border-radius:var(--radius-pill);border:1px solid var(--border);font-variant-numeric:tabular-nums;align-items:center;gap:.375rem;padding:.1875rem .625rem;font-size:.75rem;font-weight:500;line-height:1.35;display:inline-flex}.badge:before{content:"";border-radius:var(--radius-pill);background:var(--ink-secondary);width:.375rem;height:.375rem}.badge-ok{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok-ink)}.badge-ok:before{background:var(--ok)}.badge-alarm{background:var(--alarm-bg);border-color:var(--alarm-border);color:var(--alarm-ink)}.badge-alarm:before{background:var(--alarm)}.stepper{align-items:stretch;display:flex}.stepper button{border:1px solid var(--border-strong);background:var(--surface);min-width:2.75rem;min-height:2.75rem;color:var(--ink-secondary);cursor:pointer;font-size:1.25rem;transition:background-color .15s ease-out}.stepper button:hover{background:var(--hover);color:var(--ink)}.stepper button:active{background:var(--bg)}.stepper button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.stepper button:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.stepper input{text-align:center;border:1px solid var(--border-strong);width:4.5rem;min-height:2.75rem;font:inherit;font-variant-numeric:tabular-nums;background:var(--surface);appearance:textfield;border-left:none;border-right:none;border-radius:0}.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.payment-row{gap:var(--space-2);grid-template-columns:1fr;display:grid}.payment-amount strong{min-height:2.75rem;line-height:2.75rem;display:block}.sticky-totals{justify-content:space-between;align-items:center;gap:var(--space-4);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-pop);padding:var(--space-3) var(--space-4);margin-top:var(--space-6);border-radius:var(--radius-card);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.sticky-totals-amounts{gap:var(--space-4);font-variant-numeric:tabular-nums;align-items:baseline;display:flex}.sticky-label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-secondary);font-size:.75rem;font-weight:500}.sticky-subtotal{color:var(--ink-secondary);font-size:.875rem}.sticky-subtotal strong{color:var(--ink);font-weight:600}.sticky-total{font-size:.875rem}.sticky-total strong{color:var(--accent);font-size:1.25rem;font-weight:600}.hint-ok{border-radius:var(--radius-pill);background:var(--ok-bg);border:1px solid var(--ok-border);min-width:1.25rem;height:1.25rem;color:var(--ok-ink);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:inline-flex}.bullet-list{margin:0;padding-left:1.25rem}.plain-list{margin:0;padding:0;list-style:none}.payment-line{justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;display:flex}.payment-line:last-child{border-bottom:none}.concept-lines{margin-bottom:var(--space-2)}.concept-meta{justify-content:space-between;align-items:center;gap:var(--space-2);color:var(--ink-secondary);font-variant-numeric:tabular-nums;font-size:.875rem;display:flex}.concept-meta .amount{color:var(--ink);font-size:1rem;font-weight:600}.totals-line{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border);font-variant-numeric:tabular-nums}.totals-row{justify-content:space-between;align-items:baseline;gap:var(--space-2);margin:0;display:flex}.totals-total strong{color:var(--accent);font-size:1.25rem;font-weight:600}.form-row-3{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}.form-hint-error{color:var(--alarm-ink);font-weight:500}.empty-state{color:var(--ink-secondary);text-align:center;padding:var(--space-8) var(--space-4);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius-card)}.login-page{min-height:100vh;padding:var(--space-4);place-items:center;display:grid}.login-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-modal);width:100%;max-width:22rem;box-shadow:var(--shadow-card);padding:var(--space-8)}.login-brand{text-align:center;align-items:center;gap:var(--space-3);padding-bottom:var(--space-4);margin-bottom:var(--space-6);border-bottom:1px solid var(--border);flex-direction:column;display:flex}.login-brand h1{letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:600;line-height:1.2}.login-subtitle{color:var(--ink-secondary);margin:0;font-size:.875rem}.login-seal{object-fit:cover;border-radius:var(--radius-card);border:1px solid var(--border);width:5rem;height:5rem;box-shadow:var(--shadow-card)}.login-form .button{width:100%}@media (max-width:40rem){.app-main{padding:var(--space-4) var(--space-4) var(--space-6)}.page-header{flex-direction:column;align-items:stretch}.page-header h1{font-size:1.375rem}.card{padding:var(--space-4)}.form-row,.form-row-3{grid-template-columns:1fr}.sticky-totals .button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
