:root{color:#1d2320;background:#f4f1e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}select{border:1px solid #9ba89a;border-radius:6px;min-height:34px;padding:6px 8px}button{align-items:center;border:1px solid #9ba89a;border-radius:6px;background:#fff;color:#1d2320;cursor:pointer;display:inline-flex;gap:7px;min-height:36px;padding:7px 11px}button:disabled{cursor:not-allowed;opacity:.55}input{border:1px solid #9ba89a;border-radius:6px;min-height:36px;min-width:220px;padding:7px 10px}.app-shell{display:grid;gap:14px;min-height:100vh;padding:14px}.topbar,.setup-band,.panel{background:#fffef9;border:1px solid #d1d7cc;border-radius:8px}.topbar{align-items:center;display:flex;justify-content:space-between;min-height:74px;padding:12px 14px}.topbar h1{font-size:1.35rem;line-height:1.1;margin:0 0 5px}.topbar span,.panel-title span,.party-member span,.companion-card span,.rationale{color:#667064;font-size:.88rem}.toolbar,.field-row,.choice-list,.check-list{display:flex;flex-wrap:wrap;gap:8px}.setup-band{display:grid;gap:12px;padding:12px 14px}.field-row{align-items:center}.field-row label{color:#4c5a52;font-size:.84rem;font-weight:700;text-transform:uppercase}.field-row input{flex:1}.scene-guidance{display:grid;gap:8px}.scene-guidance-actions{display:flex;flex-wrap:wrap;gap:8px}.ask-more summary{color:#4c5a52;cursor:pointer;font-size:.84rem;font-weight:700;margin-bottom:8px}.gm-composer{align-items:stretch;display:grid;gap:8px;grid-template-columns:auto minmax(240px,1fr) auto}.gm-composer label{align-self:center;color:#4c5a52;font-size:.84rem;font-weight:700;text-transform:uppercase}.gm-composer textarea{border:1px solid #9ba89a;border-radius:6px;font:inherit;min-height:42px;min-width:0;padding:8px 10px;resize:vertical}.gm-response{background:#eef4ef;border:1px solid #cfd9cf;border-radius:8px;color:#26312b;line-height:1.4;padding:10px 12px}.setup-hints{color:#4c5a52;display:flex;flex-wrap:wrap;gap:8px}.setup-hints span{background:#f6f4ec;border:1px solid #dad3bd;border-radius:8px;font-size:.84rem;line-height:1.3;padding:7px 9px}.sheet-window{background:#fffef9;border:1px solid #9ba89a;border-radius:8px;box-shadow:0 18px 50px #1f252347;left:50%;max-height:min(82vh,780px);max-width:980px;overflow:auto;padding:14px;position:fixed;top:50%;transform:translate(-50%,-50%);width:min(92vw,980px);z-index:10}.sheet-window-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.sheet-import-row{margin-bottom:12px}.story-flag-list{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.stacked-field{color:#4c5a52;display:grid;font-size:.84rem;font-weight:700;gap:6px;text-transform:uppercase}.stacked-field textarea{border:1px solid #9ba89a;border-radius:6px;font:inherit;min-height:110px;padding:8px 10px;resize:vertical;text-transform:none}.pc-editor{display:grid;gap:8px;grid-template-columns:repeat(9,minmax(0,1fr))}.pc-editor label{color:#4c5a52;display:grid;font-size:.78rem;font-weight:700;gap:4px;text-transform:uppercase}.pc-editor input,.pc-editor select,.pc-editor textarea{min-width:0;width:100%}.pc-editor textarea{min-height:48px;resize:vertical}.pc-editor .wide-field{grid-column:span 4}.pc-editor .editor-button{align-self:end;min-height:38px}.party-strip{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.party-member{border-left:4px solid #3f7d58;display:grid;gap:3px;min-height:70px;padding:8px 10px}.party-member.pc{border-color:#315c8a}.party-member span:last-child{align-items:center;display:inline-flex;gap:5px}.workspace-grid{display:grid;gap:14px;grid-template-columns:minmax(420px,1.35fr) minmax(300px,.65fr)}.panel{min-width:0;padding:14px}.panel-title{align-items:center;display:flex;gap:8px;margin-bottom:12px}.panel-title h2{flex:1;font-size:1rem;margin:0}.reference-panel{min-height:500px}.reference-text{background:#f7f7f1;border:1px solid #d8ddd3;border-radius:8px;line-height:1.55;max-height:360px;overflow:auto;padding:14px;white-space:normal}.scene-next{background:#eef4ef;border:1px solid #cfd9cf;border-radius:8px;margin-top:10px;padding:10px 12px}.scene-next strong{display:block;margin-bottom:6px}.scene-next ul{display:grid;gap:5px;margin:0;padding-left:20px}.scene-next li{color:#374139;font-size:.9rem;line-height:1.35}.check-list,.choice-list{margin-top:12px}.quiet-button{background:#eef4ef}.check-chip{align-items:center;background:#eef4ef;border:1px solid #cfd9cf;border-radius:8px;display:flex;flex-wrap:wrap;gap:6px;padding:6px}.check-chip span{align-items:center;display:inline-flex;font-size:.86rem;font-weight:700;gap:4px}.check-chip button{min-height:30px;padding:5px 8px}.party-chooser-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.companion-list{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.companion-card{align-items:start;display:grid;gap:3px;justify-items:start;min-height:86px;text-align:left;width:100%}.companion-card.selected{background:#eef6f0;border-color:#3f7d58}.companion-card em{color:#315c8a;font-size:.78rem;font-style:normal;font-weight:700;text-transform:uppercase}.vtt-panel{min-height:480px}.basic-battle-panel{min-height:360px}.basic-battle-note{background:#f6f4ec;border:1px solid #dad3bd;border-radius:8px;color:#4c4d3f;font-size:.86rem;line-height:1.35;margin-bottom:10px;padding:8px}.basic-lines{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:10px}.basic-lines label{color:#4c5a52;display:grid;font-size:.82rem;font-weight:700;gap:4px;text-transform:uppercase}.combat-roster{display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:10px}.combat-controls{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}.grid-action-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.grid-action-bar button{min-height:32px;padding:5px 8px}.combat-controls label{color:#4c5a52;display:grid;font-size:.82rem;font-weight:700;gap:4px;text-transform:uppercase}.setup-notice,.vtt-hints{border:1px solid #d1d7cc;border-radius:8px;color:#374139;font-size:.84rem;margin-bottom:10px;padding:8px}.setup-notice{background:#f2f7ea;font-weight:700}.vtt-hints{display:flex;flex-wrap:wrap;gap:8px}.vtt-hints span{background:#eef2eb;border-radius:999px;padding:4px 8px}.death-save-controls{border:1px solid #d9c7bd;border-radius:8px;display:grid;gap:6px;margin-bottom:10px;padding:8px}.death-save-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.death-save-row span{color:#4c4d3f;flex:1;font-size:.84rem;min-width:180px}.death-save-row button{min-height:30px;padding:5px 8px}.spell-effect{align-self:end;color:#4c5a52;font-size:.84rem;line-height:1.3}.combatant{border-left:4px solid #3f7d58;display:grid;gap:2px;min-height:48px;padding:6px 8px}.combatant.pc{border-color:#315c8a}.combatant.enemy{border-color:#a63f3f}.combatant.active{background:#f2f7ea;outline:2px solid #8aa05c}.combatant span{color:#667064;font-size:.8rem}.combatant em{color:#8a3f3f;font-size:.76rem;font-style:normal;font-weight:700;text-transform:uppercase}.battle-brief{background:#f6f4ec;border:1px solid #dad3bd;border-radius:8px;display:grid;gap:5px;margin-bottom:10px;padding:8px}.battle-brief span,.battle-brief em{color:#4c4d3f;font-size:.82rem;font-style:normal;line-height:1.3}.log-panel ol{display:grid;gap:7px;margin:0;padding-left:22px}.log-panel h3{font-size:.86rem;margin:12px 0 7px}.guidance-panel ul{display:grid;gap:7px;margin:0;padding-left:20px}.proposal-list{display:flex;flex-wrap:wrap;gap:8px}.log-panel li,.guidance-panel li{color:#374139;font-size:.9rem;line-height:1.35}.stage-wrap{border:1px solid #d1d7cc;border-radius:8px;max-width:100%;overflow:auto;position:relative}.stage-wrap .konvajs-content{position:relative;z-index:1}.battlemap-image{top:0;right:0;bottom:0;left:0;object-fit:contain;opacity:.72;position:absolute}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.topbar,.field-row{align-items:stretch;flex-direction:column}.gm-composer{grid-template-columns:1fr}.pc-editor{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-grid,.party-strip,.combat-roster,.combat-controls{grid-template-columns:1fr}}
