.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell__topbar{background:#fff;border-bottom:1px solid var(--border);padding:12px 24px}.app-shell__brand{font-weight:700;font-size:15px}.app-shell__main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:24px 24px 40px}.error-banner{display:flex;align-items:center;gap:10px;background:var(--red-bg);border:1px solid var(--red-border);color:var(--red);border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px}.error-banner__message{flex:1}.error-banner__retry{border:1px solid var(--red);background:#fff;color:var(--red);border-radius:6px;padding:4px 12px;font-size:12px;font-weight:600;cursor:pointer}.loading-state{display:flex;align-items:center;gap:10px;padding:24px;color:var(--muted);font-size:13.5px}.loading-state__spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:loading-state-spin .7s linear infinite}@keyframes loading-state-spin{to{transform:rotate(360deg)}}.usage-dashboard{display:flex;flex-direction:column;gap:16px}.usage-dashboard__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px 20px}.usage-dashboard__header h1{font-size:17px;margin:0}.period-selector{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.period-selector input[type=month]{font-family:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--border);border-radius:6px;color:var(--text)}.usage-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 720px){.usage-panels{grid-template-columns:1fr}}.usage-panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:18px 20px}.usage-panel h2{font-size:14px;margin:0 0 12px}.usage-panel__stat{font-size:14px;margin-bottom:8px}.usage-panel__mode{font-size:13px;color:var(--muted);margin-top:8px}.usage-panel__mode-note{margin-top:4px;font-size:12px;color:var(--amber)}.usage-panel__note{margin-top:12px;font-size:12px;color:var(--muted)}.estimated-label{color:var(--muted);font-size:12px;font-style:italic}.mode-breakdown{width:100%;border-collapse:collapse;margin-top:8px;font-size:12.5px}.mode-breakdown th,.mode-breakdown td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}.mode-breakdown th{color:var(--muted);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fair-use-status{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px 20px}.fair-use-status h2{font-size:14px;margin:0 0 8px}.fair-use-status--ok{border-color:var(--green);background:var(--green-bg)}.fair-use-status--over{border-color:var(--red-border);background:var(--red-bg)}.fair-use-status--neutral{color:var(--muted)}.fair-use-banner{display:flex;align-items:center;gap:12px;background:var(--amber-bg);border:1px solid var(--amber-border);color:var(--amber);border-radius:8px;padding:12px 16px;font-size:13px}.fair-use-banner__message{flex:1}.fair-use-banner__error{color:var(--red);font-size:12px}.fair-use-banner__dismiss{border:1px solid var(--amber);background:#fff;color:var(--amber);border-radius:6px;padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer}.fair-use-banner__dismiss:disabled{opacity:.6;cursor:not-allowed}:root{--bg: #f5f6f8;--panel: #ffffff;--border: #dfe3e8;--text: #1f2430;--muted: #6b7280;--accent: #2563eb;--accent-bg: #eff4ff;--amber: #b45309;--amber-bg: #fef3c7;--amber-border: #f2c94c;--red: #b91c1c;--red-bg: #fee2e2;--red-border: #f3aeae;--green: #166534;--green-bg: #dcfce7;--blue: #1e40af;--blue-bg: #dbeafe;--grey-bg: #e5e7eb;--font-sans: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, Consolas, monospace}*{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text)}button{font-family:inherit}.btn{padding:9px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text)}.btn--primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn:disabled{opacity:.6;cursor:not-allowed}
