:root{--sky: #0ea5e9;--navy: #172033;--ink: #1f2937;--muted: #64748b;--line: #e2e8f0;--surface: #ffffff;--surface-alt: #f1f7fc;--green: #15803d;--green-bg: #ecfdf3;--amber: #b45309;--amber-bg: #fffbeb;--red: #b91c1c;--red-bg: #fef2f2;--grey: #64748b;--grey-bg: #f1f5f9}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--surface-alt);-webkit-font-smoothing:antialiased}.app{max-width:520px;margin:0 auto;padding:0 16px calc(24px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 0 12px;position:sticky;top:0;background:var(--surface-alt);z-index:5}.topbar h1{font-size:20px;margin:0;color:var(--navy);letter-spacing:-.01em}.topbar .who{font-size:13px;color:var(--muted)}.topbar button.signout{border:0;background:none;color:var(--muted);font-size:13px;padding:8px;min-height:40px;cursor:pointer}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:12px}.person{border-left:6px solid var(--line)}.person.tone-green{border-left-color:var(--green)}.person.tone-amber{border-left-color:var(--amber)}.person.tone-red{border-left-color:var(--red)}.person.tone-grey{border-left-color:var(--grey)}.person h2{margin:0 0 2px;font-size:18px;color:var(--navy)}.person .label{font-weight:700;font-size:15px;margin:0 0 4px}.person.tone-green .label{color:var(--green)}.person.tone-amber .label{color:var(--amber)}.person.tone-red .label{color:var(--red)}.person.tone-grey .label{color:var(--grey)}.person .desc{color:var(--muted);font-size:14px;line-height:1.45;margin:0 0 8px}.person .meta{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.chip{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--grey-bg);color:var(--muted);border:1px solid var(--line)}.chip.alert{background:var(--red-bg);color:var(--red);border-color:#fecaca;font-weight:600}.chip.paused{background:var(--amber-bg);color:var(--amber);border-color:#fde68a}.chip.off{background:var(--green-bg);color:var(--green);border-color:#bbf7d0}.rooms{border-top:1px dashed var(--line);padding-top:10px;margin-top:4px}.room-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:4px 0;font-size:14px}.room-row .rname{color:var(--navy);font-weight:600}.room-row .rstate{color:var(--muted);font-size:13px;text-align:right}button.btn,a.btn{display:block;width:100%;text-align:center;text-decoration:none;border:0;border-radius:12px;padding:14px 16px;font-size:16px;font-weight:600;cursor:pointer;min-height:48px;margin-top:8px}.btn.primary{background:var(--sky);color:#fff}.btn.quiet{background:var(--grey-bg);color:var(--ink)}.btn.warn{background:var(--amber-bg);color:var(--amber);border:1px solid #fde68a}.btn.go{background:var(--green-bg);color:var(--green);border:1px solid #bbf7d0}.btn:disabled{opacity:.5;cursor:default}.seg{display:flex;gap:8px;margin:8px 0}.seg button{flex:1;border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:10px 4px;font-size:13px;min-height:44px;cursor:pointer}.seg button.on{border-color:var(--sky);background:#e0f2fe;color:var(--navy);font-weight:700}.step{font-weight:700;font-size:14px;color:var(--navy);margin:16px 0 6px}.incident{border-left:6px solid var(--red)}.incident h3{margin:0 0 4px;font-size:16px;color:var(--navy)}.incident .when{color:var(--muted);font-size:13px}.incident .summary{font-size:14px;line-height:1.45;margin:8px 0}.incident .acked{color:var(--green);font-size:13px;font-weight:600}.notice{font-size:13px;color:var(--muted);line-height:1.5}.notice.error{color:var(--red)}.section{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:20px 4px 8px}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px}.login{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;width:100%;max-width:380px}.login h1{margin:0 0 4px;font-size:22px;color:var(--navy)}.login .sub{color:var(--muted);font-size:14px;margin:0 0 16px}.login label{display:block;font-size:13px;color:var(--muted);margin:12px 0 4px}.login input{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;font-size:16px;min-height:48px}.login input:focus{outline:2px solid var(--sky);outline-offset:-1px}.login .err{color:var(--red);font-size:14px;margin-top:12px;line-height:1.4}.footer-note{text-align:center;color:var(--muted);font-size:12px;padding:20px 0;line-height:1.6}.footer-note a{color:var(--sky)}
