:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#16221f;background:#f2f6f5}
*{box-sizing:border-box}body{margin:0}
a{color:#0f7a63}
.shell{display:flex;min-height:100vh}
.sidebar{width:220px;flex:none;background:#0e2622;color:#eaf4f1;display:flex;flex-direction:column;padding:18px 0}
.sidebar .brand{font-weight:700;font-size:18px;padding:0 20px 18px}
.sidebar a{display:block;color:#c9ddd7;text-decoration:none;padding:10px 20px;font-size:14px}
.sidebar a.active,.sidebar a:hover{background:#123d34;color:#fff}
.sidebar a.logout{margin-top:auto;color:#e2a5a5}
main{flex:1;padding:26px 30px;max-width:1280px}
.topbar{display:flex;justify-content:flex-end;margin-bottom:6px}
.centered{max-width:420px;margin:60px auto}
h1{font-size:24px;margin:0 0 20px}h2{font-size:18px;margin-top:26px}
.muted{opacity:.65}.small{font-size:13px;color:#5a6b66}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.card,.panel{background:#fff;border:1px solid #dbe6e2;border-radius:10px;padding:16px}
.metric{font-size:24px;font-weight:700}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #dbe6e2;border-radius:10px;overflow:hidden}
th,td{text-align:left;padding:9px 11px;border-bottom:1px solid #edf2f0;vertical-align:top;font-size:14px}
th{background:#f4f8f7;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
.btn,button{display:inline-block;border:0;border-radius:7px;background:#0f7a63;color:#fff;padding:9px 13px;text-decoration:none;cursor:pointer;font-size:14px}
.btn.secondary{background:#52605c}.btn.danger{background:#a23b3b}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
form.inline{display:inline}
label{display:block;font-weight:600;margin:12px 0 5px;font-size:14px}
input,select,textarea{width:100%;max-width:480px;padding:9px;border:1px solid #c6d3ce;border-radius:6px;background:#fff;font:inherit}
input[type=checkbox]{width:auto}
.flash,.secret{padding:12px 14px;border-radius:8px;margin:12px 0}
.ok{background:#e6f5ee}.err{background:#fbeaea;color:#8b1e1e}
.secret{background:#fff4ce;border:1px solid #e8c55b}.secret code{display:block;padding:10px;background:#fff;margin:10px 0;overflow-wrap:anywhere}
.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:12px;background:#eaf0ee}
.badge.pass{background:#dff4e8}.badge.fail{background:#fde5e5}.badge.inconclusive{background:#fff0c9}
.badge.not-tested,.badge.not-applicable{background:#e8edf2}
.timeline-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #f0f4f2}
.timeline-label{width:170px;flex:none;font-size:13px}
.timeline-dots{display:flex;gap:3px;flex-wrap:wrap}
.dot{width:18px;text-align:center;font-size:13px;cursor:default}
.dot-pass{color:#1e8a55}.dot-fail{color:#c23c3c}.dot-missing{color:#c9891f}.dot-pending,.dot-none{color:#c2cdc9}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
pre{white-space:pre-wrap;background:#f4f8f7;padding:12px;border-radius:8px;overflow-x:auto}
.right{text-align:right}
.pagination{display:flex;gap:8px;margin:14px 0}
@media(max-width:900px){.grid-2{grid-template-columns:1fr}}
@media(max-width:700px){
  .shell{flex-direction:column}
  .sidebar{width:100%;flex-direction:row;overflow-x:auto;padding:8px}
  .sidebar .brand{padding:8px 14px}
  .sidebar a{padding:8px 12px;white-space:nowrap}
  .sidebar a.logout{margin-top:0;margin-left:auto}
  main{padding:14px}
  table{font-size:13px}
  .home-anomalies{order:-4}.home-missing{order:-3}.home-recent{order:-2}.home-tenants{order:-1}
}