:root{--bg: #eef1f6;--panel: #ffffff;--soft: #f5f7fa;--field: #ffffff;--line: #e2e6ec;--ink: #1c2430;--muted: #6b7480;--accent: #1f5fd6;--accent-ink: #ffffff;--accent-soft: #eaf1fd;--btn-soft: #e8edf4;--warn-bg: #fff4d6;--warn-ink: #7a5a00;--err: #c0392b;--err-bg: #fdecea;--radius: 12px;--shadow: 0 1px 3px rgba(20, 30, 50, .06), 0 8px 24px rgba(20, 30, 50, .04)}[data-theme=dark]{--bg: #0f141b;--panel: #161d27;--soft: #1b232f;--field: #1b232f;--line: #2a3340;--ink: #e7ecf3;--muted: #8a97a8;--accent: #5b93ff;--accent-ink: #0c1320;--accent-soft: #1a2942;--btn-soft: #232d3b;--warn-bg: #3a3014;--warn-ink: #f0d28a;--err: #ff6f63;--err-bg: #3a1f1d;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 8px 24px rgba(0, 0, 0, .3)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,Segoe UI,-apple-system,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}.app-header{display:flex;align-items:center;gap:12px;padding:14px 28px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.app-header h1{font-size:17px;margin:0;font-weight:700}.app-header .muted{color:var(--muted);font-size:13px}.theme-toggle{margin-left:auto;background:var(--btn-soft);color:var(--ink);padding:7px 12px;font-size:13px}.container{max-width:1180px;margin:0 auto;padding:28px 24px 64px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}label{display:block;font-size:14px;margin-bottom:14px;color:var(--ink)}label .lbl{display:block;color:var(--muted);margin-bottom:5px;font-size:12.5px}input,select{width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:9px;font-size:14px;background:var(--field);color:var(--ink);transition:border-color .12s,box-shadow .12s}input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}.row{display:flex;gap:14px}.row>*{flex:1}.checkbox{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox input{width:auto}button{padding:10px 20px;border:0;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;background:var(--accent);color:var(--accent-ink);transition:filter .12s,background .12s}button:hover:not(:disabled){filter:brightness(1.07)}button.secondary{background:var(--btn-soft);color:var(--ink);font-weight:500}button:disabled{opacity:.5;cursor:not-allowed}.actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px;gap:12px}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.product-card{text-align:left;background:var(--panel);color:var(--ink);border:1.5px solid var(--line);border-radius:var(--radius);padding:16px;font-weight:400;transition:border-color .12s,background .12s}.product-card:hover:not(:disabled){border-color:var(--accent)}.product-card.sel{border-color:var(--accent);background:var(--accent-soft)}.product-card .name{font-weight:600;font-size:15px;margin-bottom:6px}.product-card .tag{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.product-card .note{font-size:12.5px;color:var(--muted);margin-top:8px}.calc{display:grid;grid-template-columns:minmax(320px,440px) 1fr;gap:22px;align-items:start}@media(max-width:980px){.calc{grid-template-columns:1fr}}.section-title{font-size:12px;font-weight:700;color:var(--muted);margin:18px 0 9px;text-transform:uppercase;letter-spacing:.5px}.section-title:first-child{margin-top:0}.cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.card{background:var(--accent-soft);border-radius:9px;padding:11px 13px}.card .k{font-size:12px;color:var(--muted)}.card .v{font-size:15px;font-weight:600;margin-top:2px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:600}td.num,th.num{text-align:right;white-space:nowrap}tr.extra td{color:var(--muted)}tr.err td{color:var(--err)}.totals{margin-top:16px}.totals .line{display:flex;justify-content:space-between;padding:5px 0;font-size:14px}.totals .line.grand{font-weight:700;font-size:17px;border-top:1px solid var(--line);margin-top:6px;padding-top:9px}.totals .line .muted{color:var(--muted)}.warning{background:var(--warn-bg);color:var(--warn-ink);border-radius:9px;padding:10px 13px;font-size:13px;margin-bottom:12px}.error-box{background:var(--err-bg);color:var(--err);border-radius:9px;padding:10px 13px;font-size:13px}.loading{color:var(--muted);font-size:13px}.acc{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;box-shadow:var(--shadow)}.acc-head{width:100%;display:flex;align-items:center;gap:10px;background:none;color:var(--ink);padding:15px 20px;border-radius:0;font-weight:400}.acc-head:hover{background:var(--soft)}.acc-chevron{color:var(--muted);font-size:11px;width:12px}.acc-title{font-weight:600;font-size:15px}.acc-sub{color:var(--muted);font-size:13px;margin-left:auto}.acc-body{padding:4px 20px 20px;border-top:1px solid var(--line)}.acc-body .section-title:first-child{margin-top:16px}.result-pane{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.kp-doc{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:38px 46px;max-width:820px;margin:0 auto;box-shadow:var(--shadow)}.kp-title{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--accent);padding-bottom:14px}.kp-brand{font-weight:800;letter-spacing:1.5px;color:var(--accent)}.kp-h1{font-size:25px;font-weight:700;margin-top:5px}.kp-meta{text-align:right;color:var(--muted);font-size:13px}.kp-client{margin:18px 0;font-size:16px}.kp-client .kp-muted{font-size:13px;font-weight:400}.kp-muted{color:var(--muted)}.kp-sec{font-size:12px;text-transform:uppercase;color:var(--muted);letter-spacing:.6px;margin:24px 0 9px}.kp-doc p{margin:0;line-height:1.55}.kp-specs{width:100%;border-collapse:collapse}.kp-specs td{padding:6px 8px;border-bottom:1px solid var(--line);font-size:14px}.kp-specs td:first-child{color:var(--muted);width:40%}.kp-bom{width:100%;border-collapse:collapse;font-size:13px}.kp-bom th,.kp-bom td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line)}.kp-bom th{color:var(--muted)}.kp-bom .num,.kp-totals .num{text-align:right;white-space:nowrap}.kp-bom tr.extra td{color:var(--muted)}.kp-bom tr.err td{color:var(--err)}.kp-bom tr.kp-subhead td{color:var(--muted);font-weight:600;background:var(--soft)}.kp-totals{width:100%;max-width:340px;margin-left:auto;margin-top:16px;border-collapse:collapse;font-size:15px}.kp-totals td{padding:6px 8px}
