:root{--ink:#1c2733;--ink-soft:#3b4855;--muted:#66737f;--bg:#e9ecef;--card:#fff;--raised:#f4f6f8;--border:#d9dee3;--border-strong:#c3cad1;--accent:#e8711a;--accent-hover:#c95e0e;--accent-soft:#fdebdc;--on-accent:#fff;--ours:#2f7d5b;--ours-soft:#e1f1e9;--enemy:#d6453d;--enemy-soft:#fbe4e2;--warning:#a55b00;--warning-soft:#fff2d6;--text:var(--ink);--text-soft:var(--ink-soft);--danger:var(--enemy);--danger-soft:var(--enemy-soft);--success:var(--ours);--castle:#e5e1da;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-full:999px;--h:40px;--h-sm:32px;--font:"Barlow", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--cond:"Barlow Condensed", "Barlow", "Arial Narrow", sans-serif;--mono:var(--cond);--shadow:0 1px 2px #1c27330f, 0 4px 14px #1c27330f}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:400 15px/1.5 var(--font);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{flex-direction:column;min-height:100vh;display:flex}.page{flex-direction:column;flex:1;gap:16px;width:100%;max-width:980px;margin:0 auto;padding:20px 16px 96px;display:flex}.page.wide{max-width:1440px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.col{flex-direction:column;gap:8px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:16px;display:flex}.card-highlight{border:1px solid var(--accent);border-radius:var(--r-md);background:var(--accent-soft);padding:10px 12px}.t-display{font:700 30px/1.05 var(--cond);letter-spacing:-.005em;color:var(--ink);margin:0}.t-title{font:700 22px/1.15 var(--cond);margin:0}.t-section{font:600 17px/1.3 var(--font);margin:0}.t-label{font:600 13px/1.3 var(--font);color:var(--muted);margin:0}.t-body{font:400 15px/1.5 var(--font);white-space:pre-line;margin:0}.t-muted{font:400 13px/1.45 var(--font);color:var(--muted);margin:0}.t-mono{font:600 17px/1.2 var(--cond);font-variant-numeric:tabular-nums;margin:0}.t-mono-lg{font:700 30px/1.1 var(--cond);letter-spacing:.02em;margin:0}.page-head{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.page-head .t-label{color:var(--accent-hover)}.btn{height:var(--h);border-radius:var(--r-md);font:600 14px/1 var(--font);cursor:pointer;white-space:nowrap;border:1px solid #0000;flex:none;justify-content:center;align-items:center;gap:6px;padding:0 16px;transition:background-color .12s,border-color .12s;display:inline-flex}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);color:var(--on-accent);font-weight:700}.btn-primary:not(:disabled):hover{background:var(--accent-hover)}.btn-secondary{background:var(--card);color:var(--ink);border-color:var(--border-strong)}.btn-secondary:not(:disabled):hover{border-color:var(--ink-soft)}.btn-ghost{color:var(--ink-soft);background:0 0;padding:0 10px}.btn-ghost:not(:disabled):hover{background:var(--raised)}.btn-danger{background:var(--card);color:var(--enemy);border-color:#efb7b2}.btn-danger:not(:disabled):hover{background:var(--enemy-soft)}.btn-sm{height:var(--h-sm);padding:0 12px;font-size:13px}.btn-block{width:100%}.badge{border-radius:var(--r-full);border:1px solid var(--border);background:var(--raised);height:26px;color:var(--ink-soft);font:600 12.5px/1 var(--font);white-space:nowrap;align-items:center;gap:4px;padding:0 10px;display:inline-flex}.badge-accent{color:var(--ours);background:var(--ours-soft);border-color:#a9d3bf}.badge-warning{color:var(--warning);background:var(--warning-soft);border-color:#f1cf8a}.badge-danger{color:var(--enemy);background:var(--enemy-soft);border-color:#efb7b2}.chip{cursor:pointer;-webkit-user-select:none;user-select:none}.seg{border-radius:var(--r-md);background:var(--raised);border:1px solid var(--border);flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.seg-btn{height:var(--h-sm);color:var(--ink-soft);font:600 13px/1 var(--font);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:0 11px}.seg-btn:hover{background:var(--card);color:var(--ink)}.seg-btn.active{background:var(--ink);color:#fff}.seg-btn.yes.active{background:var(--ours)}.seg-btn.no.active{background:var(--enemy)}.link{color:var(--accent-hover);font:600 13px/1.3 var(--font);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.link:hover{text-decoration:underline}.input{width:100%;height:var(--h);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--card);font:400 15px/1.2 var(--font);padding:0 12px;transition:border-color .12s,box-shadow .12s}textarea.input{resize:vertical;height:auto;padding:10px 12px;line-height:1.45}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input-sm{height:var(--h-sm);padding:0 8px;font-size:14px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span{font:600 13px/1.3 var(--font);color:var(--muted)}.affix{height:var(--h-sm);border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--card);align-items:center;display:inline-flex;overflow:hidden}.affix>b{font:700 13px/1 var(--cond);color:var(--muted);padding:0 6px 0 9px}.affix>input{width:56px;height:100%;font:600 15px/1 var(--cond);font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0;padding:0 8px 0 0}.affix:focus-within{border-color:var(--accent)}.check{cursor:pointer;align-items:flex-start;gap:8px;font-size:14px;line-height:1.35;display:inline-flex}.sort-n{background:var(--accent);color:#fff;min-width:20px;height:20px;font:700 12px/1 var(--font);border-radius:10px;justify-content:center;align-items:center;padding:0 5px;display:inline-flex}.check input{width:18px;height:18px;accent-color:var(--ours);flex:none;margin:0}.section{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.section:first-child{border-top:0;padding-top:0}.sticky-bar{z-index:6;position:sticky;top:8px}.nav{z-index:20;padding:4px 8px calc(4px + env(safe-area-inset-bottom));background:var(--ink);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{border-radius:var(--r-md);color:#aeb8c2;min-width:64px;min-height:44px;font:600 12px/1.2 var(--font);flex-direction:column;align-items:center;gap:2px;padding:7px 10px;text-decoration:none;display:flex}.nav a.active{color:#fff;box-shadow:inset 0 -2px 0 var(--accent);background:#ffffff1a}.nav svg{width:22px;height:22px}.toast{z-index:40;border-radius:var(--r-md);background:var(--ink);color:#fff;border-left:4px solid var(--ours);align-items:flex-start;gap:10px;max-width:min(92vw,560px);padding:12px 14px;display:flex;position:fixed;bottom:78px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #1c27334d}.toast.error{border-left-color:var(--enemy)}.toast button{color:#aeb8c2;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:18px;line-height:1}.overlay{z-index:30;background:#1c273380;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.overlay .card{width:min(560px,100%);max-height:86vh;overflow:auto}.list-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 2px;display:flex}.list-row:last-child{border-bottom:0}.suggest{border:1px solid var(--border);border-radius:var(--r-md);background:var(--card);overflow:hidden}.suggest .list-row{cursor:pointer;min-height:44px;padding:10px 12px}.suggest .list-row:hover{background:var(--accent-soft)}.grid-times{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.grid-form{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;display:grid}.time-box{border-radius:var(--r-md);background:var(--raised);padding:10px 12px}.time-box .t-mono{font-size:24px}.map-frame{border-radius:var(--r-lg);border:1px solid var(--border);background:#f7f8f9}.map-scroll{-webkit-overflow-scrolling:touch;padding:8px;overflow:auto}.map-grid{gap:4px;margin:0 auto;display:grid}.map-block{gap:4px;display:grid}.tile{text-align:center;outline-offset:1px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;min-height:0;padding:2px;display:flex;overflow:hidden}.tile.click{cursor:pointer}.tile.zl{z-index:2;overflow:visible}.tile.zl span{max-width:none;overflow:visible}.tile.click:hover{box-shadow:0 0 0 2px var(--ink);z-index:1}.tile span{white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:block;overflow:hidden}.turret-cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.turret-card{border:1px solid var(--border);border-left:6px solid var(--border-strong);border-radius:var(--r-md);background:var(--card);min-width:0;padding:9px 12px}.turret-card-name{font:600 12.5px/1.2 var(--font);color:var(--muted);margin:0 0 2px}.turret-card-tags{font:700 16px/1.25 var(--cond);color:var(--ink);overflow-wrap:anywhere;margin:0}.rules-bar{border-radius:var(--r-sm);background:var(--castle);color:var(--ink-soft);margin:0;padding:8px 12px;font-size:13px}.admin-top{z-index:16;background:var(--card);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;margin:-20px -16px 0;padding:10px 16px;display:flex;position:sticky;top:0}.admin-top .t-title{font-size:22px}.editor{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:16px;display:grid}.tools{background:var(--card);border:1px solid var(--border);border-radius:var(--r-lg);max-height:calc(100vh - 160px);box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:14px;display:flex;position:sticky;top:72px;overflow:auto}.tools .seg{grid-template-columns:repeat(4,1fr);display:grid}.tools .seg-btn{padding:0 6px}.tools summary{cursor:pointer;font:600 14px/1.3 var(--font);color:var(--ink);justify-content:space-between;list-style:none;display:flex}.tools summary::-webkit-details-marker{display:none}.tools summary:after{content:"+";color:var(--muted);font-weight:700}.tools details[open] summary:after{content:"−"}.tools details>div{flex-direction:column;gap:10px;margin-top:10px;display:flex}.tools-head{align-items:center;gap:10px;display:flex}.tools-head .t-section{flex:none}.tools-tabs,.tools-fold{display:none}.tools-hide{border:1px solid var(--border);background:var(--card);width:30px;height:30px;color:var(--ink);cursor:pointer;border-radius:8px;flex:none;margin-left:auto;font-size:14px}.tools-head .link{margin-left:auto}.tools-head .link+.tools-fold+.tools-hide,.tools-head .link+.tools-hide{margin-left:0}.tools details{border-top:1px solid var(--border);padding-top:12px}.tools summary{font-size:15px}.editor.tools-hidden{grid-template-columns:48px minmax(0,1fr)}.tools.hidden{align-items:center;padding:8px}.tools.hidden>:not(.tools-head){display:none}.tools.hidden .tools-head{flex-direction:column}.tools.hidden .tools-head .t-section{writing-mode:vertical-rl;transform:rotate(180deg)}.board{flex-direction:column;gap:12px;min-width:0;display:flex}.seat-info{top:calc(var(--admin-top-h,0px) + 6px);z-index:12;border-radius:var(--r-md);background:var(--ink);color:#fff;align-items:center;gap:12px;min-height:56px;padding:10px 14px;display:flex;position:sticky}.seat-info .t-muted{color:#aeb8c2}.seat-info .t-section{color:#fff}@media (width<=999px){.editor{grid-template-columns:1fr}.tools{z-index:15;gap:12px;max-height:40vh;padding:10px 12px;position:fixed;inset:auto 8px 64px;box-shadow:0 -6px 24px #1c27332e}.tools:not(.open)>:not(.tools-head),.tools .tsec{display:none}.tools.sec-clear .tsec-clear,.tools.sec-layout .tsec-layout,.tools.sec-auto .tsec-auto,.tools.sec-brush .tsec-brush{display:block}.tools-hide{display:none}.tools details.tsec{border-top:0;padding-top:0}.tools details.tsec>summary{display:none}.tools details.tsec>div{margin-top:0}.tools-head{z-index:2;background:var(--card);margin:-10px -12px 0;padding:10px 12px 8px;position:sticky;top:-10px}.tools-tabs{scrollbar-width:none;flex:auto;gap:4px;min-width:0;display:flex;overflow-x:auto}.tools-tabs::-webkit-scrollbar{display:none}.tools-tab{background:var(--raised);height:30px;color:var(--muted);font:600 13px/1 var(--font);cursor:pointer;white-space:nowrap;border:0;border-radius:15px;flex:none;padding:0 10px}.tools-tab.active{background:var(--ink);color:#fff}.tools-fold{border:1px solid var(--border);background:var(--card);width:32px;height:30px;color:var(--ink);cursor:pointer;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.board{padding-bottom:calc(var(--dock-h,240px) + 24px)}.admin-top>.col .t-muted{display:none}.admin-top .seg{order:3;grid-template-columns:repeat(3,1fr);width:100%;display:grid}.admin-top>.row{flex-wrap:nowrap}}@media (width<=640px){.page{gap:12px;padding:14px 12px 92px}.admin-top{gap:8px;margin:-14px -12px 0;padding:8px 12px}.admin-top>.row .badge{display:none}.turret-cards{grid-template-columns:none;grid-auto-columns:46%;grid-auto-flow:column;padding-bottom:2px;overflow-x:auto}.seat-info{min-height:0;padding:8px 12px}.seat-info .t-muted{font-size:12px}.t-display{font-size:26px}.grid-times{grid-template-columns:1fr 1fr 1fr;gap:8px}.time-box .t-mono{font-size:20px}}.menu{position:relative}.menu-list{z-index:30;background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);width:260px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 28px #1c27332e}.menu-list button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;flex-direction:column;gap:2px;width:100%;padding:9px 10px;display:flex}.menu-list button:hover{background:var(--raised)}.menu-list b{font:600 14px/1.2 var(--font)}.menu-list span{font:400 12.5px/1.35 var(--font);color:var(--muted)}.member-head{border-bottom:1px solid var(--border);font:600 12.5px/1.2 var(--font);color:var(--muted);align-items:center;gap:8px;padding:6px 2px;display:flex}.member-controls{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}.mh-rsvp{text-align:center;flex:0 0 124px;justify-content:center;width:124px}.mh-squad{text-align:center;flex:0 0 92px;width:92px}.affix.mh-squad>input{width:100%}.mh-t10{text-align:center;flex:0 0 52px;width:52px}.t10-btn{border:1px solid var(--border);border-radius:var(--r-md);background:var(--card);width:52px;height:36px;color:var(--muted);font:700 13px/1 var(--font);cursor:pointer;flex:0 0 52px}.t10-btn.on{background:var(--ink);border-color:var(--ink);color:#fff}@media (width<=640px){.member-head{display:none}.list-row:has(.member-controls){flex-wrap:wrap;gap:8px;padding:12px 0}.member-controls{gap:6px;width:100%}.member-controls .mh-rsvp{flex:1.3 1 0;width:auto;min-width:0}.member-controls .mh-squad{flex:1 1 0;width:auto;min-width:0}.member-controls .seg-btn{min-height:40px}.member-controls .affix{height:40px}.t10-btn{flex:0 0 48px;width:48px;height:40px}.alli-chips{scrollbar-width:none;flex-wrap:nowrap;gap:6px;overflow-x:auto}.alli-chips::-webkit-scrollbar{display:none}.alli-chips .chip{flex:none}.alli-save{display:none}.alli-top{padding:10px 12px}}.save-bar{display:none}@media (width<=640px){.save-bar{z-index:20;background:var(--ink);color:#fff;border-radius:var(--r-lg);font:600 14px/1.2 var(--font);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex;position:fixed;bottom:72px;left:8px;right:8px;box-shadow:0 8px 24px #1c27334d}.page:has(.save-bar){padding-bottom:150px}}.seg.mh-rsvp{flex-wrap:nowrap;display:flex}.seg.mh-rsvp .seg-btn{flex:1;padding:0 4px}.nav-brand,.nav-logout{display:none}@media (width>=1000px){.app{flex-direction:column}.nav{z-index:25;order:-1;justify-content:flex-start;align-items:center;gap:4px;padding:6px 20px;position:sticky;top:0;bottom:auto}.nav a{flex-direction:row;align-items:center;gap:8px;min-height:38px;padding:0 14px;font-size:14px}.nav a.active{box-shadow:inset 0 -2px 0 var(--accent)}.nav svg{width:18px;height:18px}.nav-brand{font:700 20px/1 var(--cond);color:#fff;letter-spacing:.02em;margin-right:20px;display:inline-block}.nav-brand b{color:var(--accent)}.nav-logout{border-radius:var(--r-md);color:#dde3e8;height:34px;font:600 13px/1 var(--font);cursor:pointer;background:0 0;border:1px solid #ffffff40;margin-left:auto;padding:0 14px;display:inline-flex}.nav-logout:hover{background:#ffffff14}.page{padding-bottom:32px}.admin-top{top:50px}.tools{max-height:calc(100vh - 138px);top:122px}.seat-info{top:calc(50px + var(--admin-top-h,0px) + 6px)}.toast{bottom:24px}}.preview-banner{border-radius:var(--r-md);background:var(--accent);color:#fff;font:700 15px/1.3 var(--font);margin:0;padding:10px 14px}.combo{min-width:170px;position:relative}.row>.combo{flex:170px}.combo .input.has-value::placeholder{color:var(--ink);opacity:1;font-weight:600}.combo-clear{background:var(--raised);width:24px;height:24px;color:var(--muted);cursor:pointer;border:0;border-radius:12px;font-size:15px;line-height:1;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.combo-list{z-index:40;background:var(--card);border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;max-height:260px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto;box-shadow:0 10px 28px #1c27332e}.combo-list.up{top:auto;bottom:calc(100% + 4px)}.combo-list button{text-align:left;width:100%;font:400 13px/1.3 var(--font);color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:space-between;gap:8px;padding:8px 10px;display:flex}.combo-list button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.combo-list button small{color:var(--muted);flex:none;font-size:12px}.combo-list button:hover{background:var(--raised)}.brush-hint{border-radius:var(--r-md);background:var(--raised);font:500 13px/1.35 var(--font);color:var(--ink-soft,#44515e);margin:0;padding:8px 10px}.brush-hint.on{color:#9a4a0e;background:#fdebdd}.brush-hint.warn{color:#b91c1c;background:#fdecec}.sub-box{border-top:1px dashed var(--border);flex-direction:column;gap:8px;padding-top:10px;display:flex}
