:root{color-scheme:dark;--bg:#0e1520;--panel:#172130;--card:#202d3e;--line:#344154;--text:#edf2f7;--muted:#9aabbe;--gold:#e8bd71;--blue:#5cafe0;--red:#ce6262;--radius:13px;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--gold)}.shell{display:grid;grid-template-columns:215px minmax(0,1fr);min-height:100vh}.sidebar{background:#111a28;border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;gap:8px}.brand{font-weight:800;font-size:22px;letter-spacing:.02em;color:var(--gold);padding:0 11px 21px}.subbrand{color:var(--muted);font-weight:400;font-size:11px;display:block;margin-top:4px;text-transform:uppercase;letter-spacing:.16em}.nav{width:100%;text-align:left;background:transparent;color:var(--muted);border:1px solid transparent;border-radius:9px;padding:13px 12px}.nav:hover,.nav.active{color:var(--text);background:#233147}.nav.active{border-color:#475773}.sidefoot{margin-top:auto;border-top:1px solid var(--line);padding:17px 10px;color:var(--muted);font-size:12px;line-height:1.6}.main{min-width:0;padding:23px clamp(14px,3vw,44px)}.top{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:20px;flex-wrap:wrap}.top h1{font-size:26px;margin:0 0 5px;font-weight:760}.top p{margin:0;color:var(--muted);font-size:13px}.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.layout{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:17px;min-width:0}.panel h2{font-size:16px;margin:0 0 13px}.panel h3{font-size:13px;margin:16px 0 10px;color:var(--gold)}.label{font-size:12px;color:var(--muted);display:block;margin:11px 0 6px}.input,select,textarea{width:100%;background:#101927;border:1px solid #435168;color:var(--text);border-radius:8px;padding:9px 10px;min-height:39px}textarea{resize:vertical}.input:focus,select:focus{outline:2px solid #619ccd}.btn{background:#28394e;color:var(--text);border:1px solid #445b74;border-radius:9px;padding:9px 12px;min-height:38px}.btn:hover{background:#35506a}.btn.primary{background:#b88946;color:#111820;border-color:#d5ac67;font-weight:700}.btn.danger{color:#ffd1d1;border-color:#924f5b}.btn.active{outline:2px solid var(--gold)}.btn:disabled{opacity:.45;cursor:not-allowed}.small{font-size:12px}.muted{color:var(--muted)}.badge{background:#30445d;color:#cfe6ff;border-radius:30px;padding:5px 9px;font-size:11px;display:inline-block}.toolbar{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}.board-scroll{overflow:auto;max-height:69vh;background:#09121d;border-radius:10px;padding:18px;box-shadow:inset 0 0 24px #050b14}.board{position:relative;box-shadow:0 12px 32px #0008;background-color:#273644;background-image:linear-gradient(45deg,#253443 25%,transparent 25%),linear-gradient(-45deg,#253443 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#253443 75%),linear-gradient(-45deg,transparent 75%,#253443 75%);background-size:80px 80px;background-position:0 0,0 40px,40px -40px,-40px 0}.board:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,#e2d8bf23 1px,transparent 1px),linear-gradient(to bottom,#e2d8bf23 1px,transparent 1px);background-size:var(--tile) var(--tile)}.cells{display:grid;position:absolute;inset:0;grid-template-columns:repeat(var(--cols),var(--tile));grid-template-rows:repeat(var(--rows),var(--tile))}.cell{border:0;background:transparent;padding:0;border-radius:0;min-width:0;min-height:0;position:relative}.cell.wall{background:#5b6875;border:3px solid #a9b1b2;box-shadow:inset 0 0 10px #141922}.cell.door{background:repeating-linear-gradient(90deg,#98633c,#98633c 7px,#be945d 8px,#be945d 12px);border:2px solid #e2b877}.cell.water{background:#296a89cc}.cell.difficult{background:repeating-linear-gradient(45deg,#477b54cc 0,#477b54cc 7px,#345941aa 7px,#345941aa 14px)}.cell.fogged:before{content:"";position:absolute;inset:0;background:#050913ed;z-index:3}.token{position:absolute;z-index:5;border-radius:50%;border:2px solid #f9e5c1;box-shadow:0 3px 8px #000b;background:#a44d55;color:white;font-size:11px;font-weight:700;display:flex;justify-content:center;align-items:center;user-select:none;overflow:hidden;white-space:nowrap}.token.selected{outline:3px solid #6dcfff;outline-offset:1px}.stack{display:grid;gap:11px}.two{display:grid;grid-template-columns:1fr 1fr;gap:11px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.stat{background:#101b2a;border:1px solid #35455a;border-radius:10px;padding:13px}.stat strong{display:block;font-size:20px;color:var(--gold)}.stat span{color:var(--muted);font-size:12px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.card{background:#1b2838;border:1px solid var(--line);border-radius:11px;padding:15px}.card h3{margin:0 0 7px;font-size:15px}.card p{font-size:12px;color:var(--muted);margin:5px 0}.card .row{margin-top:11px}.list{display:grid;gap:8px}.listitem{border:1px solid #37475b;background:#192739;border-radius:8px;padding:9px 11px}.listitem.selected{border-color:var(--gold)}.notice{padding:12px 14px;background:#293242;border-left:3px solid var(--gold);color:#dbe3ed;border-radius:6px;font-size:12px;line-height:1.55}.log{max-height:310px;overflow:auto;display:grid;gap:7px}.log-entry{border-bottom:1px solid #384659;padding:7px 0;font-size:12px;overflow-wrap:anywhere}.color-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.character-head{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.avatar{width:64px;height:64px;border-radius:15px;background:linear-gradient(145deg,#b99555,#6d83a4);display:grid;place-items:center;font-size:27px;color:#101c28;font-weight:850}.divider{height:1px;background:var(--line);margin:15px 0}.hidden{display:none!important}.loading{padding:30px;color:var(--gold)}.wrap{overflow-wrap:anywhere}.file-label{position:relative;display:inline-flex;align-items:center}.file-label input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.footer-note{font-size:11px;color:var(--muted);line-height:1.6;margin-top:24px}.pill{background:#1b2b3c;border:1px solid #35475b;border-radius:20px;padding:6px 10px;font-size:11px}.scrollbox{max-height:370px;overflow:auto}.table-row{display:grid;grid-template-columns:1fr auto;gap:6px;border-bottom:1px solid #34445a;padding:9px 0;align-items:center}@media(max-width:1000px){.layout{grid-template-columns:1fr}.sidebar{flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px;padding:12px}.brand{font-size:17px;padding:0 15px 0 0}.subbrand,.sidefoot{display:none}.nav{width:auto;padding:9px;font-size:12px}.shell{display:block}.main{padding:15px}}@media(max-width:550px){.top h1{font-size:22px}.two,.three{grid-template-columns:1fr}.panel{padding:12px}.btn{padding:8px}.board-scroll{padding:9px}}
/* Multi-scene workspace and guided character progression */
.scene-select{width:175px;max-width:100%;min-width:130px}
.check-line{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.5;cursor:pointer}
.check-line input{accent-color:#e8bd71;width:16px;height:16px}
.slot-list{display:grid;gap:7px;max-height:410px;overflow:auto;padding-right:4px}
.slot-row{display:flex;align-items:center;gap:8px;background:#101b2a;border:1px solid #35455a;border-radius:9px;padding:9px}
.slot-row .pill{flex:0 0 auto}
.slot-details{min-width:0;flex:1;display:grid;gap:2px;overflow-wrap:anywhere}
.slot-details strong{font-size:12px}
.slot-row .btn{flex:0 0 auto}
@media(max-width:550px){.slot-row{flex-wrap:wrap}.scene-select{width:100%}}

/* Encounter tracker */
.combat-track{display:grid;gap:6px;margin-top:10px;max-height:250px;overflow:auto}
.combat-entry{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 10px;border-radius:9px;background:#101b2a;border:1px solid #34455a;color:var(--text);text-align:left;font-size:12px}
.combat-entry.current{border-color:#efc47c;background:#403727;box-shadow:inset 3px 0 #efc47c}
.combat-roll{font-weight:800;color:var(--gold);font-size:16px}
.token.active-turn{box-shadow:0 0 0 4px #e8bd7190,0 2px 14px #e8bd71a8}

/* Guided ability generation */
.boost-panel{margin-top:16px;padding:14px;background:#111f2f;border:1px solid #41556c;border-radius:11px}
.boost-panel h3{margin-top:0}
.boost-row{display:grid;grid-template-columns:minmax(95px,130px) minmax(0,1fr);gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #35455a}
.boost-row strong{font-size:12px}
.boost-picks{display:flex;gap:8px;flex-wrap:wrap}
.boost-picks select{width:78px;min-width:70px;flex:0 0 auto}
.boost-panel .btn{margin-top:13px}
@media(max-width:550px){.boost-row{grid-template-columns:1fr}.boost-picks select{width:69px}}
