/* ============================================================
   COREHAUS STUDIO — corehaus.css  v1.0.0
   Palette: #2C4A3E (teal) · #8B7355 (warm brown) · #F5F0E8 (cream)
   ============================================================ */
:root {
  --ch-primary:  #2C4A3E;
  --ch-accent:   #8B7355;
  --ch-cream:    #F5F0E8;
  --ch-white:    #ffffff;
  --ch-danger:   #C0392B;
  --ch-success:  #27AE60;
  --ch-warning:  #E67E22;
  --ch-muted:    #6b7280;
  --ch-border:   #e5e7eb;
  --ch-radius:   12px;
  --ch-shadow:   0 2px 16px rgba(44,74,62,.10);
}

/* ── Base ── */
.chs-auth-wrap,.chs-book-wrap,.chs-health-wrap,.chs-pricing-wrap,.chs-dash-wrap{
  max-width:860px;margin:0 auto;padding:0 16px 60px;font-family:Georgia,serif;color:#1a1a1a;
}

/* ── Buttons ── */
.chs-btn{display:inline-block;padding:11px 22px;border-radius:8px;border:none;cursor:pointer;
  font-size:14px;font-weight:600;text-decoration:none;transition:opacity .2s,transform .1s;
  font-family:sans-serif;line-height:1.2;text-align:center;}
