:root{
  --bg:#ffffff;--card:#ffffff;--line:#e4e4e7;
  --txt:#18181b;--mut:#71717b;--navy:#112544;
  --primary:#00a8cf;--primary-hover:#008bb1;--accent:#25c4c9;
  --green:#00bc7d;--red:#ff2056;--amber:#a65f00;
  --radius:14px;--shadow:0 1px 3px rgba(17,37,68,.06),0 8px 24px rgba(17,37,68,.06)
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--txt);min-height:100vh}
button{font:inherit;cursor:pointer}
input{font:inherit}

/* login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(180deg,#ffffff 0%,var(--bg) 100%)}
.login-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:36px;width:100%;max-width:430px;box-shadow:var(--shadow)}
.brand{display:flex;align-items:center;gap:14px}
.brand.small{gap:10px}
.brand .logo.sesiro{height:90px;width:auto}
.brand .logo.me{height:30px;width:auto;opacity:.85}
.brand.small .logo.sesiro{height:64px}
.brand.small .logo.me{height:26px}
.brand-divider{color:var(--line);font-size:1.1rem}
.login-card h1{font-size:1.3rem;margin:22px 0 4px;color:var(--navy)}
.sub{color:var(--mut);font-size:.9rem;margin:0 0 22px}
label{display:block;font-size:.78rem;color:var(--navy);margin:14px 0 6px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}
input{width:100%;padding:11px 13px;background:#fff;border:1px solid var(--line);border-radius:9px;color:var(--txt);outline:none}
input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,168,207,.12)}
.login-card button{width:100%;margin-top:18px;padding:12px;background:var(--primary);color:#fff;border:0;border-radius:9px;font-weight:600}
.login-card button:hover{background:var(--primary-hover)}
.login-card button.ghost{background:transparent;border:1px solid var(--line);color:var(--navy);margin-top:8px}
.otp-hint{color:var(--mut);font-size:.85rem}
.err{color:var(--red);font-size:.85rem;margin-top:12px;min-height:18px}

/* top bar */
.topbar{display:flex;align-items:center;gap:16px;padding:14px 28px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.topbar-title{font-weight:700;color:var(--navy)}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:14px}
.whoami{color:var(--mut);font-size:.85rem}
button.ghost{background:#fff;border:1px solid var(--line);color:var(--navy);border-radius:8px;padding:7px 12px}
button.ghost:hover{border-color:var(--primary);color:var(--primary)}

/* content */
.content{padding:28px;display:flex;flex-direction:column;gap:22px;max-width:1400px;margin:0 auto}
.grid{display:grid;gap:22px}
.status-grid{grid-template-columns:1.6fr 1fr 1fr}
.kpi-grid{grid-template-columns:repeat(4,1fr)}
.two{grid-template-columns:1fr 1fr}
@media(max-width:980px){.status-grid,.kpi-grid,.two{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.status-grid,.kpi-grid,.two{grid-template-columns:1fr}}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow)}
.card h3{margin:0 0 14px;font-size:.92rem;color:var(--navy);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.tag{font-size:.7rem;color:var(--amber);border:1px solid var(--amber);border-radius:20px;padding:2px 8px;margin-left:8px;text-transform:none;letter-spacing:0}

/* service list */
.svc{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.svc:last-child{border-bottom:0}
.dot{width:9px;height:9px;border-radius:50%;flex:none}
.dot.up{background:var(--green)}
.dot.down{background:var(--red)}
.svc-name{flex:1;font-size:.9rem;color:var(--txt)}
.svc-meta{font-size:.78rem;color:var(--mut)}

/* kpi */
.kpi-body{font-size:.85rem;color:var(--mut)}
.kpi.big{font-size:2.7rem;font-weight:800;color:var(--primary)}
.kpi-card{display:flex;flex-direction:column;gap:6px;text-align:center}
.kpi-label{font-size:.78rem;color:var(--mut);text-transform:uppercase;letter-spacing:.04em}
.kpi-num{font-size:1.9rem;font-weight:800;color:var(--navy)}

/* tables */
.table-wrap{overflow:auto;max-height:340px}
table{width:100%;border-collapse:collapse;font-size:.85rem}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
th{color:var(--navy);font-weight:700;position:sticky;top:0;background:var(--card)}
td{color:var(--txt)}
.badge{font-size:.72rem;padding:2px 9px;border-radius:20px;font-weight:600}
.badge.open{background:rgba(0,188,125,.12);color:var(--green)}
.badge.mut{background:rgba(0,168,207,.1);color:var(--primary)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem}
.dir{font-size:.7rem;color:var(--mut)}

/* summary bar + categories */
.summary-bar{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.sum{display:inline-flex;align-items:center;gap:7px;font-size:.9rem;font-weight:600;color:var(--navy)}
.sum.ts{margin-left:auto;color:var(--mut);font-weight:400;font-size:.78rem}
.cat{margin-bottom:12px}
.cat:last-child{margin-bottom:0}
.cat-name{font-size:.76rem;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.04em;margin:10px 0 4px;border-bottom:1px solid var(--line);padding-bottom:4px}
.dot.live{background:var(--green)}
.dot.degraded{background:var(--amber)}
