:root{--paper: oklch(97.7% .004 260);--panel: #fff;--ink: oklch(24% .004 270);--inksoft: oklch(55% .035 260);--line: oklch(91% .015 260);--accent: oklch(55% .21 262);--accent-soft: oklch(55% .21 262 / .1);--accent-fg: #fff;--due: oklch(55% .2 27);--due-soft: oklch(55% .2 27 / .1);--pay: oklch(55% .14 155);--sans: "Inter", ui-sans-serif, system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, monospace;--serif: "Lora", ui-serif, Georgia, serif;--shadow: 0 20px 50px rgba(0, 0, 0, .05)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}img{display:block}h1,h2,p{margin:0}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.serif{font-family:var(--serif)}.soft{color:var(--inksoft)}.due{color:var(--due)}.pre{white-space:pre-line}.right{text-align:right}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.row{display:flex;align-items:center;gap:8px}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.stack>*+*{margin-top:24px}.stack-sm>*+*{margin-top:12px}.grow{flex:1;min-width:0}.hidden{display:none!important}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;border:1px solid var(--line);background:var(--panel);color:var(--ink);transition:background .15s,opacity .15s;white-space:nowrap}.btn:hover{background:var(--paper)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:0 1px 2px #0000000f}.btn.primary:hover{opacity:.92}.btn.danger{color:var(--due)}.btn.lg{padding:10px 20px}.btn.sm{padding:6px 12px;font-size:12px}.btn.block{width:100%}.btn:disabled{opacity:.55;cursor:default}.link{font-size:12px;font-weight:600;color:var(--inksoft)}.link:hover{color:var(--accent)}.link.danger:hover{color:var(--due)}.chip{border:1px solid var(--line);border-radius:4px;padding:3px 8px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:var(--paper);color:var(--ink)}.chip:hover{background:var(--panel);border-color:var(--inksoft)}.tag{display:inline-block;border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--inksoft);flex-shrink:0}.tag.due{border-color:color-mix(in oklch,var(--due) 50%,transparent);color:var(--due)}.field{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:8px 12px;font-size:14px;outline:none}.field::placeholder{color:var(--inksoft)}.field:focus{box-shadow:0 0 0 1px var(--accent);border-color:var(--accent)}textarea.field{resize:vertical}label.lbl{display:block;font-size:11px;font-weight:600;color:var(--inksoft);margin-bottom:4px}.inline{width:100%;background:transparent;border:0;border-radius:4px;padding:0 4px;margin:0 -4px;outline:none;transition:background .15s}.inline:hover,.inline:focus{background:var(--paper)}.inline:focus{box-shadow:0 0 0 1px var(--line)}textarea.inline{resize:none;display:block}input.inline[type=number]{-moz-appearance:textfield}input.inline[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}.card{background:var(--panel);border:1px solid var(--line);border-radius:4px;overflow:hidden}.card.shadow{box-shadow:var(--shadow)}.card-pad{padding:24px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;border-bottom:1px solid var(--line);background:color-mix(in oklch,var(--paper) 50%,white)}.h-label{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.h-section{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--inksoft);margin-bottom:16px}.page-title{font-size:20px;font-weight:700}.empty{padding:40px 24px;text-align:center;color:var(--inksoft)}.list-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 24px;border-bottom:1px solid color-mix(in oklch,var(--line) 60%,transparent)}.list-row:last-child{border-bottom:0}.notice{border-radius:8px;padding:12px 16px;font-size:13px;border:1px solid color-mix(in oklch,var(--due) 40%,transparent);background:var(--due-soft);color:var(--due)}.notice.ok{border-color:color-mix(in oklch,var(--pay) 40%,transparent);background:#00884c1a;background:oklch(55% .14 155 / .1);color:var(--pay)}.notice.info{border-color:var(--line);background:var(--paper);color:var(--ink)}.topbar{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--line);background:color-mix(in oklch,var(--paper) 90%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar-inner{max-width:1100px;margin:0 auto;height:64px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:12px;min-width:0}.code-chip{border:1px solid var(--line);border-radius:4px;padding:2px 8px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--inksoft)}.switch-btn{min-width:20px;min-height:20px;padding:2px 8px;border-radius:4px;border:1px solid transparent;background:transparent}.switch-btn:hover{border-color:var(--line);background:var(--paper)}.brand img{height:28px;width:auto;max-width:180px;object-fit:contain}.layout{display:flex;align-items:flex-start}.sidebar{position:sticky;top:64px;flex-shrink:0;width:224px;min-height:calc(100vh - 64px);border-right:1px solid var(--line);background:var(--panel);padding:16px 8px;transition:width .2s}.sidebar.collapsed{width:56px}.nav-btn{display:flex;width:100%;align-items:center;gap:8px;border-radius:6px;padding:8px;text-align:left;font-size:14px;color:var(--ink)}.nav-btn:hover{background:var(--paper)}.nav-btn.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-btn.indent{padding-left:24px}.sidebar.collapsed .nav-btn.indent{padding-left:8px}.nav-dot{width:6px;height:6px;border-radius:50%;background:var(--line);flex-shrink:0}.nav-btn.active .nav-dot{background:var(--accent)}.nav-sep{margin:16px 0 8px;border-top:1px solid var(--line);padding-top:8px}.icon-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:var(--inksoft)}.icon-btn:hover{background:var(--paper);color:var(--ink)}.main{flex:1;min-width:0;max-width:900px;margin:0 auto;padding:40px 24px 48px}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:30;border-top:1px solid var(--line);background:color-mix(in oklch,var(--paper) 95%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav button{flex:1;padding:12px 2px;font-size:11px;font-weight:600;color:var(--inksoft)}.bottom-nav button.active{color:var(--accent)}.doc-row{display:grid;grid-template-columns:minmax(0,5fr) 2fr 2fr 2fr 32px;gap:16px;align-items:center;padding:16px 24px;border-bottom:1px solid color-mix(in oklch,var(--line) 60%,transparent);cursor:pointer}.doc-row:last-child{border-bottom:0}.doc-row:hover{background:var(--paper)}.doc-row.overdue{background:var(--due-soft)}.doc-row .del{opacity:0;transition:opacity .15s;color:var(--inksoft);padding:6px}.doc-row:hover .del{opacity:1}.doc-row .del:hover{color:var(--due)}.doc-row.highlight .num{font-weight:700}.sheet{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;padding:32px 40px;background:var(--paper);border-bottom:1px solid var(--line)}.sheet-logo{height:36px;width:auto;max-width:220px;object-fit:contain;object-position:left}.wordmark{line-height:1}.wordmark b{display:block;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:30px;font-weight:700;letter-spacing:-.02em}.wordmark span{display:block;margin-top:3px;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:7.5px;font-weight:700}.wordmark.small b{font-size:22px}.wordmark.small span{font-size:5.5px}.sheet-address{margin-top:8px;max-width:240px;font-size:11px;color:var(--inksoft);line-height:1.6}.company-grid{display:grid;grid-template-columns:auto auto;column-gap:28px;row-gap:6px;font-size:10px;line-height:1.25}.company-grid .k{color:var(--inksoft)}.sheet-parties{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:20px 40px;background:var(--paper);border-bottom:1px solid var(--line)}.doc-label{font-family:var(--mono);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--inksoft)}.sheet-lines{padding:28px 40px 8px}.line-head,.line-row{display:grid;grid-template-columns:1fr 7rem 1.5rem;gap:16px;align-items:baseline}.sheet-print .line-head,.sheet-print .line-row{grid-template-columns:1fr auto;gap:24px}.line-head{padding-bottom:8px;border-bottom:1px solid color-mix(in oklch,var(--ink) 80%,transparent)}.line-row{padding:13px 0;border-bottom:1px solid color-mix(in oklch,var(--line) 70%,transparent);font-size:13px}.line-row .x{font-size:13px;color:var(--inksoft);opacity:0}.line-row:hover .x{opacity:1}.line-row .x:hover{color:var(--due)}.client-extra{margin-top:4px;font-size:11px;line-height:1.6}.client-extra label{display:flex;align-items:baseline;gap:6px;max-width:280px}.client-extra label span{width:40px;flex-shrink:0}.client-extra input{font-size:11px;color:var(--ink)}.perm-row{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:8px}.perm{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink);cursor:pointer}.perm input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.perm.readonly{color:var(--inksoft);cursor:default}.add-line{padding-top:16px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--inksoft)}.add-line:hover{color:var(--accent)}.sheet-total-wrap{display:flex;justify-content:flex-end;padding:20px 40px 32px}.sheet-total{width:260px;display:flex;align-items:baseline;justify-content:space-between;gap:16px;border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:12px 16px}.sheet-total .lbl2{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--inksoft)}.sheet-total .val{font-family:var(--mono);font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.suggest{position:relative}.suggest ul{position:absolute;left:0;top:100%;z-index:40;margin:4px 0 0;padding:0;list-style:none;width:100%;min-width:220px;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 30px #0000001a;overflow:hidden}.suggest li button{display:flex;width:100%;justify-content:space-between;gap:12px;padding:8px 12px;font-size:12px;text-align:left}.suggest li button:hover{background:var(--paper)}.stmt-row{display:grid;grid-template-columns:3fr 4fr 2fr 3fr;gap:16px;align-items:center;padding:12px 24px;border-bottom:1px solid color-mix(in oklch,var(--line) 60%,transparent)}.stmt-head{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--inksoft);background:color-mix(in oklch,var(--paper) 50%,white)}.kv{display:flex;justify-content:space-between}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.auth-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:32px;box-shadow:0 20px 50px #0000000f}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:60;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-size:13px;box-shadow:0 10px 30px #0003}.toast.err{background:var(--due)}.saving{font-size:11px;color:var(--inksoft)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid-svc{display:grid;grid-template-columns:1fr 160px;gap:12px}@media screen and (max-width:767px){.sidebar{display:none}.bottom-nav{display:flex}.main{padding:24px 16px 96px}.doc-row{grid-template-columns:minmax(0,6fr) 3fr 3fr;padding:14px 12px;gap:8px}.doc-row .col-date,.doc-row .col-del{display:none}.sheet-head{flex-direction:column;gap:24px;padding:24px}.sheet-parties{grid-template-columns:1fr;padding:20px 24px}.sheet-parties .right{text-align:left}.sheet-lines{padding:24px 24px 8px}.sheet-total-wrap{padding:20px 24px 32px}.stmt-row{grid-template-columns:1fr auto}.stmt-row .col-client,.stmt-row .col-date{display:none}.grid-2,.grid-3,.grid-svc{grid-template-columns:1fr}.hide-sm{display:none}}@media print,(min-width:768px){.show-sm{display:none}}.pdf-host .sheet{border:0;border-radius:0;box-shadow:none}.pdf-host .sheet-head{flex-direction:row;gap:32px;padding:32px 40px}.pdf-host .sheet-parties{grid-template-columns:1fr 1fr;padding:20px 40px}.pdf-host .sheet-parties .right{text-align:right}.pdf-host .sheet-lines{padding:28px 40px 8px}.pdf-host .sheet-total-wrap{padding:20px 40px 32px}.pdf-host .no-print{display:none!important}.pdf-host .show-print{display:inline}.pdf-host .show-sm,.print-area{display:none}@media print{@page{margin:0}body{padding:12mm!important}html,body{background:#fff!important}.no-print,.topbar,.sidebar,.bottom-nav,.toast,body.printing-doc .app-screen{display:none!important}body.printing-doc .print-area{display:block!important}.sheet,.card{box-shadow:none!important}.print-area .sheet{border:0!important;border-radius:0!important}.main{padding:0!important;max-width:none}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.avoid-break{break-inside:avoid;page-break-inside:avoid}}.show-print{display:none}@media print{.show-print{display:inline}}
