:root{--bg:#0f1420;--surface:#171e2c;--surface-2:#1e2736;--border:#2a3547;--text:#e8edf5;--muted:#8794a8;--primary:#5b8cff;--ok:#2fbf71;--warn:#f2a93b;--bad:#e5534b;--info:#4aa8d8;--shadow:0 1px 2px #0006;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:14px}a{color:inherit}.shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:220px;height:100vh;display:flex;position:sticky;top:0}.brand{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:18px 16px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--primary), #7a5bff);color:#fff;border-radius:9px;place-items:center;width:34px;height:34px;font-size:18px;font-weight:800;display:grid}.brand-title{font-size:15px;font-weight:700}.brand-sub{color:var(--muted);font-size:12px}.nav{flex-direction:column;flex:1;gap:2px;padding:10px;display:flex}.nav-link{color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;display:block}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:var(--surface-2);color:var(--primary)}.sidebar-footer{border-top:1px solid var(--border);padding:10px}.signout{width:100%}.main{flex:1;max-width:1100px;padding:24px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}h2{margin:0;font-size:20px}h3{margin:0 0 10px;font-size:15px}h4{color:var(--muted);margin:0 0 6px;font-size:13px}.head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;padding:16px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:18px;display:grid}.stat-grid.inner{margin-bottom:8px}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.stat-value{margin-top:4px;font-size:22px;font-weight:700}.stat-sub{color:var(--muted);font-size:12px}.grid-2{grid-template-columns:1fr 1fr;align-items:start;gap:14px;margin-bottom:18px;display:grid}@media (width<=820px){.grid-2{grid-template-columns:1fr}}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:8px 12px;font-size:12px}.table td{border-bottom:1px solid var(--border);vertical-align:top;padding:10px 12px}.table tr:last-child td{border-bottom:none}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table-link{color:var(--primary);font-weight:600;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:none}.table-link:hover{text-decoration:underline}.login-foot{color:var(--muted);text-align:center;margin:2px 0 0;font-size:12.5px}.comm-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.comm-card{text-decoration:none}.comm-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.comm-card-head h3{margin:0;font-size:15px}.comm-card-head p{margin:4px 0 0}a.comm-card{transition:border-color .15s,transform .15s;display:block}a.comm-card:hover{border-color:var(--primary);transform:translateY(-1px)}.comm-card h3{margin:0 0 6px}.comm-card p{color:var(--muted);margin:0 0 10px;font-size:13px;line-height:1.5}.comm-arrow{color:var(--primary);font-size:13px;font-weight:600}.form-card .comm-card-head{align-items:center}.ok-text{color:var(--ok);margin:4px 0 0;font-size:13px}.check{flex-direction:row;align-items:center;gap:8px;display:flex}.job-list{gap:12px;display:grid}.job-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.job-desc{color:var(--text);font-size:13.5px;line-height:1.55}.tags{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.muted{color:var(--muted)}.small{font-size:12px}.num{font-variant-numeric:tabular-nums}.badge{border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.badge.ok{color:var(--ok);background:#2fbf7126}.badge.warn{color:var(--warn);background:#f2a93b26}.badge.bad{color:var(--bad);background:#e5534b26}.badge.info{color:var(--info);background:#4aa8d826}.badge.muted{background:var(--surface-2);color:var(--muted)}.btn{border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600}.btn:hover:not(:disabled){border-color:var(--primary)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.small{padding:4px 10px;font-size:12px}.btn.danger:hover:not(:disabled){border-color:var(--bad);color:var(--bad)}input,select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;padding:8px 10px;font-size:14px}input:focus,select:focus{border-color:var(--primary)}label{color:var(--muted);flex-direction:column;gap:5px;font-size:13px;font-weight:500;display:flex}label.inline{flex-direction:row;align-items:center;gap:8px}label.inline input{width:90px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.span-2{grid-column:span 2}.form-actions{gap:8px;margin-top:14px;display:flex}.form-row{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:16px;display:flex}.error-banner{color:var(--bad);background:#e5534b1f;border:1px solid #e5534b66;border-radius:8px;margin-bottom:14px;padding:10px 12px}.error-banner.inline{margin:4px 0 0;font-size:12px}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:26px;height:26px;margin:24px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.pager{color:var(--muted);justify-content:center;align-items:center;gap:12px;margin-top:16px;display:flex}.search{min-width:240px}.status-filter{min-width:150px}.providers{flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.providers li{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px 12px;font-size:12px;font-weight:600}.recent-invoices{flex-direction:column;gap:8px;display:flex}.recent-line{justify-content:space-between;align-items:center;gap:8px;display:flex}.recent-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.bars{align-items:flex-end;gap:4px;height:90px;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.bar{background:var(--primary);border-radius:3px 3px 0 0;width:100%;min-height:4px}.bar-label{color:var(--muted);font-size:10px}.simple-list{flex-direction:column;gap:6px;margin:0;padding-left:18px;display:flex}.actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.inline-change{flex-wrap:wrap;align-items:flex-start;gap:6px;display:inline-flex}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{flex-direction:column;gap:14px;width:360px;display:flex}.login-brand{text-align:center;margin-bottom:4px}.login-brand .brand-mark{width:44px;height:44px;margin:0 auto 8px;font-size:22px}.login-brand h1{margin:0;font-size:18px}.login-brand p{color:var(--muted);margin:4px 0 0;font-size:13px}.login-card .btn{margin-top:4px}.plan-form{margin-bottom:18px}
