/* Pocket Clocktower v0.3 responsive layout, ability library and player-safe cues */
.app{width:100%;max-width:820px}
.nav .wrap{max-width:860px}
.nav button{min-width:0;font-size:11px;padding:11px 2px}
.ability-controls{display:grid;grid-template-columns:minmax(0,1fr) 145px;gap:9px;margin-top:12px}
.ability-controls input[type=search]{width:100%;min-width:0;border-radius:10px;background:#171815;color:#f9eaca;border:1px solid #645848;padding:10px 12px;min-height:44px;font:inherit}
.ability-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ability-card{padding:13px;border:1px solid #79634a;border-radius:12px;background:linear-gradient(155deg,#3b3429,#26241f)}
.ability-card[hidden]{display:none}
.ability-card h3{font-family:Georgia,serif;font-weight:600;color:#fff0d8;font-size:18px;margin:0}
.ability-card .headrow{align-items:start;gap:5px}.ability-card p{font-size:13px;line-height:1.48;margin:10px 0 0;color:#efe0c8}
.ability-meta{font-size:11px;color:#d0b993;margin-top:8px}
.inplay-badge{font-size:10px;border:1px solid #708e70;border-radius:10px;background:#314535;padding:3px 6px;white-space:nowrap;color:#c6e7ba}
.freeform-check{display:flex;align-items:flex-start;gap:10px;border:1px solid #816748;padding:11px;border-radius:11px;background:#28281f;color:#f8ddad;margin:11px 0;font-size:14px}
.freeform-check input{width:20px;height:20px;accent-color:#eac17b;flex-shrink:0}
.freeform-check strong{display:block;font-size:14px}.freeform-check small{display:block;color:#c8baa2;font-size:11px;margin-top:2px}
.count-strip{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0 14px}.count-strip span{font-size:10px;border:1px solid #7b674a;border-radius:12px;padding:5px 8px;color:#f3dbb7}
.custom-setup .inline-input{margin:8px 0 13px}.custom-setup .inline-input input{flex:1;min-width:0}.custom-setup .inline-input button{white-space:nowrap}
.scenario-list{display:grid;gap:8px}.scenario-row{display:flex;align-items:center;gap:7px;padding:9px;border:1px solid #5e503a;border-radius:9px;background:#28241d}.scenario-row>div{flex:1;min-width:0}.scenario-row strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scenario-row small{color:#d5be94;display:block;font-size:11px}.scenario-row button{min-width:34px}
.grimoire-layout{display:block}.grimoire-desk{display:none}
.desk-card{border:1px solid #705a3d;border-radius:14px;background:linear-gradient(130deg,#2f291e,#1d1d1b);padding:15px;margin-bottom:13px}
.desk-card h2{font-family:Georgia,serif;font-weight:500;font-size:25px;margin:5px 0 0;color:#f7e6c7}
.desk-card h3{font-family:Georgia,serif;font-size:19px;font-weight:500;margin:0 0 8px}
.desk-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.desk-next{border-left:3px solid #d6b57f;background:#383025;border-radius:7px;margin-top:12px;padding:9px 12px}
.desk-next small,.desk-next strong{display:block}.desk-next small{color:#cebd9f}.desk-next strong{font-size:15px;margin-top:5px}.desk-next p{font-size:12px;line-height:1.4;color:#e4d6b7}
.desk-player{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:9px;margin:4px 0;color:#f1e3c6;background:#3a342c;border:1px solid #6e604d;border-radius:9px;text-align:left}.desk-player span{color:#d3bba0;font-size:11px;margin-top:3px}
.message-presets{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.message-presets .mini-btn{min-width:43px}
.mobile-message{background:#26231f;border:1px solid #796348;border-radius:12px;padding:13px;margin:12px 0}.mobile-message summary{font-weight:700;color:#f4d59d;padding:5px;cursor:pointer}
.mobile-message textarea,.desk-card textarea{min-height:67px;margin:9px 0}
.player-message{z-index:45;background:#161712}.player-message-content{text-align:center;width:min(100%,720px);padding:35px 20px}.player-message-text{font-size:clamp(36px,8vw,90px);font-family:Georgia,serif;line-height:1.15;word-wrap:break-word;white-space:pre-line;margin:50px 0;color:#f3dfb7}.player-message-content button{max-width:350px;width:100%;min-height:48px}
.cue-intro{border:1px solid #88714e;background:#29271f;padding:13px;border-radius:12px;margin-bottom:12px}.cue-intro strong{font-size:17px}.cue-intro p{font-size:12px;color:#c6bba6;line-height:1.4}
.pocket-toast{position:fixed;z-index:50;left:50%;bottom:85px;transform:translateX(-50%);max-width:min(92vw,470px);border:1px solid #c59e61;border-radius:11px;background:#3b3020;color:#fff0d8;box-shadow:0 12px 40px #0009;padding:13px 18px;font-size:13px;text-align:center;pointer-events:none}
@media(max-width:560px){.ability-grid{grid-template-columns:1fr}.ability-controls{grid-template-columns:1fr 125px;gap:6px}.ability-card{padding:12px}.grimoire-board{min-height:360px}.nav button{font-size:10px}}
@media(min-width:920px){
  .app{max-width:1450px;padding:22px 26px 90px}
  .nav .wrap{max-width:1180px}
  .grimoire-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,335px);gap:20px;align-items:start}
  .grimoire-desk{display:block;position:sticky;top:16px}
  .grimoire-board{height:clamp(540px,64vw,810px);min-height:540px;max-height:810px}
  .board-column{min-width:0}
  .mobile-message{display:none}
  .ability-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .top{padding-bottom:21px}.brand{font-size:31px}
}
@media(min-width:1280px){.ability-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
