:root{--navy:#1F3A5F;--ink:#101828;--muted:#475467;--line:#D0D5DD;--bg:#F2F4F7;--ok:#067647;--okbg:#DCFAE6;--warn:#B54708;--warnbg:#FEF0C7;--bad:#B42318;--badbg:#FEE4E2}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:17px;line-height:1.4}
header{background:var(--navy);color:#fff;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:2}
.logo{font-weight:800;font-size:22px;letter-spacing:.5px}
#who{font-size:13px;opacity:.85}
main{max-width:560px;margin:0 auto;padding:16px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
.center{text-align:center}
h1{font-size:24px;margin:4px 0 8px}
h2{font-size:18px;margin:0 0 10px}
p{margin:6px 0}
.muted{color:var(--muted);font-size:15px}
.big{font-size:20px;font-weight:700}
button,.btn{display:block;width:100%;border:0;border-radius:12px;padding:18px 16px;font-size:19px;font-weight:700;margin:10px 0;cursor:pointer;background:var(--navy);color:#fff;text-align:center;text-decoration:none}
button.secondary{background:#fff;color:var(--navy);border:2px solid var(--navy)}
button.ghost{background:transparent;color:var(--muted);font-weight:600;font-size:16px;padding:10px}
button.warn{background:var(--warn)}
button:disabled{opacity:.5}
.banner{border-radius:14px;padding:22px 18px;text-align:center;margin-bottom:14px}
.banner.ok{background:var(--okbg);color:var(--ok)}
.banner.warn{background:var(--warnbg);color:var(--warn)}
.banner.bad{background:var(--badbg);color:var(--bad)}
.banner .icon{font-size:46px;line-height:1}
.banner h1{color:inherit}
input,select,textarea{width:100%;font-size:18px;padding:14px;border:1px solid var(--line);border-radius:10px;margin:6px 0 10px;font-family:inherit}
.list{margin:0;padding:0;list-style:none}
.list li{border:1px solid var(--line);border-radius:12px;padding:14px;margin:8px 0;background:#fff;cursor:pointer}
.list li:active{background:var(--bg)}
.list .t{font-weight:700}
.list .s{font-size:14px;color:var(--muted)}
.tag{display:inline-block;font-size:12px;font-weight:700;padding:2px 8px;border-radius:99px;background:var(--bg);color:var(--muted);margin-right:4px}
.tag.in{background:var(--okbg);color:var(--ok)}.tag.out{background:var(--warnbg);color:var(--warn)}.tag.stale,.tag.missing{background:var(--badbg);color:var(--bad)}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{text-align:left;padding:8px 4px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-weight:600}
td.n{text-align:right}
.bar{height:8px;background:var(--bg);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--ok)}
.spinner{width:36px;height:36px;border:4px solid var(--line);border-top-color:var(--navy);border-radius:50%;animation:s 1s linear infinite;margin:10px auto}
@keyframes s{to{transform:rotate(360deg)}}
.row{display:flex;gap:10px}.row>*{flex:1}
small.err{color:var(--bad)}
