:root{--color-ink:#111;--color-paper:#fffaf0;--color-surface:#fff;--color-primary:#ffd93d;--color-secondary:#6bcbff;--color-accent:#ff6b9d;--color-danger:#ff5252;--color-success:#5ee08a;--color-muted:#e8e2d0;--border-width:3px;--border:var(--border-width) solid var(--color-ink);--shadow-offset:5px;--shadow:var(--shadow-offset) var(--shadow-offset) 0 var(--color-ink);--shadow-small:3px 3px 0 var(--color-ink);--radius:0;--space-1:.25rem;--space-2:.5rem;--space-3:1rem;--space-4:1.5rem;--space-5:2.5rem;--font-body:"Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);margin:0;line-height:1.5}h1,h2,h3{margin:0 0 var(--space-2);line-height:1.15}pre,code{font-family:var(--font-mono)}.layout__header{background:var(--color-primary);border-bottom:var(--border);padding:var(--space-3) var(--space-4)}.layout__title{letter-spacing:-.02em;text-transform:uppercase;margin:0;font-size:1.75rem}.layout__main{max-width:72rem;padding:var(--space-4);margin:0 auto}.panel{background:var(--color-surface);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--space-3)}.panel__title{margin-bottom:var(--space-2);font-size:1.25rem}.button{font:inherit;color:var(--color-ink);background:var(--color-primary);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow-small);padding:var(--space-2) var(--space-3);cursor:pointer;font-weight:700;transition:transform 80ms,box-shadow 80ms}.button:hover:not(:disabled){box-shadow:4px 4px 0 var(--color-ink);transform:translate(-1px,-1px)}.button:active:not(:disabled){box-shadow:0 0 0 var(--color-ink);transform:translate(3px,3px)}.button:focus-visible{outline:var(--border-width) solid var(--color-secondary);outline-offset:2px}.button:disabled{cursor:not-allowed;background:var(--color-muted);box-shadow:none;opacity:.7}.button--primary{background:var(--color-primary)}.button--secondary{background:var(--color-secondary)}.button--danger{background:var(--color-danger)}.badge{background:var(--color-muted);border:2px solid var(--color-ink);border-radius:var(--radius);padding:0 var(--space-2);font-size:.8rem;font-weight:700;display:inline-block}.badge--accent{background:var(--color-accent)}.badge--secondary{background:var(--color-secondary)}.badge--success{background:var(--color-success)}.panel__header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.panel__header .panel__title{margin:0}.team-creator{gap:var(--space-4);display:grid}.team-creator__controls{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.team-creator__error{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);background:var(--color-danger);border:var(--border);font-weight:700}.team-creator__empty{padding:var(--space-4);text-align:center;background:var(--color-muted);border:var(--border);border-style:dashed;margin:0;font-weight:700}.team-creator__grid{gap:var(--space-4);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=40rem){.team-creator__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.character__summary{margin:0 0 var(--space-3)}.character__heading{text-transform:uppercase;letter-spacing:.06em;margin:var(--space-3) 0 var(--space-1);border-bottom:2px solid var(--color-ink);font-size:.85rem}.character__equipment,.character__stats{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));margin:0;display:grid}.character__equipment dt,.character__stats dt{text-transform:uppercase;opacity:.7;font-size:.75rem}.character__equipment dd,.character__stats dd{margin:0;font-weight:700}.character__skills,.character__modifiers{padding-left:var(--space-4);margin:0}.character__modifiers{overflow-wrap:anywhere;list-style:square}.character__source{text-transform:uppercase;opacity:.6;font-size:.75rem}.character__tags{gap:var(--space-1);flex-wrap:wrap;margin:0;display:flex}.export{background:var(--color-surface);border:var(--border);box-shadow:var(--shadow)}.export__summary{cursor:pointer;padding:var(--space-3);background:var(--color-secondary);font-weight:700;list-style-position:inside}.export[open] .export__summary{border-bottom:var(--border)}.export__yaml{padding:var(--space-3);-webkit-user-select:text;user-select:text;background:var(--color-ink);max-height:32rem;color:var(--color-paper);margin:0;font-size:.85rem;overflow:auto}.export__hint{padding:var(--space-3);margin:0}.layout__header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.layout__home{color:inherit;text-decoration:none}.layout__nav{align-items:center;gap:var(--space-3);flex-wrap:wrap;font-weight:700;display:flex}.link,.layout__nav a,.auth a,.team-list a{color:var(--color-ink);text-underline-offset:3px;font-weight:700;text-decoration:underline;text-decoration-thickness:3px}.link:hover,.layout__nav a:hover,.auth a:hover,.team-list a:hover{background:var(--color-primary)}.layout__nav a:focus-visible,.auth a:focus-visible,.team-list a:focus-visible,.field__input:focus-visible{outline:var(--border-width) solid var(--color-secondary);outline-offset:2px}.auth{max-width:28rem;margin:0 auto}.auth__links{margin:var(--space-3) 0 0}.form{gap:var(--space-3);display:grid}.form--inline{grid-template-columns:minmax(0,1fr) auto;align-items:end}.form--inline .notice{grid-column:1/-1}.field{gap:var(--space-1);display:grid}.field__label{text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:700}.field__input{font:inherit;padding:var(--space-2) var(--space-3);background:var(--color-surface);color:var(--color-ink);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow-small);min-width:0}.field__hint{opacity:.7;font-size:.8rem}.notice{margin:var(--space-3) 0 0;padding:var(--space-2) var(--space-3);border:var(--border);font-weight:700}.notice--error{background:var(--color-danger)}.notice--success{background:var(--color-success)}.notice--info{background:var(--color-secondary)}.team-list{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));margin:0;padding:0;list-style:none;display:grid}.team-settings{gap:var(--space-3);margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:2px solid var(--color-ink);display:grid}.team-settings__confirm{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.badge--danger{background:var(--color-danger)}.team-card{gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);border:var(--border);box-shadow:var(--shadow-small);display:grid}.team-card__name{margin:0;font-size:1.1rem}.team-card__actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.team-card__hint{opacity:.7;font-size:.8rem}.history{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.history__row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-paper);border:var(--border);grid-template-columns:auto minmax(0,1fr) auto auto;display:grid}.history__who{overflow-wrap:anywhere;min-width:0}.history__error{color:var(--color-ink);background:var(--color-danger);padding:0 var(--space-2);font-size:.85rem;display:inline-block}.history__meta{opacity:.8;text-align:right;font-size:.8rem;display:grid}@media (width<=40rem){.history__row{grid-template-columns:auto minmax(0,1fr)}.history__meta{text-align:left;grid-column:1/-1}}.battle__summary{margin:0 0 var(--space-3);font-weight:700}.battle__facts{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));margin:0;display:grid}.battle__facts dt{text-transform:uppercase;opacity:.7;font-size:.75rem}.battle__facts dd{overflow-wrap:anywhere;margin:0;font-weight:700}.battle__teams{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=40rem){.battle__teams{grid-template-columns:repeat(2,minmax(0,1fr))}}.roster{padding-left:var(--space-4);margin:0}.battle-log{gap:var(--space-3);max-height:40rem;display:grid;overflow:auto}.battle-log__heading{text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--space-1);padding:0 var(--space-2);background:var(--color-primary);border:2px solid var(--color-ink);font-size:.9rem;display:inline-block}.battle-log__events{padding-left:var(--space-4);font-family:var(--font-mono);margin:0;font-size:.85rem;list-style:none}.battle-log__event--died{color:var(--color-danger);filter:brightness(.6);font-weight:700}.battle-log__event--battle_end{background:var(--color-success);padding:0 var(--space-2);font-weight:700}.character__loadout{gap:var(--space-3);margin-top:var(--space-2);display:grid}.loadout{gap:var(--space-3);padding:var(--space-3);background:var(--color-paper);border:var(--border);display:grid}.loadout__group{gap:var(--space-2);padding:var(--space-2) var(--space-3);border:2px solid var(--color-ink);margin:0;display:grid}.loadout__group legend{text-transform:uppercase;letter-spacing:.06em;padding:0 var(--space-1);font-size:.8rem;font-weight:700}.loadout__help{opacity:.8;margin:0;font-size:.85rem}.loadout__pick{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.loadout__priority{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.loadout__number{text-align:right;width:5rem}
