:root{--brand:#053f67;--border:#d7dce2;--muted:#5f6b7a;--bg:#f6f7f9;color:#1b2430;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1{margin:.5rem 0 1rem;font-size:1.5rem}h2{margin:1.5rem 0 .5rem;font-size:1.15rem}a{color:var(--brand)}.muted{color:var(--muted)}.center{text-align:center;margin-top:4rem}.mono{font-family:ui-monospace,Consolas,monospace;font-size:.85em}.spacer{flex:1}.row{align-items:center;gap:.75rem;display:flex}.error{color:#b3261e}.ok{color:#1b7a3a}.warn{background:#fff4d6;border:1px solid #f0d58a;border-radius:6px;padding:.6rem .8rem}.topbar{border-bottom:1px solid var(--border);background:#fff;align-items:center;gap:1.25rem;padding:.6rem 1.25rem;display:flex}.topbar nav{gap:1rem;display:flex}.topbar nav a{color:var(--muted);padding:.25rem 0;text-decoration:none}.topbar nav a.active{color:var(--brand);border-bottom:2px solid var(--brand)}.content{max-width:1300px;margin:0 auto;padding:1rem 1.25rem 3rem}button,.button{font:inherit;border:1px solid var(--border);cursor:pointer;color:inherit;background:#fff;border-radius:6px;padding:.4rem .8rem;text-decoration:none}button:disabled{opacity:.5;cursor:not-allowed}button.primary,.button.primary{background:var(--brand);border-color:var(--brand);color:#fff}button.danger{color:#b3261e;border-color:#e3b5b1}input,select,textarea{font:inherit;border:1px solid var(--border);background:#fff;border-radius:6px;width:100%;padding:.4rem .5rem}label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}label.inline{flex-direction:row;align-items:center;gap:.4rem}label.inline input{width:auto}fieldset{border:1px solid var(--border);background:#fff;border-radius:8px;padding:.75rem 1rem 1rem}.stack{flex-direction:column;gap:1rem;max-width:900px;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem;display:grid}.filters{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.filters input{width:260px}.filters select{width:auto}table{border-collapse:collapse;border:1px solid var(--border);background:#fff;border-radius:8px;width:100%;font-size:.9rem}th,td{text-align:left;vertical-align:middle;border-bottom:1px solid #eceff3;padding:.45rem .6rem}th{color:var(--muted);background:#fafbfc;font-size:.8rem;font-weight:600}.num{text-align:right;white-space:nowrap}tr.removed td{opacity:.55}tr.selected td{background:#eef5fb}table.plain{border:0}table.plain th{background:0 0;width:12rem}.thumb{object-fit:contain;width:40px;height:40px}.badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;margin-left:.4rem;padding:.1rem .5rem;font-size:.75rem;display:inline-block}.stock-available{color:#1b7a3a;background:#e3f5e8;margin-left:0}.stock-soldOut{color:#b3261e;background:#fde7e5;margin-left:0}.stock-comingSoon{color:#8a5a00;background:#fff1cf;margin-left:0}.stock-unknown{color:var(--muted);background:#eceff3;margin-left:0}.needs-spec{color:#8a5a00;background:#fff1cf;border-color:#f0d58a}.manual{color:var(--brand);background:#e6eefb}.removed-badge{color:var(--muted);background:#eceff3}.run-running{color:var(--brand);background:#e6eefb}.run-done{color:#1b7a3a;background:#e3f5e8}.run-blocked,.run-failed{color:#b3261e;background:#fde7e5}.card{border:1px solid var(--border);background:#fff;border-radius:8px;margin-top:1rem;padding:.25rem 1rem 1rem}.summary{flex-wrap:wrap;gap:1.25rem;padding:0;font-weight:600;list-style:none;display:flex}details{margin:.4rem 0}details ul{max-height:320px;font-size:.9rem;overflow:auto}progress{width:100%;height:14px}.login{flex-direction:column;gap:.75rem;max-width:340px;margin:6rem auto;display:flex}.login form{flex-direction:column;gap:.75rem;display:flex}.grid.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:1rem}.builder{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:1.25rem;display:grid}@media (width<=1100px){.builder{grid-template-columns:1fr}}.picker{position:relative}.picker-results{z-index:5;border:1px solid var(--border);background:#fff;border-radius:6px;max-height:320px;margin:2px 0 0;padding:0;list-style:none;position:absolute;left:0;right:0;overflow:auto;box-shadow:0 4px 12px #0000001a}.picker-results button{text-align:left;border:0;border-radius:0;align-items:center;gap:.6rem;width:100%;display:flex}.picker-results button:hover{background:#eef5fb}.qty{width:4.5rem}table.lines{margin-top:.5rem}table.lines tr.owned td{background:#f7f9fb}.col{flex-direction:column;gap:.3rem;display:flex}.line-warn{color:#8a5a00;margin-top:.15rem;font-size:.82rem}.chips{flex-wrap:wrap;gap:.4rem;padding:0;list-style:none;display:flex}.chips li{background:#eef1f5;border-radius:999px;padding:.15rem .3rem .15rem .7rem;font-size:.85rem}.chips li button{background:0 0;border:0;padding:0 .4rem}.sticky{position:sticky;top:1rem}.totals td,.totals th{border-bottom:1px solid #eceff3}.totals tr.grand td{border-top:2px solid var(--border);font-weight:700}.owned-list,.warn-list{padding-left:1.1rem;font-size:.88rem}.warn-list li{color:#8a5a00;margin-bottom:.3rem}h3{margin:.75rem 0 .4rem;font-size:.95rem}.finding{margin-top:.15rem;font-size:.82rem}.finding.error,.findings li.error{color:#b3261e}.finding.warn,.findings li.warn{color:#8a5a00}.finding.info,.findings li.info{color:var(--muted)}.findings{flex-direction:column;gap:.6rem;padding:0;font-size:.88rem;list-style:none;display:flex}.findings li{border-left:3px solid;padding-left:.5rem}.findings .row{flex-wrap:wrap;gap:.4rem;margin-top:.3rem}.scroll{max-height:420px;overflow:auto}.chips-row{flex-wrap:wrap;gap:.8rem;display:flex}.row.wrap{flex-wrap:wrap}.link-box{word-break:break-all;background:#eef1f5;border-radius:6px;padding:.35rem .6rem;font-size:.85rem}.big-code{letter-spacing:.02em;border:1px solid var(--border);background:#fff;border-radius:6px;padding:.3rem .7rem;font-size:1.4rem;font-weight:700}.code-input{max-width:260px}.notice{background:#eef5fb;border:1px solid #c7dcef;border-radius:6px;margin:.75rem 0;padding:.7rem .9rem}.notice.ok-notice{background:#e3f5e8;border-color:#b7e0c3}.notice ul{margin:.4rem 0 0}.pending-box{background:#fff9e8;border:1px solid #f0d58a;border-radius:8px;margin-bottom:1rem;padding:.7rem 1rem}.portal{max-width:1050px;margin:0 auto;padding:1rem 1.25rem 3rem}.portal-header{border-bottom:3px solid var(--brand);margin-bottom:1rem;padding:.5rem 0 1rem}.portal-footer{text-align:center;margin-top:3rem;font-size:.85rem}.code-form{flex-direction:column;gap:.75rem;max-width:380px;margin:3rem auto;display:flex}.portal-lines td,.portal-lines th{vertical-align:top}.portal-lines tr.edited td{background:#fff9e8}.portal-lines select{width:100%;max-width:360px}.portal-totals{max-width:480px;margin-left:auto}.instructions{border:1px solid var(--border);background:#f3f7fa;border-radius:8px;margin-bottom:1rem;padding:.5rem 1rem}table.order-list tfoot td{border-top:2px solid var(--border);font-weight:700}
