:root{color-scheme:light dark;--bg: #f7f7f8;--surface: #ffffff;--text: #1a1a1a;--muted: #5a5a5f;--border: #d9d9de;--accent: #1f4b99;--accent-contrast: #ffffff;--danger: #a3291f;--danger-bg: #fdecea;--success: #1f7a3f;--success-bg: #e9f7ee;--focus: #1f4b99;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #15161a;--surface: #1f2126;--text: #f1f1f3;--muted: #a6a6ad;--border: #35373e;--accent: #6f9ceb;--accent-contrast: #0b1220;--danger: #ff8178;--danger-bg: #3a1f1d;--success: #6fd794;--success-bg: #163722;--focus: #6f9ceb}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}#root{min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.app-shell{max-width:720px;margin:0 auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.centered-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:1.25rem}.card--narrow{width:100%;max-width:360px}.stack{display:flex;flex-direction:column;gap:.75rem}h1{font-size:1.4rem;margin:0}h2{font-size:1.1rem;margin:0}p{margin:0;color:var(--muted)}label{font-weight:600;font-size:.9rem}.field{display:flex;flex-direction:column;gap:.35rem}input[type=email],input[type=date],select,textarea{border:1px solid var(--border);border-radius:8px;padding:.6rem .7rem;background:var(--surface);width:100%}textarea{resize:vertical;min-height:5rem}.button{border:none;border-radius:8px;padding:.65rem 1rem;font-weight:600;cursor:pointer;background:var(--accent);color:var(--accent-contrast)}.button:disabled{opacity:.55;cursor:not-allowed}.button--secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.button--danger{background:var(--danger);color:#fff}.link-button{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font-weight:600;text-decoration:underline}.banner{border-radius:8px;padding:.75rem 1rem;font-size:.95rem}.banner--error{background:var(--danger-bg);color:var(--danger)}.banner--success{background:var(--success-bg);color:var(--success)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.topbar__email{font-size:.85rem;color:var(--muted);word-break:break-all}.filters{display:flex;gap:.75rem;flex-wrap:wrap}.filters .field{flex:1 1 140px}.language-picker{width:auto}.language-picker select{width:auto;min-width:8rem}.appointment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.appointment-item{width:100%;text-align:left;display:flex;flex-direction:column;gap:.3rem}.appointment-item__row{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.15rem .6rem;font-size:.78rem;font-weight:600;white-space:nowrap}.status-badge--pending{background:#fff4d6;color:#7a5b00}.status-badge--confirmed{background:#dcf3e3;color:#1f7a3f}.status-badge--cancelled{background:#fdecea;color:#a3291f}.status-badge--completed{background:#e4e9f7;color:#2c3e91}.status-badge--no_show{background:#eee;color:#555}.detail-grid{display:grid;grid-template-columns:auto 1fr;gap:.4rem .9rem;font-size:.95rem}.detail-grid dt{color:var(--muted);font-weight:600}.detail-grid dd{margin:0}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;padding:0;z-index:10}@media(min-width:560px){.modal-overlay{align-items:center;padding:1.5rem}}.modal{background:var(--surface);border-radius:16px 16px 0 0;padding:1.25rem;width:100%;max-width:480px;display:flex;flex-direction:column;gap:.9rem}@media(min-width:560px){.modal{border-radius:16px}}.modal__actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap}.spinner{width:2rem;height:2rem;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
