:root{color-scheme:dark;--sea:#0a1d2a;--panel:#102c3b;--line:#31505d;--ink:#f4eee0;--muted:#bad1d0;--mint:#77e4c6;--gold:#ffce84;--danger:#ffb6a2;font-family:system-ui,sans-serif;background:var(--sea);color:var(--ink);font-size:16px}
*{box-sizing:border-box}body{margin:0}a{color:var(--mint);text-underline-offset:.2em}button,select,input{font:inherit}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;border:1px solid transparent;border-radius:8px;padding:.65rem .9rem;background:var(--mint);color:#0a2631;font-weight:650;cursor:pointer;text-decoration:none;text-align:center}button:hover,.button:hover{background:#a3eedb}button:active,.button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:default;transform:none}button.quiet,.button.quiet{background:#244658;color:var(--ink)}button.quiet:hover,.button.quiet:hover{background:#31596c}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:4px}select{display:block;width:100%;border:1px solid var(--line);border-radius:8px;background:var(--sea);color:var(--ink);padding:.65rem;margin:.5rem 0 .75rem}h1,h2,h3,p{margin:0}h1{font-size:2rem;letter-spacing:-.03em}h2{font-size:1.35rem;letter-spacing:-.02em;margin-bottom:1rem}h3{font-size:1.1rem;margin:1.75rem 0 .75rem}p{line-height:1.6;margin-bottom:.9rem;max-width:70ch}small,.muted{color:var(--muted);font-size:.9rem}.muted{line-height:1.55}.masthead{display:flex;align-items:center;gap:1.5rem;min-height:80px;max-width:1280px;padding:1rem 32px;margin:auto;border-bottom:1px solid var(--line)}.brand{font-weight:750;letter-spacing:.1em;color:var(--gold);text-decoration:none}.masthead #connection{flex:1;color:var(--muted);font-size:.875rem}main{max-width:1280px;margin:auto;padding:2.5rem 32px}.section-heading{display:flex;gap:1rem;align-items:baseline;justify-content:space-between;margin-bottom:1.25rem}#population{font-variant-numeric:tabular-nums;color:var(--muted)}#map{display:block;width:100%;height:clamp(180px,28vw,330px);background:#134254;border-radius:12px;touch-action:manipulation;cursor:crosshair}.map-help{font-size:.875rem;color:var(--muted);margin:.75rem 0 1.5rem}.notice{border:1px solid var(--line);border-radius:8px;padding:1rem 1.25rem;margin-bottom:2rem;line-height:1.5;min-height:56px}.notice.error{color:var(--danger)}.game-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:3rem}aside{padding-right:2rem;border-right:1px solid var(--line)}aside .stack{display:grid;gap:.65rem;margin:1rem 0 1.5rem}#profile strong{font-size:1.15rem}#profile dl{display:grid;grid-template-columns:1fr auto;gap:.4rem 1rem;margin:1rem 0;font-variant-numeric:tabular-nums}dt{color:var(--muted)}dd{margin:0}#expiry{font-variant-numeric:tabular-nums}#expiry.warning{color:var(--gold)}#expiry.last{color:var(--danger)}.tabs{display:flex;gap:.35rem;border-bottom:1px solid var(--line);margin-bottom:1.75rem;overflow-x:auto;padding-bottom:.5rem}.tabs button{background:none;color:var(--muted);white-space:nowrap}.tabs button[aria-selected=true]{background:var(--panel);color:var(--mint)}.row{display:flex;gap:1.25rem;align-items:center;justify-content:space-between;padding:1.1rem 0;border-bottom:1px solid var(--line)}.row .copy{min-width:0;flex:1}.row .copy strong{display:block;line-height:1.4}.row .copy small{display:block;line-height:1.5;margin-top:.25rem}.row button{flex-shrink:0}.job-status{background:var(--panel);border-radius:12px;padding:1.25rem;margin-bottom:1rem}.job-status h3{margin:0 0 .5rem}.actions{display:flex;flex-wrap:wrap;gap:.6rem}details{border-bottom:1px solid var(--line);padding:.25rem 0 .75rem;margin-bottom:1rem}summary{padding:.8rem 0;font-weight:700;cursor:pointer}.talent-state{color:var(--gold)}#respec{margin-top:1rem}.equipment-slot{margin-top:1.25rem}.warning{color:var(--gold)}progress{display:block;width:100%;height:12px;accent-color:var(--mint);margin:.5rem 0 1rem}footer{max-width:1280px;margin:auto;padding:2rem 32px;color:var(--muted);border-top:1px solid var(--line);font-size:.875rem}footer a{margin-left:1rem}[hidden]{display:none!important}::selection{background:var(--gold);color:var(--sea)}
@media(max-width:800px){.masthead{padding:1rem 20px;flex-wrap:wrap;gap:.75rem}.masthead #connection{flex-basis:40%;font-size:.8rem}.masthead>a:last-child{display:none}main{padding:1.5rem 20px}.game-layout{grid-template-columns:1fr;gap:1.75rem}aside{border-right:0;border-bottom:1px solid var(--line);padding:0 0 1rem}aside>p:last-child{display:none}#profile dl{grid-template-columns:1fr auto 1fr auto;column-gap:1rem}#resident-actions{grid-template-columns:1fr 1fr}.section-heading{display:block}.section-heading h1{margin-bottom:.4rem}.row{gap:.75rem}.row button{max-width:42%;font-size:.875rem}.tabs{gap:0}.tabs button{padding:.6rem .75rem}.masthead .button{font-size:.875rem}footer{padding:1.5rem 20px}}
@media(prefers-reduced-motion:reduce){button:active,.button:active{transform:none}}
.masthead #world-select{width:auto;max-width:220px;margin:0}#administration{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--line)}.admin-form{max-width:600px;display:grid;gap:.6rem;margin-bottom:2rem}.admin-form input{min-height:44px;border:1px solid var(--line);border-radius:8px;background:var(--sea);color:var(--ink);padding:.65rem}.admin-form input[type=color]{width:80px;padding:.25rem}.admin-form button{justify-self:start}.admin-form h3{margin-top:.75rem}.admin-form p{margin:0}.admin-form input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}#account-reference{overflow-wrap:anywhere}
