:root{color-scheme:light;--paper:#f2f5f4;--white:#fff;--ink:#172520;--muted:#667570;--line:#dce4df;--deep:#16382d;--green:#287257;--mint:#e7f1eb;--gold:#a36b25;--gold-bg:#f8f0e3;--red:#a8443b;--mono:'Cascadia Code','Consolas',ui-monospace,monospace;--sans:'Bahnschrift','Segoe UI','Microsoft YaHei',sans-serif;--shadow:0 8px 26px rgba(24,52,41,.055)}
*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--paper)}body{margin:0;color:var(--ink);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #7bb89b;outline-offset:2px}[hidden]{display:none!important}
.app{min-height:100vh}.rail{position:fixed;inset:0 auto 0 0;width:228px;padding:25px 17px 18px;background:var(--deep);color:#eef5ef;display:flex;flex-direction:column;z-index:3}.brand-lockup{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.09em;white-space:nowrap}.brand-lockup i{color:#a6c6b4;font-style:normal;font-weight:500}.brand-mark{display:grid;width:31px;height:31px;place-items:center;border:1px solid #789587;border-radius:9px;color:#e1b977;font:600 19px/1 Georgia,serif}.rail-label{margin:48px 0 10px 12px;color:#99b0a5;font:10px var(--mono);letter-spacing:.13em}.nav{display:grid;gap:5px}.nav-item{display:flex;align-items:center;gap:11px;min-height:42px;padding:0 12px;border:0;border-radius:6px;background:transparent;color:#c3d1c8;text-align:left;transition:background .16s,color .16s}.nav-item:hover{background:#ffffff11;color:#fff}.nav-item.active{background:#ffffff19;color:#fff;box-shadow:inset 2px 0 #e3bf82}.nav-glyph{width:18px;text-align:center;color:#aec6b7;font-size:17px}.rail-bottom{margin-top:auto;display:grid;grid-template-columns:9px 1fr auto;align-items:center;gap:7px 8px;padding:14px 7px 0;border-top:1px solid #ffffff22;color:#c6d2cb;font-size:11px}.rail-bottom b{font:11px var(--mono);color:#c4ddcb}.online-dot,.readonly span{width:7px;height:7px;border-radius:50%;background:#82c49c}.logout{grid-column:1/-1;margin-top:9px;padding:8px 0;border:0;background:transparent;color:#b8c9bf;text-align:left;font-size:12px}.logout:hover{color:white}
.main{max-width:1640px;margin-left:228px;padding:0 38px 30px}.topbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:100px;margin:0 -38px;padding:20px 38px;background:rgba(242,245,244,.94);border-bottom:1px solid #dce4dfaa;backdrop-filter:blur(12px)}.eyebrow{margin:0 0 5px;color:#75827c;font:10px var(--mono);letter-spacing:.12em}.topbar h1{margin:0;font-size:23px;line-height:1.2;font-weight:650;letter-spacing:-.025em}.top-actions{display:flex;align-items:center;gap:14px}.updated{color:var(--muted);font:11px var(--mono)}.button{min-height:38px;padding:0 13px;border:1px solid var(--line);border-radius:5px;background:#fff;color:#25372e;font-weight:600;transition:background .15s,border-color .15s}.button:hover{background:#f8fbf9;border-color:#aebeb3}.button:disabled{opacity:.55;cursor:wait}.refresh span{margin-right:5px;color:var(--green);font-size:18px}.notice{margin:16px 0 0;padding:10px 13px;border:1px solid #e4c8a0;border-radius:5px;background:#fffaf1;color:#744f25}.view{display:none;padding-top:27px}.view.active{display:block}.summary-line{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px}.summary-line h2{margin:0;font-size:18px;font-weight:650;letter-spacing:-.02em}.summary-line p,.panel-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.readonly{display:flex;align-items:center;gap:7px;color:#586860;font-size:11px}.readonly span{background:#71977f}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{min-height:134px;padding:17px 18px 15px;border:1px solid var(--line);border-radius:7px;background:var(--white);box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:flex-start}.metric>span{display:flex;align-items:center;gap:9px;color:#596861;font-size:12px;font-weight:600}.metric small{color:#86928c;font:9px var(--mono);letter-spacing:.08em}.metric strong{margin:7px 0 2px;color:#203c30;font:500 33px/1 var(--mono);letter-spacing:-.05em;font-variant-numeric:tabular-nums}.metric em{margin-top:auto;color:#78847e;font-size:11px;font-style:normal}.metric-dark{background:#1c4436;border-color:#1c4436}.metric-dark>span,.metric-dark em{color:#cfddd4}.metric-dark small{color:#9fb9aa}.metric-dark strong{color:#f4e2bd}
.live-strip{display:grid;grid-template-columns:minmax(170px,1.4fr) repeat(3,minmax(105px,.6fr)) minmax(175px,1.5fr);align-items:center;gap:17px;margin-top:14px;padding:15px 18px;border:1px solid #d4e0d8;border-radius:7px;background:#eaf1ec}.live-heading{display:flex;align-items:center;gap:10px}.live-heading div{display:grid}.live-heading b{font-size:12px}.live-heading small{color:#68776f;font-size:10px}.pulse{width:9px;height:9px;border:2px solid #4c936b;border-radius:50%;box-shadow:0 0 0 4px #69aa7d22}.live-value{display:grid;gap:2px;border-left:1px solid #cddbd1;padding-left:14px}.live-value strong{font:500 20px var(--mono);font-variant-numeric:tabular-nums}.live-value span{color:#69766e;font-size:10px}.live-note{margin:0;color:#68766e;font-size:10px;line-height:1.45}
.section-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:14px;margin-top:14px}.panel{min-width:0;border:1px solid var(--line);border-radius:7px;background:var(--white);box-shadow:var(--shadow)}.level-panel,.room-panel{padding:18px 19px}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel-head h2{margin:0;font-size:14px;font-weight:650}.panel-mark{color:#9aaba1;font:10px var(--mono)}.level-list{display:grid;gap:13px;margin-top:21px}.level-row{display:grid;grid-template-columns:112px minmax(60px,1fr) 145px;align-items:center;gap:12px}.level-name{display:grid;gap:1px}.level-name b{font-size:11px;font-weight:600}.level-name small{color:#849089;font:9px var(--mono)}.bar-track{height:6px;overflow:hidden;border-radius:8px;background:#edf1ee}.bar-fill{height:100%;border-radius:inherit;background:#54886e;min-width:2px}.level-results{display:flex;justify-content:flex-end;gap:10px;color:#68756e;font:10px var(--mono)}.level-results .win{color:#30775a}.level-results .loss{color:#a94c43}.level-results .draw{color:#9b702d}.empty-inline{padding:20px 0;color:#829087;font-size:12px}.room-age{display:grid;gap:14px;margin-top:24px}.room-age>div{display:flex;align-items:center;gap:11px}.room-age>div>div{display:grid}.room-age b{font:500 20px var(--mono)}.room-age small{color:#78847e;font-size:10px}.age-icon{display:grid;width:32px;height:32px;place-items:center;border-radius:50%;font-size:17px}.age-icon.open{background:#fbf1df;color:#a57032}.age-icon.closed{background:#e6f1e9;color:#347352}.fine-print{margin:16px 0 0;padding-top:10px;border-top:1px solid #edf0ed;color:#86918b;font-size:10px;line-height:1.45}
.table-panel{margin-top:14px;padding:18px 0 0}.table-panel>.panel-head{padding:0 19px 14px}.text-action{border:0;background:transparent;color:#2e7154;font-size:11px;font-weight:600}.text-action:hover{text-decoration:underline}.table-scroll{width:100%;overflow-x:auto;border-top:1px solid #e9eeea}.data-table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}.data-table th{padding:10px 13px;background:#f7f9f7;color:#7b8781;font:9px var(--mono);letter-spacing:.04em;font-weight:400}.data-table td{padding:11px 13px;border-top:1px solid #edf0ed;color:#34433b;font-size:11px}.data-table tbody tr:hover{background:#fbfcfb}.data-table th:first-child,.data-table td:first-child{padding-left:19px}.data-table th:last-child,.data-table td:last-child{padding-right:19px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.model-name{font-weight:600;color:#223c30}.sub-id{display:block;margin-top:2px;color:#8b9690;font:9px var(--mono)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:3px;font-size:10px}.badge.clear{background:#e8f2eb;color:#2f7150}.badge.partial{background:#f7eee2;color:#8c6128}.level-tag{color:#54675c}.text-muted{color:#77837d!important}.empty-state{padding:28px 18px;color:#829087;text-align:center;font-size:12px}.search-box{display:flex;align-items:center;gap:7px;width:min(310px,45vw);height:37px;padding:0 11px;border:1px solid var(--line);border-radius:5px;background:white;color:#718078}.search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font:12px var(--sans)}.search-box input::placeholder{color:#9aa59f}.skeleton{height:110px;margin:10px;border-radius:4px;background:linear-gradient(90deg,#f3f6f4 25%,#eaf0ec 40%,#f3f6f4 60%);background-size:220% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position-x:-220%}}footer{padding:24px 0 0;color:#8b9690;font:9px var(--mono);letter-spacing:.06em}footer span{padding:0 4px;color:#b0bab4}
.login-wrap{display:grid;min-height:100vh;place-items:center;padding:22px;background:radial-gradient(ellipse at 15% 80%,#e5ede7 0,transparent 38%),var(--paper)}.login-panel{width:min(410px,100%);padding:34px;border:1px solid #dbe3dd;border-radius:9px;background:#fff;box-shadow:0 18px 50px #18342912}.login-panel .brand-lockup{margin-bottom:39px;color:#244537}.login-panel .eyebrow{margin-bottom:8px}.login-panel h1{margin:0;font-size:25px;letter-spacing:-.03em}.subtle{margin:6px 0 24px;color:#77837d;font-size:12px}.login-panel label{display:block;margin-bottom:6px;color:#3e5147;font-size:11px;font-weight:600}.login-panel input{width:100%;height:42px;padding:0 11px;border:1px solid #ccd7cf;border-radius:5px;background:#fbfcfb;color:var(--ink)}.login-panel input:focus{border-color:#639378;outline:3px solid #7bb89b35}.button.primary{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:43px;margin-top:16px;padding:0 14px;border-color:#1f4938;background:#1f4938;color:#fff}.button.primary:hover{background:#286047}.button.primary span{font-size:18px}.error{min-height:17px;margin:5px 0 0;color:#a8443b;font-size:11px}
@media(max-width:1100px){.main{padding-right:24px;padding-left:24px}.topbar{margin-right:-24px;margin-left:-24px;padding-right:24px;padding-left:24px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-strip{grid-template-columns:1.3fr repeat(3,.6fr)}.live-note{grid-column:1/-1;padding-top:8px;border-top:1px solid #d4e0d8}.section-grid{grid-template-columns:1fr}.level-panel,.room-panel{min-height:180px}}
@media(max-width:720px){.rail{position:sticky;top:0;width:100%;height:auto;padding:9px 13px;flex-direction:row;align-items:center;gap:14px}.brand-lockup{font-size:10px}.brand-mark{width:28px;height:28px}.rail-label,.rail-bottom{display:none}.nav{display:flex;gap:2px;margin-left:auto}.nav-item{min-height:36px;gap:5px;padding:0 8px;font-size:11px}.nav-glyph{width:auto;font-size:15px}.main{margin-left:0;padding:0 13px 24px}.topbar{position:relative;top:auto;min-height:78px;margin:0 -13px;padding:14px 13px}.topbar h1{font-size:20px}.eyebrow{font-size:8px}.top-actions{gap:7px}.updated{display:none}.button.refresh{min-height:35px;padding:0 9px;font-size:11px}.view{padding-top:20px}.summary-line{align-items:flex-start}.summary-line h2{font-size:16px}.summary-line p{max-width:300px;font-size:11px}.metric-grid{gap:8px}.metric{min-height:117px;padding:13px}.metric>span{align-items:flex-start;flex-direction:column;gap:1px;font-size:11px}.metric small{font-size:8px}.metric strong{font-size:28px}.metric em{font-size:9px}.live-strip{grid-template-columns:repeat(3,1fr);gap:11px;padding:13px}.live-heading{grid-column:1/-1;padding-bottom:4px}.live-value{padding-left:9px}.live-value:first-of-type{border-left:0;padding-left:0}.live-value strong{font-size:17px}.live-value span{font-size:9px}.live-note{font-size:9px}.level-panel,.room-panel{padding:15px}.level-row{grid-template-columns:94px minmax(45px,1fr) 114px;gap:8px}.level-results{gap:6px;font-size:9px}.data-table th,.data-table td{padding-right:10px;padding-left:10px}.table-panel>.panel-head{padding-right:13px;padding-left:13px}.data-table th:first-child,.data-table td:first-child{padding-left:13px}.data-table th:last-child,.data-table td:last-child{padding-right:13px}.search-box{width:min(47vw,230px)}.readonly{font-size:10px}.login-panel{padding:27px 23px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
