:root{--color-bg:#f7f5f1;--color-surface:#fff;--color-text:#1f2a27;--color-muted:#55625e;--color-primary:#3d6457;--color-primary-dark:#2c4a40;--color-danger:#a8322d;--color-warning-bg:#fff4d6;--color-info-bg:#e7f0f4;--color-success-bg:#e5f2e8;--color-error-bg:#fbe9e7;--color-border:#c9cfcc;--focus:3px solid #1b5fd1;--radius:8px;color:var(--color-text);background:var(--color-bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:var(--color-primary-dark)}:focus-visible{outline:var(--focus);outline-offset:2px}h1{margin:0 0 1rem;font-size:1.6rem}h1:focus{outline:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{background:var(--color-surface);z-index:10;padding:.5rem 1rem;position:absolute;top:0;left:-999px}.skip-link:focus{left:.5rem}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;padding:.75rem 1rem;display:flex}.brand{color:var(--color-primary-dark);font-size:1.2rem;font-weight:700}.app-header nav ul{flex-wrap:wrap;gap:.25rem 1rem;margin:0;padding:0;list-style:none;display:flex}.app-header nav a{border-bottom:2px solid #0000;padding:.25rem 0;text-decoration:none}.app-header nav a[aria-current=page]{border-bottom-color:var(--color-primary);font-weight:600}.user-menu{align-items:center;gap:1rem;margin-left:auto;display:flex}.role{color:var(--color-muted);font-size:.9em}.app-main{max-width:1100px;margin:0 auto;padding:1rem}.card,.auth-card,.appointment{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1rem;padding:1rem}.auth-card{max-width:28rem;margin:2rem auto}.grid-2{gap:1rem;display:grid}@media (width>=800px){.grid-2{grid-template-columns:1fr 1fr}}button,.button{border-radius:var(--radius);border:1px solid var(--color-primary);background:var(--color-primary);color:#fff;min-height:44px;font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:.5rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:var(--color-primary-dark)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary,.button.secondary{background:var(--color-surface);color:var(--color-primary-dark)}button.danger{background:var(--color-danger);border-color:var(--color-danger)}.link-button{color:var(--color-primary-dark);background:0 0;border:none;min-height:24px;padding:.25rem;font-weight:400;text-decoration:underline}.link-button:hover{background:0 0}.link-button.danger{color:var(--color-danger);background:0 0}.button-row{flex-wrap:wrap;gap:.5rem;margin:.75rem 0;display:flex}.field{flex-direction:column;gap:.25rem;margin-bottom:.75rem;display:flex}.field label{font-weight:600}input,select,textarea{font:inherit;min-height:44px;color:var(--color-text);background:#fff;border:1px solid #7a8581;border-radius:6px;padding:.5rem}input[type=checkbox],input[type=radio]{width:1.2rem;height:1.2rem;min-height:auto}input[aria-invalid=true]{border-color:var(--color-danger)}.checkbox{align-items:flex-start;gap:.5rem;margin:.5rem 0;display:flex}.hint,.muted{color:var(--color-muted)}.field-error{color:var(--color-danger)}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:0 1rem;display:flex}.alert{border-radius:var(--radius);border-left:4px solid;margin:.75rem 0;padding:.75rem 1rem}.alert-error{background:var(--color-error-bg);border-color:var(--color-danger)}.alert-info{background:var(--color-info-bg);border-color:#2f6f8f}.alert-success{background:var(--color-success-bg);border-color:#2e7d4f}.alert-warning{background:var(--color-warning-bg);border-color:#9a6b00}.divider{color:var(--color-muted);align-items:center;gap:.75rem;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--color-border);flex:1}.auth-options{flex-direction:column;gap:.75rem;display:flex}.google-button{color:#1f1f1f;background:#fff;border:1px solid #747775;border-radius:4px;justify-content:center;align-items:center;gap:.75rem;min-height:44px;padding:0 1rem;font-family:Roboto,Arial,sans-serif;font-weight:500;text-decoration:none;display:inline-flex}.booking-filters{gap:0 1rem;display:grid}@media (width>=700px){.booking-filters{grid-template-columns:repeat(3,1fr)}}fieldset{border:1px solid var(--color-border);border-radius:var(--radius);min-width:0;margin:0 0 .75rem}.radio-group{border:none;padding:0}.week-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.week-nav h2{margin:0;font-size:1.1rem}.slot-days{gap:1rem;display:grid}@media (width>=700px){.slot-days{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}}.slot-day h3{font-size:1rem}.slot-day h3:first-letter{text-transform:uppercase}.slot-list{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.slot{background:var(--color-surface);color:var(--color-primary-dark);flex-direction:column;min-width:5rem}.slot:hover{color:#fff}.slot-therapist{font-size:.8rem;font-weight:400}dialog{border-radius:var(--radius);border:none;width:100%;max-width:min(36rem,100vw - 2rem);padding:1.5rem}dialog::backdrop{background:#0006}.summary{grid-template-columns:max-content 1fr;gap:.25rem 1rem;display:grid}.summary dt{font-weight:600}.summary dd{margin:0}.appointment.status-cancelled{opacity:.75}.status{font-weight:600}.plain-list{padding:0;list-style:none}.plain-list li{border-bottom:1px solid #eceeed;padding:.35rem 0}table{border-collapse:collapse;background:var(--color-surface);width:100%}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.5rem}.table-scroll{overflow-x:auto}.swatch{vertical-align:middle;border-radius:50%;width:.9rem;height:.9rem;display:inline-block}.therapist-filter{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);flex-wrap:wrap;gap:.5rem 1rem;display:flex}.calendar-wrapper{background:var(--color-surface);border-radius:var(--radius);padding:.5rem}.fc .status-cancelled{opacity:.5;text-decoration:line-through}.fc .status-pending{border-style:dashed!important}.chat-layout{gap:1rem;display:grid}@media (width>=800px){.chat-layout{grid-template-columns:16rem 1fr}}.conversation-list ul{margin:0;padding:0;list-style:none}.conversation-list a{border-radius:6px;justify-content:space-between;padding:.5rem;text-decoration:none;display:flex}.conversation-list a[aria-current=page]{background:var(--color-info-bg);font-weight:600}.badge{background:var(--color-primary);color:#fff;border-radius:999px;padding:0 .5rem;font-size:.85rem}.messages{flex-direction:column;gap:.5rem;max-height:60vh;padding:0;list-style:none;display:flex;overflow-y:auto}.messages li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;max-width:85%;padding:.5rem .75rem}.messages li.mine{background:#e3efe9;align-self:flex-end}.messages li.auto{background:var(--color-warning-bg)}.message-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.meta{color:var(--color-muted);font-size:.8rem;display:block}.message-form{gap:.5rem;display:grid}.codes{columns:2}.break{word-break:break-all}.loading{color:var(--color-muted)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
