:root{--bg: #0b0f14;--panel: #121822;--panel-border: #1f2937;--text: #e5e9f0;--text-muted: #8896a6;--grid-line: #263141;--green: #34d399;--amber: #fbbf24;--red: #f87171;--accent: #f6a129;--insight: #38bdf8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Montserrat,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-shell{max-width:1200px;margin:0 auto;padding:24px 20px 60px}.app-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.app-brand{display:flex;align-items:center;gap:14px}.brand-logo{height:28px;width:auto;display:block}.brand-divider{width:1px;height:20px;background:var(--panel-border)}.brand-subtitle{font-size:14px;color:var(--text-muted);letter-spacing:.02em}.app-header-right{display:flex;align-items:center;gap:12px}.link-button{background:none;border:1px solid var(--panel-border);color:var(--text);padding:6px 12px;border-radius:6px;cursor:pointer}.link-button:hover{border-color:var(--accent)}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;padding:16px 18px;margin-bottom:20px}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.panel-header h2{font-size:15px;margin:0;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.panel-header-right{display:flex;align-items:center;gap:14px}.status-filter-toggle{display:flex}.status-filter-toggle button{background:none;border:1px solid var(--panel-border);color:var(--text-muted);padding:4px 12px;cursor:pointer;font-size:12px;font-family:inherit}.status-filter-toggle button:first-child{border-radius:6px 0 0 6px}.status-filter-toggle button:last-child{border-radius:0 6px 6px 0}.status-filter-toggle button+button{border-left:none}.status-filter-toggle button.active{background:var(--accent);color:#06101f;border-color:var(--accent);font-weight:600}.as-of{font-size:12px;color:var(--text-muted)}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--panel-border);white-space:nowrap}th{color:var(--text-muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.03em}.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.th-sortable:hover{color:var(--text)}.group-header-row td{background:#0e141d;color:var(--text);font-size:16px;font-weight:700;letter-spacing:.01em;padding:12px 10px;border-left:3px solid var(--accent);border-bottom:1px solid var(--panel-border)}.group-count{color:var(--text-muted);font-size:13px;font-weight:500}.subgroup-header-row td{background:#0c1119;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:5px 10px 5px 20px}.cell-muted{color:var(--text-muted)}.cell-provider{text-transform:capitalize;font-weight:600}.cell-unavailable{color:var(--text-muted);font-style:italic}.cell-warn{color:var(--amber);font-weight:600}.cell-crit{color:var(--red);font-weight:600}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.dot-green{background:var(--green)}.dot-amber{background:var(--amber)}.dot-red{background:var(--red)}.badge-recommend{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:20px;white-space:nowrap;border:1px solid transparent}.badge-recommend-underutilised{color:var(--insight);background:#38bdf81f;border-color:#38bdf866}.badge-recommend-idle{color:#f472b6;background:#f472b61f;border-color:#f472b666}.cost-hero-panel{text-align:center;padding:28px 18px 24px}.cost-hero-label{font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.cost-hero-value{font-family:Roboto Slab,serif;font-size:48px;font-weight:700;color:var(--text);line-height:1.1}.cost-hero-breakdown{margin-top:14px;display:flex;justify-content:center;flex-wrap:wrap;gap:24px;font-size:13px;color:var(--text-muted)}.cost-hero-breakdown strong{color:var(--text);font-weight:600}.cost-mtd{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}.cost-mtd-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.cost-mtd-value{font-family:Roboto Slab,serif;font-size:32px;font-weight:700;color:var(--accent)}.error-banner{background:#f8717126;border:1px solid var(--red);color:var(--red);padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:13px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;padding:32px;width:320px;display:flex;flex-direction:column;gap:12px}.login-logo{height:32px;width:auto;margin-bottom:-4px}.login-card h1{font-size:18px;margin:0}.login-subtitle{color:var(--text-muted);font-size:13px;margin:-8px 0 8px}.login-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--text-muted)}.login-card input{background:#0e141d;border:1px solid var(--panel-border);color:var(--text);padding:8px 10px;border-radius:6px;font-size:14px}.login-card button{background:var(--accent);color:#06101f;border:none;padding:10px;border-radius:6px;font-weight:600;cursor:pointer;margin-top:8px}.login-error{color:var(--red);font-size:13px}
