:root{--bg: #f4f6f5;--surface: #ffffff;--surface-alt: #eaeeed;--ink: #141b1f;--ink-soft: #51606a;--border: #d6dedb;--accent: #1f6f78;--accent-soft: #dcecec;--warn: #c2622a;--warn-soft: #f5e4d8;--good: #3f7d4f;--good-soft: #dcece0;--danger: #b6412a;--danger-soft: #f6ded6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5}#app{max-width:640px;margin:0 auto;min-height:100vh;background:var(--bg)}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar .brand{font-weight:700;font-size:15px}.topbar nav{display:flex;gap:4px}.topbar nav a,.topbar .logout{font-size:12.5px;padding:6px 10px;border-radius:6px;color:var(--ink-soft);text-decoration:none;border:1px solid transparent;background:none;cursor:pointer;font-family:inherit}.topbar nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}main{padding:16px 16px 48px}h1{font-size:19px;margin:0 0 4px}h2{font-size:15px;margin:20px 0 8px}p.hint{color:var(--ink-soft);font-size:13px;margin:0 0 16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:10px}.card-link{display:block;text-decoration:none;color:inherit}.row-between{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.badge{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.03em;padding:2px 8px;border-radius:999px;text-transform:uppercase}.badge.status-SCHEDULED,.badge.status-NOTIFIED{background:var(--accent-soft);color:var(--accent)}.badge.status-IN_PROGRESS{background:var(--warn-soft);color:var(--warn)}.badge.status-COMPLETED{background:var(--good-soft);color:var(--good)}.badge.status-CANCELLED,.badge.status-OPEN{background:var(--danger-soft);color:var(--danger)}.tier-tag{display:inline-block;font-size:10px;font-family:ui-monospace,monospace;padding:1px 6px;border-radius:4px;background:var(--surface-alt);color:var(--ink-soft);margin-right:4px}form{display:flex;flex-direction:column;gap:10px}label{font-size:12.5px;font-weight:600;color:var(--ink-soft)}input,textarea,select{font:inherit;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink)}button{font:inherit;font-weight:600;padding:10px 14px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer}button.secondary{background:var(--surface);color:var(--accent)}button.danger{background:var(--danger);border-color:var(--danger)}button:disabled{opacity:.5;cursor:not-allowed}.error{background:var(--danger-soft);color:var(--danger);border-radius:8px;padding:8px 12px;font-size:13px}.checklist-item{border:1px solid var(--border);border-radius:8px;padding:10px 12px;margin-bottom:8px}.checklist-item .label{font-size:13.5px;margin-bottom:8px}.result-buttons{display:flex;gap:6px}.result-buttons button{flex:1;padding:7px 0;font-size:12px;border-color:var(--border);background:var(--surface);color:var(--ink-soft)}.result-buttons button.PASS.active{background:var(--good-soft);color:var(--good);border-color:var(--good)}.result-buttons button.FAIL.active{background:var(--danger-soft);color:var(--danger);border-color:var(--danger)}.result-buttons button.NA.active{background:var(--surface-alt);color:var(--ink-soft);border-color:var(--border)}.sync-banner{background:var(--warn-soft);color:var(--warn);font-size:12.5px;padding:8px 16px;text-align:center}.offline-banner{background:var(--danger-soft);color:var(--danger);font-size:12.5px;padding:8px 16px;text-align:center}
