  /* ---- CONFIRM MODAL ---- */
  .modal-overlay{position:fixed;inset:0;background:rgba(34,50,45,0.45);display:none;align-items:center;justify-content:center;z-index:1000;padding:20px;}
  .modal-box{background:var(--surface);border-radius:var(--radius);padding:26px 24px;max-width:380px;width:100%;box-shadow:0 10px 30px rgba(0,0,0,0.25);}
  .modal-box p{font-size:14.5px;line-height:1.5;margin:0 0 20px;color:var(--ink);}
  .modal-actions{display:flex;gap:10px;justify-content:flex-end;}

  /* ---- CALENDAR ---- */
  .calendar-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);margin-bottom:26px;}
  .cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
  .cal-month{font-family:Georgia,serif;font-size:16px;color:var(--primary-dark);}
  .cal-nav{background:var(--surface-soft);border:1px solid var(--line-strong);border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:16px;color:var(--primary-dark);}
  .cal-nav:hover{border-color:var(--accent);}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;}
  .cal-dow{text-align:center;font-size:11px;color:var(--ink-soft);padding:4px 0;letter-spacing:0.3px;}
  .cal-cell{position:relative;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;cursor:default;font-size:13px;}
  .cal-cell.empty{cursor:default;}
  .cal-cell.has-bookings{cursor:pointer;background:var(--surface-soft);}
  .cal-cell.has-bookings:hover{background:#EDEAD9;}
  .cal-cell.today .cal-daynum{color:var(--accent-dark);font-weight:700;}
  .cal-cell.selected{background:var(--primary);}
  .cal-cell.selected .cal-daynum{color:#fff;}
  .cal-dots{display:flex;gap:3px;margin-top:2px;}
  .cal-dot{width:6px;height:6px;border-radius:50%;}
  .cal-dot.confirmed{background:var(--confirmed);}
  .cal-dot.pending{background:var(--pending);}
  .cal-day-details{margin-top:16px;padding-top:16px;border-top:1px dashed var(--line-strong);}
  .cal-summary{font-size:13px;color:var(--ink-soft);margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line);}
  .cal-summary strong{color:var(--primary-dark);}
  .completed-tag{display:inline-block;font-size:10px;letter-spacing:0.3px;text-transform:uppercase;color:var(--ink-soft);background:var(--surface-soft);border:1px solid var(--line-strong);padding:3px 8px;border-radius:20px;margin-left:6px;}

  .compact-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:20px;}
  .compact-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 14px;font-size:12.5px;background:var(--surface);border-bottom:1px solid var(--line);}
  .compact-row [data-dismiss]{background:none;border:none;color:var(--ink-soft);font-size:16px;cursor:pointer;padding:0 2px;line-height:1;margin-left:4px;}
  .compact-row [data-dismiss]:hover{color:var(--declined);}
  .compact-row:last-child{border-bottom:none;}
  .compact-row .cr-who{color:var(--ink-soft);}
  .compact-row .cr-who strong{color:var(--ink);font-weight:600;}
  .compact-row .status-badge{font-size:9.5px;padding:3px 8px;}

  /* ---- QUESTIONNAIRE ---- */
  .yesno-row{display:flex;gap:10px;margin-bottom:6px;}
  .yesno-row .pill{padding:8px 18px;}
  .qn-followup{display:none;margin-top:4px;}
  .qn-followup.show{display:block;}
  .crisis-note{background:#F5E1DE;border:1px solid var(--declined);color:var(--declined);font-size:12.5px;line-height:1.5;padding:10px 13px;border-radius:8px;margin:8px 0 16px;}
  .qn-block{margin-bottom:20px;padding-bottom:18px;border-bottom:1px dashed var(--line-strong);}
  .qn-block:last-of-type{border-bottom:none;}
  .qn-question{font-weight:600;font-size:14px;margin-bottom:8px;color:var(--ink);}

  /* ---- DOCUMENTS / INBOX ---- */
  .doc-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:13px 16px;margin-bottom:9px;box-shadow:var(--shadow);}
  .doc-row .doc-info{font-size:14px;}
  .doc-row .doc-info .doc-name{font-weight:700;color:var(--primary-dark);}
  .doc-row .doc-info .doc-meta{font-size:12px;color:var(--ink-soft);margin-top:3px;}
  select{width:100%;padding:11px 12px;border:1px solid var(--line-strong);border-radius:8px;font-size:16px;font-family:inherit;background:var(--surface-soft);color:var(--ink);margin-bottom:15px;}
  input[type=file]{width:100%;padding:9px;border:1px solid var(--line-strong);border-radius:8px;font-size:16px;background:var(--surface-soft);margin-bottom:15px;}

  /* ---- GROUP SESSION ROSTER ---- */
  .roster-row{display:flex;gap:8px;margin-bottom:8px;align-items:center;}
  .roster-row input{margin-bottom:0;}
  .roster-row input.roster-name{flex:2;}
  .roster-row input.roster-age{flex:1;}
  .roster-remove{background:none;border:none;color:var(--declined);font-size:18px;cursor:pointer;padding:0 4px;line-height:1;}
  .roster-add{background:var(--surface-soft);border:1px dashed var(--line-strong);border-radius:8px;padding:8px 14px;font-size:13px;cursor:pointer;color:var(--primary-dark);margin-bottom:10px;}
  .roster-add:disabled{opacity:0.5;cursor:not-allowed;}
  .roster-group{margin-bottom:14px;}
  .roster-group-label{font-size:12px;letter-spacing:0.4px;color:var(--ink-soft);margin-bottom:8px;}

  /* ---- FEEDBACK / STARS ---- */
  .star-row{display:flex;gap:4px;margin-bottom:12px;}
  .star{font-size:26px;cursor:pointer;color:var(--line-strong);}
  .star.filled{color:var(--accent);}
  .feedback-row{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:10px;box-shadow:var(--shadow);}
  .feedback-row .fb-stars{color:var(--accent);font-size:15px;letter-spacing:2px;}
  .feedback-row .fb-text{font-size:13.5px;color:var(--ink);margin-top:6px;line-height:1.5;}
  .feedback-row .fb-meta{font-size:11.5px;color:var(--ink-soft);margin-top:6px;}
  .feature-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-soft);margin-top:8px;cursor:pointer;}

  /* ---- TESTIMONIAL CAROUSEL ---- */
  .testimonial-wrap{max-width:420px;margin:0 auto 18px;min-height:86px;text-align:center;}
  .testimonial-stars{color:var(--accent);font-size:16px;letter-spacing:3px;margin-bottom:6px;}
  .testimonial-text{font-size:13.5px;color:var(--ink);font-style:italic;line-height:1.5;}
  .testimonial-name{font-size:12px;color:var(--ink-soft);margin-top:6px;}
  .testimonial-dots{display:flex;gap:6px;justify-content:center;margin-top:10px;}
  .upcoming-fade-item{transition:opacity 0.4s ease;}
  .upcoming-fade-item .testimonial-dots{margin-top:8px;}
  .testimonial-dot{width:6px;height:6px;border-radius:50%;background:var(--line-strong);}
  .testimonial-dot.active{background:var(--accent);}

  .price-line{font-size:14px;color:var(--ink-soft);margin:10px 0 0;}
  .price-line strong{color:var(--primary-dark);}

  .form-block{margin-top:22px;padding-top:20px;border-top:1px dashed var(--line-strong);}
  .btn{font-size:13.5px;letter-spacing:0.3px;background:var(--primary);color:#fff;border:none;padding:12px 22px;border-radius:8px;cursor:pointer;}
  .btn:hover{background:var(--primary-dark);}
  .btn.accent{background:var(--accent);}
  .btn.accent:hover{background:var(--accent-dark);}
  .btn.full{width:100%;}
  .btn.small{padding:8px 13px;font-size:12px;}
  .btn.danger-outline{background:transparent;color:var(--declined);border:1px solid var(--declined);}
  .btn:disabled{opacity:0.5;cursor:not-allowed;}
  .readonly-field{background:#EDECE2 !important;color:var(--ink-soft);}

  .confirm-note{margin-top:18px;padding:18px;border:1px solid var(--line);background:var(--surface-soft);border-radius:10px;font-size:14px;line-height:1.6;}

  .status-badge{display:inline-block;font-size:11px;letter-spacing:0.4px;text-transform:uppercase;padding:5px 11px;border-radius:20px;font-weight:600;}
  .status-badge.pending{background:#F1E3CC;color:var(--pending);}
  .status-badge.confirmed{background:#DCEEE3;color:var(--confirmed);}
  .status-badge.declined{background:#F3DCDA;color:var(--declined);}
  .status-badge.cancelled{background:#E7E5DA;color:var(--ink-soft);}
  .type-badge{display:inline-block;font-size:11px;letter-spacing:0.3px;padding:4px 10px;border-radius:20px;background:#E4EBE6;color:var(--primary-dark);margin-left:6px;}

  .practitioner-note{font-size:13px;color:var(--ink-soft);background:var(--surface-soft);border-left:3px solid var(--accent);padding:12px 16px;margin-bottom:24px;border-radius:0 10px 10px 0;line-height:1.5;}
  .booking-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:15px 17px;margin-bottom:10px;box-shadow:var(--shadow);}
  .booking-row .info{font-size:14px;}
  .booking-row .info .who{font-weight:700;color:var(--primary-dark);}
  .booking-row .info .meta{font-size:12.5px;color:var(--ink-soft);margin-top:4px;}
  .booking-row .actions{display:flex;gap:8px;align-items:center;}
  .empty-msg{color:var(--ink-soft);font-style:italic;font-size:14px;padding:8px 0 22px;}

  .block-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:22px;}
  .block-form .field{flex:1;min-width:160px;}
  .blocked-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px;}
  .blocked-chip{background:var(--surface-soft);border:1px solid var(--line-strong);border-radius:20px;padding:7px 8px 7px 14px;font-size:13px;display:flex;align-items:center;gap:8px;}
  .blocked-chip button{background:none;border:none;color:var(--declined);cursor:pointer;font-size:15px;line-height:1;padding:2px 4px;}

  #toast-layer{position:fixed;bottom:20px;right:20px;z-index:999;display:flex;flex-direction:column;gap:10px;}
  .toast{background:var(--primary);color:#F3F1E8;padding:15px 19px;border-radius:10px;max-width:340px;font-size:13px;box-shadow:0 6px 18px rgba(0,0,0,0.25);border-left:4px solid var(--accent);}
  .toast .t-title{font-weight:700;margin-bottom:5px;}
  .toast .t-body{color:#CFDAD4;line-height:1.5;}

  footer.foot{max-width:900px;margin:10px auto 0;padding:16px 24px;font-size:11.5px;color:var(--ink-soft);}

  /* ---- CHAT BUBBLE ---- */
  .chat-bubble-btn{
    position:fixed;bottom:22px;right:22px;width:56px;height:56px;border-radius:50%;
    background:var(--accent);border:none;color:#fff;font-size:24px;cursor:pointer;
    box-shadow:0 4px 14px rgba(0,0,0,0.25);z-index:900;display:flex;align-items:center;justify-content:center;
  }
  .chat-bubble-btn:hover{background:var(--accent-dark);}
  .chat-bubble-badge{
    position:absolute;top:-2px;right:-2px;background:var(--declined);color:#fff;font-size:10.5px;
    min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;
  }
  .chat-panel{
    position:fixed;bottom:88px;right:22px;width:320px;max-width:calc(100vw - 40px);max-height:70vh;
    background:var(--surface);border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,0.3);
    display:flex;flex-direction:column;z-index:901;overflow:hidden;
  }
  .chat-panel-header{
    background:var(--primary);color:#fff;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;
    font-family:Georgia,serif;font-size:15px;
  }
  .chat-panel-close{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;line-height:1;}
  .chat-sms-note{font-size:11px;color:var(--ink-soft);background:var(--surface-soft);padding:8px 14px;margin:0;border-bottom:1px solid var(--line);}
  #chatGuestForm, #chatClientThread{padding:14px 16px;overflow-y:auto;}
  .chat-message-list{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:10px;}
  .chat-msg{max-width:82%;padding:8px 12px;border-radius:12px;font-size:13px;line-height:1.4;}
  .chat-msg.from-client{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:3px;}
  .chat-msg.from-owner{align-self:flex-start;background:var(--surface-soft);color:var(--ink);border:1px solid var(--line);border-bottom-left-radius:3px;}
  .chat-msg-time{font-size:9.5px;opacity:0.7;margin-top:3px;}
  .chat-input-row{display:flex;gap:8px;align-items:flex-end;}
  .chat-input-row textarea{margin-bottom:0;resize:none;flex:1;}
  .chat-input-row .btn{margin-bottom:0;}

  /* ---- OWNER MESSAGES INBOX ---- */
  .msg-thread-row{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:10px;box-shadow:var(--shadow);cursor:pointer;}
  .msg-thread-row .mt-name{font-weight:700;color:var(--primary-dark);}
  .msg-thread-row .mt-preview{font-size:12.5px;color:var(--ink-soft);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .msg-thread-row .mt-unread{display:inline-block;background:var(--declined);color:#fff;font-size:10px;padding:2px 7px;border-radius:10px;margin-left:6px;}
  .msg-thread-open{margin-top:10px;}

