:root{color-scheme:dark;--bg:#101114;--panel:#1b1e23;--line:#343941;--red:#a92e2b;--red2:#d45a52;--text:#f1eee8;--muted:#a8abb1}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:radial-gradient(ellipse at top,#302127 0,#101114 58%);color:var(--text);font:16px/1.5 system-ui,Segoe UI,sans-serif}
.shell{max-width:1180px;margin:auto;padding:clamp(14px,3vw,30px)}
.brand{text-align:center;padding:8px 0 24px}
.logo{width:min(100%,760px);height:auto;max-height:230px;object-fit:contain}
.panel{background:linear-gradient(145deg,#202329,#17191d);border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 14px 40px #0005;margin-bottom:16px}
.login-panel{max-width:560px;margin:0 auto 20px}
.eyebrow{color:var(--red2);font-size:.72rem;font-weight:800;letter-spacing:.18em;margin:0 0 5px}
h1{font-size:clamp(1.55rem,4vw,2.35rem);margin:.2em 0 .65em}
h2{font-size:1.5rem;margin:.2em 0 .8em}h3{margin:.1em 0 .4em}
.hidden{display:none!important}
label{display:block;color:var(--muted);font-size:.92rem;margin:10px 0}
input,select,textarea{display:block;width:100%;margin-top:6px;background:#101216;border:1px solid #444a54;border-radius:8px;padding:12px;color:white;font:inherit;min-width:0}
input[type=checkbox]{width:20px;height:20px;accent-color:var(--red);margin:0}
textarea{resize:vertical}
button{background:var(--red);border:0;border-radius:8px;padding:11px 17px;color:white;font-weight:750;cursor:pointer;font:inherit}
button:hover{filter:brightness(1.13)}button:disabled{opacity:.5;cursor:not-allowed}
button.secondary,.tab{background:#343941;border:1px solid #4a505a}
button.danger{background:#702b2a}
.error{color:#ff8a80}.form-message{color:#a8d9a8;min-height:1.5em}.muted{color:var(--muted)}
.welcome{display:flex;align-items:center;justify-content:space-between;gap:16px}
.nav-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 20px}
.tab{color:var(--text);padding:9px 13px}.tab.active{background:var(--red);border-color:var(--red)}
.welcome-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.welcome-grid .panel{margin:0}
.metric{font-size:2rem;font-weight:800;margin:.2em 0}
.symbol{font-size:2rem;color:var(--red2)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;max-width:none}
.form-grid .wide{grid-column:1/-1}
.form-grid button{justify-self:start}
.stack-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:12px;margin-top:14px}
.stack-list .panel{margin:0}
.survivor-card,.user-card{min-width:0}
.admin-actions{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin-top:12px}
.admin-actions label{flex:1;min-width:200px;margin:0}
.badge{display:inline-block;border:1px solid #7a3938;color:#ffaaa4;border-radius:20px;padding:2px 9px;font-size:.75rem;white-space:nowrap}
.badge.inactive{border-color:#666;color:#bbb}
.permission-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:4px 18px}
.check-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #343941;color:var(--text)}
.top-gap{margin-top:26px}
footer{text-align:center;color:#777d86;font-size:.72rem;letter-spacing:.16em;padding:28px 0}
@media(max-width:640px){.shell{padding:12px}.panel{padding:16px;border-radius:13px}.welcome{align-items:flex-start}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.section-heading{align-items:flex-start}.nav-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tab{width:100%}.admin-actions>*{width:100%}}


/* Survivor sheet: visual controls for attributes, competencies and adrenaline */
.stats-editor,.game-tracker{background:#111317;border:1px solid #493337;border-radius:12px;padding:14px;margin-top:8px}
.stats-editor h4,.game-tracker h4{margin:4px 0 10px;color:#e7b5ae;letter-spacing:.04em}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px 12px}
.stat-grid label{margin:4px 0}
.adrenaline-label{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.adrenaline-label input{flex:1;min-width:180px;accent-color:#b72e2b}
.adrenaline-bands{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.adrenaline-bands span{text-align:center;padding:7px 3px;border-radius:6px;font-size:.72rem;font-weight:800;background:#272b31}
.adrenaline-bands span:nth-child(1){border-bottom:3px solid #2875c7}
.adrenaline-bands span:nth-child(2){border-bottom:3px solid #c79a27}
.adrenaline-bands span:nth-child(3){border-bottom:3px solid #dc6b28}
.adrenaline-bands span:nth-child(4){border-bottom:3px solid #b72e2b}
.derived-values{margin-bottom:0}
@media(max-width:640px){.adrenaline-bands{grid-template-columns:repeat(2,1fr)}}

.player-survivor-sheet{margin-top:16px;padding:14px;background:#111317;border:1px solid #403235;border-radius:12px}
.player-sheet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin:8px 0}
.player-sheet-grid>div{background:#202329;border-left:3px solid #a9322b;border-radius:6px;padding:9px;display:flex;flex-direction:column;gap:4px}
.player-sheet-grid small{font-size:.68rem;color:#b6a7a5;letter-spacing:.06em}
.player-sheet-grid strong{font-size:1.15rem;color:#f1e8e6}
.player-survivor-sheet h4{margin:14px 0 8px;color:#e6b6af}
.player-competences{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:6px}
.player-competences span{padding:7px 9px;background:#202329;border-radius:6px;font-size:.88rem}
