/* Custom Prints additions on top of the shared MyBricks / BrickList styles (site.css). */

.site-nav{gap:24px}
.basket-link{display:inline-flex;align-items:center;gap:8px;color:#fff!important;border:1px solid var(--line-strong)!important;border-radius:10px;padding:7px 12px!important}
.basket-link:hover{border-color:var(--c-gold)!important}
.basket-link .count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--c-gold);color:#000;font-size:12px;font-weight:700}
.linkish{color:var(--c-cyan);text-decoration:underline;font-size:inherit;padding:0}
.btn-row{display:flex;flex-wrap:wrap;gap:8px}
.money.big{font-size:28px;color:var(--c-gold)}
.progress{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.progress span{display:block;height:100%;background:var(--c-gold);transition:width .15s}

/* status colours used by orders */
.st-draft{background:rgba(255,255,255,.08);color:#b9b9c6}
.st-submitted{background:rgba(46,125,224,.18);color:#7fb3f2}
.st-reviewing{background:rgba(255,198,26,.14);color:#ffd452}
.st-changes_needed{background:rgba(255,122,31,.16);color:#ff9a55}
.st-approved{background:rgba(22,198,201,.16);color:#5fe0e2}
.st-paid,.st-printing{background:rgba(236,30,140,.15);color:#f27dbd}
.st-shipped,.st-complete{background:rgba(116,206,60,.14);color:#9be26a}
.st-cancelled,.st-rejected{background:rgba(255,255,255,.06);color:var(--muted-2)}

/* ---------------------------------------------------------------- home */
.cat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.cat{display:flex;flex-direction:column;gap:10px;padding:22px;color:var(--text);transition:border-color .15s,transform .15s}
.cat:hover{border-color:var(--c-gold);text-decoration:none;transform:translateY(-2px)}
.cat .ic{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:var(--surface-2)}
.cat h3{font-size:20px}
.cat p{font-size:14px;color:var(--muted)}
.steps4{grid-template-columns:repeat(4,minmax(0,1fr))}
.faq{display:flex;flex-direction:column}
.faq details{border-top:1px solid var(--line);padding:16px 0}
.faq summary{cursor:pointer;font-family:var(--font-ui);font-weight:600;color:#fff;font-size:16px;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::after{content:"+";color:var(--c-gold);font-size:20px;line-height:1}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin-top:10px;color:var(--muted);font-size:15px;max-width:75ch}
.spec-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}

/* ---------------------------------------------------------------- shop */
.chips.filter{margin:6px 0 20px}
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;padding-bottom:72px}
.prod{display:flex;flex-direction:column;overflow:hidden;color:var(--text);transition:border-color .15s,transform .15s}
.prod:hover{border-color:var(--c-gold);text-decoration:none;transform:translateY(-2px)}
.prod .pic{position:relative;height:190px;background:radial-gradient(420px 200px at 50% 30%,#1d1d26,#0b0b10);display:flex;align-items:center;justify-content:center}
.prod .pic canvas{width:100%;height:100%;display:block}
.prod .pic img{max-width:80%;max-height:80%;object-fit:contain}
.prod .body{display:flex;flex-direction:column;gap:6px;padding:16px 18px 18px}
.prod .nm{font-family:var(--font-ui);font-weight:600;font-size:17px;color:#fff}
.prod .from{font-family:var(--font-ui);font-size:14px;color:var(--c-gold);font-weight:600}
.dots{display:flex;gap:5px;flex-wrap:wrap}
.dots span{width:14px;height:14px;border-radius:999px;border:1px solid rgba(255,255,255,.25)}

/* ---------------------------------------------------------------- designer */
.d-head{display:flex;flex-direction:column;gap:10px;padding:28px 0 18px}
.d-head h1{font-size:clamp(26px,3vw,38px)}
.d-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start;padding-bottom:72px}
.stage-card{padding:14px;display:flex;flex-direction:column;gap:12px;position:sticky;top:16px}
.stage{position:relative;border-radius:12px;overflow:hidden;touch-action:none;cursor:grab;outline:none;
  background:
    linear-gradient(45deg,rgba(255,255,255,.025) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.025) 75%),
    linear-gradient(45deg,rgba(255,255,255,.025) 25%,transparent 25%,transparent 75%,rgba(255,255,255,.025) 75%),
    #0a0a0f;
  background-size:24px 24px;background-position:0 0,12px 12px}
.stage:focus-visible{box-shadow:0 0 0 2px var(--c-gold) inset}
.stage.dragging{cursor:grabbing}
.stage canvas{display:block}
.stage-drop{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.72);border:2px dashed var(--c-gold);border-radius:12px;pointer-events:none}
.stage-drop div{display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--font-ui);font-weight:600;color:#fff}
.stage-tools{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}
.stage-hint{margin:-4px 2px 0}
.tog{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-ui);font-size:13px;color:var(--muted);cursor:pointer;user-select:none}
.tog input{accent-color:var(--c-gold);width:15px;height:15px}
.face-tabs{display:flex;gap:6px;flex-wrap:wrap}
.face-tabs button{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--line-strong);font-family:var(--font-ui);font-size:14px;font-weight:600;color:var(--muted)}
.face-tabs button.on{border-color:var(--c-gold);color:#fff;background:rgba(255,198,26,.08)}
.dot-ok{display:inline-flex;color:var(--c-green)}
.d-panel{gap:16px}
.swatches{display:flex;flex-wrap:wrap;gap:10px}
.swatch{width:36px;height:36px;border-radius:999px;background:var(--sw);border:2px solid rgba(255,255,255,.18);box-shadow:inset 0 -6px 10px rgba(0,0,0,.18),inset 0 4px 8px rgba(255,255,255,.18)}
.swatch.on{outline:2px solid var(--c-gold);outline-offset:3px;border-color:#000}
.swatch:focus-visible{outline:2px solid #fff;outline-offset:3px}
.file-row{display:flex;gap:12px;align-items:center}
.file-row img{width:56px;height:56px;object-fit:contain;border-radius:8px;flex-shrink:0;background:repeating-conic-gradient(#2a2a33 0 25%,#1b1b22 0 50%) 50%/12px 12px}
.fname{font-size:14px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.quality{display:flex;flex-direction:column;gap:6px;font-family:var(--font-ui);font-size:13px;font-weight:600}
.quality .bar{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.quality .bar span{display:block;height:100%;border-radius:99px}
.q-great{color:#9be26a}.q-great .bar span{background:var(--c-green)}
.q-good{color:#ffd452}.q-good .bar span{background:var(--c-gold)}
.q-bad{color:#f7a3a8}.q-bad .bar span{background:var(--c-red)}
input[type=range]{width:100%;accent-color:var(--c-gold)}
.price-lines{display:flex;flex-direction:column;gap:4px;font-size:14px}
.price-lines>div{display:flex;justify-content:space-between;gap:12px;color:var(--muted)}
.price-lines .sum{color:#fff;font-weight:600;border-top:1px solid var(--line);padding-top:6px;margin-top:2px}
.price-lines .save{color:#9be26a}
.tx-sw{display:flex;flex-wrap:wrap;gap:4px}
.tx-sw button{width:18px;height:18px;border-radius:99px;background:var(--sw);border:1px solid rgba(255,255,255,.3)}
.sel-slot{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:10px;background:rgba(255,198,26,.06);border:1px solid rgba(255,198,26,.3)}
.actual-wrap{overflow:auto;max-height:70vh;background:#0a0a0f;border-radius:10px;padding:4px}
.actual-wrap canvas{display:block}
.modal.wide{max-width:min(1100px,94vw)}

/* ---------------------------------------------------------------- basket and orders */
.bline{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:18px;padding:18px 0;border-top:1px solid var(--line);align-items:start}
.bline:first-child{border-top:0}
.bline .mock{width:120px;height:96px;border-radius:10px;background:#fff;object-fit:contain;padding:4px}
.bline .nm{font-family:var(--font-ui);font-weight:600;color:#fff;font-size:16px}
.bline .r{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.bline .qty{width:92px}
.bline.unavailable{opacity:.6}
.totals{display:flex;flex-direction:column;gap:6px;font-size:15px}
.totals>div{display:flex;justify-content:space-between;gap:12px}
.totals .grand{font-family:var(--font-ui);font-weight:700;font-size:20px;color:#fff;border-top:1px solid var(--line);padding-top:10px;margin-top:4px}
.ship-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.ship-grid .s6{grid-column:span 6}.ship-grid .s3{grid-column:span 3}.ship-grid .s2{grid-column:span 2}
.order-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 0;border-top:1px solid var(--line);color:var(--text)}
.order-row:hover{text-decoration:none;background:rgba(255,255,255,.02)}
.order-row img{width:72px;height:56px;object-fit:contain;background:#fff;border-radius:8px;padding:3px}
.note-box{padding:14px 16px;border-radius:10px;border-left:3px solid var(--c-orange);background:rgba(255,122,31,.08);white-space:pre-wrap}
.note-box.ok{border-left-color:var(--c-green);background:rgba(116,206,60,.08)}
.note-box.bad{border-left-color:var(--c-red);background:rgba(238,43,55,.08)}

/* ---------------------------------------------------------------- admin */
.a-files{display:flex;flex-wrap:wrap;gap:8px}
.a-files a{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:8px;border:1px solid var(--line-strong);font-family:var(--font-ui);font-size:12px;color:var(--text)}
.a-files a:hover{border-color:var(--c-gold);text-decoration:none}
.a-item{display:grid;grid-template-columns:260px minmax(0,1fr);gap:22px;padding:20px 0;border-top:1px solid var(--line)}
.a-item:first-child{border-top:0}
.a-item .mock{width:100%;border-radius:10px;background:#fff;padding:6px}
.kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:6px 14px;font-size:14px}
.kv dt{color:var(--muted);font-family:var(--font-ui);font-size:13px}
.kv dd{color:var(--text)}
.flag-dark{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:6px;background:rgba(255,255,255,.08);font-size:12px;font-family:var(--font-ui)}
.rows-edit{display:flex;flex-direction:column;gap:8px}
.rows-edit .er{display:grid;gap:8px;align-items:center}
.rows-edit .er .input{height:40px;font-size:14px}
.rows-edit .hdr{font-family:var(--font-ui);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}
.r-colour{grid-template-columns:44px minmax(0,1.4fr) 110px 90px 36px}
.r-face{grid-template-columns:minmax(0,1fr) 110px 80px 80px 80px 80px 80px 60px 36px}
.r-break{grid-template-columns:120px 100px 36px}
.r-opt{grid-template-columns:minmax(0,1fr) 110px 36px}
.r-slot{grid-template-columns:minmax(0,1fr) 90px 90px 90px 36px}
.hexpick{width:44px;height:40px;padding:2px;border-radius:8px;border:1px solid var(--line-strong);background:var(--surface-2)}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:var(--muted)}
.icon-btn:hover{background:var(--surface-2);color:#fff}
.preset-chips{display:flex;flex-wrap:wrap;gap:6px}
.preset-chips button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:999px;border:1px solid var(--line-strong);font-size:12px;font-family:var(--font-ui);color:var(--muted)}
.preset-chips button i{width:12px;height:12px;border-radius:999px;display:inline-block;border:1px solid rgba(255,255,255,.3)}
.preview-cv{width:100%;height:220px;display:block;border-radius:10px;background:#0a0a0f}
.pthumb{width:64px;height:48px;border-radius:8px;background:#0a0a0f;display:block}

@media (max-width:1100px){
  .cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .d-grid{grid-template-columns:1fr}
  .stage-card{position:static}
  .a-item{grid-template-columns:1fr}
  .r-face{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:640px){
  .cat-grid,.steps4,.spec-grid{grid-template-columns:1fr}
  .bline{grid-template-columns:84px minmax(0,1fr)}
  .bline .mock{width:84px;height:70px}
  .bline .r{grid-column:1 / -1;flex-direction:row;justify-content:space-between;align-items:center}
  .ship-grid .s3,.ship-grid .s2{grid-column:span 6}
  .kv{grid-template-columns:1fr}
  .site-nav{gap:12px 16px}
  .r-colour{grid-template-columns:44px minmax(0,1fr) 90px 36px}.r-colour .bl{display:none}
}
