.auth-card{display:grid;gap:1rem;box-sizing:border-box;width:100%;max-width:26rem;padding:2rem;background:#fff;border-radius:.75rem;box-shadow:0 4px 16px #00000014}.auth-card h1{margin:0;font-size:1.5rem}.auth-card label{display:grid;gap:.35rem;font-size:.9rem;font-weight:600}.auth-card input{padding:.6rem .75rem;font:inherit;border:1px solid #cbd5e1;border-radius:.5rem}.auth-card button{padding:.7rem;font:inherit;font-weight:600;color:#fff;background:#4f46e5;border:none;border-radius:.5rem;cursor:pointer}.auth-card button:hover:not(:disabled){background:#4338ca}.auth-card button:disabled{opacity:.6;cursor:not-allowed}.auth-card .error{margin:0;padding:.6rem .75rem;font-size:.9rem;color:#b91c1c;background:#fef2f2;border-radius:.5rem}.login{display:grid;place-items:center;min-height:100vh;padding:1rem}.table-scroll{overflow-x:auto}.events-table{width:100%;border-collapse:collapse;font-size:.9rem}.events-table th,.events-table td{padding:.7rem .75rem;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border)}.events-table thead th{font-size:.75rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted)}.events-table tbody th{font-weight:600}.events-table tbody tr:hover{background:#f8fafc}.events-table .num{text-align:right;font-variant-numeric:tabular-nums}.events-table .event-title{max-width:22rem;overflow:hidden;text-overflow:ellipsis}.events-table .actions{text-align:right}.badge{display:inline-block;padding:.15rem .55rem;font-size:.8rem;font-weight:600;color:var(--text-secondary);background:#f1f5f9;border-radius:999px}.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;font-size:.85rem;color:var(--text-secondary)}.pagination-controls{display:flex;align-items:center;gap:.75rem}.chart-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.chart-subtitle{margin:.25rem 0 0;font-size:.85rem;color:var(--text-secondary)}.bars{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.bar-row{position:relative;display:grid;grid-template-columns:6.5rem 1fr;align-items:center;gap:.75rem;padding:.25rem 0;border-radius:.375rem;outline:none}.bar-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bar-label{font-size:.85rem;color:var(--text-secondary)}.bar-track{display:flex;align-items:center;gap:.5rem;min-width:0;padding-right:3rem}.bar{flex:none;height:24px;background:var(--series-1);border-radius:0 4px 4px 0;transition:width .3s ease,filter .15s ease}.bar-value{font-size:.85rem;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.bar-row:hover .bar,.bar-row:focus-visible .bar{filter:brightness(1.15)}.bar-tooltip{position:absolute;bottom:calc(100% - .1rem);left:7.25rem;z-index:1;display:none;gap:.1rem;padding:.4rem .65rem;font-size:.8rem;color:var(--text-secondary);white-space:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 4px 12px #0f172a1f;pointer-events:none}.bar-tooltip strong{font-size:1rem;color:var(--text)}.bar-row:hover .bar-tooltip,.bar-row:focus-visible .bar-tooltip{display:grid}.chart-table{width:100%;border-collapse:collapse;font-size:.9rem}.chart-table th,.chart-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.chart-table thead th{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--text-muted)}.chart-table .num{text-align:right;font-variant-numeric:tabular-nums}.dashboard{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}.dashboard h1{margin:0;font-size:1.5rem}.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem 1rem;margin-top:1rem}.filters label{display:grid;gap:.3rem;font-size:.8rem;font-weight:600;color:var(--text-secondary)}.filters select,.filters input{padding:.5rem .65rem;font:inherit;font-size:.9rem;color:var(--text);background:var(--surface);border:1px solid #cbd5e1;border-radius:.5rem}.caption{margin:.75rem 0 1rem;font-size:.85rem;color:var(--text-secondary)}.results{transition:opacity .15s ease}.results.stale{opacity:.55}.empty{margin:1.5rem 0;text-align:center;color:var(--text-muted)}.notice{margin:0 0 1rem;padding:.6rem .75rem;font-size:.9rem;border-radius:.5rem}.notice-error{color:var(--danger);background:var(--danger-bg)}.notice .link{padding:0;font:inherit;font-weight:600;color:inherit;text-decoration:underline;background:none;border:none;cursor:pointer}.admin-home{display:grid;gap:1rem}.admin-home-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.admin-home-header p{margin:.25rem 0 0;color:var(--text-secondary)}.admin-home a.btn-secondary{text-align:center;text-decoration:none;white-space:nowrap}.admin-home .hint{margin:0;color:var(--text-secondary)}.tenant-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--border)}.tenant-row{display:flex;align-items:center;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--border)}.tenant-logo{display:grid;flex:none;place-items:center;width:4rem;height:2.75rem;font-weight:700;color:var(--text-muted);background:var(--bg);border-radius:.5rem;overflow:hidden}.tenant-logo img{max-width:100%;max-height:100%;object-fit:contain}.tenant-info{display:grid;flex:1;gap:.125rem;min-width:0;overflow-wrap:anywhere}.tenant-name{font-weight:600}.tenant-address{font-size:.85rem;color:var(--text-secondary)}.tenant-actions{display:flex;flex:none;gap:.5rem}.admin-home a.btn-icon{display:grid;place-items:center;width:2.375rem;padding:0;box-sizing:border-box}@media(max-width:40rem){.tenant-row{flex-wrap:wrap;row-gap:.5rem}.tenant-actions{width:100%;padding-left:5rem;box-sizing:border-box}}.admin-page{display:grid;gap:1rem;justify-items:center}.admin-page .back-link{justify-self:start;font-size:.9rem;color:var(--accent);text-decoration:none}.admin-page .back-link:hover{text-decoration:underline}.admin-page .auth-card{max-width:32rem}.admin-page .hint{margin:0;font-size:.9rem;color:var(--text-secondary);overflow-wrap:anywhere}.admin-page .actions{display:grid;gap:.5rem}.admin-page a.btn-secondary{text-align:center;text-decoration:none}.created-logo{max-width:8rem;max-height:4rem;object-fit:contain}.created dl{display:grid;gap:.25rem;margin:0}.created dt{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--text-muted)}.created dd{margin:0 0 .5rem;overflow-wrap:anywhere}.api-keys-page{display:grid;gap:1.5rem}.api-keys-header{display:grid;gap:.5rem}.api-keys-header h2{margin:.5rem 0 0}.api-keys-header p{margin:.25rem 0 0;color:var(--text-secondary)}.api-keys-back{color:var(--text-secondary);text-decoration:none;font-size:.9rem}.api-keys-back:hover{text-decoration:underline}.api-key-create{display:grid;gap:1rem;padding:1.25rem;border:1px solid var(--border);border-radius:.75rem;background:var(--bg);box-shadow:none;max-width:none}.api-key-create h3,.api-key-list-header h3{margin:0}.api-key-create p,.api-key-list-header p{margin:.25rem 0 0;color:var(--text-secondary);font-size:.9rem}.api-key-secret{display:grid;gap:1rem;padding:1.25rem;border:1px solid var(--border);border-radius:.75rem;background:var(--bg)}.api-key-secret-header{display:flex;justify-content:space-between;gap:1rem}.api-key-secret-header h3{margin:0}.api-key-secret-header p{margin:.35rem 0 0;color:var(--text-secondary);font-size:.9rem}.api-key-close{flex:none;width:2rem;height:2rem;padding:0;border:0;background:transparent;color:var(--text-secondary);font-size:1.5rem;line-height:1;cursor:pointer}.api-key-close:hover{color:var(--text)}.api-key-secret-name{font-size:.9rem}.api-key-secret-value{display:flex;align-items:stretch;gap:.5rem}.api-key-secret-value code{flex:1;min-width:0;padding:.75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--surface);font-family:monospace;overflow-wrap:anywhere;word-break:break-all}.api-key-warning{margin:0;color:var(--text-secondary);font-size:.85rem}.api-key-list-section{display:grid;gap:1rem}.api-key-list-header{display:grid}.api-key-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--border)}.api-key-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border)}.api-key-info{display:grid;gap:.35rem;min-width:0}.api-key-name-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.api-key-date{color:var(--text-secondary);font-size:.85rem}.api-key-status{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.api-key-status.active{background:#e8f5e9;color:#2e7d32}.api-key-status.revoked{background:#f1f1f1;color:#666}.api-key-empty{padding:1.5rem;border:1px dashed var(--border);border-radius:.75rem;text-align:center}.api-key-empty h4{margin:0}.api-key-empty p{margin:.4rem 0 0;color:var(--text-secondary)}@media(max-width:40rem){.api-key-secret-value{flex-direction:column}.api-key-row{align-items:flex-start;flex-direction:column}}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.modal{width:min(420px,100%);background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 10px 30px #0003}.modal h3{margin:0 0 .75rem}.modal p{margin:.5rem 0;line-height:1.5}.modal-warning{color:#666;font-size:.9rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.api-keys-page .btn-secondary,.api-keys-page .btn-danger{min-width:100px;padding:.65rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer}.api-keys-page .btn-secondary{background:#fff;border:1px solid #d1d5db;color:#374151}.api-keys-page .btn-danger{background:#dc2626;border:1px solid #dc2626;color:#fff}.api-keys-page .btn-secondary:hover{background:#f3f4f6}.api-keys-page .btn-danger:hover{background:#b91c1c}.api-keys-page .btn-secondary:disabled,.api-keys-page .btn-danger:disabled{opacity:.6;cursor:not-allowed}.confirm-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:#0f172a73}.confirm-dialog{width:min(26rem,100%);padding:1.5rem;background:var(--surface);border-radius:.75rem;box-shadow:0 10px 30px #0f172a33}.confirm-dialog h2{margin:0 0 .75rem;font-size:1.15rem}.confirm-body p{margin:.5rem 0;line-height:1.5;overflow-wrap:anywhere}.confirm-error{margin:.75rem 0 0;padding:.6rem .75rem;font-size:.9rem;color:var(--danger);background:var(--danger-bg);border-radius:.5rem}.confirm-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.confirm-dialog .btn-danger{padding:.5rem .9rem;font:inherit;font-size:.9rem;font-weight:600;color:#fff;background:var(--danger);border:1px solid var(--danger);border-radius:.5rem;cursor:pointer}.confirm-dialog .btn-danger:hover:not(:disabled){background:#991b1b}.confirm-dialog button:disabled{opacity:.6;cursor:not-allowed}.events-page{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}.events-page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.events-page-header h1{margin:0;font-size:1.5rem}.events-page-header p{margin:.25rem 0 0;color:var(--text-secondary)}.btn-primary{padding:.55rem 1rem;font:inherit;font-size:.9rem;font-weight:600;color:#fff;text-decoration:none;white-space:nowrap;background:var(--accent);border:none;border-radius:.5rem;cursor:pointer}.btn-primary:hover{background:var(--accent-hover)}.row-actions{display:inline-flex;gap:.5rem}.row-actions .btn-secondary{padding:.35rem .7rem;font-size:.85rem;text-decoration:none}.btn-danger-outline{color:var(--danger)}.btn-danger-outline:hover{background:var(--danger-bg)!important}.notice-success{color:#166534;background:#f0fdf4}.event-form textarea,.event-form select{padding:.6rem .75rem;font:inherit;font-weight:400;color:var(--text);background:var(--surface);border:1px solid #cbd5e1;border-radius:.5rem}.event-form textarea{resize:vertical}.event-form .field-hint{justify-self:end;font-weight:400;color:var(--text-muted)}.accept-invite{display:grid;place-items:center;min-height:100vh;padding:1rem}.accept-invite .auth-card{max-width:28rem}.accept-invite .hint{margin:0;font-size:.9rem;color:var(--text-secondary)}.accept-invite input[readonly]{color:var(--text-secondary);background:var(--bg)}.accept-invite .link{font-size:.9rem;color:var(--accent)}.change-password-overlay{position:fixed;inset:0;display:grid;place-items:center;padding:1rem;background:#0f172a73}.change-password .hint{margin:0;font-size:.85rem;color:#475569}.shell{min-height:100vh}.shell-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem clamp(1rem,4vw,2rem);background:var(--surface);border-bottom:1px solid var(--border)}.shell-brand{font-size:1.1rem;font-weight:700;color:var(--accent);white-space:nowrap}.shell-user .btn-secondary{white-space:nowrap}.shell-start{display:flex;align-items:center;gap:1.5rem;min-width:0}.shell-nav{display:flex;gap:.25rem}.shell-nav a{padding:.4rem .65rem;font-size:.9rem;font-weight:600;color:var(--text-secondary);text-decoration:none;white-space:nowrap;border-radius:.5rem}.shell-nav a:hover{color:var(--text);background:var(--bg)}.shell-nav a.active{color:var(--accent);background:var(--bg)}.shell-user{display:flex;align-items:center;gap:1rem;min-width:0}.shell-identity{display:grid;min-width:0;text-align:right;font-size:.85rem}.shell-identity strong,.shell-identity small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-identity small{color:var(--text-secondary)}.shell-content{max-width:72rem;margin:0 auto;padding:clamp(1rem,3vw,2rem)}@media(max-width:40rem){.shell-identity{display:none}.shell-header{flex-wrap:wrap;gap:.5rem}.shell-start{display:contents}.shell-user{order:1}.shell-nav{order:2;width:100%}.shell-brand{font-size:1rem}.shell-nav a{padding:.4rem .6rem}}:root{--bg: #f1f5f9;--surface: #fff;--border: #e2e8f0;--text: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--accent: #4f46e5;--accent-hover: #4338ca;--danger: #b91c1c;--danger-bg: #fef2f2;--series-1: #2a78d6}body{margin:0;font-family:system-ui,sans-serif;color:var(--text);background:var(--bg)}.btn-secondary{padding:.5rem .9rem;font:inherit;font-size:.9rem;font-weight:600;color:var(--text);background:var(--surface);border:1px solid #cbd5e1;border-radius:.5rem;cursor:pointer}.btn-secondary:hover:not(:disabled){background:#f8fafc}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.card{padding:1.25rem;background:var(--surface);border-radius:.75rem;box-shadow:0 1px 3px #0f172a14}.card h2{margin:0;font-size:1.05rem}.registrations-page{display:grid;gap:1.5rem}.registrations-page h1{margin:.5rem 0 0}.registrations-back{color:var(--text-secondary);text-decoration:none;font-size:.9rem}.registrations-back:hover{text-decoration:underline}.event-summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.5rem}.event-summary h2{margin:0}.summary-meta{margin:.25rem 0 0;color:var(--text-secondary)}.summary-numbers{display:flex;gap:2rem;margin:0}.summary-numbers dt{color:var(--text-secondary);font-size:.85rem}.summary-numbers dd{margin:.15rem 0 0;font-size:1.5rem;font-weight:600}.registration-create{display:grid;gap:1rem;padding:0;border:0;box-shadow:none;max-width:none;background:transparent}.registration-create h3{margin:0}.registration-create p{margin:.25rem 0 0;color:var(--text-secondary);font-size:.9rem}.registration-actions{display:flex;flex-wrap:wrap;gap:.5rem}.status-Reserved{background:#fff7e0;color:#8a6100}.status-Confirmed{background:#e3f0ff;color:#1d5fa8}.status-Cancelled{background:#f1f1f1;color:#666}.status-Assisted{background:#e8f5e9;color:#2e7d32}.comment-field{display:grid;gap:.35rem;margin-top:.75rem;font-size:.9rem}.comment-field textarea{width:100%;box-sizing:border-box;padding:.6rem;border:1px solid var(--border);border-radius:.5rem;font:inherit;resize:vertical}.registrations-page .notice{margin:0 0 1rem;padding:.75rem 1rem;border-radius:.5rem}.registrations-page .notice-success{background:#e8f5e9;color:#2e7d32}.registrations-page .notice-error{background:#fdecea;color:#b3261e}
