:root{--font-mono:"SFMono-Regular", "JetBrains Mono", Consolas, monospace;--font-sans:-apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-base:14px;--line-height-base:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius:8px;--radius-sm:5px}:root,:root[data-theme=dark]{--bg:#0e1116;--bg-raised:#151a21;--bg-overlay:#1b212b;--bg-inset:#0a0d11;--border:#2a3240;--border-subtle:#1f2630;--text:#d7dee8;--text-dim:#8b97a8;--text-faint:#79899e;--accent:#4d9fff;--accent-dim:#2b5e9e;--green:#3fcf6e;--amber:#f0b429;--red:#f25555;--purple:#b07aff;--pill-running-fg:var(--green);--pill-running-border:#3fcf6e59;--pill-running-bg:#3fcf6e14;--pill-transition-fg:var(--amber);--pill-transition-border:#f0b42959;--pill-transition-bg:#f0b42914;--pill-crashed-fg:var(--red);--pill-crashed-border:#f2555566;--pill-crashed-bg:#f2555514;--pill-stopped-fg:var(--text-faint);--pill-unknown-fg:var(--purple);--pill-unknown-border:#b07aff59}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);margin:0;padding:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{margin:0 0 var(--space-3);font-weight:600}h1{font-size:20px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}h2{font-size:16px}h3{font-size:var(--font-size-base);color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.shell{min-height:100vh;display:flex}.sidebar{background:var(--bg-raised);border-right:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;width:220px;height:100vh;display:flex;position:sticky;top:0}.sidebar .brand{color:var(--text);align-items:center;gap:9px;padding:16px 16px 12px;font-size:15px;font-weight:700;display:flex}.sidebar a.brand:hover{color:var(--text);text-decoration:none}.sidebar a.brand:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.brand .cube{background:linear-gradient(135deg,#46a55c 0 50%,#6e4f30 50% 100%);border-radius:5px;width:22px;height:22px;box-shadow:inset 0 0 0 1px #ffffff26}.nav-group{padding:10px 8px 2px}.nav-group .nav-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);padding:4px 10px;font-size:11px}.nav-item{border-radius:var(--radius-sm);color:var(--text-dim);align-items:center;gap:8px;margin:1px 0;padding:7px 10px;display:flex}.nav-item:hover{background:var(--bg-overlay);color:var(--text);text-decoration:none}.nav-item.active{background:var(--bg-overlay);color:var(--text);box-shadow:inset 2px 0 0 var(--accent)}.nav-item .ico{text-align:center;opacity:.8;width:16px}@media (width<=900px){.sidebar{width:auto}.brand .label,.nav-group .nav-label,.nav-hint,.nav-item .label{display:none}.sidebar .brand,.nav-item{justify-content:center}}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--bg-raised);border-bottom:1px solid var(--border-subtle);z-index:20;flex-shrink:0;align-items:center;gap:14px;height:52px;padding:0 20px;display:flex;position:sticky;top:0}.community-switcher{background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:inherit;font-weight:600;font-size:inherit;text-overflow:ellipsis;align-items:center;gap:8px;min-width:0;max-width:100%;padding:5px 12px;display:flex;overflow:hidden}select.community-switcher{cursor:pointer}.community-switcher.no-community{color:var(--text-faint);white-space:nowrap;font-weight:400}.lang-switcher{flex-shrink:0;margin-right:12px}.nav-hint{color:var(--text-faint);padding:7px 10px;font-size:13px}.topbar .spacer{flex:1}.user-menu{border-radius:var(--radius-sm);color:var(--text);flex-shrink:0;align-items:center;gap:8px;padding:4px 8px;display:flex}.user-menu:hover{background:var(--bg-overlay);text-decoration:none}.user-menu .label{white-space:nowrap}.avatar{background:var(--accent-dim);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:flex}@media (width<=900px){.topbar{gap:8px}.lang-switcher{margin-right:0}.user-menu .label{display:none}}.content{width:100%;max-width:1280px;margin:0 auto;padding:24px}.page-head{align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-head .sub{color:var(--text-dim);margin-top:2px;font-size:13px}.page-head .actions{flex-shrink:0;gap:8px;margin-left:auto;display:flex}.btn{font:inherit;color:var(--text);background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:600;display:inline-flex}.btn:hover{border-color:var(--text-faint)}.btn.primary{background:var(--accent-dim);border-color:var(--accent-dim)}.btn.primary:hover{background:#356fb4}.btn.danger{background:#5c1f1f;border-color:#7a2c2c}.btn.danger:hover{background:#712727}.btn.ghost{background:0 0}.btn:disabled{opacity:.45;cursor:not-allowed}.card{background:var(--bg-raised);border:1px solid var(--border-subtle);border-radius:var(--radius);padding:16px}table.data thead th{position:relative}.col-resize-handle{cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;z-index:1;width:7px;height:100%;position:absolute;top:0;right:-3px}.col-resize-handle:after{content:"";background:0 0;width:2px;height:50%;position:absolute;top:25%;left:50%;transform:translate(-50%)}.col-resize-handle:hover:after{background:var(--accent-dim)}body.col-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.audit table.data td[title],.backups table.data td[title],.admin-communities table.data td.mono{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.grid{gap:var(--space-4);display:grid}.grid.cols-2{grid-template-columns:repeat(2,1fr)}@media (width<=900px){.grid.cols-2{grid-template-columns:1fr}}.server-card{flex-direction:column;gap:10px;display:flex}.server-card .head{align-items:center;gap:10px;display:flex}.server-card .name{font-size:15px;font-weight:700}.server-card .name a{color:var(--text);text-decoration:none}.server-card .name a:hover{text-decoration:underline}.server-card .meta{flex-wrap:wrap;gap:6px;display:flex}.server-card .foot{border-top:1px solid var(--border-subtle);align-items:center;gap:8px;margin-top:2px;padding-top:10px;display:flex}.server-card .foot .right{color:var(--text-faint);margin-left:auto;font-size:11px}.view-toggle{border:0;min-width:0;margin:0;padding:0;display:inline-flex}.view-toggle .btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.view-toggle .btn:last-child{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.view-toggle .btn[aria-pressed=true]{background:var(--accent-dim);border-color:var(--accent-dim);color:var(--text)}.dashboard-table table.data{border-collapse:collapse;width:100%;font-size:13px}.dashboard-table table.data th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border-subtle);padding:8px 12px;font-weight:600}.dashboard-table table.data td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;padding:8px 12px}.dashboard-table table.data td.num{font-variant-numeric:tabular-nums}.dashboard-table table.data td.dim{color:var(--text-dim)}.dashboard-table table.data td.dim[title]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dashboard-table table.data td .copyable{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dashboard-table .row-actions{gap:6px;display:flex}.btn.sm{padding:3px 10px;font-size:12px}.btn.success{color:var(--green);border-color:#3fcf6e66}.btn.success:hover:not(:disabled){border-color:var(--green)}.badge{background:var(--bg-overlay);border:1px solid var(--border);color:var(--text-dim);border-radius:4px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.badge.type{color:var(--accent);border-color:#4d9fff4d}.badge.health-quarantined{color:var(--red);background:#f2555514;border-color:#f2555566}.badge.health-unknown{color:var(--text-faint)}.badge.copyable{cursor:pointer;font-family:inherit}.pill{background:var(--bg-overlay);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.pill.running{color:var(--pill-running-fg);border-color:var(--pill-running-border);background:var(--pill-running-bg)}.pill.starting,.pill.stopping,.pill.restarting{color:var(--pill-transition-fg);border-color:var(--pill-transition-border);background:var(--pill-transition-bg)}.pill.crashed{color:var(--pill-crashed-fg);border-color:var(--pill-crashed-border);background:var(--pill-crashed-bg)}.pill.stopped{color:var(--pill-stopped-fg)}.pill.unknown{color:var(--pill-unknown-fg);border-color:var(--pill-unknown-border);background:repeating-linear-gradient(45deg,#b07aff1a,#b07aff1a 4px,#0000 4px 8px)}.pill.live-degraded{color:var(--pill-transition-fg);border-color:var(--pill-transition-border);background:var(--pill-transition-bg);flex-shrink:0;margin-left:auto}.pill.blink:before{animation:1.1s ease-in-out infinite pill-blink}@keyframes pill-blink{50%{opacity:.25}}.empty{text-align:center;color:var(--text-dim);padding:48px 20px}.empty .big{color:var(--text);margin-bottom:8px;font-size:20px;font-weight:700}.empty .sub{margin-bottom:16px}.field{color:var(--text-dim);flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.field input{font:inherit;color:var(--text);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}.field input:focus{border-color:var(--accent);outline:none}.password-input{display:flex;position:relative}.password-input input{flex:1;padding-right:38px}.password-toggle{width:36px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:0;bottom:0;right:0}.password-toggle:hover{color:var(--text)}.password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius-sm)}.auth-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{width:360px;max-width:92vw}.auth-card .brand{align-items:center;gap:9px;margin-bottom:18px;font-size:16px;font-weight:700;display:flex}.auth-card .alt{color:var(--text-dim);margin-top:14px;font-size:13px}.auth-card .notice{border:1px solid var(--accent-dim);border-radius:var(--radius-sm);color:var(--accent);background:#4d9fff14;margin-bottom:14px;padding:8px 12px;font-size:13px}.auth-submit{justify-content:center;width:100%}.field .hint{color:var(--text-faint);font-size:12px}.field .error,.restore-damaged-warning{color:var(--red);font-size:12px}.restore-ack-row{align-items:center;gap:6px;display:flex}.modal-layer{z-index:50;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-backdrop{cursor:default;background:#0000008c;border:0;padding:0;position:fixed;inset:0}.modal{width:440px;max-width:92vw;padding:20px;position:relative;box-shadow:0 12px 40px #00000080}.modal .modal-foot{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.toast-zone{z-index:60;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:18px;right:18px}.toast{background:var(--bg-overlay);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);align-items:center;gap:12px;min-width:240px;padding:10px 14px;font-size:13px;display:flex;box-shadow:0 6px 20px #0006}.toast-message{flex:1}.toast-dismiss{font:inherit;color:var(--text-faint);cursor:pointer;background:0 0;border:0;padding:0;font-size:16px;line-height:1}.toast-dismiss:hover{color:var(--text)}.toast.error{border-left-color:var(--red)}.toast.success{border-left-color:var(--green)}.account{max-width:680px}.account .card{margin-bottom:14px}.account .card h2{margin:0 0 12px;font-size:15px}.account .form-row{gap:12px;max-width:520px;display:flex}.account .form-row .field{flex:1}.account .field-error{color:var(--red);font-size:12px}.account .field-hint{color:var(--text-faint);font-size:12px}.account table.data{border-collapse:collapse;width:100%;font-size:13px}.account table.data th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border-subtle);padding:6px 8px;font-weight:600}.account table.data td{border-bottom:1px solid var(--border-subtle);padding:6px 8px}.account .danger-zone .row{align-items:center;gap:16px;display:flex}.account .danger-zone .row .desc{color:var(--text-dim);margin-top:4px;font-size:13px}.account .danger-zone .row .btn{flex-shrink:0;margin-left:auto}.breadcrumbs{color:var(--text-dim);margin-bottom:4px;font-size:12px}.detail-title{margin:0 0 var(--space-3);align-items:center;gap:12px;display:flex}.detail-title .detail-name{margin:0}.crash-detail{color:var(--pill-crashed-fg);margin-top:calc(-1 * var(--space-2));margin-bottom:var(--space-2);font-size:12px}.crash-detail-label{font-weight:600}.pill.settling{font-size:11px}.tabs{border-bottom:1px solid var(--border-subtle);gap:4px;margin-bottom:16px;display:flex}.tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 12px;font-size:13px}.tab.active{color:var(--text);border-bottom-color:var(--accent,var(--green))}.stop-control{display:inline-flex;position:relative}.stop-menu{background:var(--surface,#1b1f27);border:1px solid var(--border-subtle);z-index:10;border-radius:6px;flex-direction:column;gap:2px;margin-top:4px;padding:4px;display:flex;position:absolute;top:100%;left:0}.settings .form-card{max-width:640px;margin-bottom:14px}.settings .form-row{gap:12px;display:flex}.settings .form-row .field{flex:1}.settings .field-hint,.settings .field-hint.ok{color:var(--text-faint);font-size:12px}.settings .field-hint.ok{color:var(--green)}.settings .field-error{color:var(--red);font-size:12px}.wizard-steps{gap:8px;margin-bottom:14px;font-size:13px;display:flex}.wizard-steps .step{color:var(--text-faint)}.wizard-steps .step.active{color:var(--accent);font-weight:600}.wizard-steps .step.done{color:var(--green)}.type-cards{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:14px;display:grid}.type-card{font:inherit;text-align:left;background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);padding:10px 12px}.type-card.selected{border-color:var(--accent)}.type-card.disabled{opacity:.5;cursor:not-allowed}.type-card .t-name{font-weight:600}.type-card .t-sub{color:var(--text-dim);font-size:12px}.field select{font:inherit;color:var(--text);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}.field .checkbox{color:var(--text);flex-direction:row;align-items:center;gap:8px}.field .hint.ok{color:var(--green)}.field .hint.warn{color:var(--amber)}.prop-row,.config-editor .config-row{gap:8px;margin-bottom:6px;display:flex}.config-editor .config-row input{flex:1}.settings .danger-zone{max-width:640px}.settings .danger-zone .row{align-items:center;gap:16px;margin-top:12px;display:flex}.settings .danger-zone .row .desc{color:var(--text-dim);margin-top:4px;font-size:13px}.settings .danger-zone .row .btn{flex-shrink:0;margin-left:auto}.kv{grid-template-columns:max-content 1fr;gap:4px 16px;font-size:13px;display:grid}.kv dt{color:var(--text-dim)}.prop-row input{font:inherit;color:var(--text);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;padding:8px 10px}.wizard-foot{gap:8px;margin-top:14px;display:flex}.metrics-strip{gap:24px;margin-bottom:14px;display:flex}.metrics-strip-empty p{margin:0}.metrics-strip .metric{color:var(--accent);flex-direction:column;gap:2px;display:flex}.metric-label{color:var(--text-dim);font-size:12px}.metric-value{color:var(--text);font-size:18px;font-weight:600}.metric-unit{color:var(--text-dim);font-size:12px;font-weight:400}.sparkline{display:block}.log-tail{margin-bottom:14px}.log-tail-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.log-tail-title{font-size:14px;font-weight:600}.log-view{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;max-height:240px;font-size:12px;line-height:1.5;overflow-y:auto}.console-stream .log-view{max-height:420px}.log-line.stdout{color:var(--text)}.log-line.stderr{color:var(--red)}.log-line.command{color:var(--accent)}.log-line.output{color:var(--text-dim)}.log-gap{color:var(--amber);text-align:center;padding:2px 0;font-size:11px}.console-toolbar{align-items:center;gap:12px;margin-bottom:8px;display:flex}.console-follow{color:var(--text-dim);align-items:center;gap:6px;font-size:13px;display:inline-flex}.console-filter{font:inherit;color:var(--text);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;padding:6px 10px}.console-input{gap:8px;margin-top:8px;display:flex}.console-input input{font:var(--font-mono);color:var(--text);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;padding:8px 10px}.backups-stats{margin-bottom:14px}.backups-toolbar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.backups-schedule{color:var(--text-dim);align-items:center;gap:8px;margin-left:auto;font-size:13px;display:flex}.backups-schedule .field-inline{align-items:center;gap:6px;display:flex}.backups-schedule input{width:60px;font:inherit;color:var(--text);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 6px}.backups-table{padding:0}.backups-table table.data{border-collapse:collapse;width:100%;font-size:13px}.backups-table table.data th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border-subtle);padding:8px 12px;font-weight:600}.backups-table table.data td{border-bottom:1px solid var(--border-subtle);padding:8px 12px}.backups-table table.data td.num{font:var(--font-mono)}.backups-table .row-actions{justify-content:flex-end;gap:6px;display:flex}.files .notice{border-radius:var(--radius-sm);border:1px solid var(--border);margin-bottom:12px;padding:8px 12px;font-size:13px}.files .notice.info{color:var(--accent);border-color:var(--accent-dim);background:#4d9fff14}.files .notice.warn{color:var(--amber);border-color:var(--pill-transition-border);background:var(--pill-transition-bg)}.files-toolbar{align-items:center;gap:12px;margin-bottom:10px;display:flex}.files-extract{align-items:center;gap:6px;font-size:13px;display:flex}.file-upload{cursor:pointer}.file-picker{align-items:center;gap:10px;display:flex}.file-picker label{cursor:pointer}.file-picker-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-picker-input:focus-visible+.btn{outline:2px solid var(--accent);outline-offset:2px}.file-picker-name{color:var(--text-dim);font-size:13px}.file-crumbs{color:var(--text-dim);margin-bottom:10px;font-size:13px}.file-crumbs .crumb{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.file-layout{grid-template-columns:minmax(300px,1fr) minmax(0,1.4fr);gap:14px;display:grid}.file-list{margin:0;padding:0;list-style:none}.file-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.file-row.active{color:var(--accent)}.file-name{color:inherit;cursor:pointer;font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;min-width:0;overflow:hidden}.file-actions{flex-shrink:0;gap:4px;display:flex}.file-viewer-head{align-items:center;gap:8px;margin-bottom:8px;display:flex}.file-viewer-head .path{font-family:var(--font-mono);overflow-wrap:anywhere;min-width:0;font-size:13px}.file-viewer-actions{gap:6px;margin-left:auto;display:flex}.file-editor{width:100%;min-height:360px;font-family:var(--font-mono);color:var(--text);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;padding:10px;font-size:12px}.files-search{margin-bottom:10px}.files-search-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.files-search-input{min-width:200px;font:inherit;color:var(--text);background:var(--bg-inset);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;padding:8px 10px}.files-search-input:focus{border-color:var(--accent);outline:none}.files-search-by{align-items:center;gap:4px;font-size:13px;display:flex}.files-search-results{margin:8px 0 0;padding:0;list-style:none}.files-search-hit{color:var(--accent);cursor:pointer;font-family:var(--font-mono);text-align:left;background:0 0;border:none;padding:2px 0;font-size:13px}.files-history-list{margin:0;padding:0;list-style:none}.files-history-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.files-history-id{font-family:var(--font-mono);word-break:break-all;font-size:12px}.players .card+.card{margin-top:12px}.players .group-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.players .group-row{align-items:center;gap:10px;padding:6px 0;display:flex}.players .group-name{font-weight:600}.players .group-members{margin-left:auto}.badge.kind.op{color:var(--accent);border-color:#4d9fff4d}.badge.kind.whitelist{color:var(--text-dim)}.audit .audit-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.audit table.data{border-collapse:collapse;width:100%;font-size:13px}.audit table.data th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border-subtle);padding:6px 8px;font-weight:600}.audit table.data td{border-bottom:1px solid var(--border-subtle);padding:6px 8px}.audit .audit-paging{gap:8px;margin-top:12px;display:flex}.roles-actions{justify-content:flex-end;gap:8px;display:flex}.roles-actions .btn+.btn{margin-left:0}.roles-matrix{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:6px;display:grid}.roles-matrix .field-label{color:var(--text-dim);grid-column:1/-1;font-size:13px}.roles-family{border:1px solid var(--border-subtle);border-radius:6px;flex-direction:column;gap:4px;margin:0;padding:8px 12px 10px;display:flex}.roles-family legend{padding:0 4px;font-weight:600}.roles-family legend label,.roles-perm{align-items:center;gap:6px;display:flex}.roles-perm{color:var(--text-dim);font-size:13px}.grants .grants-filter{max-width:280px;margin-bottom:12px}.grants-codes{border:1px solid var(--border-subtle);border-radius:6px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.grants-codes legend{color:var(--text-dim);padding:0 4px;font-size:12px}.grants-codes .checkbox{font-family:var(--font-mono);align-items:center;gap:6px;font-size:13px;display:flex}.groups .group-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.groups .group-row{align-items:center;gap:10px;padding:6px 0;display:flex}.groups .group-name{font-weight:600}.groups .group-members{margin-left:auto}.groups .group-detail{flex-direction:column;gap:12px;margin:8px 0 12px;display:flex}.groups .player-list,.groups .server-list{flex-direction:column;gap:6px;margin:0 0 12px;padding:0;list-style:none;display:flex}.groups .player-row,.groups .server-row{align-items:center;gap:10px;display:flex}.groups .player-name,.groups .server-name{font-weight:600}.groups .player-uuid{font-family:var(--font-mono);word-break:break-all;margin-right:auto;font-size:12px}.groups .server-row .server-name{margin-right:auto}.groups .group-add-player{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.grid.cols-4{grid-template-columns:repeat(4,1fr)}@media (width<=900px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}}.admin-overview .metric-tiles{margin-bottom:14px}.metric-tile .label{color:var(--text-dim);font-size:12px}.metric-tile .value{color:var(--text);margin:4px 0;font-size:24px;font-weight:700}.metric-tile .value .unit{color:var(--text-dim);font-size:13px;font-weight:400}.metric-tile .hint{color:var(--text-faint);font-size:11px}.admin-overview table.data td.num{font-variant-numeric:tabular-nums}.admin-communities table.data td.mono{font-family:var(--font-mono,ui-monospace, monospace);color:var(--text-dim);font-size:12px}.admin-users table.data{border-collapse:collapse;width:100%;font-size:13px}.admin-users table.data th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border-subtle);padding:8px 12px;font-weight:600}.admin-users table.data td{border-bottom:1px solid var(--border-subtle);padding:8px 12px}.admin-users table.data td.dim{color:var(--text-dim)}.admin-users table.data td.dim[title]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-users table.data td.num{font-variant-numeric:tabular-nums}.admin-users .row-actions{justify-content:flex-end;gap:6px;display:flex}.admin-users .users-paging{align-items:center;gap:12px;margin-top:12px;display:flex}.admin-audit .audit-filters select{min-width:160px}.admin-versions .page-head h2{margin:0}.admin-versions .table-card{margin-bottom:14px;padding:0;overflow:hidden}.admin-versions table.data{border-collapse:collapse;width:100%;font-size:13px}.admin-versions table.data th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border-subtle);padding:8px 12px;font-weight:600}.admin-versions table.data td{border-bottom:1px solid var(--border-subtle);padding:8px 12px}.admin-versions table.data td.num{font-variant-numeric:tabular-nums}.admin-versions table.data .row-actions{text-align:right}.admin-versions .jar-pool{max-width:360px}.admin-versions .jar-pool-actions{margin-top:12px}.admin-versions .jar-pool .hint{color:var(--text-faint);margin-top:8px;font-size:12px}.admin-workers table.data{border-collapse:collapse;width:100%;font-size:13px}.admin-workers table.data th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border-subtle);padding:6px 8px;font-weight:600}.admin-workers table.data td{border-bottom:1px solid var(--border-subtle);padding:6px 8px}.admin-workers table.data td.num{font-variant-numeric:tabular-nums}.admin-workers table.data .badge+.badge{margin-left:4px}.admin-workers .row-actions{text-align:right;white-space:nowrap}.admin-workers .notice{border-radius:var(--radius-sm);border:1px solid var(--border);margin-top:14px;padding:8px 12px;font-size:13px}.admin-workers .notice.info{color:var(--accent);border-color:var(--accent-dim);background:#4d9fff14}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{background:var(--bg-overlay);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:12px;display:inline-flex}.chip-x{cursor:pointer;color:var(--text-faint);background:0 0;border:none;align-items:center;padding:0;font-weight:700;line-height:1;display:inline-flex}.chip-x:hover:not(:disabled){color:var(--red)}.chip-x:disabled{cursor:default;opacity:.5}.chip-assign{display:inline-flex;position:relative}.chip-menu{background:var(--bg-overlay);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);z-index:10;flex-direction:column;gap:2px;min-width:140px;margin-top:4px;padding:4px;display:flex;position:absolute;top:100%;left:0;box-shadow:0 6px 20px #0006}.chip-menu .sub{padding:4px 6px}.dashboard-filters{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.dashboard-filters .filter-search{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-overlay);color:var(--text);min-width:180px;padding:5px 10px;font-size:13px}.dashboard-filters .filter-states{border:0;flex-wrap:wrap;gap:6px;min-width:0;margin:0;padding:0;display:inline-flex}.dashboard-filters .filter-states .pill{cursor:pointer}.dashboard-filters .filter-states .pill.dim{opacity:.45}.dashboard-filters .filter-states .pill.dim:hover{opacity:.7}.dashboard-filters .sort-control{border:0;align-items:center;gap:6px;min-width:0;margin:0 0 0 auto;padding:0;display:inline-flex}.dashboard-filters .sort-label{color:var(--text-dim);font-size:12px}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable:hover{color:var(--text)}
