/* ext.css — additions for the server version (login, read-only banner, attendance board, re-sync) */
.login-overlay .login-box { max-width: 420px; }
.login-box label { display:block; font-weight:600; font-size:13px; margin:12px 0 6px; }
.login-box input { width:100%; padding:11px 12px; border:1px solid var(--line, #dfe3ea); border-radius:9px; font-size:14px; font-family:inherit; }
.ro-banner { position:sticky; top:0; z-index:50; background:#fff4e5; color:#96580a; border-bottom:1px solid #f3d9a4; padding:8px 14px; font-size:13px; font-weight:600; text-align:center; }
.att-wrap { overflow:auto; max-height:70vh; border:1px solid var(--line, #dfe3ea); border-radius:10px; }
.att-table { border-collapse:collapse; font-size:13px; min-width:100%; }
.att-table th, .att-table td { border-bottom:1px solid #eef0f4; padding:6px 8px; white-space:nowrap; text-align:center; }
.att-table th { position:sticky; top:0; background:#f6f8fb; font-weight:700; z-index:1; }
.att-table td.nm { text-align:start; font-weight:600; position:sticky; right:0; background:#fff; }
.att-table th.nm { position:sticky; right:0; z-index:2; }
.att-table a.mk { text-decoration:none; color:#1e6b34; font-size:16px; }
.att-table span.mk { color:#b6bcc6; font-size:16px; }
.kv { display:grid; grid-template-columns:auto 1fr; gap:4px 14px; font-size:13px; margin-top:8px; }
.kv b { color:#59626f; font-weight:600; }
.pill-ok { background:#e9f6ec; color:#1e6b34; } .pill-bad { background:#fdeaea; color:#a10000; } .pill-warn { background:#fff4e5; color:#96580a; }
.mono { font-family: ui-monospace, Consolas, monospace; font-size:12px; word-break:break-all; }
.resync-table { width:100%; border-collapse:collapse; font-size:13px; margin-top:8px; }
.resync-table th, .resync-table td { border-bottom:1px solid #eef0f4; padding:5px 8px; text-align:start; }
