:root{--bg:#0d1017;--panel:#181d29;--panel2:#1e2531;--line:#383f50;--gold:#e3bd7d;--text:#f4eede;--muted:#aab0c0;--ok:#69c7a2;--red:#e88787}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px system-ui,Arial}button,input,textarea,select{font:inherit}button{cursor:pointer}h1,h2,h3{font-family:Georgia,serif;margin:0 0 12px}p{line-height:1.55;color:var(--muted)}.app{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{height:100vh;position:sticky;top:0;background:#131723;border-right:1px solid var(--line);padding:21px 12px;overflow:auto}.brand{padding:5px 11px 28px;color:var(--gold);font:26px Georgia,serif}.brand small{display:block;font:10px system-ui;letter-spacing:3px;color:#aaaebc;margin-top:6px}.sidebar nav{display:grid;gap:4px}.sidebar button{border:0;text-align:left;background:transparent;color:#b9c0ce;padding:13px 15px;border-radius:8px}.sidebar button:hover,.sidebar button.active{background:#2b2c37;color:#ffe0ac}.sidebar-foot{padding:25px 9px;color:#888b9c;font-size:11px}.main-shell{min-width:0}header{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);padding:20px 28px}header h1{font-size:23px;margin-bottom:2px}.head-right{display:flex;align-items:center;gap:12px}.status{padding:5px 10px;border-radius:30px;border:1px solid #37665a;background:#194638;color:#b8efcb;font-size:12px;white-space:nowrap}.tiny{font-size:12px;color:var(--muted)}main{padding:26px;max-width:1450px;margin:0 auto}.hero{background:linear-gradient(120deg,#342c28,#141e2c);border:1px solid #6c5b41;border-radius:15px;padding:28px;margin-bottom:18px}.hero h2{font-size:31px;color:var(--gold)}.hero p{max-width:720px}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:21px;min-width:0}.card h3{color:#ead2a9;font-size:18px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.stack{display:grid;gap:14px}.wide{grid-column:1/-1}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.primary,.button{background:#bc9558;border:1px solid #d5ad68;color:#1b170f;font-weight:700;border-radius:9px;padding:10px 15px}.button{background:#292f3b;border-color:#505666;color:#f0e8df}.button.danger{background:#3b262c;color:#ffb4b4;border-color:#7b4048}.button.slim{padding:7px 10px;font-size:12px}.primary:hover,.button:hover{filter:brightness(1.12)}button:disabled{opacity:.5;cursor:wait}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;min-width:0}.field label{font-size:12px;text-transform:uppercase;color:#b8b8c3;letter-spacing:.6px}.field input,.field textarea,.field select,.message-input{width:100%;background:#10141e;color:var(--text);border:1px solid #414759;border-radius:8px;padding:10px;outline:none}.field textarea{resize:vertical;min-height:75px}.field input:focus,.field textarea:focus,.field select:focus,.message-input:focus{border-color:var(--gold)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.stat{border:1px solid #3a4253;background:#222937;border-radius:9px;text-align:center;padding:12px 6px}.stat strong{display:block;font-size:24px;color:#f0ce99}.stat small{font-size:11px;color:var(--muted)}.ability{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.notice{border:1px solid #6d5d40;background:#2d281e;padding:13px;color:#f2dfbf;border-radius:9px;font-size:13px;margin-bottom:15px}.list{display:grid;gap:10px}.item{padding:14px;border:1px solid var(--line);background:var(--panel2);border-radius:11px;cursor:pointer}.item:hover{border-color:#be9c61}.item strong{display:block;color:#f6d5a2;margin-bottom:5px}.item small{color:var(--muted)}.empty{border:1px dashed #535463;border-radius:14px;padding:36px 18px;text-align:center;color:var(--muted)}.empty h2{color:var(--gold)}.story{min-height:350px;height:calc(100vh - 335px);overflow:auto;border:1px solid var(--line);border-radius:12px;background:radial-gradient(circle at top,#252633,#10141c 70%);padding:24px}.bubble{border-left:3px solid #ba965f;background:#282830;border-radius:0 10px 10px 0;padding:14px 17px;margin:0 0 13px;white-space:pre-wrap;line-height:1.65;overflow-wrap:anywhere}.bubble.player{border-color:#62b9b3;background:#1d3135}.bubble.roll{border-color:#a89dd4;background:#30293d}.bubble.combat{border-color:#d27979;background:#362b31}.bubble.note{border-color:#74bf9a;background:#293630}.bubble small{display:block;color:#e0c28c;letter-spacing:1px;font-size:11px;margin-bottom:5px}.action{display:flex;gap:10px;margin-top:13px}.action textarea{flex:1;min-height:66px;resize:vertical}.suggest{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.suggest button{padding:7px 10px;border-radius:30px;color:#ebdfd2;background:#2c2d3c;border:1px solid #505165;font-size:12px}.tabs{display:flex;flex-wrap:wrap;gap:7px}.tabs button{background:#272d39;color:var(--text);border:1px solid var(--line);padding:7px 10px;border-radius:8px}.divider{height:1px;background:var(--line);margin:18px 0}.overlay{position:fixed;inset:0;background:#080a0df0;z-index:10;display:grid;place-items:center;padding:18px}.login{width:100%;max-width:450px;padding:32px}.login .crest{font-size:50px}.login h1{font-size:37px;color:var(--gold)}.hide{display:none!important}.toast{position:fixed;bottom:18px;right:18px;max-width:420px;z-index:30;padding:15px 20px;border-radius:10px;background:#2a4b41;border:1px solid #64917b;box-shadow:0 8px 25px #0008}.error{color:var(--red)}.loading{padding:30px;text-align:center;color:var(--muted)}.bar{height:9px;border-radius:10px;background:#383d47;overflow:hidden}.bar i{display:block;height:100%;background:#b98178}.checkline{display:block;margin:12px 0;color:#d8d3d3}.checkline input{accent-color:#cba66e}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;border-bottom:1px solid var(--line);padding:10px}th{color:#ead0ab}@media(max-width:900px){.app{display:block}.sidebar{display:flex;align-items:center;height:auto;overflow:auto;padding:8px;z-index:3;border-bottom:1px solid var(--line)}.brand{font-size:17px;white-space:nowrap;padding:6px 13px}.brand small,.sidebar-foot{display:none}.sidebar nav{display:flex;gap:3px}.sidebar nav button{white-space:nowrap;padding:10px;font-size:12px}header{padding:13px}main{padding:13px}.grid{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.story{height:50vh}}@media(max-width:570px){.grid{grid-template-columns:1fr}.ability{grid-template-columns:repeat(3,1fr)}.story{padding:12px}.hero{padding:20px}.hero h2{font-size:25px}.card{padding:15px}.action{flex-direction:column}.brand{font-size:15px}.sidebar nav button{font-size:12px}.head-right{gap:6px}}/* Memory/resource controls remain usable at narrow widths and enlarged text. */
.game-resources{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.game-resources label,#memoryPanel label{display:block;margin:12px 0}.game-resources input,.game-resources select,#memoryPanel input,#memoryPanel select,#memoryPanel textarea{display:block;width:100%;max-width:100%;box-sizing:border-box}.game-resources summary,#memoryPanel summary{cursor:pointer;min-height:44px;padding:12px 0;overflow-wrap:anywhere}.game-resources button,#memoryPanel button{margin:5px 7px 5px 0;min-height:44px}#memoryPanel .item{overflow-wrap:anywhere}#memoryPanel details{max-width:100%}.game-party-member,.game-panel,.card,.two,.stack{min-width:0}.toast{max-width:min(420px,calc(100vw - 36px))}
#memoryPanel button{background:#2d3442;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 13px;cursor:pointer}#memoryPanel button.primary{background:var(--gold);color:#181818}
#rulesPanel{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}#rulesPanel label,.generic-forge label,.game-panel>label,.game-panel details label{display:block;margin:12px 0}#rulesPanel input,#rulesPanel select,#rulesPanel textarea,.generic-forge input,.generic-forge textarea,.game-panel>label input,.game-panel>label select{display:block;width:100%;max-width:100%;box-sizing:border-box}#rulesPanel pre{overflow:auto;max-width:100%}#rulesPanel button,.generic-forge button{min-height:44px;margin-top:8px}
