:root{color-scheme:light;--bg:#f6f8fc;--text:#172239;--muted:#738096;--line:#e7ecf4;--accent:#245fe5;--selection:#edf4ff;font:13px/1.55 "Segoe UI","Microsoft YaHei UI",system-ui,sans-serif;color:var(--text);background:var(--bg)}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--text);cursor:pointer;white-space:nowrap}button:hover{background:#f2f5fb;border-color:#cdd8e9}button:active{background:#e7eefc}button:disabled{cursor:default;opacity:.48}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #7ba3fa;outline-offset:2px}.primary{color:white;background:var(--accent);border-color:var(--accent)}.primary:hover{background:#194dc2;border-color:#194dc2}.danger{color:#b43c40}button img{width:17px;height:17px;flex:none}input,select{min-width:0;padding:9px 10px;background:white;color:var(--text);border:1px solid var(--line);border-radius:6px}h1,h2,h3,p{margin:0}h1{font-size:22px;line-height:1.4;font-weight:650}h2{font-size:18px;line-height:1.4}h3{font-size:13px;font-weight:650}[hidden]{display:none!important}.muted,.meta{color:var(--muted);font-size:12px}
.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100dvh}.sidebar{padding:24px 14px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:#f8fafe;gap:30px}.brand{display:flex;align-items:center;gap:10px;padding:0 8px;white-space:nowrap}.brand img{object-fit:contain}.brand strong{font-size:14px;color:var(--accent);font-weight:600}.brand span{display:block;font-size:12px;color:var(--muted)}.sidebar nav{display:grid;gap:8px}.nav-item{justify-content:flex-start;border-color:transparent;background:transparent;gap:12px;padding:10px 14px}.nav-item.active{background:#e8f0ff;color:var(--accent);font-weight:600}.nav-item.active img{filter:invert(30%) sepia(86%) saturate(2179%) hue-rotate(217deg) brightness(94%)}.service-status{margin-top:auto;padding:12px 8px;font-size:11px;color:var(--muted)}.service-status[data-state=error]{color:#b43c40}main{min-width:0;display:flex;flex-direction:column;height:100dvh}.page-header{height:100px;flex:none;padding:23px 26px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.page-header p{color:var(--muted);font-size:12px;margin-top:4px}.header-actions{display:flex;align-items:center;gap:10px}.header-actions>span{color:var(--muted);font-size:12px}.icon-button{padding:8px;min-width:36px}#logout{font-size:12px}#status:empty{display:none}#status{padding:9px 24px;background:#fff5df;color:#835818;flex:none;white-space:pre-wrap}#review{flex:1;min-height:0}
.workspace{height:100%;display:grid;grid-template-columns:minmax(250px,310px) minmax(0,1fr);border-top:1px solid var(--line);background:white}.list-pane{padding:16px 12px;overflow-y:auto;border-right:1px solid var(--line)}#search{padding:0 4px}.search-box{position:relative;display:flex;align-items:center}.search-box>img{position:absolute;left:10px;width:16px;height:16px;opacity:.5}.search-box input{padding-left:33px;width:100%;font-size:12px}.filter-row{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-top:10px}.filter-row select{flex:1}.filter-row>span{white-space:nowrap}.list-count{font-size:12px;color:var(--muted);padding:13px 6px 8px}#cards{display:grid;gap:5px}.recipe-row{width:100%;text-align:left;align-items:flex-start;justify-content:flex-start;padding:16px 12px;border-color:transparent;white-space:normal;min-height:94px;gap:12px}.recipe-row:hover{border-color:transparent;background:#f6f8fc}.recipe-row.selected{background:var(--selection);border-color:#e2edff}.game-icon{width:44px;height:44px;flex:none;display:grid;place-items:center;border-radius:8px;background:#f1f4f9}.game-icon img{width:25px;height:25px;opacity:.6}.selected .game-icon{background:#dfeafd}.row-text{min-width:0;flex:1}.row-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.row-title strong{font-size:14px;overflow-wrap:anywhere}.row-subtitle{margin:3px 0 7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#4d5a71;font-size:12px}.row-meta,.detail-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px}.row-meta{gap:8px}.badge{border-radius:4px;padding:1px 7px;font-size:11px;font-weight:500;white-space:nowrap;color:#12875c;background:#e1f4ea}.badge.hidden,.badge.warning{background:#fff0d7;color:#986516}.pagination{display:flex;justify-content:center;gap:8px;padding:18px 0}.pagination button{font-size:12px;min-height:30px}
.detail-pane{min-width:0;min-height:0;display:flex;flex-direction:column}.detail-scroll{flex:1;min-height:0;overflow:auto;padding:24px;scrollbar-gutter:stable}.detail-heading{display:flex;align-items:flex-start;gap:14px}.detail-heading .game-icon{width:56px;height:56px}.detail-heading .game-icon img{width:30px;height:30px}.heading-text{min-width:0;flex:1}.heading-title{display:flex;gap:12px;align-items:center}.heading-title h2{font-size:20px;overflow-wrap:anywhere}.detail-subtitle{margin:4px 0 8px;font-size:14px;overflow-wrap:anywhere}.stat{display:inline-flex;align-items:center;gap:5px}.stat img{width:13px;height:13px;opacity:.6}.detail-section{margin-top:22px}.section-heading{display:flex;align-items:center;gap:8px;margin-bottom:10px;flex-wrap:wrap}.section-heading>img{width:16px;height:16px;opacity:.75}.section-heading .muted{margin-left:auto}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px;padding:14px;border:1px solid var(--line);border-radius:8px;margin:0}.datum{display:grid;grid-template-columns:74px minmax(0,1fr);gap:8px;font-size:12px;align-items:baseline}.datum dt{color:var(--muted)}.datum dd{margin:0;overflow-wrap:anywhere}
.visual-comparison{border:1px solid var(--line);border-radius:8px;overflow:hidden}.comparison-head,.comparison-row{display:grid;grid-template-columns:minmax(120px,1.15fr) minmax(0,1fr) 20px minmax(0,1fr);gap:12px;align-items:center;padding:10px 14px}.comparison-head{font-size:11px;color:var(--muted);background:#fafbfe}.comparison-row+.comparison-row{border-top:1px solid var(--line)}.comparison-label{font-size:12px;overflow-wrap:anywhere}.comparison-arrow{width:14px;height:14px;opacity:.4}.comparison-value{min-width:0;text-align:center;font-size:12px}.value-chip{display:inline-block;background:#f0f3f8;border-radius:5px;padding:4px 8px;overflow-wrap:anywhere;max-width:100%}.player .value-chip{background:#eaf1ff;color:var(--accent)}.meter-value{display:block;line-height:1.3;margin-bottom:4px;font-variant-numeric:tabular-nums}.player .meter-value{color:var(--accent);font-weight:600}meter{appearance:none;display:block;width:100%;height:6px;border:0;border-radius:5px;background:#e7ebf2}meter::-webkit-meter-bar{background:#e7ebf2;border:0;border-radius:5px;height:6px}meter::-webkit-meter-optimum-value{background:#99a3b5;border-radius:5px}.player meter::-webkit-meter-optimum-value{background:var(--accent)}meter::-moz-meter-bar{background:#99a3b5}.player meter::-moz-meter-bar{background:var(--accent)}.axis{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-top:4px}
.table-wrap{border:1px solid var(--line);border-radius:8px;overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{font-weight:500;color:var(--muted);background:#f8fafe}th,td{padding:7px 12px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}tbody tr:last-child td{border-bottom:0}.runtime-name{display:flex;gap:7px;align-items:center}.runtime-name img{width:14px;height:14px;opacity:.65}.runtime-version{font-variant-numeric:tabular-nums}.notes{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px 14px;background:#f6f8fc;border-radius:8px;font-size:12px;line-height:1.8}.notice{margin-top:12px;padding:10px 12px;background:#fff7e8;color:#88632c;border-radius:6px;font-size:12px}.report-list{margin:0;padding-left:22px;font-size:12px}.raw-data{margin-top:16px;color:var(--muted);font-size:12px}.raw-data summary{cursor:pointer}.raw-data pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:var(--bg);font-size:11px}.detail-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex:none;padding:14px 24px;border-top:1px solid var(--line);background:rgba(255,255,255,.97)}.detail-footer>.primary{min-width:116px}.more-actions{position:relative}.more-actions>summary{list-style:none;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;width:36px;height:36px;cursor:pointer}.more-actions>summary::-webkit-details-marker{display:none}.more-actions img{width:18px;height:18px}.more-menu{position:absolute;right:0;bottom:44px;width:158px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px;box-shadow:0 8px 28px #18223814;z-index:5}.more-menu button{width:100%;justify-content:flex-start;border:0}.mobile-back{display:none}.empty{padding:40px 24px;text-align:center;color:var(--muted)}
.login-panel{margin:auto;max-width:410px;width:calc(100% - 36px);padding:30px;background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:12px}.login-panel>img{margin-bottom:4px}.login-panel label{margin-top:3px}.email-row{display:flex;gap:6px}.email-row input{width:100%}.email-row select{max-width:142px}#email-preview{color:var(--muted);min-height:15px}.game-directory{height:100%;overflow:auto;padding:24px;max-width:1100px;margin:0 auto}.game-directory>p{margin:10px 0}.game-directory form{display:flex;gap:8px;margin:20px 0}.game-directory form input{flex:1}#game-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}#game-results article{background:white;border:1px solid var(--line);padding:16px;border-radius:8px;min-width:0}#game-results p{overflow-wrap:anywhere;margin:6px 0}#game-results nav{display:flex;gap:8px;margin-top:12px}#game-plan{padding:16px;border:1px solid #c7d9fc;background:var(--selection);margin:12px 0;border-radius:8px}#game-plan p{margin-bottom:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1500px){.workspace{grid-template-columns:340px minmax(0,1fr)}.detail-scroll{padding:28px 32px}.detail-footer{padding-right:32px}}@media(max-width:1100px){.app-shell{grid-template-columns:180px minmax(0,1fr)}.brand{gap:8px;padding:0}.brand strong{font-size:12px}.brand img{width:27px;height:27px}.workspace{grid-template-columns:260px minmax(0,1fr)}.detail-grid{grid-template-columns:1fr}.detail-scroll{padding:20px}.header-actions>span{display:none}.comparison-head,.comparison-row{grid-template-columns:minmax(90px,1fr) minmax(0,1fr) 12px minmax(0,1fr);gap:8px;padding:10px}}
@media(max-width:760px){.app-shell{display:block}.sidebar{padding:0;border:0;gap:0;background:white}.brand,.service-status{display:none}.sidebar nav{display:flex;gap:2px;padding:8px 12px;border-bottom:1px solid var(--line)}.nav-item{flex:1;justify-content:center;gap:6px;padding:8px 6px;font-size:12px;min-height:38px}.nav-item img{width:16px;height:16px}main{height:calc(100dvh - 55px)}.page-header{height:78px;padding:14px 18px}.page-header h1{font-size:19px}.page-header p{font-size:11px}.header-actions{gap:6px}#logout{padding:8px}#logout img{display:none}.workspace{display:block;position:relative}.list-pane{height:100%;border:0;padding:14px 16px}.detail-pane{display:none;height:100%}.show-detail .list-pane{display:none}.show-detail .detail-pane{display:flex}.show-detail .mobile-back{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);flex:none}.mobile-back button{padding:5px;min-height:32px;min-width:32px;border:0}.mobile-back strong{font-weight:500}.detail-scroll{padding:18px 16px;scrollbar-gutter:auto}.detail-heading{gap:12px}.heading-title h2{font-size:19px}.detail-heading .game-icon{width:48px;height:48px}.detail-subtitle{font-size:13px}.detail-meta{gap:8px 12px;font-size:11px}.detail-section{margin-top:20px}.detail-grid{grid-template-columns:1fr;padding:12px;gap:7px}.datum{grid-template-columns:72px minmax(0,1fr)}.comparison-head,.comparison-row{grid-template-columns:minmax(88px,1fr) minmax(0,1fr) 12px minmax(0,1fr);gap:8px;padding:10px}.comparison-head{font-size:10px}.comparison-label,.comparison-value{font-size:11px}.value-chip{padding:4px 6px}.section-heading .muted{font-size:10px}.detail-footer{padding:12px 16px max(12px,env(safe-area-inset-bottom));gap:8px}.detail-footer>button{flex:1}.game-directory{padding:18px}body:has(.show-detail) .page-header{display:none}.login-panel{padding:24px}.table-wrap th,.table-wrap td{padding:7px 9px}#status{padding:8px 16px;font-size:12px}}
@media(prefers-reduced-motion:no-preference){button{transition:background .12s ease-out,border-color .12s ease-out}}
.datum,.comparison-label,.comparison-value,table,.notes{font-size:13px}
.confirm-dialog{border:1px solid var(--line);border-radius:12px;padding:24px;color:var(--text);width:440px;max-width:calc(100vw - 32px);box-shadow:0 16px 60px #18223826}.confirm-dialog::backdrop{background:#18223866}.confirm-dialog p{white-space:pre-wrap;overflow-wrap:anywhere;margin:16px 0 24px;line-height:1.8}.confirm-actions{display:flex;justify-content:flex-end;gap:10px}
@media(max-width:760px){body:has(.show-detail) .sidebar{display:none}body:has(.show-detail) main{height:100dvh}.datum,table,.notes,.comparison-label,.comparison-value{font-size:12px}.comparison-head,.axis,.section-heading .muted{font-size:11px}}
