/* ============================================================
   Cosmorra: search walkthrough (light surface)
   ============================================================ */

body.tool{background:var(--bg-2)}

/* ---------- prototype band ---------- */
.band{background:var(--ink);color:#B6C7D4;font-size:.86rem;padding:11px 0;
  border-bottom:1px solid var(--line)}
.band .wrap{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.band strong{color:var(--gold-deep);font-weight:600}

/* ---------- progress rail ---------- */
.subhead{position:fixed;top:var(--nav-h);left:0;right:0;z-index:40;background:#fff;
  box-shadow:0 4px 14px rgba(19,32,46,.06)}
.rail{background:#fff;border-bottom:1px solid var(--line);position:static}
#rail-space{height:0}
.step{padding-top:52px}
.rail-in{display:flex;max-width:1120px;margin:0 auto;padding:0 32px;gap:0;overflow-x:auto}
.rail button{flex:1;min-width:118px;background:none;border:0;border-bottom:2px solid transparent;
  padding:16px 8px;font-family:inherit;font-size:.88rem;color:var(--text-dim);cursor:pointer;
  text-align:left;white-space:nowrap}
.rail button .n{font-family:'JetBrains Mono',monospace;font-size:.74rem;display:block;
  color:var(--text-dim);margin-bottom:3px}
.rail button[aria-current="step"]{color:var(--text);border-bottom-color:var(--gold-deep);font-weight:600}
.rail button.done{color:var(--text-2)}
.rail button.done .n::after{content:" \2713";color:var(--accent-schemes)}

/* ---------- step layout ---------- */
.step{display:none;padding:52px 0 90px}
.step.on{display:block}
.step-head{max-width:38rem;margin-bottom:36px}
.step-head h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:10px}
.step-head p{color:var(--text-mid)}

/* ---------- fields ---------- */
.fields{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.field label{display:block;font-size:.84rem;color:var(--text-mid);margin-bottom:6px;font-weight:500}
.field select,.field input{width:100%;background:#fff;border:1px solid var(--line);
  border-radius:4px;padding:11px 12px;font-family:inherit;font-size:.95rem;color:var(--text)}
.field select:focus,.field input:focus{outline:none;border-color:var(--gold-deep);
  box-shadow:0 0 0 3px rgba(201,162,39,.14)}

/* ---------- anchors ---------- */
.anchor{background:#fff;border:1px solid var(--line);border-radius:6px;
  padding:20px;margin-bottom:14px}
.anchor-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px}
.anchor-top h3{font-size:1.05rem}
.anchor-req{font-size:.78rem;color:var(--text-dim)}
.anchor-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:14px}
.anchor-off{opacity:.55}
.toggle-chip{background:none;border:1px solid var(--line);border-radius:20px;
  padding:5px 14px;font-family:inherit;font-size:.82rem;color:var(--text-mid);cursor:pointer}
