/* ============================================================
   Armoury tool layer v1 (3 Oct 2026): folded explainer sections,
   example picker with stage groups and a prominent restore button,
   step accordions, "Use example" lines, sticky mission bar,
   "done when" checklist and in-tool Forge submit.
   Loaded after tool.css on every tool that calls Armoury.ui().
   ============================================================ */

/* hidden means hidden, even where a rule below sets display */
#builder [hidden]{display:none!important}

/* ---- folded explainer sections (hero stays open) ---- */
.ol .fold-sec{padding:26px 0}
.ol .fold-sec:has(details[open]){padding:56px 0}
.ol .fold>summary{list-style:none;cursor:pointer}
.ol .fold>summary::-webkit-details-marker{display:none}
.ol .fold-h{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ol .fold-h h2{margin:12px 0 0}
.ol .fold-t{flex-shrink:0;font:700 14px/1 var(--vm-sans);border:2px solid currentColor;border-radius:3px;padding:10px 14px;min-height:44px;display:inline-flex;align-items:center;gap:8px;color:var(--vm-ink)}
.ol .fold-t::before{content:'Show'}
.ol .fold-t::after{content:'+';font-size:18px}
.ol .fold[open] .fold-t::before{content:'Hide'}
.ol .fold[open] .fold-t::after{content:'\2212'}
.ol .sins-sec .fold-t{color:#fff}
.ol .fold-b{padding-top:6px}

/* ---- mission bar ---- */
.au-bar{position:sticky;top:0;z-index:30;background:var(--vm-navy);color:#f8f6f0;margin:18px 0 0}
.au-bar .in{display:flex;align-items:center;gap:18px;padding:10px 16px;flex-wrap:wrap}
.au-bar .t small{display:block;font:700 11px/1.4 var(--vm-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--vm-amber)}
.au-bar .t b{font:400 21px/1.15 var(--vm-serif);display:block}
.au-pips{display:flex;gap:6px;flex-wrap:wrap}
.au-pip{font:700 13px/1 var(--vm-sans);padding:7px 11px;border-radius:99px;border:1px solid rgba(248,246,240,.35);background:transparent;color:#f8f6f0;cursor:pointer;min-height:32px}
.au-pip.lit{background:var(--vm-amber);border-color:var(--vm-amber);color:var(--vm-ink)}
.au-bar .r{margin-left:auto;display:flex;align-items:center;gap:12px}
.au-bar .st{font-size:14px;color:#c9cdd2;max-width:260px}
.au-save{background:var(--vm-amber);color:var(--vm-ink);border:0;border-radius:3px;padding:11px 18px;font:700 15px/1 var(--vm-sans);cursor:pointer;min-height:44px}

/* ---- example strip ---- */
.au-ex{background:#fffdf8;border:1px solid var(--vm-line);border-top:0;padding:14px 16px;display:grid;gap:8px;margin-bottom:22px}
.au-ex .picks{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.au-ex .pick{display:grid;gap:4px;flex:1 1 260px;max-width:420px;min-width:0}
.au-ex label{font:700 12px/1.4 var(--vm-sans);letter-spacing:.1em;text-transform:uppercase;color:#59616a}
.au-ex select{width:100%;min-height:46px;border:1.5px solid var(--vm-line);border-radius:3px;background:var(--vm-paper);padding:8px 10px;font:16px var(--vm-sans);color:var(--vm-ink)}
.au-ex .note{font-size:14px;color:#59616a;margin:0}
#restoreMine.au-restore{border:2px solid var(--vm-amber);background:#fffdf8;color:var(--vm-ink);border-radius:3px;padding:10px 20px;font:700 16px/1 var(--vm-sans);cursor:pointer;min-height:48px;animation:none}
#restoreMine.au-restore.ready{background:var(--vm-amber);box-shadow:0 0 0 4px rgba(245,183,49,.35)}
#restoreMine.au-restore:disabled{opacity:.55;cursor:not-allowed}

/* ---- step accordion on builder groups ---- */
.au-step{position:relative;min-width:0;grid-template-columns:minmax(0,1fr)}
.au-body{min-width:0}
.au-body label,.au-body [class]>label{min-width:0;max-width:100%}
.ol .builder>*,.ol .b-fields{min-width:0}
.au-step .au-head{flex-wrap:wrap;min-width:0}
.au-step .au-head{cursor:pointer;position:relative;padding-right:92px}
.au-step .au-count{position:absolute;right:0;top:50%;transform:translateY(-50%);font:700 13px/1 var(--vm-sans);color:#59616a;display:flex;gap:8px;align-items:center}
.au-step .au-count::after{content:'\25BE';font-size:14px;transition:transform .2s}
.au-step.au-closed .au-count::after{transform:rotate(-90deg)}
.au-step.au-done .au-count{color:#2f6b24}
.au-step .au-sum{flex:1 1 100%;min-width:0;display:none;font-size:14px;color:#59616a;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.au-step.au-closed .au-sum{display:block}
.au-step.au-closed .au-body{display:none}
.au-use{display:block;border:0;background:none;padding:2px 0 8px;margin-top:-4px;font:13px/1.4 var(--vm-sans);color:var(--vm-gold);cursor:pointer;text-align:left;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.au-use b{font-weight:700}
.au-use:hover{text-decoration:underline}

/* ---- done-when checklist and submit, inside the navy panel ---- */
.au-done,.au-sub{border-top:1px solid rgba(255,255,255,.18);margin-top:16px;padding-top:14px;display:grid;gap:8px}
.au-done h3,.au-sub h3{margin:0;font:400 19px/1.2 var(--vm-serif);color:#f8f6f0}
.au-check{display:grid;grid-template-columns:22px 1fr;gap:8px;font-size:15px;align-items:start;color:#dfe4e7}
.au-tick{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.3);display:grid;place-items:center;font-size:13px;font-weight:700}
.au-check.yes .au-tick{background:#3f8a63;border-color:#3f8a63;color:#fff}
.au-sub p{margin:0;font-size:14px;color:#c9cdd2}
.au-sub label{font-size:14px;color:#dfe4e7}
.au-sub input,.au-sub textarea{width:100%;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.25);border-radius:3px;color:#fff;padding:9px 11px;font:15px var(--vm-sans)}
.au-sub button{justify-self:start;background:transparent;color:#f8f6f0;border:2px solid #f8f6f0;border-radius:3px;padding:11px 18px;font:700 15px/1 var(--vm-sans);cursor:pointer;min-height:44px}
.au-sub button:disabled{opacity:.45;cursor:not-allowed}
.au-sub .msg{color:#cfe8d8;font-size:14px}
.au-sub .msg.err{color:#ffd27a}
.au-sub a{color:#f8f6f0}

@media(max-width:840px){
  .au-bar{position:static}
  .au-bar .r{margin-left:0;width:100%;justify-content:space-between}
  .au-pips{display:none}
}
@media(max-width:640px){.ol .fold-h{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.au-step .au-count::after{transition:none}}

/* ---- saved versions shelf ---- */
.au-ver{background:#fffdf8;border:1px solid var(--vm-line);border-top:0;margin:-22px 0 22px;padding:12px 16px;display:grid;gap:8px}
.au-ver-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.au-ver-h .pl{font:700 12px/1.4 var(--vm-sans);letter-spacing:.1em;text-transform:uppercase;color:#59616a}
.au-ver-new{margin-left:auto;background:var(--vm-navy);color:#f8f6f0;border:0;border-radius:3px;padding:10px 14px;font:700 14px/1 var(--vm-sans);cursor:pointer;min-height:44px}
.au-ver-list{display:flex;gap:8px;flex-wrap:wrap}
.au-v{display:inline-flex;align-items:stretch;border:1.5px solid var(--vm-line);border-radius:3px;background:#efe9dc;max-width:100%;min-width:0}
.au-v.on{border-color:var(--vm-navy);background:#fffdf8}
.au-v.act{border-color:var(--vm-gold)}
.au-v.on.act{border-color:var(--vm-navy)}
.au-v-open{border:0;background:none;padding:8px 12px;text-align:left;cursor:pointer;font:600 15px/1.3 var(--vm-sans);color:var(--vm-ink);min-width:0;overflow:hidden;text-overflow:ellipsis}
.au-v-open small{display:block;font:400 12px/1.3 var(--vm-sans);color:#59616a}
.au-v-star{color:var(--vm-gold);margin-right:5px}
.au-v-act{border:0;border-left:1px solid var(--vm-line);background:none;padding:0 12px;font:700 13px/1 var(--vm-sans);color:var(--vm-gold);cursor:pointer;min-height:44px}
.au-v-act:hover{text-decoration:underline}
.au-ver-note{margin:0;font-size:14px;color:#2f6b24;min-height:0}
.au-ver-note:empty{display:none}
