:root{--teal:#04999c;--teal-deep:#037b7e;--lime:#9dc41a;--ink:#0f2f30;--surface:#f4fafa;--danger:#d64545;--bg:#fff;--border:#0f2f301a}@media (prefers-color-scheme:dark){:root{--teal:#2fc4c7;--teal-deep:#04999c;--ink:#eaf7f7;--surface:#12201f;--danger:#ff7a7a;--bg:#0b1615;--border:#eaf7f71f}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}#app{min-height:100vh}a{color:inherit}button{cursor:pointer;border:none;border-radius:12px;padding:10px 16px;font-family:inherit;font-size:.95rem;font-weight:600}button.primary{background:var(--teal);color:#fff}button.primary:hover{background:var(--teal-deep)}button.secondary{color:var(--teal);border:1.5px solid var(--teal);background:0 0}button.danger{color:var(--danger);border:1.5px solid var(--danger);background:0 0}button:disabled{opacity:.45;cursor:default}input,textarea,select{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:10px;width:100%;padding:10px 12px;font-family:inherit;font-size:.95rem}label{color:color-mix(in srgb, var(--ink) 65%, transparent);flex-direction:column;gap:4px;font-size:.82rem;font-weight:600;display:flex}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border-radius:24px;flex-direction:column;gap:16px;width:100%;max-width:380px;padding:32px;display:flex}.login-card img{align-self:flex-start;height:40px}.login-card h1{margin:0;font-size:1.3rem}.login-card p{color:color-mix(in srgb, var(--ink) 60%, transparent);margin:0;font-size:.9rem}.shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);flex-direction:column;flex-shrink:0;gap:4px;width:220px;padding:20px 14px;display:flex}.sidebar img{height:28px;margin:8px 10px 18px}.sidebar a{color:color-mix(in srgb, var(--ink) 75%, transparent);border-radius:10px;padding:10px 12px;font-size:.92rem;font-weight:600;text-decoration:none;display:block}.sidebar a:hover{background:color-mix(in srgb, var(--teal) 8%, transparent)}.sidebar a.active{background:var(--teal);color:#fff}.sidebar .spacer{flex:1}.sidebar .who{color:color-mix(in srgb, var(--ink) 50%, transparent);padding:10px 12px;font-size:.78rem}main.content{flex:1;max-width:1080px;padding:32px 40px}.content h1{margin:0 0 4px;font-size:1.5rem}.content>.subtitle{color:color-mix(in srgb, var(--ink) 55%, transparent);margin:0 0 24px}.card{background:var(--surface);border-radius:18px;margin-bottom:16px;padding:20px}.row{align-items:center;gap:14px;display:flex}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;display:grid}.stat{background:var(--surface);border-radius:14px;padding:14px 16px}.stat .value{font-size:1.6rem;font-weight:800}.stat .label{color:color-mix(in srgb, var(--ink) 55%, transparent);font-size:.78rem}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 8px;font-size:.88rem}th{text-transform:uppercase;letter-spacing:.03em;color:color-mix(in srgb, var(--ink) 55%, transparent);font-size:.72rem}.badge{border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:700;display:inline-block}.badge.ok{background:color-mix(in srgb, var(--teal) 15%, transparent);color:var(--teal-deep)}.badge.pending{background:color-mix(in srgb, var(--lime) 20%, transparent);color:color-mix(in srgb, var(--lime) 60%, var(--ink))}.badge.off{background:color-mix(in srgb, var(--ink) 10%, transparent);color:color-mix(in srgb, var(--ink) 60%, transparent)}.error-banner{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger);border-radius:12px;margin-bottom:12px;padding:10px 14px;font-size:.88rem}.empty{color:color-mix(in srgb, var(--ink) 45%, transparent);padding:12px 0;font-size:.9rem}.tabs{gap:8px;margin-bottom:18px;display:flex}.tabs button{color:color-mix(in srgb, var(--ink) 55%, transparent);background:0 0;border-radius:999px;padding:7px 16px;font-size:.85rem}.tabs button.active{background:var(--ink);color:var(--bg)}.field-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:12px;display:grid}
