: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}}@keyframes fbshim{0%{background-position:120% 0}to{background-position:-120% 0}}.shim,html.fb-hold body:before,html.fb-hold body:after{background:linear-gradient(100deg,color-mix(in srgb,var(--ink) 6%,transparent) 30%,color-mix(in srgb,var(--ink) 13%,transparent),color-mix(in srgb,var(--ink) 6%,transparent) 70%);background-size:220% 100%;animation:fbshim 1.35s ease-in-out infinite}.shim{border-radius:14px;min-height:18px}html.fb-hold main,html.fb-hold .container{visibility:hidden}html.fb-hold body:before,html.fb-hold body:after{content:"";position:fixed;z-index:3;left:50%;transform:translate(-50%);width:min(1080px,calc(100% - 32px));border-radius:22px;pointer-events:none}html.fb-hold body:before{top:96px;height:54px}html.fb-hold body:after{top:166px;height:min(420px,52vh)}body.fb-gated main,body.fb-gated .container{visibility:hidden}@media(prefers-reduced-motion:reduce){.shim,html.fb-hold body:before,html.fb-hold body:after{animation:none}}body.fb-gated>*:not(#topbar):not(#scrim):not(#drawer):not(#fbToolGate):not(.bg-blob):not(script):not(style):not(link):not(noscript),html.fb-hold body>*:not(#topbar):not(#scrim):not(#drawer):not(.bg-blob):not(script):not(style):not(link):not(noscript){display:none!important}body.fb-gated{overflow:hidden;max-height:100vh}.fbd-back{position:fixed;inset:0;z-index:2200;display:grid;place-items:center;padding:20px;background:#0c0e1180;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .14s ease}.fbd-back.in{opacity:1}.fbd-back.out{opacity:0}.fbd{width:min(400px,100%);display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:28px 24px 22px;border-radius:28px;background:var(--panel, #fff);color:var(--ink);border:1px solid var(--glass-border);box-shadow:0 30px 80px #0a0c1059;transform:translateY(8px) scale(.98);transition:transform .16s ease}.fbd-back.in .fbd{transform:none}.fbd-ico{width:54px;height:54px;border-radius:18px;display:grid;place-items:center;background:var(--accent-soft);border:1px solid var(--line);color:var(--ink)}.fbd-ico.danger{background:#b3261e1a;border-color:#b3261e40;color:#b3261e}.fbd h2{margin:6px 0 0;font-size:20px;letter-spacing:-.02em}.fbd p{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.55;white-space:pre-line}.fbd-actions{display:flex;gap:10px;width:100%;margin-top:14px}.fbd-actions .btn{flex:1;justify-content:center;padding:13px 16px;font-size:15px}.btn.danger{background:#b3261e;color:#fff;border-color:transparent}.btn.danger:hover{background:#9c1f18}@media(max-width:480px){.fbd-back{place-items:end center;padding:12px}.fbd{border-radius:26px}.fbd-actions{flex-direction:column-reverse}}@media(prefers-reduced-motion:reduce){.fbd-back,.fbd{transition:none}}
