@import"https://fonts.googleapis.com/css2?family=Quicksand:wght@500;600;700&family=Hanken+Grotesk:wght@400;500;600;700&family=Pinyon+Script&display=swap";.friends-me{color:var(--text-muted);font-size:.9rem;margin:-4px 0 18px}.friends-add{display:flex;gap:10px;align-items:center;padding:14px 16px;margin-bottom:18px}.friends-add input{flex:1;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-input);color:var(--text);font:inherit}.friends-add input:focus{outline:none;border-color:var(--primary);background:var(--bg-card)}.friends-error{color:var(--danger);font-size:.86rem;font-weight:600;margin-bottom:14px}.friends-empty{color:var(--text-muted);text-align:center;padding:28px}.friends-list{list-style:none;display:flex;flex-direction:column;gap:10px}.friend-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px}.friend-main{display:flex;flex-direction:column;gap:4px;min-width:0}.friend-name{font-weight:700;color:var(--text)}.friend-email{font-size:.8rem;color:var(--text-muted)}.friend-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.friend-badge{font-size:.74rem;font-weight:600;padding:2px 9px;border-radius:999px;background:var(--accent-light);color:var(--accent-hover);white-space:nowrap}.friend-badge-none{background:transparent;color:var(--text-muted);font-style:italic;font-weight:500;padding-left:0}.friend-remove{flex-shrink:0;font-size:.8rem;color:var(--text-muted);border:1px solid var(--border);background:transparent}.friend-remove:hover{border-color:var(--danger);color:var(--danger)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #faf4ea;--bg-card: #fffdf8;--bg-hover: #f3e9d8;--bg-input: #f7eedd;--text: #33261c;--text-muted: #8a7563;--primary: #b9763f;--primary-hover: #a3652f;--primary-light: rgba(185, 118, 63, .12);--accent: #5fa888;--accent-hover: #4e9175;--accent-light: rgba(95, 168, 136, .12);--gold: #d9a55c;--gold-hover: #c4914a;--gold-light: rgba(217, 165, 92, .15);--success: #5fa888;--warning: #cf962f;--danger: #c0492b;--border: #ece0cd;--shadow: 0 2px 12px rgba(51, 38, 28, .07);--shadow-lg: 0 6px 28px rgba(51, 38, 28, .1);--font-display: "Quicksand", ui-rounded, "Segoe UI", system-ui, sans-serif;--font-body: "Hanken Grotesk", system-ui, "Segoe UI", sans-serif;--font-flourish: "Pinyon Script", cursive;--radius: 16px;--radius-sm: 10px;--radius-lg: 24px;--nav-height: 68px;--header-height: 56px;--sidebar-width: 220px;--transition: .22s ease;--transition-bounce: .35s cubic-bezier(.34, 1.56, .64, 1);--color-bg: var(--bg);--color-bg-elevated: var(--bg-card);--color-text: var(--text);--color-text-muted: var(--text-muted);--color-primary: var(--primary);--color-primary-hover: var(--primary-hover);--color-accent: var(--accent);--color-border: var(--border);--color-border-strong: var(--border);--color-danger: var(--danger);--color-success: var(--success);--shadow-sm: var(--shadow);--shadow-md: var(--shadow-lg);--top-header-height: var(--header-height);--bottom-nav-height: var(--nav-height)}body{font-family:var(--font-body),-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display)}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-hover)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes floatIcon{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(5deg)}}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.page{padding:24px 20px;max-width:900px;margin:0 auto;width:100%;animation:fadeInUp .35s ease both}.page h2{font-size:1.55rem;font-weight:800;margin-bottom:20px;letter-spacing:-.4px;color:var(--text)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-header h2{margin-bottom:0}.subtitle{color:var(--text-muted);margin-bottom:16px;font-size:.88rem;font-weight:500}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow);transition:box-shadow var(--transition)}.card:hover{box-shadow:var(--shadow-lg)}.card h3{font-size:1rem;margin-bottom:14px;color:var(--text);font-weight:700}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:.88rem;font-weight:700;cursor:pointer;border:1.5px solid var(--border);background:var(--bg-card);color:var(--text);transition:all var(--transition);font-family:inherit;text-decoration:none}.btn:hover{background:var(--bg-hover);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff;text-decoration:none}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff;text-decoration:none}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:#c0392b;border-color:#c0392b;color:#fff}.btn-success{background:var(--success);border-color:var(--success);color:#fff}.btn-success:hover{background:#219a52;border-color:#219a52;color:#fff}.btn-secondary{background:transparent;border-color:var(--border)}.btn-sm{padding:5px 12px;font-size:.8rem}.btn-icon{background:none;border:none;cursor:pointer;font-size:1.1rem;color:var(--text-muted);padding:4px 8px;border-radius:6px;transition:all var(--transition)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:.88rem}.table th{font-weight:700;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.5px}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;flex-shrink:0}.status-dot.running{background:var(--success);box-shadow:0 0 6px #27ae6080;animation:pulse 2s ease-in-out infinite}.status-dot.stopped{background:var(--danger)}.status-dot.starting,.status-dot.staging{background:var(--warning);animation:pulse 1s ease-in-out infinite}.status-dot.paused{background:var(--accent)}.status-dot.unknown{background:var(--text-muted)}.status-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:20px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.status-badge.running{background:#27ae601f;color:var(--success)}.status-badge.stopped{background:#e74c3c1f;color:var(--danger)}.status-badge.starting,.status-badge.staging{background:#f39c121f;color:var(--warning)}.status-badge.paused{background:#e67e221f;color:var(--accent)}.status-badge.unknown{background:#7f8c8d1f;color:var(--text-muted)}.server-grid{display:grid;grid-template-columns:1fr;gap:16px}.server-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);transition:box-shadow var(--transition),transform var(--transition);animation:fadeInUp .35s ease both;cursor:pointer;text-decoration:none;color:inherit;display:block}.server-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);text-decoration:none;color:inherit}.server-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.server-card-title{display:flex;align-items:center;gap:10px}.server-card-title h3{font-size:1.15rem;font-weight:800;color:var(--text);margin:0}.server-card-icon{font-size:1.5rem}.server-card-body{display:flex;flex-direction:column;gap:8px}.server-card-info{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-muted)}.server-card-info strong{color:var(--text)}.server-card-actions{display:flex;gap:8px;margin-top:16px}.server-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.server-card-checked{font-size:.75rem;color:var(--text-muted);font-weight:600}.log-viewer{background:#1e1e2e;color:#cdd6f4;font-family:Space Mono,monospace;font-size:.78rem;line-height:1.6;padding:16px;border-radius:var(--radius);overflow-x:auto;max-height:500px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.log-viewer::-webkit-scrollbar{width:8px;height:8px}.log-viewer::-webkit-scrollbar-track{background:#313244}.log-viewer::-webkit-scrollbar-thumb{background:#585b70;border-radius:4px}.log-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.log-toolbar select{background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:.82rem;font-family:inherit;cursor:pointer}.timeline{display:flex;flex-direction:column;gap:12px}.timeline-item{display:flex;gap:12px;padding:12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);animation:fadeInUp .3s ease both}.timeline-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;background:var(--primary-light);color:var(--primary)}.timeline-content{flex:1;min-width:0}.timeline-title{font-weight:700;font-size:.88rem;color:var(--text)}.timeline-meta{font-size:.78rem;color:var(--text-muted);margin-top:2px}.timeline-rel{opacity:.7}.timeline-detail{font-size:.78rem;color:var(--text-muted);margin-top:4px;word-break:break-word}.event-row-link{text-decoration:none;color:inherit;cursor:pointer;transition:border-color .12s,transform .12s}.event-row-link:hover{border-color:var(--primary);transform:translate(2px)}.event-row-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.event-detail-page .back-link{margin-bottom:16px;display:inline-block}.event-detail-header{display:flex;gap:16px;align-items:flex-start;padding:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:16px}.timeline-icon.large{width:48px;height:48px;font-size:1.4rem}.event-detail-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:6px;font-size:.85rem;color:var(--text-muted)}.event-type-chip{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem;padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elev)}.severity-badge{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:999px}.severity-badge.info{background:var(--primary-light);color:var(--primary)}.severity-badge.warn{background:#fdf2c7;color:#8a6a00}.severity-badge.error{background:#fde0e0;color:#a02a2a}.save-sync-chip{display:inline-block;margin-left:8px;font-size:.72rem;padding:1px 7px;border-radius:999px}.save-sync-chip.success{background:#d9f2e0;color:#1f7a44}.save-sync-chip.muted{background:var(--bg-elev);color:var(--text-muted)}.save-sync-chip.warn{background:#fde0e0;color:#a02a2a}.fleet-hero{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;padding:18px 20px;margin-bottom:16px;border:1px solid var(--border);border-left:4px solid var(--success);border-radius:var(--radius);background:var(--bg-card);box-shadow:var(--shadow)}.fleet-hero--alert{border-left-color:var(--danger);background:#fdf3f1}.fleet-hero-mark{font-size:1.05rem;line-height:1}.fleet-hero--safe .fleet-hero-mark{color:var(--success)}.fleet-hero--alert .fleet-hero-mark{color:var(--danger)}.fleet-hero-line{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--text)}.fleet-hero-sub{color:var(--text-muted);font-size:.9rem;font-weight:500}.fleet-card{padding:4px 0}.fleet-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);align-items:center;gap:12px;padding:12px 20px;color:var(--text);text-decoration:none;border-top:1px solid var(--border);transition:background var(--transition)}.fleet-row:first-child{border-top:0}.fleet-row:hover{background:var(--bg-hover);text-decoration:none}.fleet-row--head{border-top:0;padding:8px 20px;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.fleet-row--head:hover{background:transparent}.fleet-server{display:flex;align-items:center;min-width:0}.fleet-server-text{display:flex;flex-direction:column;min-width:0}.fleet-server-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fleet-server-game{font-size:.74rem;color:var(--text-muted)}.fleet-save .save-sync-chip{margin-left:0;font-size:.78rem;padding:3px 10px}.fleet-since{display:flex;align-items:center;gap:10px}.fleet-since-text{font-variant-numeric:tabular-nums;font-size:.82rem;color:var(--text-muted);white-space:nowrap}.freshness-meter{position:relative;width:56px;height:7px;border-radius:999px;background:var(--bg-elev);overflow:hidden;flex-shrink:0}.freshness-fill{position:absolute;inset:0 auto 0 0;border-radius:999px}.freshness-meter--safe .freshness-fill{width:100%;background:var(--success)}.freshness-meter--live .freshness-fill{width:60%;background:var(--primary)}.freshness-meter--pending .freshness-fill{width:50%;background:var(--warning)}.freshness-meter--alert .freshness-fill{width:100%;background:var(--danger);animation:pulse 1.6s ease-in-out infinite}.freshness-meter--idle .freshness-fill{width:18%;background:var(--text-muted)}@media(max-width:560px){.fleet-row--head{display:none}.fleet-row{grid-template-columns:1fr auto;grid-template-areas:"server save" "since since";gap:6px 12px}.fleet-server{grid-area:server}.fleet-save{grid-area:save;justify-self:end}.fleet-since{grid-area:since}}@media(prefers-reduced-motion:reduce){.freshness-meter--alert .freshness-fill{animation:none}}.event-detail-summary{margin-top:8px;font-size:.88rem;color:var(--text)}.event-payload,.event-raw-line{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.78rem;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;overflow-x:auto;white-space:pre;margin:0}.event-raw-line{white-space:pre-wrap;word-break:break-word}.event-filter-bar{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.event-filter-bar .filter-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.event-filter-bar .filter-range-label{font-size:.78rem;color:var(--text-muted);margin-right:4px}.event-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:.8rem;font-family:inherit;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.event-chip:hover{color:var(--text);border-color:var(--primary)}.event-chip.active{background:var(--primary-light);color:var(--text);border-color:var(--primary)}.event-chip .chip-count{font-size:.7rem;opacity:.7}.event-chip-clear,.event-chip-all{font-size:.75rem;padding:4px 8px;border:none;background:transparent;color:var(--text-muted);font-family:inherit;cursor:pointer}.event-chip-clear:hover,.event-chip-all:hover{color:var(--text)}.timeline-scroll{max-height:420px;overflow-y:auto;padding:4px;position:relative}@media(max-width:600px){.timeline-scroll{max-height:320px}}.new-events-badge{position:sticky;top:0;align-self:center;display:block;margin:0 auto 8px;padding:4px 12px;border-radius:999px;border:none;background:var(--accent);color:#fff;font-size:.78rem;font-family:inherit;cursor:pointer;z-index:1;box-shadow:0 2px 6px #0000002e}.new-events-badge:hover{background:var(--accent-hover)}.login-page{display:flex;min-height:100vh;background:var(--bg);position:relative;overflow:hidden}.login-bg-icons{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.login-bg-icon{position:absolute;font-size:2.5rem;opacity:.1;animation:floatIcon linear infinite;-webkit-user-select:none;user-select:none}.login-bg-icon:nth-child(1){left:5%;top:10%;animation-duration:7s;font-size:3rem}.login-bg-icon:nth-child(2){left:15%;top:65%;animation-duration:9s;font-size:2rem;animation-delay:1s}.login-bg-icon:nth-child(3){left:25%;top:30%;animation-duration:6s;animation-delay:2s}.login-bg-icon:nth-child(4){left:70%;top:15%;animation-duration:8s;animation-delay:.5s;font-size:2rem}.login-bg-icon:nth-child(5){left:80%;top:55%;animation-duration:7s;animation-delay:1.5s;font-size:3rem}.login-bg-icon:nth-child(6){left:90%;top:80%;animation-duration:10s;animation-delay:.3s}.login-main{display:flex;align-items:center;justify-content:center;flex:1;padding:32px 20px;position:relative;z-index:1}.login-card{background:var(--bg-card);border:1.5px solid var(--border);border-radius:var(--radius-lg);padding:48px 44px;text-align:center;max-width:420px;width:100%;box-shadow:var(--shadow-lg);animation:fadeInUp .5s ease both}.login-card h1{font-size:2rem;color:var(--text);margin-bottom:6px;font-weight:900;letter-spacing:-.5px}.login-card h1 span{color:var(--primary)}.login-card .tagline{color:var(--text-muted);margin-bottom:32px;font-size:.94rem;font-weight:500}.login-button-wrapper{display:flex;justify-content:center;margin-bottom:16px}.login-divider{color:var(--text-muted);font-size:.8rem;margin:14px 0;font-weight:600;position:relative}.login-divider:before,.login-divider:after{content:"";position:absolute;top:50%;width:38%;height:1px;background:var(--border)}.login-divider:before{left:0}.login-divider:after{right:0}.btn-dev-login{width:100%;padding:10px 20px;background:transparent;color:var(--text-muted);border:1.5px solid var(--border);border-radius:10px;cursor:pointer;font-size:.85rem;font-family:inherit;font-weight:600;transition:all var(--transition)}.btn-dev-login:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.waitlist-message{padding:20px;background:var(--accent-light);border-radius:var(--radius-sm);color:var(--accent);font-weight:600}.avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.loading{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:200px;color:var(--text-muted);font-size:.92rem;gap:12px;font-weight:600}.loading-spinner{font-size:2rem;animation:spin 1s linear infinite}.empty-state{text-align:center;padding:36px;color:var(--text-muted)}.empty-state p{font-weight:600;margin-bottom:12px}.admin-page .user-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.admin-page .user-info{flex:1;min-width:0}.admin-page .user-name{font-weight:700;font-size:.92rem}.admin-page .user-email{font-size:.8rem;color:var(--text-muted)}.admin-page .user-actions{display:flex;gap:6px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}.modal{background:var(--bg-card);border-radius:var(--radius);padding:32px;max-width:400px;width:90%;box-shadow:var(--shadow-lg);animation:fadeInUp .3s ease}.modal h3{font-size:1.15rem;margin-bottom:12px;color:var(--text)}.modal p{color:var(--text-muted);margin-bottom:20px;font-size:.9rem}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;font-weight:600;color:var(--text-muted);margin-bottom:16px}.back-link:hover{color:var(--primary)}.server-detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;gap:16px}.server-detail-header h2{margin-bottom:4px}.status-badge.large{font-size:.88rem;padding:6px 16px}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.info-value{font-size:.95rem;font-weight:700;color:var(--text)}.invite-code{font-family:Space Mono,monospace;font-size:1.2rem;color:var(--primary);letter-spacing:1px}.control-buttons{display:flex;gap:10px;flex-wrap:wrap}.admin-command-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}.admin-command-row input[type=text]{flex:1 1 180px}.admin-command-row input[type=number]{width:80px}.admin-feedback-ok{color:var(--success, #2f9e44);font-weight:600;margin-top:8px}.admin-feedback-err{color:var(--danger, #e03131);font-weight:600;margin-top:8px}.admin-settings-dump{margin-top:10px;padding:12px;background:var(--bg-muted, #f1f3f5);border-radius:8px;max-height:320px;overflow:auto;font-size:.8rem}.config-group{margin:4px 0 18px}.config-group h4{font-family:var(--font-display);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 6px;padding-bottom:6px;border-bottom:1px solid var(--border)}.config-field{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 10px;border-radius:var(--radius-sm);transition:background var(--transition)}.config-field:hover{background:var(--bg-hover)}.config-field>span{flex:1 1 auto;min-width:0;font-size:.9rem;color:var(--text)}.config-field input[type=text],.config-field input[type=number],.config-field select{flex:0 0 auto;width:160px;max-width:52%}.config-field input[type=number]{width:92px}.config-field input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.config-save{display:flex;align-items:center;gap:12px;margin-top:4px}@media(max-width:560px){.config-field{flex-direction:column;align-items:stretch;gap:6px}.config-field input[type=text],.config-field input[type=number],.config-field select{width:100%;max-width:100%}}.config-lock{font-family:var(--font-display);font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.config-banner{font-size:.85rem;color:var(--text-muted);margin:0 0 12px}.config-banner-warn{color:var(--danger, #e03131);font-weight:600;background:var(--danger-bg, #fff5f5);border:1px solid var(--danger, #e03131);border-radius:var(--radius-sm);padding:8px 10px}.config-field input:disabled,.config-field select:disabled{opacity:.65;cursor:not-allowed}.config-dirty-dot{color:var(--primary);font-weight:700}.logs-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:10px}.logs-header h3{margin-bottom:0}.player-count-badge{display:inline-flex;align-items:center;margin-left:10px;padding:2px 10px;border-radius:12px;font-size:.82rem;font-weight:700;background:var(--primary-light);color:var(--primary)}.player-list{display:flex;flex-direction:column;gap:8px}.player-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg);border-radius:var(--radius-sm)}.player-name{font-weight:700;font-size:.9rem}.player-duration{font-size:.8rem;color:var(--text-muted);font-weight:600}.timeline-icon.success{background:#27ae601f;color:var(--success)}.timeline-icon.failed{background:#e74c3c1f;color:var(--danger)}.active-player-list{list-style:none;padding:0;margin:0}.active-player-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg);border-radius:var(--radius-sm)}.player-meta{font-size:.8rem;color:var(--text-muted);font-weight:500}.session-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.session-list li{padding:10px 12px;background:var(--bg);border-radius:var(--radius-sm)}.session-row{display:flex;align-items:center;gap:8px;font-weight:600;font-size:.88rem;color:var(--text)}.session-arrow{color:var(--text-muted)}.session-meta{font-size:.78rem;color:var(--text-muted);margin-top:2px}@media(min-width:900px){.page{padding:32px 36px;max-width:960px}.server-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}}@media(max-width:899px){.page{padding:20px 16px}.page h2{font-size:1.35rem}.server-grid{grid-template-columns:1fr}.login-card{margin:16px;padding:36px 24px}.server-card-actions{flex-direction:column}}.shutdown-timer .shutdown-countdown{display:flex;align-items:baseline;gap:12px;margin-bottom:14px}.shutdown-timer .shutdown-time{font-size:1.8rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);letter-spacing:.02em}.shutdown-timer.expired .shutdown-time{color:var(--danger, #b91c1c)}.shutdown-timer .shutdown-label{color:var(--text-muted);font-size:.875rem}.shutdown-timer .shutdown-state{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:.95rem}.shutdown-timer .shutdown-state-icon{font-size:1.1rem}.shutdown-timer .shutdown-actions{display:flex;gap:8px}.shutdown-timer .shutdown-error{margin-top:10px;font-size:.85rem;color:var(--danger, #b91c1c)}.session-item.clickable .session-summary{cursor:pointer;border-radius:4px;padding:4px 6px;margin:0 -6px;transition:background-color var(--transition)}.session-item.clickable .session-summary:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}.session-item.clickable .session-summary:focus-visible{outline:2px solid var(--accent, #2563eb);outline-offset:1px}.session-chevron{margin-left:auto;color:var(--text-muted);transition:transform .15s;display:inline-block}.session-chevron.open{transform:rotate(180deg)}.session-boot{margin-top:10px;padding:12px;background:var(--bg-subtle, rgba(0, 0, 0, .03));border-radius:6px;border-left:3px solid var(--accent, #2563eb)}.boot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px 16px;margin-bottom:12px}.boot-field{display:flex;flex-direction:column;gap:2px}.boot-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.boot-value{font-size:.875rem;color:var(--text);font-variant-numeric:tabular-nums}.boot-states-header{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.boot-state-list{list-style:none;margin:0;padding:0}.boot-state-row{display:flex;justify-content:space-between;padding:3px 0;font-size:.85rem;border-bottom:1px solid var(--border, rgba(0, 0, 0, .06))}.boot-state-row:last-child{border-bottom:none}.boot-state-name{color:var(--text)}.boot-state-time{color:var(--text-muted);font-variant-numeric:tabular-nums}.gx-app-shell{min-height:100vh;background:var(--color-bg);color:var(--color-text);display:flex;flex-direction:column;font-family:var(--font-body, inherit);box-sizing:border-box}.gx-app-shell__header{display:none}.gx-app-shell__main{padding:1.5rem;flex:1;max-width:var(--content-max-width, none);margin-inline:auto;box-sizing:border-box}.gx-app-shell__footer{flex-shrink:0}.gx-skip-link{position:absolute;left:.5rem;top:-4rem;z-index:100;background:var(--color-primary);color:var(--color-bg-elevated);padding:.5rem .9rem;border-radius:var(--radius);font-size:.85rem;font-weight:600;text-decoration:none;transition:top var(--motion-fast, .12s) var(--ease-out, ease)}.gx-skip-link:focus{top:.5rem;outline:none;box-shadow:var(--focus-ring, 0 0 0 3px rgba(0, 0, 0, .25))}.gx-app-shell__main:focus{outline:none}@media(min-width:900px){.gx-app-shell__sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);z-index:20}.gx-app-shell{padding-left:var(--sidebar-width)}.gx-app-shell.no-sidebar{padding-left:0}}@media(max-width:899px){.gx-app-shell__sidebar{display:none}.gx-app-shell__header{display:block;position:sticky;top:0;z-index:30}.gx-app-shell__main{padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + 1rem)}}.gx-sidebar{background:var(--color-bg-elevated);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:1rem .75rem;gap:.5rem;height:100%;overflow-y:auto;box-sizing:border-box}.gx-sidebar__brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--color-text);padding:.25rem .5rem .75rem;border-bottom:1px solid var(--color-border);margin-bottom:.5rem}.gx-sidebar__brand-icon{font-size:1.5rem;line-height:1}.gx-sidebar__brand-text{font-weight:600;font-size:1.05rem}.gx-sidebar__brand-sub{font-size:.75rem;color:var(--color-text-muted)}.gx-sidebar__top-slot{margin-bottom:.5rem}.gx-sidebar__nav{display:flex;flex-direction:column;gap:.15rem;flex:1}.gx-sidebar__nav-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;border-radius:var(--radius);color:var(--color-text);text-decoration:none;font-size:.9rem}.gx-sidebar__nav-item:hover:not(.active){background:var(--color-bg);transform:translate(2px)}.gx-sidebar__nav-item.active{background:var(--color-primary);color:var(--color-bg-elevated)}.gx-sidebar__nav-icon{width:1.2em;text-align:center}.gx-sidebar__admin{margin-top:auto;padding-top:.75rem;border-top:1px solid var(--color-border)}.gx-sidebar__user{display:flex;align-items:center;gap:.5rem;padding:.5rem .25rem;margin-top:.5rem;border-top:1px solid var(--color-border)}.gx-sidebar__avatar{width:32px;height:32px;border-radius:50%}.gx-sidebar__user-name{font-size:.85rem;font-weight:500;flex:1}.gx-sidebar__signout{background:transparent;border:1px solid var(--color-border-strong);color:var(--color-text-muted);padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;cursor:pointer}.gx-sidebar__signout:hover{background:var(--color-bg);color:var(--color-text)}.gx-top-header{background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 1.25rem}.gx-top-header__brand{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--color-text);font-weight:600}.gx-top-header__right{display:flex;align-items:center;gap:.75rem}.gx-top-header__user-name{font-size:.85rem;font-weight:500;color:var(--color-text)}.gx-top-header__signout{background:transparent;border:1px solid var(--color-border-strong);color:var(--color-text-muted);padding:.3rem .7rem;border-radius:var(--radius-sm);font-size:.8rem;cursor:pointer}.gx-top-header__signout:hover{background:var(--color-bg);color:var(--color-text)}.gx-bottom-nav{display:none}@media(max-width:899px){.gx-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-bg-elevated);border-top:1px solid var(--color-border);box-shadow:0 -1px 8px #0000000d;z-index:30}.gx-bottom-nav__item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.4rem 0;text-decoration:none;color:var(--color-text-muted);font-size:.7rem;gap:.15rem}.gx-bottom-nav__item.active{color:var(--color-primary)}}.gx-cross-link-footer{background:var(--color-bg-elevated);border-top:1px solid var(--color-border);padding:.55rem 1.25rem;font-size:.75rem;color:var(--color-text-muted);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem 1rem}.gx-cross-link-footer__mark{letter-spacing:.02em}.gx-cross-link-footer__legal{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem}.gx-cross-link-footer__legal a{color:var(--color-text-muted);text-decoration:none}.gx-cross-link-footer__legal a:hover{color:var(--color-text);text-decoration:underline}.gx-cross-link-footer__legal a:focus-visible{outline:none;box-shadow:var(--focus-ring, 0 0 0 3px rgba(0, 0, 0, .25));border-radius:var(--radius-sm)}.gx-brand-menu{position:relative}.gx-sidebar>.gx-brand-menu{border-bottom:1px solid var(--color-border);padding-bottom:.5rem;margin-bottom:.25rem}.gx-brand-menu__trigger{display:flex;align-items:center;gap:.6rem;width:100%;background:transparent;border:none;padding:.5rem .75rem;border-radius:var(--radius);cursor:pointer;color:var(--color-text);text-align:left;font:inherit}.gx-brand-menu__trigger:hover,.gx-brand-menu__trigger[aria-expanded=true]{background:var(--color-bg)}.gx-brand-menu__icon{font-size:1.5rem;line-height:1}.gx-brand-menu__text{display:flex;flex-direction:column;flex:1}.gx-brand-menu__name{font-weight:600;font-size:1.05rem}.gx-brand-menu__sub{font-size:.75rem;color:var(--color-text-muted)}.gx-brand-menu__chevron{color:var(--color-text-muted);font-size:.85rem;padding-left:.25rem}.gx-brand-menu__popup{position:absolute;top:calc(100% + .35rem);left:0;right:0;min-width:220px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:.5rem;z-index:40}.gx-brand-menu__popup-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);padding:.25rem .5rem .4rem}.gx-brand-menu__popup-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1rem}.gx-brand-menu__popup-list a{display:flex;align-items:center;gap:.6rem;padding:.5rem;border-radius:var(--radius);text-decoration:none;color:var(--color-text)}.gx-brand-menu__popup-list a:hover{background:var(--color-bg)}.gx-brand-menu__popup-icon{font-size:1.2rem;line-height:1}.gx-brand-menu__popup-meta{display:flex;flex-direction:column}.gx-brand-menu__popup-name{font-weight:500;font-size:.9rem}.gx-brand-menu__popup-tagline{font-size:.75rem;color:var(--color-text-muted)}.gx-dev-toolbar{position:fixed;top:0;left:0;right:0;z-index:9999;background:#1a1a2e;color:#e94560;padding:4px 12px;font-size:12px;display:flex;align-items:center;gap:12px;font-family:monospace}.gx-dev-toolbar__label{font-weight:700}.gx-dev-toolbar__btn{background:#e94560;color:#fff;border:none;border-radius:3px;padding:2px 8px;font-size:11px;cursor:pointer}.gx-dev-toolbar__btn--on{background:#51cf66}.gx-dev-toolbar__btn--off{background:#555}.gx-login-panel{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:360px;margin:0 auto}.gx-login-panel__divider{color:var(--color-text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.gx-login-panel__dev-btn{background:transparent;border:1px dashed var(--color-border-strong);color:var(--color-text-muted);padding:.5rem 1rem;border-radius:var(--radius);cursor:pointer;font-size:.85rem}.gx-login-panel__waitlist{padding:1rem;background:var(--color-bg);border-radius:var(--radius);text-align:center;font-size:.9rem;color:var(--color-text-muted)}.gx-login-panel__legal{margin:0;text-align:center;font-size:.75rem;line-height:1.5;color:var(--color-text-muted)}.gx-login-panel__legal a{color:var(--color-text-muted);text-decoration:underline}.gx-login-panel__legal a:hover{color:var(--color-text)}.gx-login-panel__legal a:focus-visible{outline:none;box-shadow:var(--focus-ring, 0 0 0 3px rgba(0, 0, 0, .25));border-radius:var(--radius-sm)}@keyframes gx-fade-in{0%{opacity:0}to{opacity:1}}@keyframes gx-route-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes gx-pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes gx-spin{to{transform:rotate(360deg)}}.gx-route{animation:gx-route-in var(--motion-slow, .32s) var(--ease-out, ease) both}.gx-brand-menu__name,.gx-sidebar__brand-text{font-family:var(--font-display, inherit)}.gx-sidebar__nav-item{transition:background var(--motion, .2s) var(--ease-out, ease),color var(--motion, .2s) var(--ease-out, ease),transform var(--motion-fast, .12s) var(--ease-out, ease)}.gx-sidebar__nav .gx-sidebar__nav-item{animation:gx-fade-in var(--motion, .2s) var(--ease-out, ease) both}.gx-sidebar__nav .gx-sidebar__nav-item:nth-child(1){animation-delay:30ms}.gx-sidebar__nav .gx-sidebar__nav-item:nth-child(2){animation-delay:60ms}.gx-sidebar__nav .gx-sidebar__nav-item:nth-child(3){animation-delay:90ms}.gx-sidebar__nav .gx-sidebar__nav-item:nth-child(4){animation-delay:.12s}.gx-sidebar__nav .gx-sidebar__nav-item:nth-child(5){animation-delay:.15s}.gx-sidebar__nav .gx-sidebar__nav-item:nth-child(6){animation-delay:.18s}.gx-sidebar__nav .gx-sidebar__nav-item:nth-child(7){animation-delay:.21s}.gx-sidebar__nav .gx-sidebar__nav-item:nth-child(8){animation-delay:.24s}.gx-brand-menu__trigger,.gx-sidebar__signout,.gx-top-header__signout,.gx-login-panel__dev-btn,.gx-brand-menu__popup-list a{transition:background var(--motion, .2s) var(--ease-out, ease),color var(--motion, .2s) var(--ease-out, ease),border-color var(--motion, .2s) var(--ease-out, ease)}.gx-brand-menu__chevron{transition:transform var(--motion, .2s) var(--ease-out, ease)}.gx-brand-menu__trigger[aria-expanded=true] .gx-brand-menu__chevron{transform:rotate(180deg)}.gx-brand-menu__popup{transform-origin:top center;animation:gx-pop-in var(--motion, .2s) var(--ease-out, ease) both}@media(max-width:899px){.gx-bottom-nav__item{position:relative;transition:color var(--motion, .2s) var(--ease-out, ease)}.gx-bottom-nav__item>span:first-child{transition:transform var(--motion, .2s) var(--ease-spring, ease)}.gx-bottom-nav__item.active>span:first-child{transform:translateY(-2px) scale(1.08)}.gx-bottom-nav__item:before{content:"";position:absolute;top:0;left:50%;width:0;height:3px;border-radius:0 0 3px 3px;background:var(--color-primary);transform:translate(-50%);transition:width var(--motion, .2s) var(--ease-out, ease)}.gx-bottom-nav__item.active:before{width:40%}}.gx-sidebar__nav-item:focus-visible,.gx-bottom-nav__item:focus-visible,.gx-brand-menu__trigger:focus-visible,.gx-sidebar__signout:focus-visible,.gx-top-header__signout:focus-visible,.gx-login-panel__dev-btn:focus-visible,.gx-brand-menu__popup-list a:focus-visible{outline:none;box-shadow:var(--focus-ring, 0 0 0 3px rgba(0, 0, 0, .25))}.gx-error-boundary{max-width:28rem;margin:3rem auto;padding:2rem;text-align:center;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);animation:gx-route-in var(--motion-slow, .32s) var(--ease-out, ease) both}.gx-error-boundary__icon{font-size:2rem;line-height:1;color:var(--color-danger)}.gx-error-boundary__title{margin:.75rem 0 .25rem;font-size:1.1rem;font-weight:600;color:var(--color-text)}.gx-error-boundary__message{margin:0 0 1.25rem;font-size:.9rem;color:var(--color-text-muted);word-break:break-word}.gx-error-boundary__actions{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.gx-error-boundary__btn{font:inherit;font-size:.85rem;font-weight:600;padding:.45rem 1rem;border-radius:var(--radius);border:1px solid var(--color-primary);background:var(--color-primary);color:var(--color-bg-elevated);cursor:pointer;transition:background var(--motion, .2s) var(--ease-out, ease),transform var(--motion-fast, .12s) var(--ease-out, ease)}.gx-error-boundary__btn:hover{background:var(--color-primary-hover)}.gx-error-boundary__btn:active{transform:translateY(1px)}.gx-error-boundary__btn--ghost{background:transparent;color:var(--color-text-muted);border-color:var(--color-border-strong)}.gx-error-boundary__btn--ghost:hover{background:var(--color-bg);color:var(--color-text)}.gx-error-boundary__btn:focus-visible{outline:none;box-shadow:var(--focus-ring, 0 0 0 3px rgba(0, 0, 0, .25))}.gx-spinner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;color:var(--color-text-muted)}.gx-spinner__ring{width:var(--gx-spinner-size, 1.75rem);height:var(--gx-spinner-size, 1.75rem);border-radius:50%;border:2.5px solid var(--color-border);border-top-color:var(--color-primary);animation:gx-spin .7s linear infinite}.gx-spinner--sm{--gx-spinner-size: 1.1rem;padding:.75rem}.gx-spinner--lg{--gx-spinner-size: 2.5rem}.gx-spinner__label{font-size:.85rem}.gx-empty-state{text-align:center;padding:3rem 1.5rem;border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-bg-elevated);animation:gx-route-in var(--motion-slow, .32s) var(--ease-out, ease) both}.gx-empty-state__icon{font-size:2.25rem;line-height:1;margin-bottom:.75rem}.gx-empty-state__title{margin:0 0 .35rem;font-size:1rem;font-weight:600;color:var(--color-text)}.gx-empty-state__message{margin:0 auto 1.25rem;max-width:32rem;font-size:.88rem;color:var(--color-text-muted)}.gx-empty-state__action{display:flex;justify-content:center}@media(prefers-reduced-motion:reduce){.gx-route,.gx-sidebar__nav .gx-sidebar__nav-item,.gx-brand-menu__popup,.gx-error-boundary,.gx-empty-state{animation:none!important}.gx-sidebar__nav-item,.gx-bottom-nav__item,.gx-bottom-nav__item>span:first-child,.gx-bottom-nav__item:before,.gx-brand-menu__trigger,.gx-brand-menu__chevron,.gx-sidebar__signout,.gx-top-header__signout,.gx-login-panel__dev-btn,.gx-error-boundary__btn,.gx-skip-link,.gx-brand-menu__popup-list a{transition:none!important}.gx-sidebar__nav-item:hover:not(.active){transform:none}}
