:root{color-scheme:light;--ink:#172238;--muted:#52627a;--line:#dce4ef;--blue:#165acd;--bg:#f1f5fa}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,sans-serif}
main{max-width:1180px;margin:auto;padding:clamp(20px,5vw,64px)}
.heading,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.heading{margin-bottom:2rem}
.eyebrow{font-size:.76rem;font-weight:750;letter-spacing:.13em;color:var(--blue)}
h1,h2,p{margin:0}
h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.15;letter-spacing:-.045em;margin:.15em 0}
h1 span{color:var(--blue)}
h2{font-size:1.25rem;margin-bottom:.2em}
.muted,small{color:var(--muted)}
.card{background:white;border:1px solid var(--line);border-radius:14px;padding:1.25rem}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin-bottom:1rem}
.stat span{display:block;color:var(--muted);font-size:.9rem}
.stat strong{font-size:1.9rem}
.login{max-width:420px}
.login form{display:grid;gap:.75rem;margin-top:1rem}
input,button,.button{font:inherit;border:1px solid var(--line);border-radius:8px;padding:.55rem .8rem}
input{min-width:0;color:var(--ink);background:white}
button,.button{font-weight:650;background:var(--blue);color:white;cursor:pointer}
button.secondary,.button.secondary{background:white;color:var(--blue)}
a{color:var(--blue);font-weight:650;text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.notice{padding:.75rem 1rem;background:#e6efff;border-radius:8px;margin:0 0 1rem}
.card .notice{margin:1rem 0 0}
.inline{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.inline.sync{margin:1.2rem 0}
.inline.retry{margin-top:.5rem}
.inline.retry input{max-width:175px}
.inline.retry button{font-size:.85rem}
.empty{border:1px dashed var(--line);border-radius:10px;padding:2rem;text-align:center;color:var(--muted)}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;text-align:left}
th,td{padding:.8rem;vertical-align:top;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-size:.84rem}
td:first-child{min-width:185px}
small{display:block}
.pill,code{padding:.16rem .4rem;border-radius:5px;background:#edf2f8}
.pill{white-space:nowrap;font-size:.8rem;font-weight:750}
.pill.done{background:#dff5e8;color:#176542}
.pill.running{background:#deebff;color:#1a51a7}
.pill.failed,.pill.needs_route{background:#ffedcf;color:#7c4504}
@media(max-width:620px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:.9rem}}
