:root{--bg0: #eef4f1;--bg1: #d9e8e1;--ink: #14221e;--muted: #5b6f68;--line: rgba(20, 34, 30, .12);--panel: rgba(255, 255, 255, .72);--accent: #0f6b5c;--accent-2: #c9852c;--danger: #a33b2d;--ok: #1f7a4c;--warn: #9a6b16;--shadow: 0 18px 50px rgba(20, 34, 30, .08);--radius: 18px;--font-display: "Sora", "IBM Plex Sans", sans-serif;--font-body: "IBM Plex Sans", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;color:var(--ink);font-family:var(--font-body);background:radial-gradient(1200px 600px at 10% -10%,rgba(15,107,92,.16),transparent 60%),radial-gradient(900px 500px at 100% 0%,rgba(201,133,44,.14),transparent 55%),linear-gradient(165deg,var(--bg0),var(--bg1));background-attachment:fixed}a{color:inherit;text-decoration:none}button,input{font:inherit}.shell{width:min(960px,100%);margin:0 auto;padding:16px 16px 88px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.brand{font-family:var(--font-display);font-weight:700;letter-spacing:-.03em;font-size:1.25rem}.brand span{color:var(--accent)}.nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}.nav a{white-space:nowrap;padding:8px 12px;border-radius:999px;color:var(--muted);border:1px solid transparent}.nav a.router-link-active{color:var(--ink);background:var(--panel);border-color:var(--line)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px}.panel+.panel{margin-top:14px}h1,h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 8px}h1{font-size:1.55rem}h2{font-size:1.05rem}.muted{color:var(--muted)}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:12px;padding:10px 14px;background:var(--accent);color:#fff;cursor:pointer;font-weight:550}.btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed}.field{display:grid;gap:6px;width:100%}.field input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#ffffffe6}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.82rem;border:1px solid var(--line);background:#ffffffa6}.dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.dot.on{background:var(--ok);box-shadow:0 0 0 3px #1f7a4c2e}.dot.off{background:#9aa7a1}.usage-grid{display:grid;gap:12px}@media(min-width:720px){.usage-grid{grid-template-columns:1fr 1fr}}.provider{border:1px solid var(--line);border-radius:14px;padding:12px;background:#ffffff8c}.provider-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;margin-bottom:10px}.provider-name{font-family:var(--font-display);font-weight:650}.meter{display:grid;gap:4px;margin:8px 0}.meter-top{display:flex;justify-content:space-between;font-size:.9rem}.bar{height:10px;border-radius:999px;background:#14221e14;overflow:hidden}.bar>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),#168f7a)}.bar.warn>i{background:linear-gradient(90deg,var(--accent-2),#e0a84a)}.bar.hot>i{background:linear-gradient(90deg,var(--danger),#d46655)}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%)}.login-card .brand{font-size:1.8rem;margin-bottom:4px}.error{color:var(--danger);font-size:.92rem}.token-box{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;background:#14221e0d;border-radius:10px;padding:10px}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:#eef4f1eb;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav a{text-align:center;font-size:.78rem;color:var(--muted);padding:8px 4px;border-radius:10px}.bottom-nav a.router-link-active{color:var(--accent);font-weight:600;background:#0f6b5c14}@media(min-width:860px){.bottom-nav{display:none}}
