:root{--bg:#0b121b;--side:#0e1724;--panel:#101a27;--line:#1f2e44;--line-soft:#18263a;--text:#e6edf5;--text-2:#c3cfdd;--muted:#93a4b8;--accent:#5aa9e6;--accent-hi:#7fbdeb;--ok:#5ed39b;--warn:#f3b26a;--bad:#f59aa0;--mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--topbar:56px;--control:36px;--gutter:16px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;accent-color:var(--accent);scrollbar-color:#2a3b55 transparent}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;margin:0;font:14px/1.45 IBM Plex Sans,system-ui,-apple-system,Segoe UI,sans-serif}::selection{color:var(--text);background:#2a4f78}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#2a3b55 padding-box padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-track{background:0 0}button,input,select,textarea{font:inherit;color:inherit}input,textarea{caret-color:var(--accent-hi)}a{color:var(--accent-hi);text-underline-offset:3px}h1,h2,h3{text-wrap:balance;margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:13px}.shell{min-height:100dvh}.topbar{z-index:30;height:calc(var(--topbar) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(12px, env(safe-area-inset-right)) 0 max(8px, env(safe-area-inset-left));background:color-mix(in srgb, var(--side) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #1a2638;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.topbar .brand span{display:none}.menu-toggle{min-height:40px}.scrim{z-index:18;background:#04080e99;animation:.18s ease-out fade;position:fixed;inset:0}.side{z-index:20;top:calc(var(--topbar) + env(safe-area-inset-top));width:min(300px,86vw);padding:16px 12px max(16px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));overscroll-behavior:contain;background:var(--side);visibility:hidden;border-right:1px solid #1a2638;flex-direction:column;gap:20px;transition:transform .24s cubic-bezier(.16,1,.3,1),visibility 0s linear .24s;display:flex;position:fixed;bottom:0;left:0;overflow-y:auto;transform:translate(-104%);box-shadow:12px 0 32px #00000059}.side[data-open=true]{visibility:visible;transition:transform .24s cubic-bezier(.16,1,.3,1);transform:none}.side>.brand{display:none}.main{min-width:0;padding:20px max(var(--gutter), env(safe-area-inset-right)) max(40px, env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));flex-direction:column;gap:18px;display:flex}.brand{align-items:center;gap:10px;padding:4px 10px;display:flex}.brand svg{flex:none}.brand b{letter-spacing:.02em;font-size:18px}.brand span{color:var(--muted);font-size:12px;display:block}.navlist{flex-direction:column;gap:4px;display:flex}.nav{color:#a7b6c8;border-radius:8px;align-items:center;gap:12px;min-height:48px;padding:0 14px;font-weight:500;text-decoration:none;display:flex}.nav svg{flex:none}.nav:hover{color:var(--text);background:#16233a}.nav[aria-current=page]{color:var(--text);background:#1a2c47;box-shadow:inset 0 0 0 1px #2a4468}.whoami{background:var(--panel);border:1px solid var(--line);color:var(--muted);border-radius:10px;flex-direction:column;gap:8px;margin-top:auto;padding:12px;font-size:12px;display:flex}.whoami strong{color:var(--text-2);overflow-wrap:anywhere;font-size:13px}.head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.head p{color:var(--muted);margin:4px 0 0}.head h1{letter-spacing:-.01em;font-size:24px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.split{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.split>*{min-width:0}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.cards{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:16px;display:grid}@media (width>=720px){:root{--gutter:28px}.topbar,.scrim{display:none}.shell{grid-template-columns:84px minmax(0,1fr);display:grid}.side{visibility:visible;width:auto;height:100dvh;box-shadow:none;align-items:stretch;padding:16px 8px;transition:none;position:sticky;top:0;transform:none}.side>.brand{justify-content:center;padding:4px 0;display:flex}.side>.brand div{display:none}.nav{text-align:center;flex-direction:column;justify-content:center;gap:4px;min-height:58px;padding:6px 4px;font-size:11px}.nav-label{line-height:1.15}.whoami{background:0 0;border:0;padding:6px}.whoami-name{display:none}.whoami .btn{flex-direction:column;gap:2px;min-height:52px;padding:4px;font-size:11px}.main{gap:22px;padding-top:28px}.head h1{font-size:28px}.tiles{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}}@media (width>=1100px){.shell{grid-template-columns:240px minmax(0,1fr)}.side{gap:24px;padding:20px 14px}.side>.brand{justify-content:flex-start;padding:4px 10px}.side>.brand div{display:block}.nav{text-align:left;flex-direction:row;justify-content:flex-start;gap:12px;min-height:44px;padding:0 14px;font-size:14px}.whoami{background:var(--panel);border:1px solid var(--line);padding:12px}.whoami-name{display:inline}.whoami .btn{min-height:var(--control);flex-direction:row;gap:8px;padding:0 14px;font-size:13px}.main{padding:28px 36px 48px}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-width:0}.panel-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;min-height:52px;padding:8px 16px;display:flex}.panel-head h2{letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);font-size:12px;font-weight:700}.panel-head h2.mono{letter-spacing:0;text-transform:none;color:var(--text);font-size:15px}.panel-body{flex-direction:column;gap:14px;padding:16px;display:flex}.stack-col{flex-direction:column;gap:16px;min-width:0;display:flex}.grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width>=1400px){.grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:1/-1}}.strip{background:var(--panel);border:1px solid var(--line);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.strip>div{border-top:1px solid var(--line);min-width:0;padding:14px 18px 16px}.strip>div:nth-child(-n+2){border-top:0}.strip>div:nth-child(2n){border-left:1px solid var(--line)}.strip dt{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.strip dd{margin:0}.strip dd:not(.strip-hint){font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:4px;font-size:34px;font-weight:700;line-height:1.05}.strip dd small{color:var(--muted);letter-spacing:0;font-size:17px;font-weight:500}.strip .strip-hint{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:12px}@media (width>=720px){.strip{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.strip>div{border-top:0;border-left:1px solid var(--line)}.strip>div:first-child{border-left:0}.strip dd:not(.strip-hint){font-size:44px}.strip dd small{font-size:20px}}.num{font-variant-numeric:tabular-nums;display:inline-block;position:relative}.num.ticked:after{content:"";background:var(--accent);transform-origin:0;border-radius:2px;height:2px;animation:1.6s cubic-bezier(.16,1,.3,1) forwards tick;position:absolute;bottom:-2px;left:-1px;right:-1px}@keyframes tick{0%{opacity:1;transform:scaleX(0)}25%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}.fill{background:var(--line);border-radius:1px;width:100%;min-width:64px;height:6px;display:block;overflow:hidden}.fill i{background:var(--accent);height:100%;display:block}.fill.high i{background:var(--warn)}.fill.full i{background:var(--bad)}.board{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));margin:0;padding:0;list-style:none;display:grid}.board>li{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);min-width:0}.board-cell{height:100%;color:var(--text);flex-direction:column;gap:8px;padding:14px 16px;text-decoration:none;display:flex}.board-cell:hover{background:#142236}.board-top{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.board-top strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board-figure{font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;line-height:1}.board-figure small{color:var(--muted);font-size:15px;font-weight:500}.log-list{margin:0;padding:0;list-style:none}.log-list li{border-bottom:1px solid var(--line-soft);overflow-wrap:anywhere;grid-template-columns:52px minmax(0,1fr);gap:12px;padding:10px 16px;display:grid}.log-list li:last-child{border-bottom:0}.log-list time{color:var(--muted);padding-top:1px;font-size:12px}.log-list.plain li{grid-template-columns:minmax(0,1fr) auto;align-items:center}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.row-link{color:var(--text);font-weight:700;text-decoration:none}.row-link:hover{color:var(--accent-hi);text-decoration:underline}.players-cell{min-width:150px}.players-cell .n{margin-bottom:6px;display:block}.tile{flex-direction:column;gap:6px;min-width:0;padding:16px;display:flex}.tile .value{font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1.1}.tile .value small{color:var(--muted);font-size:16px;font-weight:500}.tile>.muted:last-child{overflow-wrap:anywhere;font-size:13px}.scroll-x{overflow-x:auto;container-type:inline-size}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:600}td{border-bottom:1px solid var(--line-soft);white-space:nowrap;padding:12px 14px}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#121f30}th.n,td.n{text-align:right}td.actions{width:1%}td.n{font-size:15px;font-weight:600}tfoot td{color:var(--text);background:#0d1622;border-top:4px double #3d5a80;border-bottom:0;font-weight:700}tfoot td:first-child{letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);font-size:12px}.player-link{color:var(--text);font-weight:700;text-decoration:none}.player-link:hover{text-decoration:underline}.grant{border-top:1px solid var(--line-soft);align-items:flex-end;padding:14px 16px}.player{align-items:center;gap:12px;min-width:0;display:flex}.player-head{image-rendering:pixelated;background:#1a2638;border-radius:4px;flex:none}.player-head-fallback{color:var(--muted);background:#1a2638;border-radius:4px;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}td.actions>div{justify-content:flex-end;gap:8px;display:flex}.sub{color:var(--muted);font-size:12px;display:block}.empty{color:var(--muted);margin:0;padding:24px 18px}@container (width<=800px){table.stack thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}table.stack,table.stack tbody,table.stack tfoot{display:block}table.stack tfoot tr{background:#0d1622;border-top:4px double #3d5a80}table.stack tfoot td{background:0 0;border:0}table.stack tfoot td:empty{display:none}table.stack td.n{text-align:left}table.stack tr{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 16px;padding:14px 16px;display:grid}table.stack tr:last-child{border-bottom:0}table.stack td{white-space:normal;overflow-wrap:anywhere;border:0;min-width:0;padding:0;display:block}table.stack td:first-child,table.stack td.cell-wide,table.stack td.actions{grid-column:1/-1}table.stack td[data-label]:not(:first-child):before,table.stack td.cell-wide:before{content:attr(data-label);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-size:11px;font-weight:600;display:block}table.stack td.actions>div{flex-wrap:wrap;justify-content:stretch}table.stack td.actions>div>*,table.stack td.actions>.btn:not(.icon-btn){flex:120px}table.stack td.actions:has(>.icon-btn){grid-column:auto;place-self:end}table.stack .field{width:100%}.edit-table.stack td:first-child,.edit-table.stack th:first-child{padding-left:0}}.badge{letter-spacing:.03em;color:var(--text-2);background:#1a2638;border-radius:999px;align-items:center;gap:6px;padding:4px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.badge.ok,.badge.ONLINE{color:var(--ok);background:#123126}.badge.STARTING,.badge.PREPARING{color:var(--accent-hi);background:#132a40}.badge.warn,.badge.STOPPING{color:var(--warn);background:#36270f}.badge.CRASHED{color:var(--bad);background:#2e161b}.tag{color:#a7b6c8;white-space:nowrap;background:#1a2638;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:600}.tag.INGAME{color:var(--warn);background:#36270f}.tag.END{color:#d9a6e6;background:#2a1a2e}.bar{background:var(--line);border-radius:999px;height:6px;overflow:hidden}.bar i{background:var(--accent);border-radius:999px;height:100%;display:block}.notice{overflow-wrap:anywhere;background:#132a40;border:1px solid #23476b;border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;padding:12px 16px;display:flex}.notice>span{flex:220px}.notice.error{background:#2a1519;border-color:#5a2a33}.notice.warn{color:#f7d3a6;background:#2b2111;border-color:#5a4320}.btn{min-height:var(--control);cursor:pointer;color:var(--text);white-space:nowrap;touch-action:manipulation;background:#16233a;border:1px solid #2a3b55;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:13px;font-weight:600;text-decoration:none;transition:background-color .12s ease-out;display:inline-flex}.btn:hover{background:#1c2d49}.btn:active:not(:disabled){background:#22365a}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--bg)}.btn.primary:hover{background:var(--accent-hi)}.btn.danger{color:var(--bad);background:#24141a;border-color:#4a2630}.btn.danger:hover{background:#311a22}.icon-btn{width:var(--control);padding:0}.pill{min-height:var(--control);color:#a7b6c8;cursor:pointer;white-space:nowrap;touch-action:manipulation;background:0 0;border:1px solid #2a3b55;border-radius:999px;padding:0 14px;font-size:13px;font-weight:600}.pill[aria-pressed=true]{background:var(--text);border-color:var(--text);color:var(--bg)}.field{min-height:var(--control);background:#0e1724;border:1px solid #2a3b55;border-radius:8px;min-width:0;max-width:100%;padding:0 12px;font-size:13px}.field::placeholder{color:#7d8ea3}.field.mono::placeholder{font-family:IBM Plex Sans,system-ui,-apple-system,Segoe UI,sans-serif}select.field{padding-right:8px}.w-xs{width:76px}.w-s{width:120px}.w-m{width:220px}.w-l{width:260px}.switch{flex:none;width:44px;height:26px;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:-9px}.switch span{pointer-events:none;background:#2a3b55;border-radius:999px;transition:background .15s;position:absolute;inset:0}.switch span:after{content:"";background:var(--text);border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch input:checked+span{background:#f0a24b}.switch input:checked+span:after{transform:translate(18px)}.switch input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.setting{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.setting:last-child{border-bottom:0}.setting label{font-weight:600}@media (pointer:coarse){:root{--control:44px}.field{font-size:16px}.check{min-height:44px}}@media (width<=719px){.main form.row,.main .panel.row{align-items:stretch}.main form.row>.field,.main form.row>.btn,.main .panel.row>.btn,.main form.row>label:not(.form-field){flex:100%}.w-m,.w-l{flex:100%;width:100%}.w-s{flex:110px}.w-xs{flex:0 0 88px}.grant .form-field{flex:100%!important}.grant .form-field .field{width:100%}.grant>.btn{flex:100%}.row>input[type=search]{flex:160px}.panel-head>.row{width:100%}.panel-head>.row>input[type=search]{flex:140px}.setting{flex-wrap:wrap}.pills{width:calc(100% + 2 * var(--gutter));scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);flex-wrap:nowrap;overflow-x:auto}.pills::-webkit-scrollbar{display:none}.pills>.pill{flex:none}}.mc-entry{width:fit-content;font-family:var(--mono);white-space:pre;background:#0d0d0d;border:1px solid #2b2b2b;border-radius:4px;gap:10px;margin:0;padding:6px;font-size:16px;line-height:22px;display:flex;position:relative}.mc-icon{background:linear-gradient(135deg,#3b5f86,#1b2c40);border-radius:2px;flex:none;width:64px;height:64px}.mc-body{flex-direction:column;flex:none;display:flex}.mc-top{justify-content:space-between;gap:12px;display:flex}.mc-lines{position:relative}.mc-line{min-height:20px;overflow:hidden}.mc-center{pointer-events:none;border-left:1px dashed #ffffff30;position:absolute;top:0;bottom:0}.mc-glyph{text-align:center;display:inline-block;overflow:visible}.mc-label{color:#5c5c5c;font-family:inherit;font-size:11px;position:absolute;bottom:4px;right:8px}.mc-obf{filter:blur(3px)}.logs{flex-direction:column;gap:12px;display:flex}.picker{scrollbar-width:thin;gap:4px;padding:6px;display:flex;overflow-x:auto}.pick{min-height:44px;color:var(--text-2);white-space:nowrap;border-radius:8px;flex:none;justify-content:space-between;align-items:center;gap:10px;padding:0 12px;text-decoration:none;display:flex}.pick:hover{background:#16233a}.pick[aria-current=page]{color:var(--text);background:#1a2c47}.console{flex-direction:column;min-width:0;display:flex}.console-bar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.console-bar>.row:last-child{flex:280px;justify-content:flex-end}.console-bar input[type=search]{flex:140px;max-width:260px}.console-out{height:calc(100dvh - 300px);min-height:320px;font-family:var(--mono);color:var(--text-2);overscroll-behavior:contain;background:#080e16;border-radius:0 0 12px 12px;padding:12px 14px;font-size:12px;line-height:1.55;overflow-y:auto}.logline{white-space:pre-wrap;word-break:break-word}.logline.WARN{color:var(--warn)}.logline.ERROR{color:var(--bad)}.logline.meta{color:var(--muted);font-style:italic}@media (width>=960px){.logs{flex-direction:row;align-items:flex-start;gap:16px}.picker{flex-direction:column;flex:0 0 240px;max-height:calc(100dvh - 32px);position:sticky;top:16px;overflow:visible auto}.console{flex:auto}.console-out{height:min(68vh,760px);padding:14px 16px;font-size:13px}}.login{place-items:center;min-height:100dvh;padding:16px;display:grid}.login form{flex-direction:column;gap:14px;width:min(380px,100%);padding:28px;display:flex}.login label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.login .field{min-height:44px;color:var(--text);font-size:16px}.login .btn{min-height:44px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px 18px;display:grid}.form-field{flex-direction:column;gap:6px;min-width:0;display:flex}.form-field>span:first-child{font-size:13px;font-weight:600}.check{cursor:pointer;border:1px solid #2a3b55;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.edit-table td{padding:6px 8px}.edit-table td:first-child,.edit-table th:first-child{padding-left:18px}.field[aria-invalid=true]{border-color:var(--bad)}textarea.field.yaml{resize:vertical;tab-size:2;background:#080e16;width:100%;padding:12px 14px;line-height:1.55}.prefix{font-family:var(--mono);overflow-wrap:anywhere;background:#080e16;border-radius:8px;padding:10px 12px;font-size:13px}dl.facts{grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:0;font-size:13px;display:grid}dl.facts dt{color:var(--muted)}dl.facts dd{overflow-wrap:anywhere;margin:0}@keyframes fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.side,.side[data-open=true],.scrim{transition:none;animation:none}.num.ticked:after{opacity:0;animation:none}}@media (width<=719px){.main form.start-form{grid-template-columns:minmax(0,1fr) 96px;gap:6px 8px;width:100%;display:grid;padding:12px!important}.start-form>label{font-size:12px;padding:0!important}.start-form>:first-child{grid-area:1/1}.start-form>:nth-child(2){grid-area:2/1}.start-form>:nth-child(3){grid-area:1/2}.start-form>:nth-child(4){grid-area:2/2;width:100%}.start-form>:nth-child(5){grid-area:3/1/4/3;margin-top:4px}}.settings-grid{grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));display:grid}.settings-grid>.setting{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:14px 16px}.sheet-total{background:#0d1622;border-top:4px double #3d5a80;justify-content:space-between;gap:12px;margin:0;padding:12px 16px;font-weight:700;display:flex}.sheet-total>span:first-child{letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);font-size:12px}@media (width>=1400px){.grid>.sheet-fill{flex-direction:column;align-self:stretch;display:flex}.sheet-fill>.scroll-fill{contain:size;flex:1 1 0;min-height:0;overflow-y:auto}.sticky-sheet{position:sticky;top:16px}}
