:root{color-scheme:light;--ink:#3e3345;--muted:#8d8292;--cream:#faf7f4;--panel:#fff;--line:#eee7e4;--violet:#8e70d7;--violet-dark:#7053be;--pink:#f4dce7;--shadow:0 10px 28px rgba(73,48,87,.055)}
*{box-sizing:border-box}
html{font-family:Inter,"Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;font-size:15px}
body{margin:0;color:var(--ink);background:var(--cream)}
a{color:var(--violet-dark);text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.muted{color:var(--muted)}.block{display:block}.eyebrow{font-size:.77rem;letter-spacing:.16em;font-weight:800;color:var(--violet);text-transform:uppercase}
.app-shell{min-height:100vh;display:grid;grid-template-columns:226px minmax(0,1fr)}
.sidebar{background:#fff;border-right:1px solid var(--line);padding:30px 16px;display:flex;flex-direction:column;gap:38px}
.brand{display:flex;align-items:center;gap:11px;padding:0 13px;color:var(--ink);font-weight:850;font-size:1.14rem;white-space:nowrap}
.brand small{display:block;color:var(--muted);font-weight:500;font-size:.72rem;margin-top:3px;letter-spacing:.07em}
.brand-mark{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#ffe6b6,#efcfec 63%,#d6d3fd);color:#ab6eb1;font-size:1.7rem;box-shadow:0 5px 15px rgba(154,105,164,.12)}
.nav-label{font-size:.72rem;color:#b3a8b1;font-weight:750;letter-spacing:.13em;margin:0 14px -26px}
nav{display:grid;gap:5px}nav a{display:flex;align-items:center;gap:12px;border-radius:12px;padding:12px 15px;color:#827784;font-weight:620;transition:background .15s,color .15s}nav a span{width:20px;text-align:center;font-size:1.15rem;color:#ad9ab7}nav a:hover{background:#f7f3fb;color:var(--violet-dark)}nav a.active{color:var(--violet-dark);background:#f1eafc;font-weight:800}nav a.active span{color:var(--violet-dark)}
.sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding:21px 14px 0;color:var(--muted);font-size:.76rem}.status-dot{display:inline-block;background:#6bc6a5;width:8px;height:8px;border-radius:50%;margin-right:8px}
.main-area{min-width:0;display:flex;flex-direction:column}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);padding:0 42px;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar strong{font-size:.99rem}.topbar-sub{font-size:.79rem;margin-left:15px;color:var(--muted)}.topbar-user{display:flex;align-items:center;gap:10px;font-size:.86rem;font-weight:650}.avatar{display:grid;place-items:center;flex:none;width:37px;height:37px;border-radius:50%;background:#f6e2e7;color:#ad687d;font-size:.9rem}.avatar.small{width:34px;height:34px;font-size:.7rem}.text-button{border:0;background:none;color:var(--muted);padding:5px 0 5px 8px}.text-button:hover{color:var(--violet-dark)}
.content{padding:38px 42px 80px;max-width:1450px;margin:0 auto;flex:1;width:100%}.section-title{margin-bottom:28px}.section-title h1{font-size:1.85rem;letter-spacing:-.04em;margin:8px 0 7px}.section-title p{color:var(--muted);margin:0;line-height:1.65}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:21px}.metric-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:21px 23px;min-height:132px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:flex-start}.metric-card span{color:#94869b;font-size:.85rem;font-weight:650}.metric-card strong{font-size:2rem;line-height:1.25;margin-top:12px;letter-spacing:-.04em}.metric-card em{font-size:.74rem;color:#b8aab8;font-style:normal;margin-top:auto}
.two-column{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:20px;margin-bottom:20px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:23px;box-shadow:var(--shadow);min-width:0;margin-bottom:20px}.two-column .panel{margin-bottom:0}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px;gap:10px}.panel-head h2{font-size:1.05rem;margin:0;letter-spacing:-.02em}.panel-head a{font-size:.83rem;font-weight:680}.panel p{line-height:1.8;color:#746a78}.panel p:first-of-type{margin-top:0}.empty{padding:34px 12px;text-align:center;color:#a79aaa;font-size:.9rem}.notice{padding:13px 15px;background:#fff6e9;border-radius:11px;color:#92754d!important;font-size:.85rem;line-height:1.7!important;margin-top:15px}
.recent-row,.game-row{display:flex;align-items:center;gap:12px;padding:11px 5px;border-top:1px solid #f3edf0;color:var(--ink)}.recent-row:hover,.game-row:hover{background:#fbf8fc}.recent-row span:nth-child(2),.game-row span:nth-child(2){min-width:0}.recent-row strong,.game-row strong{display:block;font-size:.85rem}.recent-row small,.game-row small{display:block;color:var(--muted);font-size:.73rem;margin-top:3px}.recent-row time{margin-left:auto;color:#afa4b1;font-size:.72rem;white-space:nowrap}.game-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#f6e9f0;color:#b77c9c}.game-row b{margin-left:auto;color:var(--violet);font-weight:500}.intro-panel .button{margin-top:9px}
.form-stack{display:grid;gap:18px}.form-stack label{display:grid;gap:7px;font-size:.83rem;color:#65596a;font-weight:680}.form-stack input,.form-stack select,.form-stack textarea,.filter-form input,.filter-form select{width:100%;border:1px solid #e8dde8;border-radius:9px;padding:11px 12px;outline:0;color:var(--ink);background:#fff;min-height:43px}.form-stack input:focus,.form-stack select:focus,.form-stack textarea:focus,.filter-form input:focus,.filter-form select:focus{border-color:#b698e8;box-shadow:0 0 0 3px rgba(142,112,215,.1)}textarea{resize:vertical}.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;border:1px solid #d9c9e7;background:#fff;color:var(--violet-dark);border-radius:9px;min-height:43px;padding:10px 16px;font-weight:750;text-align:center;white-space:nowrap}.button:hover{background:#f8f4fc}.button-primary{background:var(--violet);border-color:var(--violet);color:#fff}.button-primary:hover{background:var(--violet-dark);color:#fff}
.table-wrap{overflow-x:auto;max-width:100%}table{width:100%;border-collapse:collapse;font-size:.84rem;white-space:nowrap}th{text-align:left;background:#faf7fa;color:#948799;font-size:.75rem;font-weight:750;padding:12px 13px}td{border-top:1px solid #f2ecf0;padding:12px 13px;color:#625866}td strong{font-weight:750}td small{font-size:.68rem;margin-top:4px}td.value-cell{white-space:normal;max-width:480px;overflow-wrap:anywhere}.badge{display:inline-block;border-radius:50px;padding:4px 9px;background:#f3ebfc;color:#8161b7;font-size:.72rem;font-weight:700}.chip-list{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:7px 10px;background:#f9f4f9;border-radius:9px;color:#79677d;font-size:.8rem}.filter-form{display:flex;align-items:center;gap:10px;margin-bottom:20px}.filter-form select{max-width:200px}.filter-form input{max-width:330px}.filter-form .muted{margin-left:auto;font-size:.8rem;white-space:nowrap}.pagination{display:flex;justify-content:center;gap:20px;padding:20px 0 0;color:var(--muted);font-size:.83rem}
.alert{padding:12px 15px;border-radius:10px;margin-bottom:19px;font-size:.88rem}.alert-ok{background:#e9f8ef;color:#327252}.alert-error{background:#fff0ef;color:#aa4e4c}.alert-warning{background:#fff3e2;color:#956b32}
pre{background:#faf7fa;border:1px solid #f0e8ee;border-radius:11px;padding:17px;overflow:auto;color:#664d73;font-size:.85rem;line-height:1.55}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85em}
.login-body{min-height:100vh;background:radial-gradient(circle at 20% 15%,#fff1db,transparent 33%),radial-gradient(circle at 85% 85%,#eadffc,transparent 35%),#fbf7f8;display:grid;place-items:center;padding:24px 24px 64px;position:relative}.login-card{width:min(100%,440px);background:#fff;border:1px solid #f0e8ec;border-radius:23px;box-shadow:0 25px 65px rgba(97,65,98,.11);padding:42px}.login-card .brand-mark{margin-bottom:25px;width:53px;height:53px}.login-card h1{font-size:1.65rem;letter-spacing:-.04em;margin:10px 0}.login-card .muted{font-size:.85rem;margin-bottom:26px}.login-card .button{margin-top:8px;width:100%}.login-note{font-size:.73rem;color:#a49ba5;line-height:1.7;margin:24px 0 0}
.site-footer{padding:18px 20px 24px;text-align:center;color:var(--muted);font-size:.78rem}.site-footer a{color:inherit}.site-footer a:hover{color:var(--violet-dark)}.site-footer-login{position:absolute;bottom:0;left:0;right:0}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column{grid-template-columns:1fr}.content{padding:29px 27px}.topbar{padding:0 27px}}
@media(max-width:680px){.app-shell{display:block}.sidebar{padding:16px;gap:12px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{padding:0}.sidebar .nav-label,.sidebar-footer{display:none}.sidebar nav{display:flex;overflow-x:auto;gap:3px;margin:0 -16px;padding:0 12px}.sidebar nav a{white-space:nowrap;padding:9px 11px;font-size:.78rem}.sidebar nav a span{display:none}.topbar{height:58px;padding:0 16px}.topbar-sub{display:none}.topbar-user{font-size:.75rem}.topbar-user .avatar{display:none}.content{padding:26px 15px}.section-title h1{font-size:1.55rem}.metric-grid{gap:9px}.metric-card{padding:15px;min-height:110px}.metric-card strong{font-size:1.55rem}.metric-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.panel{padding:16px}.filter-form{flex-wrap:wrap}.filter-form select,.filter-form input{max-width:none;width:calc(50% - 5px)}.filter-form .muted{margin-left:0}.recent-row time{font-size:.63rem}.login-card{padding:29px}}
.filter-form{flex-wrap:wrap}
.integration-entry{display:flex;align-items:center;justify-content:space-between;gap:18px}.integration-entry p{margin:8px 0 0}.integration-prompt{width:100%;min-height:520px;border:1px solid #e8dde8;border-radius:10px;padding:17px;color:var(--ink);background:#faf8fc;font:13px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.wrap-code{overflow-wrap:anywhere}
@media(max-width:680px){.integration-entry{align-items:stretch;flex-direction:column}.integration-prompt{min-height:420px}}
