/* DM's table layout. Components (sign, buttons, plaques, tags, tablets, sheet) come from tavern-room.css + board.css. */
.dm-wrap{max-width:1500px}
.dm-layout{display:grid;grid-template-columns:340px minmax(0,1fr);gap:20px;align-items:start}
.dm-party #dm-party{display:flex;flex-direction:column;gap:10px}
.dm-pc{display:flex;gap:10px;width:100%;text-align:left;padding:8px;background:var(--parch);border:3px solid var(--outline);box-shadow:inset -3px -3px 0 var(--parch-2);cursor:pointer;font:inherit;color:var(--ink)}
.dm-pc:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.dm-pc .portrait{width:72px;height:88px}
.dm-pc .sprite{transform:scale(.75);transform-origin:50% 100%}
.dm-pc-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.dm-pc strong{font:600 18px var(--f-display);color:var(--wood-800);overflow-wrap:anywhere}
.dm-pc strong img{width:18px;height:18px;vertical-align:-2px}
.dm-pc .sub{font:14px var(--f-body);color:var(--ink-soft)}
.dm-pc .hpbar{display:block;margin-top:2px;box-shadow:none;height:10px;border:2px solid var(--outline);background:linear-gradient(90deg,var(--hp) var(--pct),#3a2a20 var(--pct))}
.dm-pc .hpbar.mid{background:linear-gradient(90deg,var(--hp-mid) var(--pct),#3a2a20 var(--pct))}
.dm-pc .hpbar.low{background:linear-gradient(90deg,var(--hp-low) var(--pct),#3a2a20 var(--pct))}
.dm-pc .nums{font:15px var(--f-body)}
.dm-pc .nums b{font-family:var(--f-num);font-weight:700;font-variant-numeric:lining-nums tabular-nums}
.dm-pc .conds{display:flex;flex-wrap:wrap;gap:4px}
.dm-res{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 10px;font:14px var(--f-num)}
.dm-slots{display:flex;flex-wrap:wrap;gap:4px 10px}
.dm-slots .pip{display:inline-block;width:18px;height:18px}
.dm-slots .pip img{width:18px;height:18px;image-rendering:pixelated} /* 2x of the 9px pip art */
.dm-main .tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
/* The tab panels sit on one parchment sheet (like the board's notes) so text never lands on the brick wall.
   Rule cards inside stay unframed - one frame only, no boxes in boxes. */
.dm-main [data-panel]{position:relative;padding:18px 14px 12px;border:18px solid transparent;border-image:url(/img/tavern/s-parchment.png) 6 fill/18px/0 round;box-shadow:6px 8px 0 rgba(40,20,8,.35);color:var(--ink)}
.dm-main [data-panel][hidden]{display:none}
.dm-main .rules-search{padding:0 0 14px}
/* Rule cards and quick tables share one grid; the list spans the full row and lays its cards out on the same columns. */
.dm-rules-list{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:20px 32px}
@media (max-width:1023px){
  .dm-layout{grid-template-columns:1fr}
  .dm-party #dm-party{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:699px){ .dm-party #dm-party{grid-template-columns:1fr} }

/* Session prep + notebook. They sit straight on the panel's parchment: no .note frame inside (no boxes in boxes). */
.prep-switch{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:12px}
.prep-switch label{display:flex;gap:8px;align-items:center;font:12px var(--f-label);letter-spacing:.5px;text-transform:uppercase;color:var(--ink)}
.prep-switch select{font:17px var(--f-body);color:var(--ink);background:var(--parch-2);border:3px solid var(--outline);padding:6px 8px;min-height:44px;max-width:min(420px,70vw)}
.prep-switch select:focus-visible{outline:3px solid var(--gold);outline-offset:1px}
.prep-head{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.prep-head h2,.prep-form-title{font:600 24px var(--f-display);color:var(--wood-800);margin:0;overflow-wrap:anywhere}
.prep-page h3,.notebook h3{font:12px var(--f-label);letter-spacing:.5px;text-transform:uppercase;color:var(--ink-soft);margin:16px 0 4px}
.prep-recap{margin:8px 0 0;font:17px var(--f-body)}
.prep-recap a{color:var(--wood-800);font-weight:700}
.notes{font:17px/1.5 var(--f-body);overflow-wrap:anywhere}
.notes p{margin:.4em 0}
.notes ul{padding-left:1.2em;margin:.3em 0}
.notes h3{font:600 20px var(--f-display);color:var(--wood-800);text-transform:none;letter-spacing:0;margin:14px 0 4px}
.notes h4{font:600 17px var(--f-display);color:var(--wood-800);margin:12px 0 4px}
.dm-form label{display:block;margin:10px 0}
.dm-form textarea,.dm-form input{width:100%}
.prep-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:10px}
.prep-actions [data-delete]{margin-right:auto}
/* Boot failure (offline / server error): a parchment card so the message never lands on the brick wall. */
.dm-error{padding:18px 14px;border:18px solid transparent;border-image:url(/img/tavern/s-parchment.png) 6 fill/18px/0 round;color:var(--ink);font:18px var(--f-body)}
.dm-error p{margin:0 0 12px}
/* "Your unsaved version" after a lost save: a labelled section under the newest version, set off by a dashed rule
   (no frame inside the panel - no boxes in boxes). */
.dm-draft{margin-top:20px;padding-top:12px;border-top:3px dashed var(--outline)}
.dm-draft h3{font:12px var(--f-label);letter-spacing:.5px;text-transform:uppercase;color:var(--ink);margin:0 0 4px}
.dm-draft p{margin:0 0 8px;font:17px var(--f-body);color:var(--ink)}
