/* Wabash Valley Print Works portal. Brand tokens first (swap these to rebrand). */
@font-face{font-family:Inter;font-weight:100 900;font-display:swap;src:url(fonts/inter.woff2) format('woff2')}
@font-face{font-family:'Space Grotesk';font-weight:300 700;font-display:swap;src:url(fonts/space-grotesk.woff2) format('woff2')}
:root{--accent:#ff7a1a;--accent-h:#ff9447;--accent-soft:rgba(255,122,26,.14);--on-accent:#16181c;--bg0:#0e1013;--bg1:#16191e;--bg2:#1e2228;
--bg3:#272c33;--bd:#2d323a;--bd2:#3a4049;--t1:#e9ebee;--t2:#b3b9c2;--t3:#848c97;--green:#4ade80;--red:#f87171;--amber:#fbbf24;--blue:#60a5fa;
--r:12px;--rs:8px;--head:'Space Grotesk',Inter,system-ui,sans-serif;--body:Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg0);color:var(--t1);font:15px/1.55 var(--body);-webkit-font-smoothing:antialiased}
a{color:var(--accent-h);text-decoration:none}a:hover{color:#ffb37a}
.top{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--bd);background:var(--bg1);position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;color:var(--t1);font:700 17px var(--head);letter-spacing:-.01em}
.brand img{height:30px}.brand small{display:block;font:500 11.5px var(--body);color:var(--t3);letter-spacing:0}
.top .sp{flex:1}.top form{margin:0}
main{max-width:980px;margin:0 auto;padding:24px 18px 60px}
h1,h2,h3{font-family:var(--head);letter-spacing:-.015em;margin:0 0 10px}h1{font-size:28px}h2{font-size:20px}h3{font-size:16px}
.sub{color:var(--t2);margin:-4px 0 18px}.muted{color:var(--t3)}.small{font-size:13px}
.card{background:var(--bg1);border:1px solid var(--bd);border-radius:var(--r);padding:18px;margin-bottom:16px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
label{display:block;font-weight:600;font-size:14px;margin:12px 0 6px}
input,select,textarea{width:100%;min-height:44px;border-radius:var(--rs);border:1px solid var(--bd2);background:var(--bg2);color:var(--t1);
padding:10px 12px;font:15px var(--body)}textarea{min-height:90px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border-radius:var(--rs);border:1px solid var(--bd2);
background:var(--bg2);color:var(--t1);font:600 15px var(--body);cursor:pointer}.btn:hover{background:var(--bg3);color:var(--t1)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover{background:var(--accent-h)}
.btn.danger{color:var(--danger,#e5534b);border-color:color-mix(in srgb,var(--danger,#e5534b) 45%,transparent)}.btn.danger:hover{background:color-mix(in srgb,var(--danger,#e5534b) 14%,transparent)}
.btn[disabled]{opacity:.55;cursor:not-allowed}.btn.small{min-height:34px;padding:0 12px;font-size:13px}
.err{background:rgba(248,113,113,.12);color:var(--red);border-radius:var(--rs);padding:10px 14px;margin-bottom:14px;font-weight:600}
.ok{background:rgba(74,222,128,.12);color:var(--green);border-radius:var(--rs);padding:10px 14px;margin-bottom:14px;font-weight:600}
.pill{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600;background:var(--bg3);color:var(--t2)}
.pill.paid{background:rgba(74,222,128,.14);color:var(--green)}.pill.unpaid{background:rgba(251,191,36,.14);color:var(--amber)}
.pill.declined{background:rgba(248,113,113,.14);color:#f87171}
.pill.accent{background:var(--accent-soft);color:var(--accent-h)}
.list{list-style:none;margin:0;padding:0}.list li{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--bd)}
.list li:last-child{border-bottom:0}.list .grow{flex:1;min-width:0}.list .t{font-weight:600}
.altcha{display:flex;align-items:center;gap:10px;margin:14px 0;padding:10px 12px;border:1px solid var(--bd2);border-radius:var(--rs);background:var(--bg2);font-size:14px;color:var(--t2)}
.altcha .box{width:22px;height:22px;border-radius:6px;border:2px solid var(--bd2);flex:none;display:grid;place-items:center}
.altcha.done .box{background:var(--green);border-color:var(--green)}.altcha.done .box::after{content:'✓';color:#0e1013;font-weight:800;font-size:14px}
.altcha.work .box{border-color:var(--accent);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.viewer{position:relative;width:100%;aspect-ratio:4/3;background:radial-gradient(circle at 50% 35%,#20252c,#0e1013 75%);border-radius:var(--r);
border:1px solid var(--bd);overflow:hidden;touch-action:none}.viewer canvas{width:100%;height:100%;display:block}
.viewer .hint{position:absolute;left:12px;bottom:10px;font-size:12px;color:var(--t3);pointer-events:none}
.viewer .msg{position:absolute;inset:0;display:grid;place-items:center;color:var(--t2);font-size:14px}
.price{font:700 36px var(--head);color:var(--accent);letter-spacing:-.02em}.kv{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--bd)}
.kv:last-child{border-bottom:0}.kv span:first-child{color:var(--t2)}
.swatches{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.sw{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:20px;
border:1px solid var(--bd2);background:var(--bg2);cursor:pointer;font-size:13px;color:var(--t1);font-family:var(--body)}.sw i{width:16px;height:16px;border-radius:50%;border:1px solid rgba(255,255,255,.25)}
.sw.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.sw small{color:var(--t3)}
.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{flex:1;min-width:120px}.seg .on{border-color:var(--accent);background:var(--accent-soft);color:var(--t1)}
.steps{display:flex;gap:6px;margin:10px 0 4px}.steps div{flex:1;height:8px;border-radius:4px;background:var(--bg3)}.steps .on{background:var(--accent)}
.steplbl{display:flex;justify-content:space-between;font-size:12px;color:var(--t3)}.steplbl b{color:var(--accent-h)}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.photos img{width:100%;border-radius:var(--rs);aspect-ratio:1;object-fit:cover}
.drop{border:2px dashed var(--bd2);border-radius:var(--r);padding:34px 18px;text-align:center;color:var(--t2);cursor:pointer}
.drop.over{border-color:var(--accent);background:var(--accent-soft)}
.foot{text-align:center;color:var(--t3);font-size:12.5px;padding:24px}
@media(max-width:760px){.top .who{display:none}.brand small{display:none}.brand{font-size:15px}.grid{grid-template-columns:1fr}h1{font-size:24px}main{padding:18px 14px 50px}.top{padding:12px 14px}.btn.wide-m{width:100%}}