.toggle-chip[aria-pressed="true"]{background:var(--text);color:#fff;border-color:var(--text)}

/* ---------- presets ---------- */
.presets{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:30px;
  padding-bottom:26px;border-bottom:1px solid var(--line)}
.presets span{font-size:.86rem;color:var(--text-mid);align-self:center;margin-right:4px}
.preset{background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:8px 16px;font-family:inherit;font-size:.87rem;color:var(--text);cursor:pointer}
.preset:hover{border-color:var(--gold-deep);background:#fffdf5}

/* ---------- parameter groups ---------- */
.grp{background:#fff;border:1px solid var(--line);border-radius:6px;margin-bottom:12px;
  overflow:hidden}
.grp-head{width:100%;display:flex;align-items:center;gap:14px;padding:17px 20px;
  background:none;border:0;font-family:inherit;cursor:pointer;text-align:left}
.grp-head:hover{background:#FAFBFC}
.grp-name{font-family:'Fraunces',serif;font-size:1.08rem;color:var(--text);flex:1}
.grp-count{font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--text-dim)}
.grp-count.has{color:var(--accent-schemes)}
.grp-caret{color:var(--text-dim);font-size:.8rem;transition:transform .2s ease}
.grp[open] .grp-caret{transform:rotate(90deg)}
.grp-body{display:none;padding:4px 20px 20px;border-top:1px solid var(--line)}
.grp[open] .grp-body{display:block}

.prm{padding:14px 0;border-bottom:1px solid #EDF1F4}
.prm:last-child{border-bottom:0}
.prm-top{display:flex;align-items:center;gap:12px}
.prm-check{width:18px;height:18px;flex-shrink:0;accent-color:var(--gold-deep)}
.prm-label{flex:1;font-size:.95rem;color:var(--text);cursor:pointer}
.prm-kind{font-size:.74rem;color:var(--text-dim);background:#F2F5F7;padding:3px 9px;border-radius:3px}
.prm-ctrl{display:none;margin-top:14px;padding-left:30px}
.prm.on .prm-ctrl{display:block}
.prm.on .prm-label{font-weight:600}

.ctrl-row{display:flex;gap:20px;flex-wrap:wrap;align-items:flex-end}
.ctrl-num{flex:0 0 210px}
.ctrl-num label,.ctrl-pri label{display:block;font-size:.8rem;color:var(--text-mid);margin-bottom:5px}
.ctrl-num input,.ctrl-num select{width:100%;background:#fff;border:1px solid var(--line);
  border-radius:4px;padding:9px 11px;font-family:'JetBrains Mono',monospace;font-size:.92rem;
  color:var(--text)}
.ctrl-pri{flex:1;min-width:230px}
.slider{width:100%;accent-color:var(--gold-deep)}
.pri-out{font-size:.82rem;color:var(--text-mid);margin-top:4px;display:flex;justify-content:space-between}
.pri-out b{color:var(--text);font-weight:600}

/* ---------- sticky bar ---------- */
.bar{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);
  padding:16px 0;z-index:30;box-shadow:0 -6px 20px rgba(22,34,46,.06)}
.bar-in{display:flex;align-items:center;gap:22px;max-width:1120px;margin:0 auto;
  padding:0 32px;flex-wrap:wrap}
.bar-ceiling{flex:0 0 230px}
.bar-ceiling label{display:block;font-size:.78rem;color:var(--text-mid);margin-bottom:5px}
.bar-ceiling input{width:100%;border:1px solid var(--line);border-radius:4px;
  padding:9px 11px;font-family:'JetBrains Mono',monospace;font-size:.95rem}
.bar-count{font-size:.88rem;color:var(--text-mid)}
.bar-count b{color:var(--text)}
.bar-warn{font-size:.86rem;color:#B05A4A;flex:1;min-width:180px}
.bar-actions{margin-left:auto;display:flex;gap:10px}
.btn-dark{background:var(--text);color:#fff;border:0}
.btn-dark:hover{background:#24374A}
.btn-line{background:#fff;border:1px solid var(--line);color:var(--text)}
.btn-line:hover{border-color:var(--text-dim)}

/* ---------- step 4: blueprint ---------- */
.bp-note{background:#FFFBEF;border:1px solid #E8DCA8;border-radius:6px;padding:16px 20px;
  margin-bottom:28px;font-size:.92rem;color:#6B5A1E}
.bp{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;
  max-width:44rem}
.bp-head{padding:20px 24px;border-bottom:1px solid var(--line)}
.bp-pocket{font-family:'Fraunces',serif;font-size:1.3rem;color:var(--text);margin-bottom:5px}
.bp-bound{font-size:.85rem;color:var(--text-dim)}
.bp-sec{padding:20px 24px;border-bottom:1px solid var(--line)}
.bp-sec:last-child{border-bottom:0}
.bp-sec h4{font-family:'Figtree',sans-serif;font-size:.8rem;font-weight:600;color:var(--text-mid);
  margin-bottom:14px}
.bp-line{display:flex;justify-content:space-between;gap:16px;padding:8px 0;
  border-bottom:1px solid #F1F4F6;font-size:.93rem}
.bp-line:last-child{border-bottom:0}
.bp-line .src{color:var(--text-dim);font-size:.82rem;flex:1;text-align:right;padding-right:16px}
.bp-line .val{font-family:'JetBrains Mono',monospace;color:#B8C4CE;min-width:56px;text-align:right}
.bp-total{background:#FAFBFC;font-weight:600}
.bp-total .val{color:var(--text-dim)}
.bp-sub{padding-left:18px;color:var(--text-mid)}
.bp-empty{color:var(--text-dim);font-size:.9rem;font-style:italic}

/* ---------- step 5: architecture ---------- */
.arch{display:grid;grid-template-columns:1fr;gap:0;max-width:52rem}
.arch-stage{background:#fff;border:1px solid var(--line);border-radius:6px;
  padding:0;margin-bottom:10px;overflow:hidden}
.arch-btn{width:100%;display:flex;align-items:center;gap:16px;padding:18px 22px;
  background:none;border:0;font-family:inherit;text-align:left;cursor:pointer}
.arch-btn:hover{background:#FAFBFC}
.arch-n{font-family:'JetBrains Mono',monospace;font-size:.82rem;color:#fff;
  background:var(--text);width:26px;height:26px;border-radius:50%;display:flex;
  align-items:center;justify-content:center;flex-shrink:0}
.arch-t{flex:1}
.arch-t b{display:block;font-family:'Fraunces',serif;font-size:1.05rem;
  color:var(--text);font-weight:600;margin-bottom:2px}
.arch-t span{font-size:.88rem;color:var(--text-mid)}
.arch-body{display:none;padding:0 22px 20px 64px;font-size:.93rem;color:var(--text-mid)}
.arch-stage.on .arch-body{display:block}
.arch-body em{color:var(--text);font-style:normal;font-weight:600}

.conflict{background:var(--ink);color:#C6D5E0;border-radius:6px;padding:26px 28px;
  max-width:52rem;margin-top:36px}
.conflict h3{color:#fff;font-size:1.15rem;margin-bottom:12px}
.conflict p{font-size:.95rem}
.conflict p+p{margin-top:12px}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .fields{grid-template-columns:repeat(2,1fr)}
  .anchor-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .rail-in{padding:0 22px}
  .rail button{min-width:96px;font-size:.8rem;padding:13px 6px}
  .fields{grid-template-columns:1fr}
  .anchor-grid{grid-template-columns:1fr}
  .bar-in{padding:0 22px;gap:14px}
  .bar-ceiling{flex:1 1 100%}
  .bar-actions{margin-left:0;width:100%}
  .bar-actions .btn{flex:1;text-align:center}
  .ctrl-num{flex:1 1 100%}
  .arch-body{padding-left:22px}
}
