:root{color-scheme:light;--bg:#f4f6f9;--ink:#1e293b;--muted:#7b879b;--line:#e5eaf1;--accent:#4869ed;--soft:#edf1ff;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #9eaefa;outline-offset:2px}button{transition:background .15s,box-shadow .15s}input,select{border:1px solid #dce2ec;border-radius:7px;background:#fff;padding:9px 10px;color:var(--ink);min-width:0}[hidden]{display:none!important}.topbar{height:78px;padding:0 32px;display:flex;align-items:center;gap:13px;background:#fff;border-bottom:1px solid var(--line)}.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--accent);color:white;display:grid;place-items:center;font-size:21px;font-weight:700;box-shadow:0 4px 9px #4869ed24}.brand{display:flex;align-items:center;gap:18px}.brand strong{font-size:20px;letter-spacing:2px}.brand span{border-left:1px solid var(--line);padding-left:18px;color:#657187}.edition{font-size:11px;color:#6f7bb0;background:#f0f3fc;padding:4px 8px;border-radius:5px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.summary{color:var(--muted);font-size:12px;margin-right:8px}.button{border:1px solid #dce2ec;border-radius:8px;padding:10px 15px;background:white;color:#4e5d75;white-space:nowrap;font-weight:500}.button:hover{background:#f3f5fa}.button.primary{background:var(--accent);border-color:var(--accent);color:white;box-shadow:0 3px 7px #4869ed20}.button.primary:hover{background:#3c5bd3}.button.quiet{border-color:transparent;background:transparent}.button.small{padding:8px 11px;font-size:12px}.workspace{display:flex;min-height:calc(100vh - 78px)}.sidebar{width:218px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);padding:30px 18px;display:flex;flex-direction:column}.sidebar-heading{font-weight:650;display:flex;align-items:center;justify-content:space-between;padding:0 6px}.count{font-size:11px;color:#8996a9;background:#f1f4f8;padding:3px 6px;border-radius:5px}.sidebar-caption{font-size:11px;color:#929cab;padding:0 6px;margin:10px 0 25px}.saved-window{display:flex;align-items:center;gap:9px;padding:12px 10px;border:0;border-radius:8px;width:100%;text-align:left;background:transparent;margin-bottom:5px;color:#69768a}.saved-window:hover{background:#f6f8fc}.saved-window.running{background:var(--soft);color:#4663c9}.saved-window .saved-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.saved-window .saved-action{font-size:11px;flex-shrink:0}.status-dot{width:7px;height:7px;background:#b4bdcb;border-radius:50%;flex-shrink:0}.running .status-dot{background:#667ff0}.sidebar-note{margin-top:auto;padding:35px 6px 0;display:flex;gap:9px;color:#6b7890;font-size:12px;line-height:1.6}.note-dot{margin-top:5px;width:6px;height:6px;border-radius:50%;background:#90a1bc;flex-shrink:0}.sidebar-note p{font-size:11px;color:#99a3b4;margin:6px 0 0;line-height:1.9}main{flex:1;min-width:0;padding:32px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.eyebrow{font-size:11px;letter-spacing:2px;color:#96a1b2;margin:0 0 9px}h1{font-size:23px;font-weight:650;letter-spacing:.2px;margin:0;display:flex;align-items:center;gap:10px}h1 span{font-size:12px;background:#e8ecf6;color:#7a88a1;min-width:24px;height:23px;border-radius:6px;display:grid;place-items:center}.auto-save{font-size:11px;color:#94a0b2}.auto-save:before{content:'✓';margin-right:6px;color:#8ca698}.defaults-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:15px 18px;background:white;border:1px solid var(--line);border-radius:11px;box-shadow:0 2px 4px #23345003}.defaults-label{font-size:12px;font-weight:600;color:#63718a;margin-right:12px}.defaults-bar label{font-size:12px;color:#8b96a8;display:flex;align-items:center;gap:7px}.defaults-bar input{width:73px;padding:7px;font-size:12px}.defaults-bar .fps-number{width:62px}.defaults-bar select{padding:7px;font-size:12px}.times,.unit{font-size:11px;color:#a4adba}.separator{height:22px;width:1px;background:var(--line);margin:0 6px}.text-button{border:0;background:transparent;color:#6d7ba0;padding:7px;font-size:12px}.text-button:hover{color:var(--accent)}.defaults-bar button[type=submit]{margin-left:auto}.workspace-hint{font-size:11px;color:#9aa5b6;margin:12px 2px 24px}.game-grid{display:flex;flex-wrap:wrap;align-items:flex-start;gap:22px;overflow-x:auto;padding:0 2px 15px}.game-panel{flex:none;border:1px solid #dfe5ee;border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 5px 15px #15213b08;transition:box-shadow .2s}.game-panel.focused{box-shadow:0 0 0 3px #7e97ff,0 8px 22px #21345016}.panel-heading{display:flex;align-items:center;gap:9px;padding:13px 12px 7px}.panel-number{background:var(--soft);color:#7386ce;font-size:10px;padding:4px 6px;border-radius:5px}.panel-name{margin:0;font-size:13px;font-weight:650;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-button{border:0;background:transparent;color:#98a2b2;font-size:23px;line-height:1;padding:3px 5px;border-radius:4px}.icon-button:hover{background:#fff0f0;color:#cc5663}.panel-meta{display:flex;align-items:center;gap:6px;padding:0 12px 10px;font-size:10px;color:#8b98ac}.panel-status{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.panel-status[data-state=online]{color:#31946a}.panel-status[data-state=error],.panel-status[data-state=disconnected]{color:#cf7664}.panel-controls{display:flex;align-items:center;gap:5px;padding:9px 10px;border-top:1px solid #f0f3f7;background:#fbfcfe;flex-wrap:wrap}.panel-controls button{border:1px solid #e3e8f1;background:white;border-radius:5px;color:#6d7c92;font-size:10px;padding:5px 6px}.panel-controls button:hover{color:var(--accent);border-color:#aebcf4}.panel-fps{margin-left:auto;color:#8a97ac;font-size:10px;white-space:nowrap}.game-viewport{background:#11151d;position:relative;overflow:hidden}.game-viewport iframe{display:block;border:0;position:absolute;left:0;top:0;transform-origin:top left}.empty-state{min-height:450px;margin:16px 0 0;padding:45px 20px;text-align:center;border:1px dashed #dce3ed;border-radius:14px;background:linear-gradient(155deg,#fafbfe,#f4f7fb)}.empty-art{position:relative;width:150px;height:115px;margin:0 auto 20px}.mini-window{position:absolute;width:78px;height:95px;border:1px solid #dce3f1;border-radius:9px;background:white;box-shadow:0 6px 15px #60719509}.mini-window i{display:block;height:15px;background:#f1f4fb;border-bottom:1px solid #e6ebf4;border-radius:8px 8px 0 0}.mini-window i:before{content:'•••';font-size:9px;color:#c8d2e8;position:absolute;left:7px;top:0;letter-spacing:2px}.mini-window.rear{left:21px;top:2px;transform:rotate(-9deg)}.mini-window.rear b{display:block;margin:17px 10px;height:30px;border-radius:5px;background:#eff3fa}.mini-window.front{right:19px;top:13px;transform:rotate(7deg);border-color:#ced9f8}.mini-window.front span{display:grid;place-items:center;color:#93a8ee;font-size:29px;height:76px}.empty-state h2{font-size:19px;font-weight:600;margin:0 0 12px}.empty-state p{font-size:12px;color:#8a96aa;line-height:2;margin:0 0 22px}.empty-tags{display:flex;justify-content:center;gap:19px;font-size:10px;color:#9aa7ba;margin-top:23px}.empty-tags span:before{content:'✓';color:#a8b6d5;margin-right:5px}#notice{padding:12px 16px;border-radius:8px;background:#fff7e6;color:#927035;margin-bottom:18px;font-size:12px;line-height:1.7}dialog{width:420px;max-width:calc(100vw - 32px);border:1px solid #e2e7f0;border-radius:16px;padding:25px;box-shadow:0 20px 90px #1f2c4e35;color:var(--ink)}dialog::backdrop{background:#25324d55;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dialog-heading h2{font-size:19px;margin:0}.dialog-caption{color:#8995a8;font-size:12px;line-height:1.8;margin-bottom:21px}.field{display:flex;flex-direction:column;gap:9px;font-size:12px;color:#718097;margin-bottom:17px}.field input,.field select{width:100%;font-size:13px;padding:11px}.field-row{display:flex;gap:14px}.field-row .field{flex:1;min-width:0}.field-note{font-size:11px;color:#96a1b1;line-height:1.8}.dialog-footer{display:flex;justify-content:flex-end;gap:9px;padding-top:13px;margin-top:17px;border-top:1px solid #edf0f5}.dialog-footer .text-button{margin-right:auto}@media(max-width:1000px){.sidebar{width:175px;padding:25px 12px}main{padding:25px 20px}.summary,.edition{display:none}.topbar{padding:0 22px}.defaults-label{width:100%;margin-bottom:4px}.defaults-bar button[type=submit]{margin-left:0}.auto-save{display:none}}@media(max-width:640px){.sidebar{display:none}.topbar{height:auto;min-height:75px;padding:16px;flex-wrap:wrap}.brand{gap:10px}.brand span{padding-left:10px}.top-actions{width:100%;margin:3px 0 0;justify-content:flex-end}.top-actions .button{font-size:12px}main{padding:24px 12px}h1{font-size:19px}.defaults-bar{padding:12px}.empty-state{padding:30px 12px}.game-grid{gap:16px}.page-heading{margin-bottom:20px}}
.game-panel.focus-view{position:fixed;z-index:50;left:50%;top:50%;transform:translate(-50%,-50%);max-height:95vh;overflow:auto;box-shadow:0 0 0 100vmax #18223bd9}.panel-status[data-state=expired]{color:#cf7664}
/* Compact game window header: identity and status share one line. */
.panel-heading{gap:6px;padding:8px 9px}.panel-number{flex-shrink:0;padding:3px 4px}.panel-identity{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.panel-heading .panel-name{flex:0 1 auto;font-size:12px;min-width:0}.panel-account{flex:1 1 auto;min-width:0;padding:0;color:#7b879b;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-account:not([hidden])::before{content:'·';margin-right:5px}.panel-heading .panel-close{flex-shrink:0;font-size:20px;padding:1px 3px}
.panel-heading .panel-status{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;font-size:10px;color:#8b98ac;white-space:nowrap}.panel-heading .panel-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}.panel-heading .panel-status[data-state=online]{color:#279564}.panel-heading .panel-status[data-state=authenticating],.panel-heading .panel-status[data-state=connected]{color:#ad8535}.panel-heading .panel-status[data-state=error],.panel-heading .panel-status[data-state=disconnected],.panel-heading .panel-status[data-state=expired]{color:#ce5260}.panel-controls{gap:4px;padding:6px 8px}.panel-controls button{padding:4px 6px}.panel-fps{flex-shrink:0}

/* Account catalog */
/* Keep the requested column count, including an incomplete last row. */
.game-grid.auto-columns{display:grid;grid-template-columns:repeat(var(--window-columns),minmax(0,1fr));column-gap:clamp(4px,1.2vw,22px)}
.auto-columns .game-panel{min-width:0}.auto-columns .panel-heading{overflow:hidden}.auto-columns .panel-heading .panel-status{flex-shrink:1;min-width:0;display:block;text-overflow:ellipsis;overflow:hidden}.auto-columns .panel-heading .panel-status::before{display:inline-block;margin-right:4px}.auto-columns .panel-controls{overflow-x:auto}
.defaults-bar input:disabled{background:#f4f6f9;color:#9aa5b6}

.sidebar{width:260px;padding:22px 14px}.sidebar-caption{line-height:1.7;margin-bottom:12px}
.account-entry-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.account-selection{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);margin:22px 0 12px}.account-selection label{display:flex;align-items:center;gap:4px}.account-selection .text-button{margin-left:auto;padding:4px 0;font-size:11px}
.account-card{padding:8px 9px;margin-bottom:6px;border:1px solid var(--line);border-left:3px solid #ce5260;border-radius:7px;background:#fff}.account-card.running{background:#f6f8ff;border-color:#dce3ff;border-left-color:#279564}
.account-card-heading{display:flex;gap:7px;align-items:center;min-height:20px}.account-card-heading input{width:14px;height:14px;margin:0;flex-shrink:0;accent-color:var(--accent)}.account-identity{display:flex;align-items:center;gap:3px;flex:1;min-width:0}.account-name{border:0;background:none;color:var(--ink);padding:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;flex:0 1 auto;min-width:0}
.account-details{flex:1;min-width:0;font-size:11px;color:var(--muted);margin:0;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-actions{display:flex;align-items:center;gap:5px;margin-top:5px;min-height:26px}.account-state{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:10px;color:#ce5260;white-space:nowrap}.account-state::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}.running .account-state{color:#279564}.text-button.danger{color:#c95360}
.account-action{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-width:26px;height:26px;border:1px solid #dce2ec;border-radius:5px;padding:0 6px;background:#fff;color:#64748b;font-size:12px;line-height:1}.account-action:hover{background:#edf1ff;border-color:#b2bff2}.account-rename{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;padding:2px;border:0;background:transparent;border-radius:3px}.account-rename:hover{filter:brightness(1.1)}.account-rename svg{width:18px;height:18px}.account-toggle{background:#279564;border-color:#279564;color:#fff}.account-toggle:hover{background:#207b52;border-color:#207b52}.account-card.running .account-toggle{background:#ce5260;border-color:#ce5260}.account-card.running .account-toggle:hover{background:#b8404e;border-color:#b8404e}.account-delete{background:#ce5260;border-color:#ce5260;color:#fff}.account-delete:hover{background:#b8404e;border-color:#b8404e}
.unbound-heading{font-size:12px;margin:20px 0 10px}.account-delete-names{max-height:180px;overflow:auto;font-size:13px;line-height:1.9;overflow-wrap:anywhere}.button.danger-button{color:#fff;background:#ca5260;border-color:#ca5260}
.account-login-dialog{width:540px;padding:20px;max-height:calc(100dvh - 24px)}.account-login-dialog[open]{display:flex;flex-direction:column}.account-login-dialog .dialog-caption{margin:0 0 8px}.account-login-dialog .dialog-heading,.account-login-dialog .dialog-caption,.account-login-dialog .login-methods,.account-login-dialog .field-note,.account-login-dialog .dialog-footer{flex-shrink:0}.account-login-dialog .dialog-footer{margin-top:10px;padding-top:10px}#account-login-host{height:min(62vh,620px);min-height:160px;flex:0 1 auto;border:1px solid var(--line);border-radius:8px;overflow:hidden}#account-login-host iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:1000px){.sidebar{width:260px;padding:24px 12px}}
.login-methods{display:flex;gap:6px;padding:5px;background:#f1f4fa;border-radius:9px;margin:14px 0}.login-methods button{flex:1;border:0;border-radius:6px;padding:10px 6px;background:transparent;color:var(--muted);font-size:12px}.login-methods button[aria-pressed=true]{background:#fff;color:var(--accent);box-shadow:0 2px 5px #23345012}
@media(max-width:640px){.workspace{flex-direction:column}.sidebar{display:flex;width:100%;border-right:0;border-bottom:1px solid var(--line);padding:20px 16px}.sidebar-note{padding-top:12px}#account-list{max-height:300px;overflow:auto}.account-entry-actions .button{padding:8px 5px;font-size:11px}.account-login-dialog{padding:14px}#account-login-host{height:58vh;min-height:160px}}
