:root{color:#0f172a;background:#f8fafc;font-family:system-ui,-apple-system,Segoe UI,sans-serif}body{margin:0}main{max-width:72rem;margin:2rem auto;padding:0 1.5rem}main.narrow{max-width:32rem;margin:15vh auto}h1{margin:0 0 .5rem}.muted{color:#64748b}.error,.error-text{color:#b91c1c}.error-text{white-space:pre-wrap;word-break:break-word;background:#fef2f2;border-radius:4px;padding:.5rem}.note{color:#92400e;font-size:.85rem}a{color:#1d4ed8}:focus-visible{outline-offset:2px;outline:3px solid #2563eb}button{font:inherit;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:.35rem .8rem}button:disabled{opacity:.5;cursor:default}button.primary{color:#fff;background:#1d4ed8;border-color:#1d4ed8}button.danger{color:#b91c1c}button.link{color:#1d4ed8;background:0 0;border:none;padding:0;text-decoration:underline}input,textarea{font:inherit;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:6px;width:100%;margin:.25rem 0 .75rem;padding:.4rem;display:block}input[type=checkbox]{width:auto;margin:0 .4rem 0 0;display:inline}label.check{margin:.25rem 0;display:block}fieldset{border:1px solid #e2e8f0;border-radius:6px;margin:0 0 .75rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}ul.plain{padding:0;list-style:none}ul.plain button{text-align:left;width:100%;margin:.25rem 0}header.top{background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}header.top nav{gap:1rem;display:flex}.brand{color:inherit;font-size:1.2rem;font-weight:700;text-decoration:none}.spacer{flex:1}.badge{vertical-align:middle;border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge.ok{color:#166534;background:#dcfce7}.badge.warn{color:#92400e;background:#fef3c7}.badge.off{color:#334155;background:#e2e8f0}nav.tabs{border-bottom:1px solid #e2e8f0;gap:.25rem;margin-bottom:1rem;display:flex}nav.tabs a{color:#334155;padding:.5rem 1rem;text-decoration:none}nav.tabs a.active{border-bottom:3px solid #1d4ed8;font-weight:600}.card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1rem;padding:1rem}.card h3{margin-top:0}.grid{grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:1rem;display:grid}.actions{flex-wrap:wrap;gap:.5rem;display:flex}table{border-collapse:collapse;background:#fff;width:100%}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #e2e8f0;padding:.5rem}
