:root{--bg:#f7f7f5;--panel:#ffffff;--fg:#1c1c1a;--muted:#6b6b66;--line:#e4e4df;--ok:#1a7f4b;--bad:#c0392b;--warn:#b26b00;--google:#4285f4;--openai:#10a37f;--radius:10px}*{box-sizing:border-box}body,html{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.side{position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100vh;padding:20px 14px;border-right:1px solid var(--line);background:var(--panel);overflow-y:auto;display:flex;flex-direction:column}.brand{font-weight:700;font-size:18px;padding:0 10px 16px}.cat{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 6px;padding:0 10px}.navlink{display:block;padding:7px 10px;border-radius:6px;border:1px solid transparent}.navlink.on,.navlink:hover{background:var(--bg)}.navlink.on{border-color:var(--line);font-weight:600}.main{padding:28px 32px 60px;max-width:1280px;width:100%}h1{font-size:24px;margin:0 0 4px;font-weight:600}.sub{color:var(--muted);margin:0 0 20px;max-width:90ch;line-height:1.5}h2{font-size:15px;margin:28px 0 10px;font-weight:600}.muted{color:var(--muted);font-size:12px}.period{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin:0 0 8px;background:var(--panel)}.period a{padding:5px 12px;color:var(--muted);font-size:12px}.period a.on{background:var(--bg);color:var(--fg);font-weight:600}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.tl{font-size:12px;color:var(--muted);margin-bottom:4px}.kv{font-size:26px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.15}.kd{font-size:12px;color:var(--muted);margin-top:3px}.good{color:var(--ok)}.bad{color:var(--bad)}.warn{color:var(--warn)}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,460px),1fr));grid-gap:20px;gap:20px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.card h3{margin:0 0 8px;font-size:14px;font-weight:600}.scroll{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}table{border-collapse:collapse;width:100%;font-size:12.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}th{text-align:left;font-weight:500;color:var(--muted);padding:8px 10px;border-top:3px solid var(--line)}td,th{border-bottom:1px solid var(--line);white-space:nowrap}td{padding:7px 10px}.num{text-align:right}.strong{font-weight:600}.g-total{border-top-color:var(--muted)}th.g-google{border-top-color:var(--google);background:color-mix(in srgb,var(--google) 12%,transparent)}td.g-google{background:color-mix(in srgb,var(--google) 7%,transparent)}th.g-openai{border-top-color:var(--openai);background:color-mix(in srgb,var(--openai) 12%,transparent)}td.g-openai{background:color-mix(in srgb,var(--openai) 7%,transparent)}.sep{border-left:1px solid var(--muted)}tr.total td{font-weight:600;background:var(--bg)}.legend{display:flex;gap:14px;align-items:center;margin:0 0 8px;color:var(--muted);font-size:12px;flex-wrap:wrap}.chip{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}.error{background:#fdecea;border:1px solid #f5c2bd;color:#7a1f16;padding:14px 16px;border-radius:var(--radius)}.login-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:48px 40px;text-align:center;max-width:360px;width:100%}.login-brand{font-size:28px;font-weight:700;color:var(--fg);margin-bottom:8px}.login-sub{color:var(--muted);font-size:14px;margin-bottom:32px}.login-error{background:#fce8e6;color:#c5221f;border-radius:6px;padding:12px 16px;font-size:13px;margin-bottom:20px}.login-btn{display:inline-flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px 20px;font-size:15px;font-weight:500;color:var(--fg);cursor:pointer;width:100%;justify-content:center;transition:background .15s}.login-btn:hover{background:var(--bg)}.user-block{margin-top:auto;padding-top:20px;border-top:1px solid var(--line);font-size:12px}.user-name{font-weight:600;margin-bottom:2px}.user-email{color:var(--muted);margin-bottom:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{background:none;border:1px solid var(--line);border-radius:6px;padding:5px 10px;font-size:12px;color:var(--muted);cursor:pointer;width:100%}.logout-btn:hover{background:var(--bg);color:var(--fg)}@media (max-width:860px){.shell{grid-template-columns:1fr}.side{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.main{padding:20px 16px 40px}}