/* MORGOTH vol 2: send-to-TV buttons and dock, on top of the reader's own styles. */
.tvb{font:600 12px/1 system-ui,sans-serif;margin-left:8px;padding:5px 9px;border-radius:999px;border:1px solid #8a6d3b;background:#fff8e8;color:#5b4318;cursor:pointer;vertical-align:middle;white-space:nowrap}
.tvb:hover{background:#f3e2bd}
.tvb.ontv{background:#2f6b3a;border-color:#2f6b3a;color:#fff}
.tvb.ontv::after{content:" · on TV"}
figure.scene-figure figcaption .tvb{margin-left:10px}
.control .tvb{margin-left:10px}
.tvfight{display:inline-flex;gap:6px;align-items:center;margin-left:8px;vertical-align:middle}
.tvfight .tvb{margin-left:0;background:#7a1f1f;border-color:#7a1f1f;color:#fff}
.tvfight .tvb.ontv{background:#2f6b3a;border-color:#2f6b3a}
.tvfight .tvback{display:none;background:#2f6b3a;border-color:#2f6b3a;color:#fff}
.tvfight .tvback.ontv{display:inline-block}
.tvfight .tvback.ontv::after{content:''}
.tvdiff{font:12px system-ui,sans-serif;padding:3px 4px;border-radius:6px}
.tvdock{position:fixed;right:12px;bottom:12px;z-index:50;width:260px;background:#1d1a16;color:#eee6d6;border-radius:12px;box-shadow:0 6px 24px #0006;font:13px/1.35 system-ui,sans-serif;padding:10px}
.tvdock-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.tvdock-head .tvstat{color:#b8ab94;flex:1}
.tvopen{color:#e9c27a;text-decoration:none;font-weight:600}
.tvdot{width:9px;height:9px;border-radius:50%;background:#a33}
.tvdot.half{background:#d9a227}.tvdot.on{background:#3fae5a}
.tvnow{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}
.tvnow img{width:72px;height:44px;object-fit:cover;border-radius:4px;flex:none}
.tvnow-txt{max-height:4.1em;overflow:hidden;color:#d8cdb9}
.tvdock-btns{display:flex;gap:6px;flex-wrap:wrap}
.tvdock-btns button{font:600 12px system-ui,sans-serif;padding:5px 8px;border-radius:6px;border:0;background:#3a342c;color:#eee6d6;cursor:pointer}
.tvdock-btns button:hover{background:#4c4439}
@media (max-width:700px){.tvdock{left:12px;width:auto}}
/* phones: votes, players, gold/days, notes */
.tvb.sent{background:#2f6b3a;border-color:#2f6b3a;color:#fff}
.tvvotes{margin-top:8px;padding:6px 8px;background:#2a251e;border-radius:8px;color:#e8dcc4}
.tvvotes b{display:block;color:#e9c27a;font-size:12px;margin-bottom:2px}
.tvparty{margin-top:8px;border-top:1px solid #3a342c;padding-top:6px}
.tvparty summary{cursor:pointer;font-weight:600;color:#e9c27a}
.tvparty summary span{color:#b8ab94;font-weight:400}
.tvplayers{margin:6px 0}
.tvpl{display:flex;align-items:center;gap:6px;padding:2px 0}
.tvpl b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tvpl .tvbg{color:#b8ab94;font-size:12px}
.tvpl button{border:0;background:none;color:#a99;cursor:pointer;font-size:13px}
.tvempty{color:#b8ab94;font-size:12px}
.tvmoney{display:flex;gap:8px;margin:6px 0}
.tvmoney label{flex:1;font-size:12px;color:#b8ab94}
.tvmoney input{width:100%;box-sizing:border-box;margin-top:2px;padding:4px 6px;border-radius:6px;border:1px solid #4c4439;background:#2a251e;color:#eee6d6;font:14px system-ui,sans-serif}
.tvnote{display:flex;flex-direction:column;gap:5px}
.tvnote select,.tvnote textarea{width:100%;box-sizing:border-box;padding:4px 6px;border-radius:6px;border:1px solid #4c4439;background:#2a251e;color:#eee6d6;font:13px system-ui,sans-serif}
.tvnote button{align-self:flex-end;font:600 12px system-ui,sans-serif;padding:5px 10px;border-radius:6px;border:0;background:#8a6d3b;color:#fff;cursor:pointer}
.tvdock{max-height:calc(100vh - 24px);overflow:auto}
.tvb.money.gold{background:#3a2a0c;border-color:#a8741a;color:#ffe4a0}
.tvb.money.days{background:#16203a;border-color:#3b4d7a;color:#dbe6ff}
.tvb.money.sent{background:#2f6b3a;border-color:#2f6b3a;color:#fff}
.tvb.money.sent::after{content:" ✓"}
.tvmoney-opt{display:inline-flex;gap:4px;margin-left:4px}
.tvicon{width:22px;height:22px;border-radius:50%;background-size:cover;background-position:center 18%;border:1px solid #e9c27a;flex:none}
.tvftools{margin-top:8px;padding:6px 8px;background:#3a1d18;border:1px solid #7a2f28;border-radius:8px}
.tvftools b{display:block;color:#ffb39a;font-size:12px;margin-bottom:4px}
.tvfbtns{display:flex;flex-wrap:wrap;gap:4px}
.tvfbtns button{font:600 11px system-ui,sans-serif;padding:4px 7px;border-radius:6px;border:1px solid #6b3a30;background:#2a1714;color:#eee6d6;cursor:pointer}
.tvfbtns button.on{background:#8a6d3b;border-color:#e9c27a;color:#fff}
.tvfvol{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:12px;color:#d8c4b4}
.tvfvol input{flex:1}
/* playtest bar at the top of each act */
.tvplay{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 18px;padding:10px 14px;border:1px dashed #8a6d3b;border-radius:10px;background:#fbf4e4}
.tvplay>span{font:700 12px system-ui,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#8a6d3b;margin-right:4px}
.tvplay .tvb{margin-left:0;font-size:13px;padding:7px 12px}
.tvstartnow{margin-top:6px;font:600 11px system-ui,sans-serif;padding:4px 8px;border-radius:6px;border:1px solid #e9c27a;background:#8a6d3b;color:#fff;cursor:pointer}
.tvfwait{font-size:12px;color:#d8c4b4}
/* choice colours: the act where the choice behind a part was made. Hues the reader itself never uses (its own: slate blue
   images, sage screen text, gold/beige "only if", dusty red fights): Act 1 violet, Act 2 turquoise, Act 3 magenta. */
.actc{border-left:6px solid var(--actc)!important;background-color:color-mix(in srgb,var(--actc) 13%,#fffdf8)!important}
.actc-1{--actc:#6b3fd8}.actc-2{--actc:#00a19b}.actc-3{--actc:#c8177a}
.actc>.branch-heading{background:color-mix(in srgb,var(--actc) 24%,#fffdf8)!important;border-bottom-color:color-mix(in srgb,var(--actc) 45%,transparent)!important}
.actc>.branch-heading .branch-kind{color:var(--actc)!important}

.economy-action{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0;font:14px/1.5 system-ui}.economy-warning{color:#a22;font-weight:700}.economy-done{color:#276336}.economy-history{padding:12px;max-height:350px;overflow:auto}.economy-history div>div{padding:8px 0;border-bottom:1px solid #aaa}.economy-pending{color:#666}
.tvtravel{font:12px/1.5 system-ui;color:#ddd0b7;padding:0 2px 7px}.arrival-status{padding:16px;margin:16px 0;border:2px solid #54734f;background:#edf3e8;font-weight:700}.epilogue-next{display:inline-block;padding:12px 18px;border:1px solid #8a6d3b;border-radius:6px}

/* Reserve a side column so the shared counters never cover the script. */
.reader-layout{display:grid;grid-template-columns:minmax(0,1040px) 280px;gap:24px;max-width:1400px;margin:35px auto;padding:0 24px}
.reader-layout>main{min-width:0;max-width:none;margin:0;padding:0 0 80px}
.reader-tools{position:sticky;top:calc(var(--reader-nav-height,74px) + 16px);align-self:start;max-height:calc(100vh - var(--reader-nav-height,74px) - 32px);overflow:auto;display:flex;flex-direction:column;gap:16px}
.reader-tools .tvdock{position:static;width:auto;max-height:none;overflow:visible;box-sizing:border-box;box-shadow:none}
.party-resources{display:block;background:#fffdf8;border:1px solid #d7ccba;border-radius:12px;padding:16px;color:#30291f;font:14px/1.5 system-ui,sans-serif}
.party-resources h2{margin:0;border:0;padding:0;font:700 20px/1.3 system-ui,sans-serif}
.party-resources p{margin:4px 0 12px;color:#756750;font-size:12px}
.party-resources .tvmoney{gap:12px;margin:0 0 12px}
.party-resources .tvmoney label{min-width:0;color:#514632;font-size:13px;font-weight:600}
.party-resources .tvmoney input{background:white;border-color:#bbae99;color:#30291f;padding:8px;font:700 24px/1.3 system-ui,sans-serif}
.party-resources .tvtravel{color:#514632;padding:0;font-size:13px}
@media(max-width:900px){
  .reader-layout{display:flex;flex-direction:column;margin:24px auto;padding:0 16px;gap:24px}
  .reader-tools{position:static;order:-1;max-height:none;overflow:visible;align-self:stretch;display:grid;grid-template-columns:1fr 1fr;align-items:start}
}
@media(max-width:540px){.reader-tools{grid-template-columns:1fr}.party-resources .tvmoney input{font-size:22px}}
@media print{.reader-tools{display:none}.reader-layout{display:block;margin:0;padding:0}}
.deadline-reminder{margin-top:10px;padding-top:10px;border-top:1px solid #d7ccba;font:600 12px/1.5 system-ui;color:#8b3025}

/* The presenter follows story cues, never the reader's hidden alternatives. */
.presentation-controls{display:block;padding:16px;border:1px solid #b49a60;border-radius:12px;background:#24231d;color:#fff6dc;font:14px/1.45 system-ui,sans-serif}
.presentation-heading{font-size:11px;font-weight:700;letter-spacing:.16em;color:#d8c89c;margin-bottom:10px}
.presentation-next{display:block;width:100%;min-height:72px;padding:14px 20px;border:1px solid #f2d99c;border-radius:9px;background:#eccb82;color:#241c0b;font:750 28px/1.2 system-ui;cursor:pointer}
.presentation-next:hover:not(:disabled){background:#ffe3a6}.presentation-next:focus-visible{outline:3px solid #fff;outline-offset:3px}
.presentation-next:disabled{cursor:default;opacity:.48}
.presentation-status{margin:12px 0;min-height:2.8em;color:#f0e5ca;font-size:13px}
.presentation-options{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.presentation-options label{display:flex;align-items:center;gap:5px;white-space:nowrap}.presentation-options input{accent-color:#eccb82}
.presentation-find{border:0;background:transparent;color:#eccb82;text-decoration:underline;cursor:pointer;font:inherit;padding:4px 0}.presentation-find:disabled{opacity:.4;cursor:default}
.presentation-controls small{display:block;margin-top:10px;color:#bbae92;font-size:11px}
.tv-current{outline:3px solid #348552!important;outline-offset:5px;box-shadow:0 0 0 9px #54b27620!important;scroll-margin-block:150px}
.line.tv-current,.control.tv-current{background:#edf7ee!important}
@media(max-width:900px){.presentation-controls{grid-column:1/-1}.presentation-next{min-height:64px}}
@media(max-width:540px){.presentation-controls{position:fixed;bottom:10px;left:10px;right:10px;z-index:70;padding:10px 12px;box-shadow:0 4px 30px #0006}.presentation-heading,.presentation-controls small{display:none}.presentation-status{min-height:0;margin:6px 0;font-size:12px}.presentation-next{min-height:52px;font-size:24px;padding:8px}.reader-layout>main{padding-bottom:220px}}
@media print{.tv-current{outline:0!important;box-shadow:none!important}}
.tvnewgame{margin-top:8px;font:600 12px system-ui,sans-serif;padding:5px 8px;border-radius:6px;border:1px solid #7a3a2c;background:transparent;color:#e7a08e;cursor:pointer}.tvnewgame:hover{background:#3a1d17}
.tvgame{display:flex;align-items:center;gap:6px;margin:4px 0 6px;font:600 12px system-ui,sans-serif;color:#cfc3ad}.tvgame select{font:600 12px system-ui,sans-serif;padding:3px 6px;border-radius:6px;background:#3a342c;color:#eee6d6;border:0}.tvdock.testgame{box-shadow:0 0 0 3px #b23a2a}.tvdock.testgame .tvgame select{background:#b23a2a;color:#fff}
