:root{color-scheme:light dark;--accent: #7c5cff;--accent-ink: #ffffff;--bg: #0f1020;--panel: #1a1b2e;--ink: #e9e9f2;--muted: #9aa0b4;--line: #2a2c45;--err: #ff6b6b;--ok: #4ade80;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1200px 600px at 50% -10%,#20224a 0%,var(--bg) 60%);min-height:100vh;color:var(--ink)}#app{max-width:46rem;margin-inline:auto;padding:1.25rem}h1{font-size:1.6rem;margin:.25rem 0 1rem}h2{font-size:1.05rem;margin:0 0 .4rem}a{color:var(--accent)}.title-screen{text-align:center;padding:6rem 1rem 2rem}.logo{font-size:2.8rem;letter-spacing:.5px;margin:0;background:linear-gradient(120deg,#b9a6ff,var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.tagline{color:var(--muted);margin:.5rem 0 2rem}.topbar{display:flex;align-items:center;justify-content:space-between;padding-bottom:.75rem;margin-bottom:1rem;border-bottom:1px solid var(--line)}.brand{font-weight:700;cursor:pointer;color:var(--accent)}.menu{display:grid;gap:.75rem}.menu-item{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;padding:1rem 1.1rem;background:var(--panel);border:1px solid var(--line);border-radius:.7rem;cursor:pointer;color:inherit}.menu-item:hover{border-color:var(--accent)}.menu-title{font-weight:600}.menu-desc{color:var(--muted);font-size:.9rem}.field{display:grid;gap:.3rem;margin:.85rem 0}.field-label{font-size:.85rem;color:var(--muted)}input,select,textarea{width:100%;padding:.55rem .65rem;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:.5rem;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}input:disabled{opacity:.5}button{font:inherit;cursor:pointer;border-radius:.5rem;border:1px solid var(--line);padding:.5rem 1rem;background:var(--panel);color:var(--ink)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}button.secondary{background:transparent;border-color:var(--accent);color:var(--accent)}button.link{background:transparent;border-color:transparent;color:var(--muted);padding-inline:.4rem}button.big{padding:.7rem 2.2rem;font-size:1.1rem}button:disabled{opacity:.5;cursor:not-allowed}.actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.75rem}section{margin:1.25rem 0;padding-top:1rem;border-top:1px solid var(--line)}.box{background:var(--panel);border:1px solid var(--line);border-radius:.5rem;padding:.7rem;white-space:pre-wrap;word-break:break-word;margin:.5rem 0 0}.box.prompt{font-size:.78rem;max-height:20rem;overflow:auto}.empty{padding:2rem;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:.6rem}.muted{color:var(--muted)}.small{font-size:.85rem}.hint{color:var(--muted);font-size:.85rem;margin:.1rem 0 0}.status{margin:.6rem 0 0;min-height:1.2em;font-size:.9rem}.status.ok{color:var(--ok)}.status.err{color:var(--err)}.status.info{color:var(--muted)}.play{display:grid;grid-template-columns:14rem 1fr;gap:1.25rem;align-items:start}@media (max-width: 640px){.play{grid-template-columns:1fr}}.char-panel{background:var(--panel);border:1px solid var(--line);border-radius:.7rem;padding:.9rem;position:sticky;top:.5rem}.char-panel h2{margin:0;font-size:1.1rem}.char-panel h3{margin:0 0 .35rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.vitals{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:.6rem 0}.hp{flex:1}.hp-bar{height:.5rem;background:color-mix(in srgb,var(--err) 25%,transparent);border-radius:1rem;overflow:hidden;margin-bottom:.2rem}.hp-fill{height:100%;background:var(--ok)}.ac{font-weight:600;white-space:nowrap}.abilities{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin:.6rem 0}.ability{display:flex;flex-direction:column;align-items:center;padding:.35rem 0;background:color-mix(in srgb,currentColor 5%,transparent);border-radius:.4rem}.ab-name{font-size:.7rem;color:var(--muted)}.ab-score{font-weight:600}.ab-mod{font-size:.8rem;color:var(--accent)}.panel-section{margin-top:.8rem;border-top:1px solid var(--line);padding-top:.6rem}.chips{display:flex;flex-wrap:wrap;gap:.3rem}.chip{background:color-mix(in srgb,var(--err) 22%,transparent);border-radius:1rem;padding:.1rem .55rem;font-size:.8rem}.equipment{margin:0;padding-left:1.1rem;font-size:.85rem}.equipment li{margin:.1rem 0}.scenario-title{font-weight:600;color:var(--accent);margin:0 0 .5rem}.chat-log{display:flex;flex-direction:column;gap:.7rem;max-height:52vh;overflow-y:auto;padding:.25rem}.msg{display:flex;flex-direction:column;gap:.15rem}.msg .who{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.msg.player{align-items:flex-end}.bubble{white-space:pre-wrap;word-break:break-word;padding:.6rem .8rem;border-radius:.7rem;max-width:90%;border:1px solid var(--line)}.msg.gm .bubble{background:var(--panel);border-top-left-radius:.2rem}.msg.player .bubble{background:color-mix(in srgb,var(--accent) 22%,var(--panel));border-top-right-radius:.2rem}.bubble.thinking{color:var(--muted);font-style:italic}.dice-tray{margin-top:.9rem;border-top:1px solid var(--line);padding-top:.7rem}.dice-presets{display:flex;flex-wrap:wrap;gap:.35rem}.dice-btn{padding:.3rem .6rem;font-size:.85rem}.dice-custom{display:flex;gap:.4rem;margin-top:.5rem;max-width:18rem}.composer{display:flex;gap:.5rem;margin-top:.7rem}.composer textarea{flex:1;resize:vertical}.panel-toggle{display:flex;align-items:center;gap:.5rem;width:100%;background:transparent;border:none;padding:.1rem 0;color:inherit;cursor:pointer;font-weight:600}.pt-name{flex:1;text-align:left}.pt-hp{color:var(--muted);font-weight:400}.char-panel.collapsed{padding-block:.6rem}.compact-line{margin:.3rem 0 0}.panel-body{margin-top:.2rem}.hp-controls{display:flex;gap:.4rem;margin:.5rem 0}.hp-controls input{width:4rem}.hp-controls button,.cond-add button{padding:.4rem .6rem}.chip.removable{border:none;cursor:pointer;font:inherit;color:var(--ink)}.cond-add{display:flex;gap:.4rem;margin-top:.5rem}.check-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.check-btn{padding:.3rem .7rem;font-size:.85rem;background:color-mix(in srgb,var(--accent) 20%,var(--panel));border-color:var(--accent);color:var(--ink)}.side{display:grid;gap:.75rem;align-content:start}.memory-panel{position:static}.memory-list{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.5rem}.memory-list li{border-top:1px solid var(--line);padding-top:.4rem}.memory-list li:first-child{border-top:none;padding-top:0}.campaign-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.campaign-item{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;text-align:left;padding:.85rem 1rem;background:var(--panel);border:1px solid var(--line);border-radius:.7rem}.campaign-item:hover{border-color:var(--accent)}.campaign-name{font-weight:600}.save-badge{color:var(--ok);font-weight:400}.combat-panel{background:var(--panel);border:1px solid var(--line);border-radius:.7rem;padding:.8rem .9rem;margin-bottom:.8rem}.combat-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.combat-head .status{margin:0;font-weight:600}.initiative{list-style:none;margin:.6rem 0;padding:0;display:grid;gap:.2rem}.initiative li{display:flex;align-items:center;gap:.6rem;padding:.3rem .5rem;border-radius:.45rem;border:1px solid transparent}.initiative li.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.initiative li.down{opacity:.45;text-decoration:line-through}.init-roll{min-width:1.6rem;text-align:center;font-weight:600;color:var(--muted)}.init-name{flex:1}.init-hp{white-space:nowrap;font-size:.85rem;color:var(--muted)}.combat-actions{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;margin-top:.5rem}.combat-actions select{width:auto;flex:1 1 auto;min-width:6rem}.combat-actions button{padding:.45rem .8rem}.combat-log{margin:.6rem 0 0;padding-left:1.1rem;font-size:.85rem;color:var(--muted);display:grid;gap:.2rem}.rules-panel{position:static}.rules-list{list-style:none;margin:.4rem 0 0;padding:0;display:grid;gap:.45rem;max-height:18rem;overflow-y:auto}.rules-list li{border-top:1px solid var(--line);padding-top:.35rem}.rules-list li:first-child{border-top:none;padding-top:0}
