:root{
  --teal:#355B67; --teal-d:#274249; --red:#BF1539; --ink:#1d2529; --mut:#61727a;
  --line:#e3e9eb; --bg:#f4f6f7; --card:#fff; --ok:#2f7d4f; --ko:#b5561f;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:15px;line-height:1.5}
.topbar{background:var(--teal);color:#fff;display:flex;align-items:center;gap:22px;padding:12px 24px}
.topbar .brand{font-size:19px;font-weight:700}
.topbar nav{margin-left:auto;display:flex;gap:18px}
.topbar nav a{color:#fff;text-decoration:none;opacity:.9;font-size:14.5px}
.topbar nav a:hover{opacity:1;text-decoration:underline}
.container{max-width:1180px;margin:0 auto;padding:26px 18px 60px}
h1{color:var(--teal-d);margin:.2em 0 .3em}
.lead{color:var(--mut);margin-top:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:16px 0;box-shadow:0 1px 2px rgba(20,40,50,.04)}
.card h3{margin:.1em 0 .5em;color:var(--teal-d)}
.status{border-radius:9px;padding:9px 13px;margin:12px 0;font-size:14px;border:1px solid var(--line);background:#fff}
.status.ok{border-color:#cfe6d8}.status.ok b{color:var(--ok)}
.status.ko{border-color:#f0d6c6}.status.ko b{color:var(--ko)}
.status .muted{margin-left:8px}
.muted{color:var(--mut)} .small{font-size:13px}
.alert{background:#fdecef;border:1px solid #f4c9d2;color:#8a1730;border-radius:9px;padding:10px 13px;margin:12px 0}
.upload form{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.filebox{position:relative;display:inline-flex;align-items:center}
.filebox input{font-size:14px}
.btn{background:var(--teal);color:#fff;border:0;border-radius:7px;padding:10px 18px;font-size:15px;cursor:pointer}
.btn:hover{background:var(--teal-d)}
.btn:disabled{background:#9fb0b6;cursor:not-allowed}
label{display:block;margin:.5em 0;font-size:14px}
input[type=email],input[type=password]{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;font-size:14px}
pre.code,.code{background:#0f1b1f;color:#d7e3e6;border-radius:8px;padding:12px 14px;font-size:12.5px;overflow:auto}
.reportframe{width:100%;height:84vh;min-height:560px;border:1px solid var(--line);border-radius:12px;background:#fff;margin:2px 0 22px;display:block}
.foot{color:var(--mut);font-size:12.5px;text-align:center;padding:18px}