.chs-btn:hover{opacity:.88;transform:translateY(-1px);}
.chs-btn:active{transform:translateY(0);}
.chs-btn-primary   {background:var(--ch-primary);color:#fff;}
.chs-btn-secondary {background:var(--ch-cream);color:var(--ch-primary);border:1px solid var(--ch-primary);}
.chs-btn-accent    {background:var(--ch-accent);color:#fff;}
.chs-btn-danger    {background:var(--ch-danger);color:#fff;}
.chs-btn-ghost     {background:transparent;color:var(--ch-muted);border:1px solid var(--ch-border);}
.chs-btn-whatsapp  {background:#25D366;color:#fff;}
.chs-btn-outline   {background:transparent;color:var(--ch-primary);border:2px solid var(--ch-primary);}
.chs-btn-disabled  {background:#d1d5db;color:#9ca3af;cursor:not-allowed;}
.chs-btn-full      {display:block;width:100%;}
.chs-btn-lg        {padding:14px 32px;font-size:16px;}
.chs-btn-sm        {padding:7px 14px;font-size:13px;}
.chs-btn-xs        {padding:4px 10px;font-size:12px;}

/* ── Form fields ── */
.chs-field{margin-bottom:18px;}
.chs-field label{display:block;font-size:13px;font-weight:600;color:var(--ch-primary);margin-bottom:6px;font-family:sans-serif;}
.chs-field input[type=text],.chs-field input[type=email],.chs-field input[type=tel],
.chs-field input[type=password],.chs-field input[type=date],.chs-field input[type=number],
.chs-field input[type=time],.chs-field textarea,.chs-field select{
  width:100%;padding:11px 14px;border:1.5px solid var(--ch-border);border-radius:8px;
  font-size:14px;font-family:sans-serif;background:#fff;transition:border-color .2s;box-sizing:border-box;}
.chs-field input:focus,.chs-field textarea:focus,.chs-field select:focus{
  border-color:var(--ch-primary);outline:none;box-shadow:0 0 0 3px rgba(44,74,62,.1);}
.chs-form-row.chs-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.chs-form-section{background:#fff;border-radius:var(--ch-radius);padding:24px;margin-bottom:20px;box-shadow:var(--ch-shadow);}
.chs-form-section h3{color:var(--ch-primary);margin-top:0;font-size:17px;}
.chs-radio-row{display:flex;gap:20px;flex-wrap:wrap;}
.chs-radio-row label{font-family:sans-serif;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:6px;}
.chs-checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;}
.chs-check-item{font-family:sans-serif;font-size:14px;display:flex;align-items:flex-start;gap:8px;cursor:pointer;}
.chs-check-lg{font-weight:600;}

/* ── Messages ── */
.chs-msg{padding:12px 16px;border-radius:8px;font-family:sans-serif;font-size:14px;margin-bottom:16px;}
.chs-msg.chs-error,.chs-msg-error{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5;}
.chs-msg.chs-success,.chs-msg-success{background:#f0fdf4;color:#065f46;border:1px solid #6ee7b7;}
.chs-notice{background:var(--ch-cream);border-radius:var(--ch-radius);padding:20px;font-family:sans-serif;}
.chs-notice.chs-warning{background:#fff8f0;border:1px solid #fde68a;}

/* ══════════════════════════════════════════════
   AUTH PAGES
══════════════════════════════════════════════ */
.chs-auth-wrap{max-width:480px;padding-top:40px;}
.chs-auth-card{background:#fff;border-radius:16px;padding:36px;box-shadow:var(--ch-shadow);}
.chs-auth-logo{text-align:center;margin-bottom:28px;}
.chs-auth-logo img{height:70px;margin-bottom:12px;}
.chs-auth-logo h2{color:var(--ch-primary);margin:0 0 6px;font-size:22px;}
.chs-auth-logo p{color:var(--ch-muted);font-size:14px;font-family:sans-serif;margin:0;}
.chs-auth-switch{text-align:center;font-family:sans-serif;font-size:14px;color:var(--ch-muted);margin-top:16px;}
.chs-auth-switch a{color:var(--ch-primary);}

/* ══════════════════════════════════════════════
   HEALTH QUESTIONNAIRE
══════════════════════════════════════════════ */
.chs-health-wrap{max-width:700px;}
.chs-health-header{text-align:center;margin-bottom:28px;}
.chs-health-header h2{color:var(--ch-primary);font-size:24px;}
.chs-health-header p{color:var(--ch-muted);font-family:sans-serif;}
.chs-waiver{background:var(--ch-cream)!important;}
.chs-waiver-text{background:#fff;border-radius:8px;padding:16px;font-size:13px;font-family:sans-serif;margin-bottom:16px;color:#4b5563;line-height:1.7;}

/* ══════════════════════════════════════════════
   BOOKING PAGE
══════════════════════════════════════════════ */
.chs-credit-bar{background:var(--ch-primary);color:#fff;padding:14px 20px;border-radius:var(--ch-radius);margin-bottom:24px;}
.chs-credit-bar-inner{display:flex;align-items:center;gap:12px;font-family:sans-serif;font-size:14px;flex-wrap:wrap;}
.chs-credit-icon{font-size:20px;}
.chs-book-step{margin-bottom:32px;}
.chs-step-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;}
.chs-step-title{font-size:20px;color:var(--ch-primary);margin:0;display:flex;align-items:center;gap:10px;}
.chs-step-num{background:var(--ch-primary);color:#fff;border-radius:50%;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;}

/* Location cards */
.chs-location-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}
.chs-location-card{background:#fff;border:2px solid var(--ch-border);border-radius:var(--ch-radius);padding:24px;text-align:center;transition:border-color .2s,box-shadow .2s;cursor:pointer;}
.chs-location-card:hover{border-color:var(--ch-primary);box-shadow:var(--ch-shadow);}
.chs-loc-icon{font-size:28px;margin-bottom:10px;}
.chs-loc-name{font-size:16px;font-weight:700;color:var(--ch-primary);margin-bottom:6px;}
.chs-loc-address{font-size:13px;color:var(--ch-muted);font-family:sans-serif;margin-bottom:16px;}

/* Date grid */
.chs-date-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;}
.chs-date-btn{background:#fff;border:2px solid var(--ch-border);border-radius:10px;padding:12px 8px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;font-family:sans-serif;}
.chs-date-btn:hover{border-color:var(--ch-primary);}
.chs-date-btn.selected{background:var(--ch-primary);color:#fff;border-color:var(--ch-primary);}
.chs-date-btn .chs-db-day{font-size:11px;text-transform:uppercase;opacity:.7;}
.chs-date-btn .chs-db-num{font-size:22px;font-weight:700;line-height:1.1;}
.chs-date-btn .chs-db-mon{font-size:11px;opacity:.8;}

/* Slot cards */
.chs-slots-list{display:flex;flex-direction:column;gap:12px;}
.chs-slot-card{background:#fff;border:2px solid var(--ch-border);border-radius:var(--ch-radius);padding:18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;transition:border-color .2s,box-shadow .2s;}
.chs-slot-card:hover{border-color:var(--ch-primary);box-shadow:var(--ch-shadow);}
.chs-slot-time{background:var(--ch-primary);color:#fff;border-radius:8px;padding:10px 14px;text-align:center;flex-shrink:0;}
.chs-slot-time-hr{font-size:18px;font-weight:700;}
.chs-slot-time-end{font-size:11px;opacity:.8;}
.chs-slot-info{flex:1;}
.chs-slot-name{font-size:15px;font-weight:700;margin-bottom:4px;}
.chs-slot-meta{font-size:13px;color:var(--ch-muted);font-family:sans-serif;}
.chs-slot-spots{font-size:12px;margin-top:4px;font-family:sans-serif;}
.chs-spots-ok{color:var(--ch-success);}
.chs-spots-few{color:var(--ch-warning);}
.chs-slot-card.chs-slot-full{opacity:.5;pointer-events:none;}
.chs-slot-card.chs-slot-booked{border-color:var(--ch-success);}

/* Confirm card */
.chs-confirm-card{background:#fff;border-radius:var(--ch-radius);padding:24px;border:2px solid var(--ch-border);margin-bottom:20px;}
.chs-confirm-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--ch-border);font-family:sans-serif;font-size:14px;}
.chs-confirm-row:last-child{border-bottom:none;}
.chs-confirm-row span:first-child{color:var(--ch-muted);}

/* Success */
.chs-success-card{text-align:center;background:#fff;border-radius:var(--ch-radius);padding:40px;box-shadow:var(--ch-shadow);}
.chs-success-icon{font-size:56px;margin-bottom:16px;}
.chs-success-card h2{color:var(--ch-primary);}
.chs-success-card .chs-btn{margin:8px 4px;}

/* ══════════════════════════════════════════════
   PRICING PAGE
══════════════════════════════════════════════ */
.chs-pricing-header{text-align:center;margin-bottom:32px;}
.chs-pricing-header h2{color:var(--ch-primary);font-size:28px;}
.chs-pkg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px;margin-bottom:40px;}
.chs-pkg-card{background:#fff;border:2px solid var(--ch-border);border-radius:var(--ch-radius);padding:28px 20px;text-align:center;position:relative;transition:box-shadow .2s,border-color .2s;}
.chs-pkg-card:hover{border-color:var(--ch-primary);box-shadow:var(--ch-shadow);}
.chs-pkg-popular{border-color:var(--ch-accent);}
.chs-pkg-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--ch-accent);color:#fff;padding:4px 14px;border-radius:20px;font-size:12px;font-family:sans-serif;font-weight:700;white-space:nowrap;}
.chs-pkg-label{font-size:14px;font-weight:700;color:var(--ch-primary);margin-bottom:8px;font-family:sans-serif;}
.chs-pkg-price{font-size:28px;font-weight:900;color:var(--ch-primary);margin-bottom:4px;}
.chs-pkg-meta{font-size:12px;color:var(--ch-muted);font-family:sans-serif;margin-bottom:18px;}
.chs-private-section,.chs-special-section{background:var(--ch-cream);border-radius:var(--ch-radius);padding:32px;margin-bottom:24px;text-align:center;}
.chs-private-section h2,.chs-special-section h2{color:var(--ch-primary);}
.chs-pkg-private{background:var(--ch-cream);}

/* Payment modal */
.chs-pay-methods{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;}
.chs-pay-method-btn{display:flex;align-items:center;gap:14px;padding:16px;border:2px solid var(--ch-border);border-radius:10px;background:#fff;cursor:pointer;width:100%;text-align:left;transition:border-color .2s;}
.chs-pay-method-btn:hover{border-color:var(--ch-primary);}
.chs-pay-icon{font-size:24px;flex-shrink:0;}
.chs-pay-method-btn strong{display:block;font-family:sans-serif;font-size:14px;}
.chs-pay-method-btn small{color:var(--ch-muted);font-family:sans-serif;font-size:12px;}
.chs-bank-details{background:var(--ch-cream);border-radius:8px;padding:16px;margin-bottom:14px;}
.chs-bank-details h4{margin:0 0 12px;color:var(--ch-primary);}
.chs-bank-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-family:sans-serif;font-size:14px;}
.chs-bank-note{font-size:12px;color:var(--ch-muted);font-family:sans-serif;margin-top:10px;}
.chs-pay-summary{background:var(--ch-cream);border-radius:8px;padding:14px;margin-bottom:16px;font-family:sans-serif;font-size:14px;}
.chs-stripe-element{border:1.5px solid var(--ch-border);border-radius:8px;padding:14px;}

/* ══════════════════════════════════════════════
   CLIENT DASHBOARD
══════════════════════════════════════════════ */
.chs-dash-wrap{max-width:900px;}
.chs-dash-header{background:var(--ch-primary);border-radius:var(--ch-radius);padding:24px 28px;margin-bottom:24px;color:#fff;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;}
.chs-dash-greeting{display:flex;align-items:center;gap:14px;}
.chs-wave{font-size:28px;}
.chs-greeting-name{font-size:20px;font-weight:700;}
.chs-greeting-sub{font-size:13px;opacity:.7;font-family:sans-serif;margin-top:2px;}
.chs-dash-header-actions{display:flex;gap:10px;flex-wrap:wrap;}

.chs-dash-credits-hero{background:linear-gradient(135deg,var(--ch-primary) 0%,#3d6b5a 100%);border-radius:var(--ch-radius);padding:32px;text-align:center;margin-bottom:24px;color:#fff;}
.chs-credit-big-num{font-size:80px;font-weight:900;line-height:1;color:var(--ch-cream);}
.chs-credit-big-label{font-size:14px;text-transform:uppercase;letter-spacing:.12em;opacity:.8;font-family:sans-serif;margin-top:4px;}

.chs-dash-section{background:#fff;border-radius:var(--ch-radius);box-shadow:var(--ch-shadow);padding:24px;margin-bottom:20px;}
.chs-dash-section-title{font-size:18px;font-weight:700;color:var(--ch-primary);margin:0 0 18px;padding-bottom:12px;border-bottom:2px solid var(--ch-cream);}

/* Package mini cards */
.chs-pkg-cards-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;}
.chs-pkg-mini{background:var(--ch-primary);color:#fff;border-radius:10px;padding:14px 16px;}
.chs-pkg-mini.inactive{opacity:.5;}
.chs-pkg-mini-top{display:flex;justify-content:space-between;margin-bottom:8px;}
.chs-pkg-status-badge{font-size:10px;background:rgba(255,255,255,.2);padding:2px 8px;border-radius:20px;font-family:sans-serif;}
.chs-pkg-mini-nums{font-size:28px;font-weight:800;margin-bottom:8px;}
.chs-pkg-mini-nums small{font-size:14px;opacity:.6;}
.chs-pkg-mini-bar{height:4px;background:rgba(255,255,255,.2);border-radius:4px;margin-bottom:8px;overflow:hidden;}
.chs-pkg-mini-fill{height:100%;background:var(--ch-cream);border-radius:4px;transition:width .6s;}
.chs-pkg-mini-exp{font-size:11px;opacity:.6;font-family:sans-serif;}

/* Booking cards */
.chs-booking-cards{display:flex;flex-direction:column;gap:14px;}
.chs-booking-card{display:flex;align-items:flex-start;gap:16px;padding:18px;border:1.5px solid var(--ch-border);border-radius:10px;transition:box-shadow .2s;flex-wrap:wrap;}
.chs-booking-card:hover{box-shadow:var(--ch-shadow);}
.chs-bcard-date{background:var(--ch-primary);color:#fff;border-radius:10px;width:52px;text-align:center;padding:8px 6px;flex-shrink:0;}
.chs-bcard-day{font-size:22px;font-weight:800;line-height:1;}
.chs-bcard-mon{font-size:11px;text-transform:uppercase;opacity:.8;font-family:sans-serif;}
.chs-bcard-info{flex:1;min-width:200px;}
.chs-bcard-name{font-size:16px;font-weight:700;margin-bottom:6px;}
.chs-bcard-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;color:var(--ch-muted);font-family:sans-serif;margin-bottom:6px;}
.chs-bcard-policy{font-size:12px;font-family:sans-serif;border-radius:6px;padding:4px 10px;display:inline-block;margin-bottom:6px;}
.chs-bcard-policy.chs-ok{background:#f0fdf4;color:#065f46;border:1px solid #bbf7d0;}
.chs-bcard-policy.chs-locked{background:#fff8f0;color:#92400e;border:1px solid #fde68a;}
.chs-bcard-cal-links{display:flex;gap:6px;flex-wrap:wrap;}
.chs-bcard-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end;flex-shrink:0;}

/* History table */
.chs-history-table-wrap{overflow-x:auto;}
.chs-history-table{width:100%;border-collapse:collapse;font-family:sans-serif;font-size:14px;}
.chs-history-table th{background:var(--ch-cream);color:var(--ch-primary);text-align:left;padding:10px 14px;font-size:12px;text-transform:uppercase;letter-spacing:.07em;}
.chs-history-table td{padding:12px 14px;border-bottom:1px solid var(--ch-border);vertical-align:middle;}
.chs-history-table td small{color:var(--ch-muted);font-size:11px;}
.chs-history-table tr:last-child td{border-bottom:none;}
.chs-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;}
.chs-badge-green{background:#d1fae5;color:#065f46;}
.chs-badge-yellow{background:#fef9c3;color:#78350f;}
.chs-badge-red{background:#fee2e2;color:#991b1b;}

/* Empty state */
.chs-empty-state{text-align:center;padding:32px 16px;color:var(--ch-muted);font-family:sans-serif;}
.chs-empty-icon{font-size:40px;margin-bottom:10px;}

/* ══════════════════════════════════════════════
   MODAL
══════════════════════════════════════════════ */
.chs-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px;}
.chs-modal{background:#fff;border-radius:14px;width:100%;max-width:560px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25);}
.chs-modal-header{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--ch-border);}
.chs-modal-header h3{margin:0;font-size:18px;color:var(--ch-primary);}
.chs-modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--ch-muted);line-height:1;}
.chs-modal-body{padding:20px 22px;overflow-y:auto;flex:1;}
.chs-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 22px;border-top:1px solid var(--ch-border);}
/* Reschedule slot list */
.chs-rslot-list{list-style:none;padding:0;margin:0;}
.chs-rslot-item{display:flex;align-items:center;gap:12px;padding:14px;border:2px solid var(--ch-border);border-radius:10px;margin-bottom:10px;cursor:pointer;transition:border-color .2s,background .2s;font-family:sans-serif;}
.chs-rslot-item:hover,.chs-rslot-item.selected{border-color:var(--ch-primary);background:#e8f5f0;}
.chs-rslot-item input[type=radio]{accent-color:var(--ch-primary);}
.chs-rslot-date{font-weight:700;color:var(--ch-primary);font-size:14px;}
.chs-rslot-meta{font-size:12px;color:var(--ch-muted);margin-top:2px;}
.chs-rslot-spots{font-size:11px;margin-top:3px;}

/* ── TOAST ── */
.chs-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--ch-primary);color:#fff;padding:14px 24px;border-radius:10px;font-family:sans-serif;font-size:14px;font-weight:600;z-index:99999;box-shadow:0 8px 24px rgba(0,0,0,.25);min-width:260px;text-align:center;animation:chs-fade-in .25s ease;}
.chs-toast.error{background:var(--ch-danger);}
.chs-toast.success{background:var(--ch-success);}
@keyframes chs-fade-in{from{opacity:0;transform:translateX(-50%) translateY(10px);}to{opacity:1;transform:translateX(-50%) translateY(0);}}

/* ── Responsive ── */
@media(max-width:620px){
  .chs-form-row.chs-two-col{grid-template-columns:1fr;}
  .chs-pkg-grid{grid-template-columns:1fr 1fr;}
  .chs-booking-card{flex-direction:column;}
  .chs-bcard-actions{flex-direction:row;width:100%;}
  .chs-dash-header{flex-direction:column;align-items:flex-start;}
  .chs-credit-big-num{font-size:60px;}
  .chs-date-grid{grid-template-columns:repeat(4,1fr);}
}
