:root{color-scheme:dark;--bg:#0a110e;--panel:#151d17;--card:#202d22;--ink:#f2f3e8;--muted:#a8b1a6;--accent:#bbcd85;--line:#303b31;font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}[hidden]{display:none!important}header{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line)}header>div{display:flex;gap:16px;align-items:center}.brand{display:flex;align-items:center;gap:12px}.brand img{height:42px;width:42px;object-fit:contain}.brand strong{font-size:28px;letter-spacing:-1px}.brand span{font:11px monospace;letter-spacing:2px;color:var(--muted);margin-left:12px}button,input,select,textarea{font:inherit}button{cursor:pointer;background:var(--card);color:var(--ink);border:1px solid transparent;padding:10px 15px;border-radius:10px}button:hover{border-color:var(--accent)}button:disabled{opacity:.45;cursor:default}.primary{background:var(--accent);color:#10170d;font-weight:650}.badge{border-radius:30px;padding:7px 12px;background:var(--card);color:var(--accent);font-size:12px}.eyebrow{font:11px monospace;letter-spacing:2px;color:var(--muted)}.muted{color:var(--muted);font-size:13px}.error{color:#edb578;font-size:13px;min-height:1em}.error:empty{display:none}h1{margin:8px 0;font-size:27px;line-height:1.2;letter-spacing:-.8px}label{display:block;color:var(--muted);font-size:13px;margin-top:22px}input,select,textarea{display:block;width:100%;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:12px;margin-top:7px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}#login{min-height:calc(100dvh - 80px);display:grid;place-items:center;padding:40px 24px}#login-form{width:min(100%,360px)}#login h1{font-size:48px;margin:20px 0;letter-spacing:-2px}#login-button{width:100%;margin-top:30px;padding:14px}#workspace{display:grid;grid-template-columns:265px minmax(360px,1fr) 300px;min-height:calc(100dvh - 80px)}aside,.chat{padding:22px;background:var(--panel)}aside{border-right:1px solid var(--line)}.chat{border-left:1px solid var(--line);display:flex;flex-direction:column;max-height:calc(100dvh - 80px)}.section-title{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.section-title button{padding:2px 10px}#members{margin-top:16px}.member{display:block;width:100%;text-align:left;padding:14px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.member strong{display:block;font-size:15px}.member small{display:block;color:var(--muted);margin-top:3px}.member .status{float:right;font-size:11px}.status-ACTIVE{color:#bbcd85}.status-HIT{color:#e4af63}.status-WOUNDED{color:#e3d779}.status-KIA{color:#ea8680}.operations{position:relative;padding:24px;min-width:0}.map-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.map-heading h1{font-size:24px}#map{height:calc(100dvh - 245px);min-height:350px;border-radius:14px;background:#202d22}#map-caption{font-size:11px;margin-top:10px}#messages{flex:1;overflow-y:auto;min-height:200px;padding:18px 0}.message{padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.message p{margin:5px 0;white-space:pre-wrap}.message time{float:right;color:var(--muted);font-size:10px}.message strong{font-size:12px}.message.system{font-size:12px;color:var(--accent)}#chat-form textarea{resize:vertical;min-height:70px;margin:0 0 10px}#send{width:100%}#files{margin-top:24px}#files button{display:block;margin-top:8px;width:100%;text-align:left;font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.leaflet-control-attribution{font-size:9px}.leaflet-tooltip{font:12px system-ui;color:#10170d}#control{width:100%;margin:12px 0}@media(max-width:1100px){#workspace{grid-template-columns:230px 1fr}.chat{grid-column:1/-1;max-height:500px;border-top:1px solid var(--line)}#map{height:60dvh}}@media(max-width:650px){header{padding:0 16px;height:66px}.brand span{display:none}.brand strong{font-size:23px}#workspace{display:flex;flex-direction:column}aside{border-right:0}.operations{padding:16px;order:-1}#map{height:50dvh;min-height:280px}.map-heading h1{font-size:20px}.chat{max-height:550px}#members{max-height:260px;overflow:auto}header .badge{font-size:10px}}

dialog{width:min(1050px,calc(100% - 32px));max-height:90dvh;border:1px solid var(--line);border-radius:20px;background:var(--bg);color:var(--ink);padding:28px;box-shadow:0 25px 100px #0008}dialog::backdrop{background:#000a;backdrop-filter:blur(5px)}.dialog-heading,.manage-toolbar,.actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.dialog-heading{border-bottom:1px solid var(--line);padding-bottom:20px}.manage-toolbar{margin:20px 0;flex-wrap:wrap}.manage-toolbar label{margin:0;flex:1;min-width:160px}.manage-toolbar>button{align-self:end}.manage-columns{display:grid;grid-template-columns:1fr 1.2fr;gap:36px}.manage-columns>section+section{border-left:1px solid var(--line);padding-left:30px}h2{font-size:17px;font-weight:600;margin:24px 0 12px}.roster-heading{margin-top:32px}fieldset{border:0;padding:0;margin:0;min-width:0}fieldset:disabled{opacity:.5}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions{justify-content:flex-start;margin-top:16px;flex-wrap:wrap}#edit-event button{margin-top:22px;width:100%}.manage-columns label{margin-top:12px}.manage-columns input[type=color]{height:48px;padding:5px}.managed-row,.roster-row,.faction-row{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--line);width:100%;text-align:left;background:transparent;border-radius:0}.managed-row .row-copy,.roster-row .row-copy{flex:1;min-width:0}.row-copy strong,.row-copy small{display:block;overflow-wrap:anywhere}.row-copy small{color:var(--muted);margin-top:4px}.managed-row .badge{white-space:nowrap}.faction-row{padding:10px 0}.swatch{width:12px;height:12px;border-radius:50%;flex-shrink:0}.notice{padding:12px 16px;background:#463c223b;border-left:2px solid #e4af63;color:#e4af63;font-size:13px}.empty{padding:32px 8px;color:var(--muted);text-align:center}#roster-list{max-height:320px;overflow-y:auto}.roster-row button{padding:6px 10px;font-size:12px}.managed-row:hover{background:#bbcd8508}.form-pair label{min-width:0}dialog input,dialog select{min-width:0}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(max-width:700px){dialog{padding:18px;width:calc(100% - 16px);max-height:94dvh}.manage-columns{grid-template-columns:1fr;gap:12px}.manage-columns>section+section{padding-left:0;border-left:0;border-top:1px solid var(--line)}header{padding:0 12px}header>div{gap:7px}#manage-open{font-size:12px;padding:8px}.brand img{width:28px;height:28px}.brand strong{font-size:20px}header .badge{display:none}.form-pair{grid-template-columns:1fr}.managed-row .badge{font-size:10px}}
.dialog-heading{position:sticky;top:-28px;background:var(--bg);z-index:3;padding-top:12px}#manage-confirm{position:sticky;top:80px;background:#292b1e;z-index:4;box-shadow:0 10px 30px #0008}@media(max-width:700px){.dialog-heading{top:-18px}}
