:root{--brand: #13b07c;--bg-layout: #f4f6f9;--text-strong: #1f2733;--text-muted: #8a94a6;--border: #e7ebf0}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:PingFang SC,Microsoft YaHei,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-layout);color:var(--text-strong);-webkit-font-smoothing:antialiased}a{color:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#c9d2dd;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#aab6c4}::-webkit-scrollbar-track{background:transparent}.page{padding:20px 24px;max-width:1680px;margin:0 auto}.page-header{margin-bottom:18px}.page-header h2{margin:0 0 4px;font-size:20px;font-weight:650;color:var(--text-strong)}.page-header .sub{color:var(--text-muted);font-size:13px}.metric-card{position:relative;overflow:hidden}.metric-card .metric-label{color:var(--text-muted);font-size:13px}.metric-card .metric-value{font-size:26px;font-weight:650;line-height:1.3;color:var(--text-strong)}.metric-card .metric-unit{font-size:13px;color:var(--text-muted);margin-left:4px;font-weight:400}.sider-brand{display:flex;align-items:center;gap:10px;height:56px;padding:0 18px;color:#fff;font-weight:650;font-size:15px;letter-spacing:.5px;white-space:nowrap;overflow:hidden}.sider-brand .logo{width:28px;height:28px;border-radius:7px;background:linear-gradient(135deg,#13b07c,#16c489);display:flex;align-items:center;justify-content:center;flex:0 0 auto}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}.soft-card{border-radius:12px;border:1px solid var(--border);background:#fff}.kiosk{min-height:100vh;background:radial-gradient(1200px 600px at 50% -10%,#11243a,#0a1422 55%,#060d18);color:#d7e3f4;padding:24px 28px}.kiosk .panel{background:#14263e8c;border:1px solid rgba(90,140,200,.18);border-radius:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.placeholder-locked{filter:grayscale(1);opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}
