/* Player live-play workspace only. Character and GM layouts keep their own frame. */
.player-dashboard { display:grid; gap:.7rem; min-width:0; }
.player-dashboard * { min-width:0; }
.player-dashboard h2,.player-dashboard h3,.player-dashboard p { margin:0; }
.player-dashboard h2 { font-size:1rem; letter-spacing:0; text-transform:none; }
.player-dashboard h3 { font-size:.98rem; }
.player-dashboard :is(button, a:where(.route-link)) { min-height:2.25rem; padding:.35rem .65rem; }
.player-dashboard :is(button, a:where(.route-link)):focus-visible,.player-dashboard summary:focus-visible,.player-dashboard input:focus-visible { outline:2px solid var(--cyan); outline-offset:3px; }
.player-dashboard :is(button, a:where(.route-link)):disabled { opacity:.48; cursor:not-allowed; }
.player-dashboard summary { cursor:pointer; }
.dp-world { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 1.5rem; font-size:.85rem; padding:.55rem .8rem; border:1px solid #ffffff20; border-left:3px solid var(--yellow); background:linear-gradient(100deg,#ffe6000b,#00d9ff08); }
.dp-world > strong { color:var(--yellow); }
.dp-world > span:last-child { margin-left:auto; }
.dp-world [data-collapse-status]:not([hidden]) { margin-left:.5rem; color:var(--pink); }
.dp-clock-options { display:flex; gap:.2rem; }
.player-dashboard .dp-clock-options :is(button, a:where(.route-link)) { min-height:1.75rem; padding:.15rem .4rem; font-size:.75rem; }
.dp-clock-options [aria-pressed=true] { color:var(--yellow); border-color:var(--yellow); }
.dp-identity { display:flex; align-items:center; gap:.8rem; padding:.6rem .8rem; background:linear-gradient(100deg,#00d9ff12,#ff40ca08); border-top:2px solid var(--cyan); }
.dp-identity h2 { font-size:1.25rem; color:var(--cyan); overflow-wrap:anywhere; }
.dp-identity p { font-size:.83rem; color:var(--muted); margin-top:.25rem; }
.dp-identity > :is(button, a:where(.route-link)) { margin-left:auto; flex-shrink:0; }
.dp-portrait { width:48px; height:48px; flex:0 0 48px; display:grid; place-items:center; border:1px solid var(--cyan); border-radius:6px; overflow:hidden; color:var(--yellow); }
.dp-portrait img { width:100%; height:100%; object-fit:cover; }
.dp-health { border:1px solid #ffe60045; padding:.65rem .8rem .4rem; background:linear-gradient(110deg,#ffe60008,#101010); }
.dp-heading { display:flex; align-items:center; justify-content:space-between; gap:.5rem; margin-bottom:.5rem; }
.dp-health h2 { color:var(--yellow); }
.dp-health .dp-heading > strong { font-size:1.15rem; }
.dp-heading small { font-size:.8rem; font-weight:normal; color:var(--muted); }
.player-dashboard .health-bar { margin:0; display:flex; gap:3px; }
.player-dashboard .health-slot { flex:1 1 0; padding:0; height:44px; min-height:44px; border-radius:3px; }
.dp-health-bottom { display:flex; justify-content:space-between; align-items:center; min-height:34px; gap:.5rem; }
.player-dashboard .play-rest { position:relative; margin:0; border:0; padding:0; }
.play-rest > summary { font-size:.85rem; color:var(--yellow); padding:.4rem .5rem; border-radius:4px; }
.dp-rest-menu { position:absolute; z-index:15; right:0; top:100%; width:min(300px,calc(100vw - 3rem)); background:#181619; border:1px solid var(--yellow); padding:.8rem; box-shadow:0 10px 30px #000a; }
.dp-rest-menu .inline-actions { display:grid; grid-template-columns:1fr 1fr; }
.dp-rest-menu p { margin-top:.6rem; font-size:.8rem; line-height:1.5; }
.dp-resources { display:flex; flex-wrap:wrap; align-items:stretch; gap:.5rem; }
.dp-resource,.dp-reference { padding:.5rem .65rem; border:1px solid #ffffff22; border-radius:4px; background:#111; }
.dp-resource:first-child { background:#00d9ff0d; border-color:#00d9ff50; }
.dp-resource:nth-child(2) { background:#ff40ca0c; border-color:#ff40ca50; }
.dp-resource label { display:block; font-size:.75rem; color:var(--cyan); margin:0 0 .3rem; }
.dp-resource:nth-child(2) label { color:var(--pink); }
.dp-resource > div { display:flex; align-items:center; gap:.35rem; }
.dp-resource input { width:4.5rem; padding:.35rem; height:2.25rem; text-align:center; }
.dp-resource span { font-size:.9rem; white-space:nowrap; }
.dp-reference { flex:1 1 65px; display:grid; align-content:center; gap:.25rem; text-align:center; }
.dp-reference small { color:var(--muted); }
.dp-reference strong { font-size:1.2rem; }
.dp-conditions { display:flex; align-items:start; flex-wrap:wrap; gap:.4rem .8rem; padding:.5rem .7rem; background:#ff40ca08; border:1px solid #ff40ca30; font-size:.85rem; }
.dp-conditions h2 { font-size:.85rem; padding-top:.4rem; }
.dp-conditions > span { padding-top:.4rem; }
.dp-conditions > details { flex:1 1 180px; border-left:2px solid var(--pink); padding:.35rem .6rem; }
.dp-conditions summary { color:#ffa8d8; }
.dp-conditions > :is(button, a:where(.route-link)) { margin-left:auto; }
.dp-preserve { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.5; font-size:.85rem; }
.dp-panel-switch { display:none; }
.dp-columns { display:grid; grid-template-columns:minmax(220px,.9fr) minmax(390px,1.7fr) minmax(230px,1fr); gap:.7rem; align-items:start; }
.dp-panel { padding:.7rem; border:1px solid #ffffff25; border-top:3px solid var(--yellow); background:linear-gradient(145deg,#ffe60007,#111 70%); border-radius:5px; }
.dp-panel > h2 { margin-bottom:.6rem; }
.dp-hotlist-panel { border-top-color:var(--cyan); background:linear-gradient(145deg,#00d9ff0a,#111 70%); }
.dp-companions { border-top-color:var(--pink); background:linear-gradient(145deg,#ff40ca0a,#111 70%); }
.dp-attack-list { list-style:none; padding:0; margin:0; display:grid; gap:.5rem; }
.dp-attack-list > li { padding:.5rem .55rem; background:#0003; border:1px solid #ffffff18; border-radius:4px; overflow-wrap:anywhere; }
.dp-attack-list > li > strong { font-size:.95rem; white-space:pre-wrap; }
.dp-attack-list dl { display:grid; grid-template-columns:1fr 1fr; gap:.35rem .7rem; margin:.4rem 0; font-size:.85rem; }
.dp-attack-list dl > div:last-child { grid-column:1 / -1; }
.dp-attack-list dt { font-size:.7rem; color:var(--muted); }
.dp-attack-list dd { margin:0; white-space:pre-wrap; }
.dp-attack-list summary,.dp-attacks > details > summary,.dp-companion > details > summary { color:var(--cyan); font-size:.8rem; padding:.3rem 0; }
.dp-attacks > details { margin-top:.5rem; }
.dp-core { font-size:.85rem; }
.dp-core > div { display:flex; justify-content:space-between; padding:.2rem; }
.dp-hotlist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; list-style:none; padding:0; margin:0; }
.dp-hot-slot { position:relative; display:grid; grid-template-columns:1rem minmax(0,1fr); align-items:start; gap:.35rem; padding:.55rem; border:1px solid #00d9ff30; border-radius:4px; background:#080c0e; }
.dp-hot-slot strong { font-size:.88rem; display:block; overflow-wrap:anywhere; white-space:pre-wrap; }
.dp-hot-slot small { display:block; color:var(--muted); font-size:.73rem; margin-top:.2rem; overflow-wrap:anywhere; }
.dp-slot-number { color:var(--cyan); font-size:.75rem; }
.dp-hot-actions { grid-column:2; display:flex; align-items:center; justify-content:space-between; gap:.25rem; margin-top:.2rem; }
.player-dashboard .dp-hot-actions :is(button, a:where(.route-link)) { padding:.3rem .4rem; font-size:.75rem; }
.dp-hot-actions [data-use-hotlist] { border-color:#ffe60060; color:var(--yellow); }
.dp-unassigned { opacity:.6; }
.dp-roster { display:grid; gap:.25rem; max-height:180px; overflow-y:auto; margin-bottom:.6rem; }
.dp-roster :is(button, a:where(.route-link)) { display:flex; text-align:left; justify-content:space-between; gap:.5rem; }
.dp-roster :is(button, a:where(.route-link)) span { overflow-wrap:anywhere; }
.dp-roster :is(button, a:where(.route-link)) b { white-space:nowrap; }
.dp-roster [aria-pressed=true] { border-color:var(--pink); background:#ff40ca12; }
.dp-companion h3 { color:#ffb1e9; overflow-wrap:anywhere; }
.dp-companion > p { font-size:.8rem; margin:.25rem 0 .5rem; }
.dp-pet-health { display:flex; justify-content:space-between; align-items:center; font-size:.85rem; margin:.6rem 0 .4rem; }
.dp-pet-values { display:flex; flex-wrap:wrap; gap:.3rem .65rem; margin:.5rem 0; font-size:.8rem; }
.dp-companion > :is(button, a:where(.route-link)) { margin-top:.6rem; }
.dp-empty { font-size:.85rem; color:var(--muted); padding:.35rem 0; }
.dp-feedback { display:flex; align-items:center; gap:.5rem; border-top:1px solid #ffffff25; padding:.5rem 0; font-size:.85rem; }
.dp-feedback > span { flex:1; }
@media(max-width:1400px) {
 .dp-columns { grid-template-columns:minmax(220px,.8fr) minmax(330px,1.4fr); }
 .dp-companions { grid-column:1 / -1; }
}
@media(max-width:760px) {
 .player-dashboard { gap:.6rem; }
 .player-dashboard :is(button, a:where(.route-link)) { min-height:44px; }
 .dp-world { gap:.35rem .8rem; font-size:.78rem; }
 .dp-world > span:last-child { margin-left:0; flex-basis:100%; }
 .dp-identity { flex-wrap:wrap; gap:.6rem; }
 .dp-identity > div:nth-child(2) { flex:1; }
 .dp-identity > :is(button, a:where(.route-link)) { width:100%; margin:0; }
 .dp-health { padding:.6rem .45rem .3rem; }
 .player-dashboard .health-slot { font-size:.72rem; }
 .dp-health .dp-heading > strong { font-size:1rem; }
 .dp-resource { flex:1 1 100%; }
 .dp-resource > div { justify-content:space-between; }
 .dp-resource input { width:5rem; height:44px; }
 .dp-reference { flex:1 1 40px; padding:.4rem .2rem; }
 .dp-panel-switch { display:flex; gap:.3rem; }
 .dp-panel-switch :is(button, a:where(.route-link)) { flex:1; padding:.3rem; font-size:.8rem; }
 .dp-panel-switch [aria-selected=true] { color:var(--yellow); border-color:var(--yellow); background:#ffe60012; }
 .dp-columns { display:block; }
 .dp-columns > .dp-panel { display:none; }
 .dp-columns[data-panel=hotlist] > .dp-hotlist-panel,.dp-columns[data-panel=attacks] > .dp-attacks,.dp-columns[data-panel=companions] > .dp-companions { display:block; }
 .dp-hotlist { gap:.3rem; }
 .dp-hot-slot { padding:.4rem; grid-template-columns:.8rem minmax(0,1fr); gap:.2rem; }
 .dp-hot-actions { grid-column:1 / -1; flex-wrap:wrap; }
 .dp-hot-actions > small { flex:1 1 100%; }
 .player-dashboard .dp-hot-actions :is(button, a:where(.route-link)) { flex:1; padding:.25rem; }
 .dp-feedback { flex-wrap:wrap; }
 .dp-feedback > span { flex:1 1 100%; }
}

.player-dashboard h3 { text-transform:none; }
.player-dashboard .dp-hot-slot { padding:.4rem; gap:.2rem; }
.player-dashboard .dp-hot-actions { margin-top:0; }
.player-dashboard .dp-hot-actions :is(button, a:where(.route-link)) { min-height:32px; }
.dp-attack-list dl { line-height:1.3; margin:.3rem 0; }
@media(max-width:760px) { .player-dashboard .dp-hot-actions :is(button, a:where(.route-link)) { min-height:44px; } }
@media(min-width:761px) {
 .player-dashboard { gap:.6rem; }
 .dp-world { padding:.35rem .8rem; }
 .dp-identity { padding:.4rem .8rem; }
 .dp-health { padding:.4rem .8rem .2rem; }
 .dp-health-bottom { min-height:28px; }
 .play-rest > summary { padding:.25rem .5rem; }
 .dp-resource { padding:.35rem .65rem; }
 .dp-resource input { min-height:0; }
 .dp-conditions { padding:.2rem .7rem; align-items:center; }
 .dp-conditions h2 { padding-top:0; }
 .dp-conditions > details { padding:.2rem .6rem; }
 .dp-feedback { padding:.3rem 0; }
}
.player-dashboard .pet-health .health-slot { flex:1 0 2rem; min-width:2rem; width:auto; }
