:root{color-scheme:light;--bg:#F4F5F7;--card:#FFFFFF;--line:#E3E5E8;--text:#1C2024;--muted:#5B636E;--primary:#0E6E62;--primary-light:#E6F2F0;--danger:#B42318;--success:#12805C}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'Noto Sans SC','PingFang SC',system-ui,sans-serif;font-size:15px;line-height:1.6}[hidden]{display:none!important}button,input,select,textarea{font:inherit}button{white-space:nowrap;min-height:44px;border:1px solid #C9CED4;border-radius:8px;padding:9px 18px;background:#fff;color:var(--text);cursor:pointer;line-height:1.4}button:hover{background:#F4F5F7}button:disabled{cursor:wait;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #81BDB5;outline-offset:2px}.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:500}.primary:hover{background:#0A5249}.danger{background:var(--danger);border-color:var(--danger);color:#fff}.danger:hover{background:#951C13}.danger-outline{border-color:#E4B4AE;color:var(--danger)}.quiet{background:transparent}.muted{color:var(--muted)}.success-text{color:var(--success)}.error-text{color:var(--danger)}h1,h2,h3,p{margin:0}h1{font-size:24px;line-height:1.4}h2{font-size:16px}h3{font-size:15px}a{color:var(--primary)}input,select,textarea{min-height:44px;border:1px solid #C9CED4;border-radius:8px;padding:9px 12px;background:#fff;color:var(--text);max-width:100%;width:100%}textarea{resize:vertical}input[type=number]{width:160px}label,.field{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:13px}.field>input,.field>select,.field>textarea,label>input,label>select{font-size:15px;color:var(--text)}.form-stack{display:flex;flex-direction:column;gap:20px}.form-stack select{max-width:420px}.form-stack input[type=search]{max-width:420px}.form-stack .row{align-items:end}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.grow{flex:1}.divider{border-top:1px solid #EEF0F2;padding-top:16px}.small{font-size:13px}.app-view{display:flex;min-height:100vh}.sidebar{flex:0 0 232px;background:var(--card);border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;gap:4px}.brand{padding:0 12px 20px}.brand strong{font-size:18px}.server-label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--muted);margin-top:5px}.dot{width:8px;height:8px;border-radius:50%;background:#8C959F;flex-shrink:0}.dot.running{background:var(--success)}.dot.stopped{background:var(--danger)}.navigation{display:flex;flex-direction:column;gap:4px}.navigation button{border:0;background:transparent;text-align:left;padding:10px 12px;font-size:15px}.navigation button:hover{background:#F4F9F8}.navigation button[aria-current=page]{background:var(--primary-light);color:#0A5249;font-weight:500}.sidebar-bottom{margin-top:auto;padding:24px 12px 0;color:var(--muted);font-size:12px}.sidebar-bottom button{margin-top:10px;padding:8px 12px;font-size:13px}main{flex:1;min-width:0;padding:28px 32px 48px;display:flex;flex-direction:column;gap:20px}.page-header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}.header-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.local-badge{font-size:12px;padding:4px 10px;background:var(--primary-light);color:#0A5249;border-radius:999px}.header-actions button{font-size:13px}.toast{display:flex;align-items:center;gap:10px;background:#E7F4EE;color:#0B5C40;border:1px solid #B9DFCC;padding:6px 12px 6px 16px;border-radius:10px;font-size:14px}.toast::before{content:'✓';font-size:20px}.toast.error{background:#FDECEA;border-color:#E4B4AE;color:var(--danger)}.toast.error::before{content:'!';font-weight:700}.toast span{flex:1;white-space:pre-line}.toast button{border:0;background:transparent;color:inherit;font-size:22px;padding:4px 12px}.pending{display:flex;flex-direction:column;gap:12px;background:#FEF3E2;border:1px solid #F1D7AF;color:#7A3E06;border-radius:12px;padding:16px}.pending p{white-space:pre-line}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;min-width:0}.card>*+*{margin-top:14px}.card.form-stack>*+*{margin-top:0}.card.form-stack{padding:24px}.stack{display:flex;flex-direction:column;gap:20px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat{display:flex;flex-direction:column;gap:8px;min-width:0}.stat>*+*{margin-top:0}.stat-label{font-size:13px;color:var(--muted)}.stat-value{font-size:26px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}.stat-detail{font-size:13px;color:var(--muted)}.commit{font-family:ui-monospace,Menlo,monospace;overflow-wrap:anywhere;font-size:12px}.progress{height:8px;background:#EEF0F2;border-radius:4px;overflow:hidden}.progress-fill{height:8px;background:var(--primary)}.progress-fill.low{background:var(--danger)}.columns{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}.columns>.card{flex:1 1 320px}.columns>.wide{flex:2 1 480px}.recent-row{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid #EEF0F2;padding:8px 0;font-size:14px}.recent-row time{color:var(--muted);flex:0 0 130px;font-size:12px}.recent-row .result{white-space:nowrap}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{font-weight:500;color:var(--muted);font-size:13px;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{font-size:14px;padding:12px;border-bottom:1px solid #EEF0F2;vertical-align:top}td.time{white-space:nowrap;color:var(--muted)}td.account{font-weight:500;overflow-wrap:anywhere}.nowrap{white-space:nowrap}.selected-row{background:#F4F9F8}.badge{display:inline-block;font-size:12px;padding:3px 10px;border-radius:999px;white-space:nowrap;background:#EEF0F2;color:#3D444D}.badge.ok{background:#E7F4EE;color:#0B5C40}.badge.bad{background:#FDECEA;color:#9A1C13}.code{font-family:ui-monospace,Menlo,monospace;letter-spacing:.3px;overflow-wrap:anywhere}.new-codes{display:flex;flex-direction:column;gap:10px;background:#F4F9F8;border:1px dashed #9CCBC3;border-radius:10px;padding:14px}.new-codes .code{flex:1}.empty{color:var(--muted);padding:20px 0;font-size:14px}.loading{color:var(--muted);padding:30px 0}.search{max-width:320px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detail-cell{background:#F7F8FA;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;overflow-wrap:anywhere}.detail-cell .label{font-size:12px;color:var(--muted)}.detail-cell .value{font-size:16px;font-weight:500}.detail-section{padding-top:12px;border-top:1px solid #EEF0F2}.segmented{display:flex;flex-wrap:wrap;gap:8px}.segmented button.active,.item-option.selected{border-color:var(--primary);background:var(--primary-light);color:#0A5249;font-weight:500}.item-results{display:flex;flex-direction:column;gap:6px;max-width:420px;max-height:304px;overflow-y:auto}.item-option{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;text-align:left;padding:10px 14px;border-color:var(--line)}.item-option .note{font-size:12px;color:var(--muted);font-weight:400}.send-summary{white-space:pre-line}.notice-preview{background:#1E2430;color:#F5E6B8;border-radius:10px;padding:14px 18px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.warning{background:#FEF3E2;color:#7A3E06;border-radius:8px;padding:12px 14px;font-size:14px;line-height:1.7}.updated-at{font-size:12px;color:var(--muted)}dialog{width:calc(100% - 32px);max-width:460px;border:0;border-radius:14px;padding:24px;background:#fff;color:var(--text);box-shadow:0 12px 40px #0003}dialog::backdrop{background:#10141873}dialog form{display:flex;flex-direction:column;gap:16px}dialog h2{font-size:18px}.confirm-body{white-space:pre-line;font-size:15px;line-height:1.7;overflow-wrap:anywhere;max-height:55vh;overflow-y:auto}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.login-view{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:400px;padding:36px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 28px #1C202406;display:flex;flex-direction:column;gap:16px}.brand-mark{width:48px;height:48px;background:var(--primary-light);color:#0A5249;border-radius:12px;display:grid;place-items:center;font-size:15px;font-weight:700}.login-card h1{font-size:24px}.login-card label{margin-bottom:-10px}.login-note{font-size:12px;color:var(--muted);padding-top:4px;line-height:1.8}.login-card .error-text{font-size:14px}.login-card button{width:100%}.no-players{color:var(--muted);font-size:14px}
@media(min-width:1440px){main{padding-right:40px}.cards{grid-template-columns:repeat(4,minmax(220px,1fr))}}
@media(max-width:1180px){.cards{grid-template-columns:repeat(2,minmax(180px,1fr))}}
@media(max-width:760px){.app-view{flex-direction:column}.sidebar{flex-basis:auto;border-right:0;border-bottom:1px solid var(--line);padding:18px 16px}.brand{padding:0 4px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.navigation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.navigation button{text-align:center;padding:10px 6px;font-size:14px}.sidebar-bottom{margin:10px 0 0;padding:0 4px;display:flex;align-items:center;justify-content:space-between;gap:10px}.sidebar-bottom p br{display:none}.sidebar-bottom button{margin:0}main{padding:22px 16px 36px;gap:16px}.page-header h1{font-size:22px}.header-actions{gap:8px}.card{padding:18px}.card.form-stack{padding:20px}.cards{gap:12px}.stat-value{font-size:23px}.recent-row{flex-wrap:wrap;gap:6px}.recent-row time{flex-basis:100%}.login-card{padding:28px}.columns{gap:14px}th,td{padding:10px 8px}}
@media(max-width:420px){.cards{grid-template-columns:1fr}.header-actions{width:100%;justify-content:space-between}.detail-grid{grid-template-columns:1fr}.dialog-actions button{flex:1}.sidebar-bottom p{max-width:210px}.stat-value{font-size:26px}}
/* Production shell: same visual structure as the approved GM layout. */
:root{--top:68px;--side:224px}button:disabled{cursor:not-allowed}.app-view{display:block;min-height:100vh}.topbar{height:var(--top);position:fixed;inset:0 0 auto;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border-bottom:1px solid var(--line);padding:0 26px}.top-brand,.topbar-end{display:flex;align-items:center;gap:14px}.top-brand strong{font-size:18px;white-space:nowrap}.top-brand strong span{font-size:14px;font-weight:400;color:var(--muted)}.brand-mark{width:38px;height:38px;border-radius:9px;background:var(--primary);color:white;font-size:21px}.environment-badge{display:flex;align-items:center;gap:7px;border:1px solid #CDE3DD;border-radius:6px;padding:4px 10px;color:#145D50;font-size:12px;white-space:nowrap;background:#F3F9F7}.environment-badge i{width:6px;height:6px;background:var(--primary);border-radius:50%}.operator{font-size:12px;color:var(--muted);white-space:nowrap}.sidebar{position:fixed;top:var(--top);bottom:0;left:0;width:var(--side);z-index:25;overflow-y:auto;display:flex;flex-direction:column;padding:16px 12px 12px;border-right:1px solid var(--line);border-bottom:0;gap:0;background:#fff}.scope{padding:0 5px 14px}.scope-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.scope-label label{color:#6B727C;font-size:12px}.scope select{min-height:38px;padding:7px 9px;border-color:var(--line);font-size:13px}.navigation{display:flex;flex-direction:column;gap:3px}.navigation button{width:100%;min-height:38px;border-radius:6px;text-align:left;padding:7px 14px;font-size:14px;line-height:1.5}.navigation button[aria-current=page]{font-weight:600;background:#E6F2EE;color:#11634F}.nav-divider{height:1px;margin:10px 8px;background:var(--line);flex-shrink:0}.sidebar-bottom{margin-top:auto;padding:18px 8px 3px;display:block;font-size:11px}.sidebar-bottom .server-label{font-size:11px}.sidebar-bottom button{min-height:34px;padding:5px 12px;margin:8px 0 0;font-size:12px}.sidebar-bottom p{margin-top:5px}.server-label{line-height:1.45}main{display:flex;flex-direction:column;min-width:0;margin-left:var(--side);padding:calc(var(--top) + 28px) 30px 24px;gap:20px}.page-header{align-items:flex-start}.page-header h1{font-size:23px;font-weight:600}.page-description{font-size:13px;color:var(--muted);margin-top:6px;max-width:700px}.header-actions{gap:10px}.header-actions button{min-height:36px;padding:6px 12px}.context{font-size:12px;border:1px solid var(--line);background:#fff;border-radius:6px;padding:6px 10px;max-width:300px;overflow-wrap:anywhere}.page-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:11px;color:#7B818A;padding-top:4px}.updated-at{font-size:11px}.card{border-radius:8px;box-shadow:0 1px 2px #17251F02}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.section-heading button{font-size:13px;min-height:36px;padding:7px 12px}.scope-note{border:1px solid #D4E3DD;background:#F1F7F4;border-radius:7px;padding:12px 15px;display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;font-size:13px;color:#356253}.scope-note strong{font-weight:600}.scope-note button{min-height:32px;font-size:12px;padding:5px 10px}.unavailable{padding:32px;min-height:210px}.unavailable h2{font-size:20px}.unavailable p{max-width:720px}.subnav{display:flex;gap:8px;flex-wrap:wrap}.subnav button{min-height:36px;border-color:var(--line);padding:7px 13px;font-size:13px}.subnav button[aria-current=page]{border-color:#94BFB2;background:#E6F2EE;color:#11634F}.mobile-toolbar,.icon-button{display:none}.nav-backdrop{position:fixed;inset:0;z-index:39;background:#15251E66}.skip-link{position:fixed;top:8px;left:250px;z-index:100;background:#fff;padding:8px 16px;border-radius:6px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.table-wrap{max-width:100%}td{overflow-wrap:anywhere}.table-wrap button{font-size:13px;padding:6px 11px;min-height:36px}.login-card .brand-mark{width:48px;height:48px}.login-card h1{font-size:22px}.login-card .muted{font-size:13px}.login-card .brand-mark{font-size:25px}.form-stack .field{gap:10px}
@media(min-width:1440px){main{padding-right:40px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1000px){.operator{display:none}.topbar{padding:0 20px}main{padding-right:20px;padding-left:20px}.header-actions{align-items:flex-start}}
@media(max-width:760px){:root{--top:62px}.topbar{height:62px;padding:0 16px;gap:8px}.top-brand{gap:9px}.top-brand strong{font-size:16px}.top-brand strong span{display:none}.top-brand .brand-mark{width:32px;height:32px;font-size:18px;border-radius:7px}.environment-badge{font-size:10px;padding:4px 6px;gap:5px}.topbar-end{gap:0}.mobile-toolbar{position:fixed;top:62px;left:0;right:0;z-index:24;height:48px;display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid var(--line);padding:0 16px;gap:12px}.mobile-toolbar button{min-height:32px;padding:4px 10px;font-size:12px;border-color:var(--line)}.mobile-toolbar span{font-size:12px;color:var(--muted)}.sidebar{position:fixed;top:0;bottom:0;left:0;width:280px;max-width:85vw;z-index:40;padding:18px 12px 14px;transform:translateX(-101%);transition:transform .18s ease;box-shadow:8px 0 36px #17251F20}.sidebar.open{transform:translateX(0)}.scope{padding:0 6px 12px}.scope-label{min-height:32px}.scope-label label{font-size:13px}.icon-button{display:block;min-height:32px;width:32px;padding:0;font-size:22px;border:0}.scope select{min-height:40px}.navigation{display:flex;flex-direction:column;gap:3px}.navigation button{font-size:14px;text-align:left;min-height:38px;padding:8px 14px}.sidebar-bottom{display:block;padding:18px 8px 3px}.sidebar-bottom p{max-width:none}.sidebar-bottom button{margin-top:8px}.server-label{justify-content:flex-start}main{margin-left:0;padding:130px 16px 24px;gap:16px}.page-header{gap:12px;align-items:flex-start}.page-header h1{font-size:22px}.page-description{font-size:12px}.header-actions{width:100%;justify-content:space-between}.context{max-width:65%}.page-footer{font-size:10px;gap:6px}.unavailable{padding:24px}.card{padding:18px}.card.form-stack{padding:20px}.subnav{gap:6px}.subnav button{padding:6px 10px;font-size:12px}.skip-link{left:16px}.recent-row{flex-wrap:wrap;gap:6px}.recent-row time{flex-basis:100%}dialog{max-height:90dvh;overflow:auto}.scope-note{font-size:12px}.table-wrap td{min-width:90px}.table-wrap th:first-child,.table-wrap td:first-child{min-width:80px}.table-wrap .row{min-width:110px}.form-stack .row label{max-width:100%}}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}
.realm-management .realm-open-time{font-weight:500;color:#315E50}.realm-schedule{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px}.realm-schedule label{flex:0 1 300px;max-width:100%}.realm-schedule .realm-datetime{width:100%;min-width:0}.realm-schedule button{min-height:44px}.realm-management .section-heading h3{font-size:17px}.realm-management>.row{margin-top:20px}@media(max-width:760px){.realm-schedule{gap:10px}.realm-schedule label{flex-basis:100%}.realm-schedule button{width:100%}.realm-management>.row button{flex:1 1 auto}}
.merge-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.merge-option{display:grid;grid-template-columns:20px 1fr;gap:3px 10px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:12px;color:var(--text);cursor:pointer}.merge-option input[type=checkbox]{width:18px;height:18px;min-height:18px;margin:0;grid-row:span 2;accent-color:var(--primary)}.merge-option small{font-size:11px;overflow-wrap:anywhere}.merge-settings{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.merge-settings>label{flex:0 1 280px;max-width:100%}.merge-preview:not(:empty){padding:16px;background:#F2F7F5;border:1px solid #D4E3DD;border-radius:7px}.merge-preview>*+*{margin-top:10px}.merge-counts{display:flex;gap:12px;flex-wrap:wrap;font-size:14px;font-weight:500}.merge-editor>button{margin-right:8px}@media(max-width:760px){.merge-choices{grid-template-columns:1fr}.merge-settings>label{flex-basis:100%}.merge-editor>button{width:100%;margin-right:0}.merge-counts{gap:6px 14px}}
.naming-period{white-space:pre-line;line-height:1.85}.naming-config,.naming-rename{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}.naming-config>label,.naming-rename>label{flex:1 1 190px;max-width:310px}.naming-config input[type=number]{width:100%}.naming-config button,.naming-rename button{min-height:44px}.naming-tiers{display:flex;flex-direction:column;gap:14px}.naming-tier{padding:14px;background:#F7F9F8;border:1px solid var(--line);border-radius:7px;display:flex;flex-direction:column;gap:12px}.naming-tier>.row{align-items:flex-end}.naming-tier input[type=number]{width:100px}.naming-tier-items{display:flex;flex-direction:column;gap:10px}.naming-item{display:grid;grid-template-columns:minmax(140px,.9fr) minmax(180px,1.6fr) 100px auto;gap:8px;align-items:center}.naming-item button{font-size:12px;padding:8px 10px}.naming-tier>button{align-self:flex-start;min-height:36px;font-size:13px}@media(max-width:1100px){.naming-item{grid-template-columns:minmax(120px,1fr) minmax(140px,1fr)}.naming-item input[type=number]{width:100%}}@media(max-width:760px){.naming-config>label,.naming-rename>label{max-width:none;flex-basis:100%}.naming-config>button,.naming-rename>button{width:100%}.naming-item{grid-template-columns:1fr 1fr}.naming-item select{grid-column:1/-1;grid-row:2}.naming-item input[type=search]{grid-column:1/-1}.naming-tier{padding:12px}}
.agent-section{display:flex;flex-direction:column;gap:14px}.agent-section>*+*{margin-top:0}.agent-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.agent-stats .card{display:flex;flex-direction:column;gap:5px}.agent-stat-value{font-size:24px;overflow-wrap:anywhere}.agent-invite-code{font-size:24px;letter-spacing:.12em;font-weight:600;color:var(--primary)}.agent-filter{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.agent-filter>label{flex:1 1 180px;min-width:0;max-width:300px}.agent-filter>button{min-height:44px}.agent-name{white-space:pre-line}.agent-dialog{max-width:560px;max-height:90dvh;overflow:auto}.agent-checklist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.agent-check{display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;padding:10px;border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;overflow-wrap:anywhere}.agent-check input{width:18px;height:18px;min-height:18px;flex-shrink:0;accent-color:var(--primary)}.agent-workspace table{min-width:740px}.agent-workspace .table-wrap{max-height:650px}.agent-workspace td .row{gap:6px;min-width:160px}.agent-workspace .small{font-size:12px}.agent-section h2{font-size:17px}@media(max-width:760px){.agent-stats{grid-template-columns:1fr}.agent-filter>label{flex-basis:100%;max-width:none}.agent-filter>button{width:100%}.agent-checklist{grid-template-columns:1fr}.agent-dialog{padding:20px}.agent-section{padding:16px}}
#content{min-width:0}#content>.card.form-stack{max-width:560px}#navigation button{white-space:normal}.agent-section .row{align-items:center}.agent-dialog .row{justify-content:flex-end}.agent-section .agent-check{white-space:normal}
