:root{--bg:#f6f7f9;--surface:#fff;--surface-2:#f2f4f7;--ink:#1a2433;--muted:#5b6676;--line:#dfe3e9;--primary:#1f5fae;--primary-hover:#194f93;--primary-ink:#fff;--primary-soft:#e8f0fa;--accent:#f07c1e;--accent-ink:#b5530a;--accent-soft:#fff1e4;--ok:#1e7f4f;--ok-soft:#e3f4ea;--warn:#a35a00;--warn-soft:#fdf1df;--bad:#b3261e;--bad-soft:#fbe6e4;--grid:#1f5fae0f;--grid-major:#1f5fae1f;--paper:#fff;--paper-ink:#18212b;--paper-muted:#5c6773;--paper-line:#cdd4db;--paper-mark:#ffe8cf;--shadow:0 1px 2px #1a24330d, 0 8px 24px #1a243312;--f-display:"IBM Plex Sans Condensed", "Roboto Condensed", "Arial Narrow", sans-serif;--f-body:"Golos Text", "Segoe UI", Roboto, system-ui, sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}h1,h2,h3,h4{font-family:var(--f-display);text-wrap:balance;margin:0;font-weight:600;line-height:1.2}a{color:var(--primary)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wrap{max-width:1320px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0 auto}.muted{color:var(--muted)}.small{font-size:12.5px}.mono{font-family:var(--f-mono)}.bar{z-index:9;background:var(--surface);border-top:3px solid var(--accent);border-bottom:1px solid var(--line);position:sticky;top:0}.bar .wrap{flex-wrap:wrap;align-items:center;gap:8px 20px;padding-block:10px;display:flex}.brand{min-width:0;color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:flex}.brand b{font-family:var(--f-display);letter-spacing:.01em;font-size:22px;font-weight:700}.brand .tag{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 6px;font-size:11px}.mark{width:30px;height:30px;color:var(--accent);flex:none}.tabs{scrollbar-width:none;flex:1;align-items:center;gap:4px;min-width:0;display:flex;overflow-x:auto}.tab{white-space:nowrap;color:var(--muted);border-radius:6px;padding:7px 12px;font-size:14px;font-weight:500;text-decoration:none}.tab:hover{color:var(--ink);background:var(--surface-2)}.tab[aria-current=page]{color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 -2px 0 var(--accent)}.who{color:var(--muted);align-items:center;gap:10px;min-width:0;font-size:13px;display:flex}.who span{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}@media (max-width:760px){.bar .wrap{padding-bottom:6px}.who{margin-left:auto}.who span{max-width:140px}.tabs{flex-basis:100%;order:3}}main .wrap{padding-block:22px 48px}.view-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;margin-bottom:16px;display:flex}.view-head h1{font-size:26px}.view-head p{max-width:72ch;color:var(--muted);margin:0;font-size:14px}.btn{border:1px solid var(--primary);background:var(--primary);color:var(--primary-ink);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.btn.ghost{color:var(--primary);background:0 0}.btn.danger{color:var(--bad);border-color:var(--bad);background:0 0}.btn:not(:disabled):hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn.ghost:not(:disabled):hover{background:var(--primary-soft);border-color:var(--primary)}.btn.danger:not(:disabled):hover{background:var(--bad-soft);border-color:var(--bad)}.btn.small{padding:4px 10px;font-size:12.5px}.btn.wide{width:100%}.link{color:var(--primary);text-underline-offset:2px;background:0 0;border:0;padding:0;font-size:13.5px;text-decoration:underline}.icon-btn{width:30px;height:30px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:6px;font-size:18px;line-height:1}.icon-btn:hover{border-color:var(--line);color:var(--bad)}.actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:16px;display:flex}.saved{color:var(--ok);font-size:13.5px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-width:0;padding:18px 20px}.card+.card{margin-top:16px}.card h2{margin-bottom:4px;font-size:18px}.card>p{color:var(--muted);max-width:80ch;margin:0 0 14px;font-size:13.5px}.form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.form.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:760px){.form.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.form,.form.cols-3{grid-template-columns:minmax(0,1fr)}}.field{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12.5px;display:flex}.field.full{grid-column:1/-1}.field small{font-size:12px}.field .err{color:var(--bad)}.in{border:1px solid var(--line);background:var(--surface-2);width:100%;min-width:0;color:var(--ink);border-radius:7px;padding:7px 9px;font-size:14px}.in:hover{border-color:var(--muted)}.in[aria-invalid=true]{border-color:var(--bad);background:var(--bad-soft)}.in.num{font-family:var(--f-mono);font-size:13px}textarea.in{resize:vertical;min-height:64px}.check{align-items:flex-start;gap:8px;font-size:13.5px;display:flex}.check input{width:17px;height:17px;accent-color:var(--primary);margin-top:2px}.note{border-radius:8px;margin:10px 0;padding:8px 11px;font-size:13.5px}.note.warn{background:var(--warn-soft)}.note.bad{background:var(--bad-soft);color:var(--ink)}.note.info{background:var(--surface-2);border:1px solid var(--line)}.seg{border:1px solid var(--line);background:var(--surface);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);background:0 0;border:0;padding:6px 16px;font-size:14px}.seg button+button{border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:var(--primary);color:var(--primary-ink)}.tbl-wrap{border:1px solid var(--line);background:var(--surface);border-radius:10px;overflow-x:auto}table.cat{border-collapse:collapse;width:100%;min-width:860px;font-size:13.5px}table.cat th{background:var(--surface-2);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 8px;font-size:11.5px;font-weight:600}table.cat td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px}table.cat tr:last-child td{border-bottom:0}table.cat .n{text-align:right;font-family:var(--f-mono);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12.5px}table.cat th.n{font-family:var(--f-body)}table.mats{border-collapse:collapse;width:100%;min-width:760px;font-size:13px}table.mats th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:4px 5px;font-size:11px;font-weight:600}table.mats td{vertical-align:top;padding:3px 5px}table.mats .err{color:var(--bad);font-size:11.5px}.empty{text-align:center;padding:40px 20px}.empty h2{margin-bottom:6px;font-size:20px}.empty p{color:var(--muted);max-width:52ch;margin:0 auto 16px}.ct-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:18px;display:grid}@media (max-width:1000px){.ct-grid{grid-template-columns:minmax(0,1fr)}}textarea.tpl{min-height:520px;font-family:var(--f-mono);font-size:12.5px;line-height:1.55}.phs{flex-wrap:wrap;gap:5px;margin:0 0 10px;display:flex}.ph{font-family:var(--f-mono);border:1px solid var(--line);background:var(--surface);color:var(--primary);border-radius:5px;padding:2px 6px;font-size:11.5px}.ph:hover{border-color:var(--primary)}.desk{border:1px solid var(--line);background-color:var(--surface-2);background-image:linear-gradient(var(--grid-major) 1px, transparent 1px), linear-gradient(90deg, var(--grid-major) 1px, transparent 1px), linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:50px 50px,50px 50px,10px 10px,10px 10px;border-radius:14px;padding:22px clamp(10px,3vw,30px)}.paper{background:var(--paper);color:var(--paper-ink);max-width:820px;box-shadow:var(--shadow);border-radius:3px;margin:0 auto;padding:clamp(18px,3.4vw,40px);font-size:13.5px;line-height:1.5}.paper p{margin:0 0 6px}.paper h4{text-transform:uppercase;letter-spacing:.05em;margin:18px 0 6px;font-size:14px}.paper .ctitle{text-align:center;margin-bottom:2px;font-size:19px}.paper .csub{text-align:center;color:var(--paper-muted);margin-bottom:14px}mark.miss{background:var(--paper-mark);color:var(--paper-ink);border-radius:3px;padding:0 3px;font-size:.92em}.sign{grid-template-columns:1fr 1fr;gap:18px;margin-top:26px;font-size:12.5px;display:grid}.sign div{border-top:1px solid var(--paper-ink);color:var(--paper-muted);padding-top:4px}.login{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);width:100%;max-width:420px;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:14px;padding:26px 24px;display:flex}.login-card form{flex-direction:column;gap:14px;display:flex}.login-card h1{font-size:24px}.login-card p{margin:0}.in.code{font-family:var(--f-mono);letter-spacing:.3em;text-align:center;font-size:22px}.row{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.chat-shell{background:var(--surface);border:1px solid var(--line);max-width:780px;height:calc(100dvh - 150px);min-height:460px;box-shadow:var(--shadow);border-radius:16px;flex-direction:column;margin:0 auto;display:flex;overflow:hidden}@media (max-width:760px){.chat-shell{border-radius:12px;height:calc(100dvh - 200px)}}.chat{background:var(--bg);flex-direction:column;flex:1;gap:10px;padding:14px 12px;display:flex;overflow-y:auto}.msg{display:flex}.msg.user{justify-content:flex-end}.bubble{overflow-wrap:anywhere;border-radius:14px;min-width:0;max-width:92%;padding:9px 12px 8px;font-size:14px;line-height:1.45}.msg.user .bubble{background:var(--primary-soft);white-space:pre-wrap;border-bottom-right-radius:4px}.msg.bot .bubble{background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}.msg.press .bubble{border:1px dashed var(--line);color:var(--muted);background:0 0;font-size:13px}.bubble p{margin:0 0 6px}.bubble p.muted{white-space:pre-wrap;font-size:13px}.bubble ol{margin:4px 0 8px;padding-left:20px;font-size:13.5px}.bubble .pairs{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:4px 0 6px;font-size:13.5px}.bubble .pairs td{vertical-align:top;padding:2px 0}.bubble .pairs td:first-child{color:var(--muted);white-space:nowrap;padding-right:10px}.bubble .pairs td.v{text-align:right}.bubble .pairs tr.total td{border-top:1px solid var(--line);color:var(--ink);padding-top:5px;font-weight:600}.bnote{border-radius:8px;margin:6px 0;padding:6px 9px;font-size:13px}.bnote.warn{background:var(--warn-soft)}.bnote.info{background:var(--surface-2)}.bnote.ok{background:var(--ok-soft);color:var(--ok)}.bnote.bad{background:var(--bad-soft);color:var(--bad)}.bbtns{grid-template-columns:1fr 1fr;gap:6px;margin:8px 0 2px;display:grid}.bbtns+.bbtns{margin-top:0}.ibtn{text-align:center;border:1px solid var(--primary);color:var(--primary);background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:6px 8px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-flex}.ibtn.main{background:var(--primary);color:var(--primary-ink)}.typing{gap:4px;padding:4px 2px;display:inline-flex}.typing i{background:var(--muted);border-radius:50%;width:6px;height:6px;animation:1s infinite blink}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.samples{border-top:1px solid var(--line);scrollbar-width:thin;gap:6px;padding:8px 12px 0;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);background:var(--surface);white-space:nowrap;color:var(--ink);border-radius:999px;padding:4px 11px;font-size:12.5px}.chip:hover{border-color:var(--primary);color:var(--primary)}.composer{align-items:flex-end;gap:8px;padding:8px 12px 12px;display:flex}.composer textarea{resize:none;border:1px solid var(--line);background:var(--surface-2);border-radius:10px;flex:1;min-width:0;min-height:46px;max-height:200px;padding:10px 11px;font-size:14.5px;line-height:1.4}.send{background:var(--primary);color:var(--primary-ink);border:0;border-radius:10px;padding:12px 16px;font-size:14px;font-weight:600}.hint{color:var(--muted);margin-top:-4px;padding:0 12px 10px;font-size:11.5px}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:3px 11px;font-size:12.5px;font-weight:600;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.none{background:var(--surface-2);color:var(--muted)}.doc-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.doc-tabs{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;gap:4px;padding:3px;display:inline-flex}.doc-tabs a{color:var(--muted);border-radius:7px;padding:6px 12px;font-size:13.5px;text-decoration:none}.doc-tabs a[aria-current=page]{background:var(--primary-soft);color:var(--primary);font-weight:500}.paper h3{margin-bottom:2px;font-size:22px}.paper .sub{color:var(--paper-muted);margin-bottom:14px;font-size:13px}.pmeta{grid-template-columns:auto 1fr;gap:2px 14px;margin:0 0 16px;font-size:13px;display:grid}.pmeta dt{color:var(--paper-muted)}.pmeta dd{min-width:0;margin:0}.tw{margin:0 0 6px;overflow-x:auto}table.t{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}table.t th{text-align:left;color:var(--paper-muted);border-bottom:1.5px solid var(--paper-ink);white-space:nowrap;padding:5px 6px;font-size:11.5px;font-weight:600}table.t td{border-bottom:1px solid var(--paper-line);vertical-align:top;padding:6px}table.t .n{text-align:right;white-space:nowrap;font-family:var(--f-mono);font-size:12.5px}table.t th.n{font-family:var(--f-body)}table.t .c{text-align:center;color:var(--paper-muted)}table.t tr.st td{border-bottom:0;padding-top:8px;font-weight:600}table.t .basis{color:var(--paper-muted);font-size:11.5px;font-family:var(--f-mono);margin-top:2px}.totals{font-variant-numeric:tabular-nums;max-width:380px;margin:14px 0 0 auto}.totals div{justify-content:space-between;gap:12px;padding:3px 0;font-size:13.5px;display:flex}.totals div span:last-child{font-family:var(--f-mono);white-space:nowrap}.totals .grand{border-top:1.5px solid var(--paper-ink);margin-top:4px;padding-top:7px;font-size:15px;font-weight:600}.words{color:var(--paper-muted);margin-top:8px;font-size:12.5px}.banner{background:var(--paper-mark);color:var(--paper-ink);border-radius:4px;margin-bottom:12px;padding:7px 10px;font-size:12.5px}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}@media (max-width:560px){.stats{grid-template-columns:1fr}}.stat{border:1px solid var(--paper-line);border-radius:6px;padding:8px 10px}.stat .k{text-transform:uppercase;letter-spacing:.06em;color:var(--paper-muted);font-size:11px}.stat .v{font-family:var(--f-mono);font-size:19px;font-weight:500}.stat .d{color:var(--paper-muted);font-size:11.5px}.meter{background:var(--paper-line);border-radius:4px;height:16px;margin:4px 0;position:relative;overflow:hidden}.meter .fill{border-radius:4px;position:absolute;inset:0 auto 0 0}.meter .fill.ok{background:var(--ok)}.meter .fill.warn{background:var(--warn)}.meter .fill.bad{background:var(--bad)}.meter .cap{background:var(--paper-ink);width:2px;position:absolute;top:-3px;bottom:-3px}.meter-l{color:var(--paper-muted);font-size:11.5px;font-family:var(--f-mono);justify-content:space-between;display:flex}.recs{margin:12px 0 0;padding-left:20px}.recs li{margin:2px 0}.lab-top{color:var(--paper-muted);flex-wrap:wrap;align-items:center;gap:10px 18px;margin:6px 0 14px;font-size:13px;display:flex}.lib-tools{flex-wrap:wrap;align-items:center;gap:8px 14px;margin-bottom:12px;display:flex}.lib-search{background:var(--surface);max-width:460px}.lib-cat{border:1px solid var(--line);background:var(--surface);border-radius:10px}.lib-cat+.lib-cat{margin-top:8px}.lib-cat>summary{cursor:pointer;font-family:var(--f-display);justify-content:space-between;align-items:baseline;gap:12px;padding:11px 14px;font-size:16px;font-weight:600;list-style:none;display:flex}.lib-cat>summary::-webkit-details-marker{display:none}.lib-cat>summary>span:first-child:before{content:"▸";width:1.1em;color:var(--muted);transition:transform .15s;display:inline-block}.lib-cat[open]>summary>span:first-child:before{transform:rotate(90deg)}.lib-row{border-top:1px solid var(--line);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:2px 12px;padding:9px 14px;font-size:14px;display:grid}.lib-row:hover{background:var(--surface-2)}.lib-row input{width:17px;height:17px;accent-color:var(--primary);margin:2px 0 0}.lib-row.added{cursor:default;color:var(--muted)}.lib-price{font-family:var(--f-mono);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12.5px}.lib-mats{color:var(--muted);grid-column:2/-1;font-size:12.5px}.badge{background:var(--ok-soft);color:var(--ok);white-space:nowrap;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11.5px;display:inline-block}.lib-bar{z-index:5;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px;padding:10px 14px;display:flex;position:sticky;bottom:8px}.lib-bar.idle{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.lib-overlap{color:var(--warn);grid-column:2/-1;font-size:12.5px}.lib-hint{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px;display:flex}@media (max-width:560px){.lib-row{grid-template-columns:auto minmax(0,1fr)}.lib-price{grid-column:2}}dialog.modal{border:1px solid var(--line);background:var(--surface);width:min(920px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);box-shadow:var(--shadow);border-radius:14px;padding:0}dialog.modal[open]{flex-direction:column;display:flex}dialog.modal::backdrop{background:#17222e73}.modal-head{padding:18px 20px 8px}.modal-head h2{margin-bottom:6px;font-size:20px}.modal-head p{max-width:80ch;margin:0}.modal-body{flex:1;min-height:0;padding:8px 20px 4px;overflow:auto}.modal-foot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 20px;display:flex}.review-work{border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:12px 14px}.review-work h3{margin-bottom:8px;font-size:15px}.review-price{flex-wrap:wrap;align-items:flex-end;gap:6px 14px;margin-bottom:6px;display:flex}.review-price .field{width:220px}.review-mat{border-top:1px dashed var(--line);grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);align-items:end;gap:6px 12px;margin-top:8px;padding-top:8px;display:grid}.review-mat-name{flex-direction:column;align-self:center;gap:2px;font-size:13.5px;display:flex}@media (max-width:640px){.review-mat{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.review-mat-name{grid-column:1/-1}}@media print{body{background:#fff}.bar,.doc-bar,.no-print,.view-head{display:none!important}main .wrap{max-width:none;padding:0}.desk{background:0 0;border:0;padding:0}.paper{box-shadow:none;color:#000;background:#fff;max-width:none;padding:0}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.typing i{opacity:.6;animation:none}}
