:root{color:#16202e;-webkit-font-smoothing:antialiased;background:#f6f8fa;font-family:-apple-system,SF Pro Text,Inter,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}.app{max-width:1080px;margin:0 auto;padding:18px}header{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:16px;display:flex}.brand{font-size:16px;font-weight:700}.grid{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.panel{background:#fff;border:1px solid #e5eaf0;border-radius:14px;margin-bottom:14px;padding:14px 16px;box-shadow:0 1px 2px #1018280d,0 1px 3px #1018280f}.panel h3{text-transform:uppercase;color:#475569;letter-spacing:.05em;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;font-size:12px;display:flex}.muted{color:#5d6b82;font-size:12.5px}.muted.small{margin-top:8px;font-size:11px;display:block}.green{color:#16a34a}.big{font-size:28px;font-weight:700;line-height:1.1}.label{text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:11px;display:block}.result-row{gap:28px;margin-bottom:14px;display:flex}.bar{border:1px solid #e2e8f0;border-radius:7px;height:28px;display:flex;overflow:hidden}.bar>div{color:#fff;white-space:nowrap;justify-content:center;align-items:center;font-size:9px;display:flex}.legend{color:#475569;flex-wrap:wrap;gap:6px 14px;margin-top:9px;font-size:11px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.dot{border-radius:2px;width:10px;height:10px;display:inline-block}.margin{margin-top:14px;font-size:12px;display:block}.margin input{accent-color:#2563eb;width:100%;margin-top:4px}.comp-head{text-transform:uppercase;letter-spacing:.03em;grid-template-columns:1.2fr 1.3fr 44px;gap:8px;margin-bottom:6px;font-size:10px;display:grid}.comp-row{grid-template-columns:1.2fr 1.3fr 44px;align-items:center;gap:8px;padding:5px 0;font-size:13px;display:grid}.comp-name{font-weight:500}.svc{border-bottom:1px solid #f5f8fb;grid-template-columns:34px 1.4fr 70px 64px;align-items:center;gap:8px;padding:5px 0;font-size:13px;display:grid}.svc.off{opacity:.42;text-decoration:line-through}.svc-name{font-size:12.5px}.tabs{gap:6px;margin-bottom:12px;display:flex}.tab{cursor:pointer;font:inherit;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:6px 14px}.tab.on{background:#f59e0b1f;border-color:#f59e0b;box-shadow:inset 0 0 0 1px #f59e0b}.pills{flex-wrap:wrap;gap:6px;display:flex}.pill{cursor:pointer;font:inherit;background:#f8fafc;border:1px solid #cbd5e1;border-radius:999px;padding:6px 13px;font-size:12px}.pill.on{color:#fff;background:#2563eb;border-color:#2563eb}.picker{flex:1;gap:8px;min-width:240px;display:flex}.picker input{flex:1}.seg{background:#e9edf2;border-radius:10px;padding:3px;display:inline-flex}.seg button{color:#45536a;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600}.seg button.on{color:#16202e;background:#fff;box-shadow:0 1px 2px #10182814}.chart-tt{color:#e8f0fa;pointer-events:none;white-space:nowrap;z-index:6;background:#0e2038;border-radius:10px;padding:8px 11px;font-size:12px;line-height:1.5;position:absolute;top:8px;transform:translate(-50%);box-shadow:0 8px 24px #1018284d}.chart-tt b{color:#fff}.tt-up{color:#fca5a5;font-weight:600}.tt-down{color:#86efac;font-weight:600}.tt-mut{opacity:.8}.badge{letter-spacing:.05em;text-transform:uppercase;vertical-align:middle;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.badge.sandbox{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.badge.master{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa}input[type=checkbox].swt{appearance:none;cursor:pointer;background:#cbd5e1;border-radius:999px;outline:none;flex:none;width:32px;height:19px;margin:0;transition:background .12s;position:relative}input[type=checkbox].swt:after{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:left .12s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}input[type=checkbox].swt:checked{background:#2563eb}input[type=checkbox].swt:checked:after{left:15px}.pct-ed{align-items:center;gap:4px;display:inline-flex}.prod-table{width:100%}.prod-table th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.prod-table th.num,.prod-table td.num{text-align:right;font-variant-numeric:tabular-nums}.prod-row{cursor:pointer}.prod-row:hover{background:#f4f8ff}.prod-row td{white-space:nowrap}.prod-name{font-weight:600}.green-txt{color:#16a34a}.delta-up{color:#dc2626;font-weight:600}.delta-down{color:#16a34a;font-weight:600}.fdot{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.fdot.fresh{background:#16a34a}.fdot.ok{background:#a3b2c4}.fdot.stale{background:#d97706}.stale-chip{color:#d97706;font-size:11px;font-weight:600}.combo{flex:320px;min-width:220px;max-width:460px;position:relative}.combo input{border:1.5px solid #cbd5e1;border-radius:8px;width:100%;padding:8px 30px 8px 10px}.combo input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #dbeafe}.combo-clear{color:#475569;cursor:pointer;background:#e2e8f0;border:none;border-radius:50%;width:20px;height:20px;padding:0;font-size:12px;font-weight:700;line-height:1;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.combo-dd{z-index:30;background:#fff;border:1px solid #cbd5e1;border-radius:10px;width:100%;max-height:320px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 12px 32px #0f172a29}.combo-opt{cursor:pointer;padding:8px 12px;font-size:13.5px}.combo-opt.hi{color:#fff;background:#2563eb}.combo-empty{color:#64748b;padding:10px 12px;font-size:13px}.combo-hint{color:#64748b;background:#f8fafc;border-top:1px solid #e2e8f0;padding:6px 12px;font-size:11px;position:sticky;bottom:0}.hero-band{flex-wrap:wrap;align-items:stretch;gap:0;margin-bottom:14px;display:flex}.hero-stack{border-top:1px solid #e5eaf0;flex-basis:100%;margin-top:14px;padding-top:12px}.basis-note{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;margin-bottom:10px;padding:6px 10px;font-size:12.5px}.spec-cols{grid-template-columns:minmax(280px,2fr) 3fr;align-items:start;gap:14px;display:grid}.spec-col{min-width:0}@media (width<=900px){.spec-cols{grid-template-columns:1fr}}.mat-group summary{border-radius:8px}.mat-group summary:hover{background:#f4f8ff}.hero-metric{border-right:1px solid #e2e8f0;margin-right:26px;padding-right:26px}.hero-lbl{letter-spacing:.06em;text-transform:uppercase;color:#5d6b82;margin-bottom:3px;font-size:11px;font-weight:600}.hero-big{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:32px;font-weight:800;line-height:1.05}.hero-big.green{color:#16a34a}.hero-sub{color:#45536a;font-variant-numeric:tabular-nums;margin-top:4px;font-size:12.5px}.hero-slider{flex-direction:column;flex:1;justify-content:center;gap:4px;min-width:220px;display:flex}.hero-slider input[type=range]{accent-color:#2563eb;width:100%}.hero-hint{color:#5d6b82;font-size:11.5px}.flag{color:#92400e;background:#f59e0b1a;border:1px solid #f59e0b59;border-radius:8px;margin-bottom:14px;padding:8px 12px;font-size:12px}input,select,button{font:inherit}input[type=text],input:not([type]),select{border:1px solid #cbd5e1;border-radius:7px;padding:6px 8px}.topnav{z-index:5;background:#fff;border-bottom:1px solid #e5eaf0;flex-wrap:wrap;align-items:center;gap:2px;padding:4px 18px 0;display:flex;position:sticky;top:0}.topnav .brand{margin-right:10px;font-weight:700}.navtab{cursor:pointer;color:#45536a;white-space:nowrap;background:0 0;border:none;border-radius:8px 8px 0 0;align-items:center;gap:6px;padding:9px 12px 11px;font-size:13.5px;font-weight:600;display:inline-flex;position:relative}.navtab svg{opacity:.75;flex:none;width:15px;height:15px}.navtab:hover{color:#16202e;background:#fafbfd}.navtab.on{color:#2563eb}.navtab.on svg{opacity:1}.navtab.on:after{content:"";background:#2563eb;border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:0;left:8px;right:8px}.page{max-width:1080px;margin:0 auto;padding:18px}.page-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.page-head h2{margin:0;font-size:18px}.page-head input{flex:1;min-width:200px}.mat-group{background:#fff;border:1px solid #e5eaf0;border-radius:14px;margin-bottom:10px;padding:4px 12px;box-shadow:0 1px 2px #1018280d,0 1px 3px #1018280f}.mat-group summary{cursor:pointer;padding:8px 4px}table.dg{border-collapse:collapse;width:100%;margin:4px 0 8px;font-size:13px}table.dg th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:#94a3b8;border-bottom:1px solid #eef2f7;padding:6px 8px;font-size:10px}table.dg td{vertical-align:middle;border-bottom:1px solid #f5f8fb;padding:6px 8px}tr.review td{background:#f59e0b12}.price-in{border:1px solid #cbd5e1;border-radius:6px;width:90px;padding:4px 6px}.btn-sm{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;padding:5px 11px;font-size:12px}.btn-sm:disabled{opacity:.6}.ok{color:#16a34a;font-size:12px}.errtext{color:#dc2626;font-size:11px}.added-tag{color:#b45309;background:#f59e0b2e;border-radius:4px;margin-left:6px;padding:1px 5px;font-size:9px}.rm{cursor:pointer;color:#cbd5e1;text-align:center;font-weight:700}.rm:hover{color:#ef4444}.add-svc{align-items:center;gap:8px;margin:10px 0 6px;display:flex}.add-svc select{flex:1}.spec-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.spec-grid label{color:#475569;flex-direction:column;gap:5px;font-size:12px;display:flex}.spec-grid label.chk{flex-direction:row;align-items:center;gap:8px}.editnum{align-items:center;gap:6px;display:inline-flex}.app header{gap:12px}.picker{flex:320px;min-width:220px;max-width:540px}.picker input{min-width:0}.picker select{flex:1;min-width:0;max-width:320px}.app header .pills{flex:none}.buildstamp{color:#8b98ab;align-self:center;margin-left:auto;font-size:10px}.add-form{background:#fff;border:1px dashed #cbd5e1;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;display:flex}.add-form input,.add-form select{border:1px solid #cbd5e1;border-radius:7px;padding:6px 8px}.add-form input{min-width:0}.linklike{color:#2563eb;cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.rate-edit{align-items:center;gap:3px;display:inline-flex}.rate-edit input{border:1px solid #e2e8f0;border-radius:6px;width:72px;padding:2px 5px;font-size:12px}.svc{grid-template-columns:34px 1.3fr 110px 64px 16px}.topnav .brand{align-items:center;gap:10px;display:inline-flex}.brand-logo{width:auto;height:26px;display:block}.brand-divider{color:#cbd5e1;font-size:18px;font-weight:400}.brand-text{color:#475569;font-size:14px;font-weight:600}.comp-total{border-top:1px solid #eef2f7;margin-top:8px;padding-top:8px;font-size:12px}.explain{background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;margin-top:12px;padding:10px 12px}.explain-head{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12.5px;display:flex}.explain-row{border-bottom:1px solid #eef2f7;grid-template-columns:1.2fr 1.3fr 70px;gap:8px;padding:4px 0;font-size:12px;display:grid}.explain-row span:last-child{text-align:right}.explain-row.total{border-bottom:none;font-weight:700}.comp-head,.comp-row{grid-template-columns:1.2fr 1.3fr 84px}.density-ed{align-items:center;gap:6px;font-size:12px;display:inline-flex}.density-ed input{border:1px solid #cbd5e1;border-radius:6px;width:72px;padding:4px 6px}.notes-panel textarea{width:100%;font:inherit;resize:vertical;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font-size:13px}.scenario-bar{margin-bottom:14px}.top-row{grid-template-columns:1.15fr .85fr;align-items:stretch;gap:16px;display:grid}.top-row .panel{margin-bottom:14px}.supplier-note{color:#64748b;background:#f8fafc;border-left:3px solid #cbd5e1;border-radius:4px;grid-column:1/-1;margin:2px 0 4px;padding:4px 8px;font-size:11.5px}.note-in{border:1px solid #cbd5e1;border-radius:6px;flex:1;min-width:200px;padding:4px 8px;font-size:12px}.offering-note-row td{border-bottom:1px solid #eef2f7;padding-top:0}@media (width<=900px){.top-row{grid-template-columns:1fr}}@media (width<=860px){.app,.page{padding:12px 10px}.grid,.top-row{grid-template-columns:1fr}.picker,.combo{flex:100%;max-width:none}.hero-band{flex-direction:column;gap:12px}.hero-metric{border-right:none;margin-right:0;padding-right:0}.picker select{max-width:none}.result-row{flex-wrap:wrap;gap:14px 24px}table.dg{display:block;overflow-x:auto}.comp-head,.comp-row{grid-template-columns:1fr 1.1fr 72px;gap:6px}.svc{grid-template-columns:34px 1fr 80px 56px 14px;gap:6px;font-size:12px}.explain-row{grid-template-columns:1fr 1fr 62px;font-size:11px}.topnav{gap:4px 6px;padding:8px 10px}.navtab{padding:6px 9px;font-size:13px}.buildstamp{text-align:right;flex-basis:100%;margin-left:0}.density-ed{flex-wrap:wrap}.spec-grid{grid-template-columns:1fr 1fr}.add-form input,.add-form select{flex:45%;min-width:120px}.grid>div,.top-row>*,.panel{min-width:0}.app header .pills{flex:100%;min-width:0}.comp-head,.comp-row{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) 72px}.svc{grid-template-columns:34px minmax(0,1fr) 80px 56px 14px}.comp-row select,.add-svc select,.picker select,.scenario-bar select{width:100%;min-width:0!important}.picker input{min-width:0}body{overflow-x:hidden}}.pkg-defaults{border-bottom:1px solid #f5f8fb;padding:6px 0}.pkg-defaults:last-child{border-bottom:none}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{color:#334155;background:#eef2f7;border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;display:inline-flex}.chip-x{cursor:pointer;color:#94a3b8;font-weight:700}.chip-x:hover{color:#ef4444}.chips select{padding:3px 6px;font-size:12px}
