/* Layout: sticky act bar over a slot × party-member ledger; side views for checklist + import */
:root{
  --bg:#eceef3; --panel:#ffffff; --panel2:#f5f6f9; --line:#d3d7e1; --fg:#1c1f2c; --muted:#5b6072;
  --gold:#8a6512; --gold-soft:#f3e7c7; --own:#2d7a4c; --own-soft:#dcefe3; --need:#9d3f37; --need-soft:#f6dedb;
  --clash:#b0531a; --clash-soft:#fbe4d3; --link:#2f4ca8;
  --f-display:"Cinzel",Georgia,"Times New Roman",serif;
  --f-body:"Alegreya Sans","Segoe UI",system-ui,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#13151d; --panel:#1b1e29; --panel2:#222634; --line:#2f3446; --fg:#e7e2d4; --muted:#9a9bab;
  --gold:#d8ae45; --gold-soft:#3a3120; --own:#76c493; --own-soft:#1e3328; --need:#e08a80; --need-soft:#3a2224;
  --clash:#ee9a5c; --clash-soft:#3d2a1b; --link:#a7bcff; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#13151d; --panel:#1b1e29; --panel2:#222634; --line:#2f3446; --fg:#e7e2d4; --muted:#9a9bab;
  --gold:#d8ae45; --gold-soft:#3a3120; --own:#76c493; --own-soft:#1e3328; --need:#e08a80; --need-soft:#3a2224;
  --clash:#ee9a5c; --clash-soft:#3d2a1b; --link:#a7bcff; color-scheme:dark}
*{box-sizing:border-box}
html{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.4;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 48px}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
a{color:var(--link);text-decoration:none} a:hover{text-decoration:underline}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
header.top{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px;padding-block:22px 10px}
h1{font-family:var(--f-display);font-weight:700;font-size:clamp(1.4rem,3vw,2rem);margin:0;letter-spacing:.02em;text-wrap:balance}
.sub{color:var(--muted);margin:2px 0 0;max-width:62ch}
.views{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:3px}
.views button{border:0;background:none;padding:6px 12px;border-radius:6px;cursor:pointer;color:var(--muted);font-weight:500}
.views button[aria-pressed="true"]{background:var(--gold-soft);color:var(--fg)}
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--bg);display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding-block:8px;border-bottom:1px solid var(--line)}
.acts{display:flex;gap:4px;flex-wrap:wrap}
.acts button{font-family:var(--f-display);font-weight:600;border:1px solid var(--line);background:var(--panel);padding:6px 14px;border-radius:999px;cursor:pointer}
.acts button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.stats{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto;font-family:var(--f-mono);font-size:12px}
.stat{padding:3px 8px;border-radius:6px;background:var(--panel);border:1px solid var(--line);font-variant-numeric:tabular-nums}
.stat.c{background:var(--clash-soft);border-color:var(--clash);color:var(--clash)}
.wrap{overflow-x:auto;margin-top:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.grid{display:grid;min-width:max-content}
.grid>div{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px;min-width:0}
.slot{font-family:var(--f-mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--panel2);position:sticky;left:0;z-index:1}
.mh{background:var(--panel2)}
.mh input.mname{font-family:var(--f-display);font-weight:700;font-size:1.05rem;border:0;background:transparent;width:100%;padding:2px 0;border-bottom:1px dashed transparent}
.mh input.mname:hover,.mh input.mname:focus{border-bottom-color:var(--line)}
.mh .src{font-size:12px;color:var(--muted);display:block;margin-top:2px}
.mh .row{display:flex;gap:6px;align-items:center;margin-top:6px;flex-wrap:wrap}
.mh select,.cell select{font-size:12px;padding:3px 4px;border:1px solid var(--line);border-radius:6px;background:var(--panel);max-width:100%}
.mini{font-size:12px;border:1px solid var(--line);background:var(--panel);padding:3px 8px;border-radius:6px;cursor:pointer}
.mini.warn{color:var(--need);border-color:var(--need)}
.cell{display:flex;flex-direction:column;gap:6px;width:17rem}
.cell.clash{box-shadow:inset 3px 0 0 var(--clash);background:var(--clash-soft);padding-left:8px;margin-left:-4px;border-radius:4px}
.empty{color:var(--muted);font-size:13px;width:17rem}
.carry{font-size:11px;font-family:var(--f-mono);color:var(--muted)}
.item{display:flex;gap:8px;align-items:flex-start}
.item input[type=checkbox]{margin-top:4px;accent-color:var(--own);width:15px;height:15px;flex:none}
.ic{width:40px;height:40px;flex:none;border-radius:6px;background:var(--line);object-fit:contain}
.ib{min-width:0;flex:1}
.nm{font-weight:700;color:var(--fg)} .nm:hover{color:var(--link)}
.item.own .nm{color:var(--own)}
.lk{font-family:var(--f-mono);font-size:11px;margin-left:6px}
.desc{margin:2px 0 0;font-size:12.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.chips{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.chip{font-family:var(--f-mono);font-size:10.5px;padding:1px 6px;border-radius:4px;letter-spacing:.03em;white-space:nowrap}
.chip.eq{background:var(--gold-soft);color:var(--gold)} .chip.need{background:var(--need-soft);color:var(--need)}
.chip.alt{background:var(--own-soft);color:var(--own)} .chip.cl{background:var(--clash);color:var(--panel)}
.chip.bis{border:1px solid var(--gold);color:var(--gold)}
.wear{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted)}
.wear select{flex:1;min-width:0}
details.alts{border-top:1px dashed var(--line);padding-top:4px}
details.alts summary{cursor:pointer;font-size:12.5px;color:var(--muted);list-style:none}
details.alts summary::before{content:"▸ ";} details.alts[open] summary::before{content:"▾ "}
.altlist{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.altlist .item{padding-left:6px;border-left:2px solid var(--line)}
.altlist .item.wearing{border-left-color:var(--gold)}
.acts2{display:flex;gap:4px;margin-top:3px}
.addalt{display:flex;gap:4px;flex-wrap:wrap}
.addalt input{flex:1 1 6rem;min-width:0;font-size:12px;padding:3px 6px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.note{font-size:12px;color:var(--muted);font-style:italic}
/* checklist */
.tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.tools input,.tools select{padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.tools input{flex:1 1 14rem}
.clist{margin-top:12px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}
.crow{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}
.crow:last-child{border-bottom:0}
.wants{display:flex;flex-wrap:wrap;gap:4px;align-self:center}
.want{font-size:12px;padding:2px 7px;border-radius:5px;background:var(--panel2);border:1px solid var(--line)}
.want.main{border-color:var(--gold)}
.want b{font-weight:700}
.grp{font-family:var(--f-display);font-weight:700;padding:8px 12px;background:var(--panel2);border-bottom:1px solid var(--line)}
@media (max-width:640px){.crow{grid-template-columns:1fr}}
/* import */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;margin-top:14px;max-width:62rem}
.panel h2{font-family:var(--f-display);font-size:1.15rem;margin:0 0 6px}
.panel p,.panel li{max-width:68ch}
.frm{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.frm input,.frm select,textarea{padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:var(--panel2)}
.frm input{flex:1 1 22rem;min-width:0}
textarea{width:100%;min-height:7rem;font-family:var(--f-mono);font-size:12px;margin-top:8px}
.btn{border:1px solid var(--fg);background:var(--fg);color:var(--bg);padding:7px 14px;border-radius:6px;cursor:pointer;font-weight:700}
.btn.ghost{background:transparent;color:var(--fg)}
.msg{font-size:13px;margin-top:8px;min-height:1.2em}
.msg.ok{color:var(--own)} .msg.err{color:var(--need)}
code.blk{display:block;white-space:pre-wrap;word-break:break-all;font-family:var(--f-mono);font-size:11px;background:var(--panel2);border:1px solid var(--line);padding:8px;border-radius:6px;max-height:8rem;overflow:auto}
.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:8px;align-items:center}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
.hdr-r{display:flex;gap:8px;align-items:center}
.theme{border:1px solid var(--line);background:var(--panel);border-radius:8px;width:34px;height:34px;cursor:pointer}
.review{border:1px solid var(--clash);background:var(--clash-soft);border-radius:8px;padding:8px 12px;font-size:13px;margin-top:8px}
.review ul{margin:4px 0 0;padding-left:18px}
.blist{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.brow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel2)}
.brow .bt{flex:1 1 16rem;min-width:0}
.tag{font-family:var(--f-mono);font-size:10.5px;padding:1px 6px;border-radius:4px;background:var(--gold-soft);color:var(--gold)}
code.cmd{font-family:var(--f-mono);font-size:12.5px;background:var(--panel2);border:1px solid var(--line);padding:2px 6px;border-radius:4px}
