:root{--bg: #e9ebee;--bg-2: #f6f7f8;--ink: #1f2328;--ink-2: #4b535c;--ink-3: #7b838c;--glass: rgba(255, 255, 255, .55);--glass-strong: rgba(255, 255, 255, .78);--glass-border: rgba(255, 255, 255, .85);--line: rgba(31, 35, 40, .1);--accent: #2f343b;--accent-ink: #ffffff;--accent-soft: rgba(47, 52, 59, .08);--danger: #b3382c;--ok: #2e7d4f;--shadow: 0 10px 40px rgba(40, 46, 56, .1), 0 1px 0 rgba(255, 255, 255, .6) inset;--radius: 20px;--blob-1: #cfd3d9;--blob-2: #ffffff;--blob-3: #b9bec6}[data-theme=dark]{--bg: #16181b;--bg-2: #1c1f23;--ink: #eceef0;--ink-2: #b4bac1;--ink-3: #848b93;--glass: rgba(44, 48, 54, .55);--glass-strong: rgba(52, 57, 64, .8);--glass-border: rgba(255, 255, 255, .09);--line: rgba(255, 255, 255, .1);--accent: #e6e8eb;--accent-ink: #1a1c1f;--accent-soft: rgba(255, 255, 255, .07);--danger: #e0786d;--ok: #6fc28f;--shadow: 0 10px 40px rgba(0, 0, 0, .35), 0 1px 0 rgba(255, 255, 255, .05) inset;--blob-1: #2a2f36;--blob-2: #3a4049;--blob-3: #22262b}*{box-sizing:border-box}[hidden]{display:none!important}html{color-scheme:light;background:var(--bg)}[data-theme=dark]{color-scheme:dark}body{margin:0;min-height:100vh;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);background:linear-gradient(160deg,var(--bg-2),var(--bg));background-attachment:fixed;-webkit-font-smoothing:antialiased;overflow-x:hidden}.bg-blob{position:fixed;border-radius:50%;filter:blur(80px);opacity:.8;z-index:-1;pointer-events:none}.b1{width:480px;height:480px;background:var(--blob-1);top:-120px;left:-100px}.b2{width:420px;height:420px;background:var(--blob-2);top:30%;right:-120px}.b3{width:520px;height:520px;background:var(--blob-3);bottom:-200px;left:25%}.glass{background:var(--glass);-webkit-backdrop-filter:blur(22px) saturate(140%);backdrop-filter:blur(22px) saturate(140%);border:1px solid var(--glass-border);box-shadow:var(--shadow)}.container{max-width:1240px;margin:0 auto;padding:24px 12px 60px}.hero{padding:28px 8px 22px}.hero h1{margin:0 0 10px;font-size:clamp(28px,4.6vw,48px);font-weight:700;line-height:1.05;letter-spacing:-.03em}.hero p{margin:0;color:var(--ink-2);max-width:620px}.card{border-radius:var(--radius);padding:22px;margin-bottom:20px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.card-head.wrap{flex-wrap:wrap}.card h2{margin:0;font-size:17px;letter-spacing:-.01em}.pill{font-size:12px;color:var(--ink-2);padding:5px 12px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--line)}.pill.ok{color:var(--ok)}.pill.busy{color:var(--ink-3)}.grid{display:grid;gap:14px}.meta-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:500;color:var(--ink-2)}input,select,textarea{font:inherit;color:var(--ink);font-size:14px;background:var(--glass-strong);border:1px solid var(--line);border-radius:12px;padding:10px 12px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--ink-3);box-shadow:0 0 0 3px var(--accent-soft)}textarea{resize:vertical;font-family:JetBrains Mono,monospace;font-size:13px}.btn{font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;color:var(--ink);background:var(--glass-strong);border:1px solid var(--line);border-radius:999px;padding:9px 16px;transition:transform .1s,background .15s,border-color .15s;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;text-decoration:none}.btn svg{flex:none}.btn:hover{border-color:var(--ink-3)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.btn.primary:hover{opacity:.92}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--accent-soft)}.btn.danger-ghost{color:var(--danger);background:transparent}.btn.block{width:100%;justify-content:center}.link{background:none;border:0;color:var(--ink-2);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline;padding:0}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.dropdown{position:relative}.menu{position:absolute;right:0;top:calc(100% + 8px);min-width:210px;border-radius:16px;padding:6px;display:flex;flex-direction:column;z-index:30}.menu[hidden]{display:none}.menu button{font:inherit;font-size:13.5px;text-align:left;color:var(--ink);background:none;border:0;padding:10px 12px;border-radius:10px;cursor:pointer}.menu button:hover{background:var(--accent-soft)}.table-wrap{overflow-x:auto;border-radius:14px;border:1px solid var(--line);background:var(--glass-strong)}table.bom{width:100%;border-collapse:collapse;min-width:980px}.bom th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:var(--ink-3);padding:12px 10px;border-bottom:1px solid var(--line);background:var(--accent-soft);position:sticky;top:0}.bom td{padding:4px 6px;border-bottom:1px solid var(--line);vertical-align:middle}.bom tbody tr:last-child td{border-bottom:0}.bom tbody tr:hover{background:var(--accent-soft)}.bom td input,.bom td select{background:transparent;border:1px solid transparent;border-radius:8px;padding:8px;font-size:13.5px}.bom td input:hover,.bom td select:hover{border-color:var(--line)}.bom td input:focus,.bom td select:focus{background:var(--glass-strong);border-color:var(--ink-3)}.c-no{width:44px;text-align:center}.c-desc{min-width:220px}.c-num{text-align:right}.c-unit{width:auto}.c-act{width:112px}.c-rem{min-width:160px}.bom td.no{text-align:center;color:var(--ink-3);font-family:JetBrains Mono,monospace;font-size:12.5px}.bom td input.num{text-align:right;font-family:JetBrains Mono,monospace;font-size:13px}.bom td.total{text-align:right;padding-right:12px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500}.row-actions{display:flex;gap:2px;justify-content:flex-end;opacity:.35;transition:opacity .15s}.bom tr:hover .row-actions,.bom tr:focus-within .row-actions{opacity:1}.icon{width:30px;height:30px;border-radius:9px;border:0;background:none;color:var(--ink-2);cursor:pointer;display:grid;place-items:center}.icon:hover{background:var(--accent-soft);color:var(--ink)}.icon.del:hover{color:var(--danger)}.empty{padding:40px 16px;text-align:center;color:var(--ink-3)}.totals{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end;margin-top:18px}.totals>div{display:flex;flex-direction:column;gap:2px;padding:12px 18px;min-width:130px;border-radius:14px;background:var(--glass-strong);border:1px solid var(--line)}.totals span{font-size:11.5px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}.totals strong{font-size:18px;font-family:JetBrains Mono,monospace;font-weight:500}.totals .grand{background:var(--accent);border-color:transparent}.totals .grand span,.totals .grand strong{color:var(--accent-ink)}.foot{text-align:center;color:var(--ink-3);font-size:12.5px;padding-top:10px}.modal{border-radius:24px;padding:28px;width:min(420px,calc(100% - 24px));color:var(--ink);margin:auto;border:1px solid var(--glass-border)}.modal.wide{width:min(640px,calc(100% - 24px))}.modal::backdrop{background:#1e222859;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal h3{margin:0 0 6px;font-size:20px;letter-spacing:-.02em}.muted{color:var(--ink-2);font-size:13.5px;margin:0 0 16px;line-height:1.5}.x-form{position:absolute;top:14px;right:14px;margin:0}.x{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--glass-strong);color:var(--ink);cursor:pointer;display:grid;place-items:center;padding:0}.stack{display:flex;flex-direction:column;gap:14px}.seg{display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--line);margin-bottom:16px}.seg button{font:inherit;font-size:13.5px;font-weight:500;padding:9px;border:0;border-radius:999px;background:none;color:var(--ink-2);cursor:pointer}.seg button.active{background:var(--glass-strong);color:var(--ink);box-shadow:0 2px 8px #00000014}.msg{margin:0;font-size:13px;min-height:18px;color:var(--ink-2);text-align:center}.msg.err{color:var(--danger)}.msg.ok{color:var(--ok)}.row-end{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}.row-end.start{justify-content:flex-start;margin:0 0 14px}.check{flex-direction:row;align-items:center;gap:8px;font-size:13px}.check input{width:auto}.cloud-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;max-height:340px;overflow:auto}.cloud-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:14px;background:var(--glass-strong);border:1px solid var(--line)}.cloud-list .t{font-weight:500;font-size:14px}.cloud-list .s{font-size:12px;color:var(--ink-3)}.cloud-list .acts{display:flex;gap:6px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--accent);color:var(--accent-ink);padding:11px 20px;border-radius:999px;font-size:13.5px;transition:opacity .2s,transform .2s;z-index:100;max-width:calc(100% - 32px);text-align:center}.toast.show{opacity:1;transform:translate(-50%)}.print-doc{display:none}@media(max-width:720px){.container{padding:14px 12px 48px}.hero{padding:18px 6px 16px}.card{padding:16px;border-radius:26px}.card-head{margin-bottom:14px}input,select,textarea{font-size:16px;padding:12px 14px;border-radius:14px}.meta-grid{grid-template-columns:1fr 1fr;gap:12px}.meta-grid>label:nth-child(1),.meta-grid>label:nth-child(2){grid-column:1 / -1}.toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.toolbar>.btn,.toolbar>.dropdown>.btn{width:100%;padding:12px 14px}.toolbar>#btnAdd{grid-column:1 / -1;padding:14px;font-size:15px}.toolbar>#btnPaste{grid-column:1 / -1}.toolbar>.dropdown{position:static}.toolbar .menu{left:0;right:0;min-width:0;top:auto;bottom:calc(100% + 8px)}.card-head.wrap{align-items:stretch;flex-direction:column}.table-wrap{overflow:visible;border:0;background:none}table.bom,.bom tbody{display:block;min-width:0;width:100%}.bom thead{display:none}.bom tbody{display:flex;flex-direction:column;gap:12px}.bom tbody tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 10px;padding:14px;background:var(--glass-strong);border:1px solid var(--line);border-radius:22px}.bom tbody tr:hover{background:var(--glass-strong)}.bom td{display:block;padding:0;border:0;min-width:0}.bom td[data-label]:before{content:attr(data-label);display:block;font-size:11.5px;font-weight:500;color:var(--ink-3);margin:0 0 4px 2px}.bom td input,.bom td select{border:1px solid var(--line);background:var(--glass-strong);width:100%;padding:11px 12px}.bom td.no{grid-column:1;align-self:center;text-align:left;font-size:13px}.bom td.no:before{content:"Item ";font-family:inherit}.bom td.act{grid-column:2;grid-row:1}.bom td.wide{grid-column:1 / -1}.bom td.total{text-align:left;padding:0;align-self:end}.bom td.total .tv{display:block;border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--accent-soft);font-size:15px}.row-actions{opacity:1;justify-content:flex-end}.icon{width:38px;height:38px;border-radius:12px;border:1px solid var(--line);margin-left:6px}.c-act,.c-num,.c-unit,.c-no{width:auto}.totals>div{flex:1 1 calc(50% - 6px);min-width:0}.totals .grand{flex-basis:100%}.modal{padding:22px 18px;border-radius:26px}}
