:root{--brand: #1f4e79;--brand-dark: #173b5c;--text: #1f2933;--muted: #5f6b76;--border: #d5dbe1;--surface: #ffffff;--surface-alt: #f5f7f9;--hover: #e9eef3;--danger: #b42318;--danger-bg: #fdecea;--success: #1b7f3b;--notice-bg: #fff6e0;--radius: 6px;font-family:Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--surface);line-height:1.45}h1{font-size:1.5rem;margin:0 0 1rem}h2{font-size:1.1rem;margin:0 0 .5rem}a{color:var(--brand)}code{font-family:Consolas,Courier New,monospace}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--surface-alt);padding:1rem}.auth-card{width:100%;max-width:24rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:0 2px 10px #0000000d}.auth-card.wide{max-width:34rem}.auth-card h1{margin-bottom:.25rem}.auth-card .btn-primary{margin-top:.5rem}.brand{margin:0;color:var(--brand);font-weight:700;letter-spacing:.02em}.lead,.hint{margin:0;color:var(--muted)}.hint{font-size:.875rem}.card-links{display:flex;justify-content:space-between;gap:1rem;margin:.25rem 0 0;font-size:.9rem}.field{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:600}.field input{font:inherit;font-weight:400;padding:.55rem .7rem;border:1px solid var(--border);border-radius:var(--radius)}.field input:focus{outline:2px solid var(--brand);outline-offset:-1px}.field input.ng-touched.ng-invalid{border-color:var(--danger)}.field-error{margin:-.4rem 0 0;color:var(--danger);font-size:.85rem}.form-error{margin:0;padding:.6rem .75rem;border-radius:var(--radius);background:var(--danger-bg);color:var(--danger);font-size:.9rem}.notice{margin:0;padding:.6rem .75rem;border-radius:var(--radius);background:var(--notice-bg);font-size:.9rem}.success{color:var(--success)}.inline-form{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem;max-width:14rem}.btn{display:inline-block;font:inherit;font-size:.95rem;padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;text-align:center;text-decoration:none}.btn:hover{background:var(--hover)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dark)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-small{padding:.25rem .7rem;font-size:.85rem}.link-button{background:none;border:none;padding:0;font:inherit;color:var(--brand);text-decoration:underline;cursor:pointer}.panel{border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.25rem;margin-bottom:1rem;display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}.panel p{margin:0}.details{display:grid;grid-template-columns:6rem 1fr;gap:.3rem 1rem;margin:0}.details dt{color:var(--muted)}.details dd{margin:0}.badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;background:var(--hover);font-size:.8rem;font-weight:600;margin-right:.4rem}.badge.badge-on{background:#e3f4e8;color:var(--success)}.steps{padding-left:1.2rem;margin:0;display:flex;flex-direction:column;gap:1rem}.qr{display:block;margin:.75rem 0 .4rem;border:1px solid var(--border)}.key{display:inline-block;padding:.1rem .4rem;background:var(--surface-alt);border-radius:4px}.recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(8rem,1fr));gap:.4rem 1.5rem;list-style:none;padding:.75rem 1rem;margin:.5rem 0;background:var(--surface-alt);border-radius:var(--radius)}.access-panel{align-items:stretch;overflow-x:auto}.access-table{border-collapse:collapse;font-size:.875rem}.access-table th,.access-table td{padding:.3rem .6rem;border-bottom:1px solid var(--border);text-align:center}.access-table th[scope=row],.access-table thead th:first-child{text-align:left;font-weight:400;min-width:12rem}.access-table thead th{color:var(--muted);font-weight:600}.access-table td[data-allowed=true]{color:var(--success);font-weight:700}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin:0 0 1rem}.tabs a{padding:.5rem .9rem;color:var(--text);text-decoration:none;border-bottom:2px solid transparent}.tabs a.active{border-bottom-color:var(--brand);font-weight:600}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin:0 0 .9rem}.toolbar select{font:inherit;padding:.4rem .5rem;border:1px solid var(--border);border-radius:var(--radius)}.search{font:inherit;padding:.45rem .7rem;border:1px solid var(--border);border-radius:var(--radius);min-width:18rem}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table th,.data-table td{padding:.5rem .6rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.data-table thead th{color:var(--muted);font-weight:600;background:var(--surface-alt)}.data-table.compact td,.data-table.compact th{padding:.3rem .5rem;font-size:.85rem}.data-table tr.done td{background:#f3faf5}.data-table select{font:inherit;padding:.3rem;border:1px solid var(--border);border-radius:var(--radius)}.data-table .status .badge{margin-bottom:.15rem}.cell-input{font:inherit;width:100%;min-width:14rem;padding:.3rem .5rem;border:1px solid var(--border);border-radius:var(--radius)}.badge-off{background:#eceff1;color:var(--muted)}.badge-warn{background:var(--danger-bg);color:var(--danger)}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.segmented button{font:inherit;padding:.4rem .9rem;border:none;background:var(--surface);cursor:pointer}.segmented button+button{border-left:1px solid var(--border)}.segmented button.active{background:var(--brand);color:#fff}.segmented button:disabled:not(.active){opacity:.5;cursor:default}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width:900px){.data-table,.access-table{display:block;overflow-x:auto;white-space:nowrap}.search{min-width:0;width:100%}.auth-card{padding:1.5rem 1.25rem}}
