:root{color-scheme:light dark;font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;color:#0f172a;background:#f8fafc}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#0f172a;color:#e2e8f0;padding:1.5rem 1rem}.brand{font-weight:700;margin-bottom:1.5rem}.sidebar nav{display:flex;flex-direction:column;gap:.5rem}.sidebar a{padding:.5rem .75rem;border-radius:.5rem}.sidebar a.active{background:#1e293b}.main-column{display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e2e8f0;background:#fff}.content{padding:1.5rem}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;padding:1.25rem}.status-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.status-grid dt{font-size:.875rem;color:#64748b}.status-grid dd{margin:.25rem 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.auth-page{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-card{width:min(100%,24rem);display:grid;gap:1rem;padding:1.5rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem}.auth-card label{display:grid;gap:.35rem;font-size:.9rem}.auth-card input{padding:.6rem .75rem;border:1px solid #cbd5e1;border-radius:.5rem}.auth-card button,.topbar button{padding:.6rem .9rem;border:none;border-radius:.5rem;background:#2563eb;color:#fff;cursor:pointer}.auth-card button:disabled,.topbar button:disabled{opacity:.7;cursor:not-allowed}.muted{color:#64748b}.error{color:#b91c1c}.dashboard-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.panel-wide{grid-column:1 / -1}.badge{display:inline-block;padding:.2rem .5rem;border-radius:999px;font-size:.8rem}.badge-ok{background:#dcfce7;color:#166534}.badge-warn{background:#fee2e2;color:#991b1b}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:.5rem;border-bottom:1px solid #e2e8f0}.simple-list{margin:0;padding-left:1.25rem}.filter-row{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;margin-top:1rem}.filter-row label{display:grid;gap:.35rem;font-size:.9rem}.filter-row input,.filter-row select{padding:.5rem .65rem;border:1px solid #cbd5e1;border-radius:.5rem}.link-button{background:transparent;color:#2563eb;border:none;padding:0;cursor:pointer}
