/* ── Meeting Scheduler Styles ─────────────────────────────────────────── */

.meeting-wrap {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    min-height: 80vh;
}
@media (min-width: 1024px) {
    .meeting-wrap { grid-template-columns: 380px 1fr; }
}

/* ── Sidebar ────────────────────────────────────────────────────────────── */
.meeting-sidebar {
    background: var(--color-forest, #112724);
    padding: 3rem 2.5rem;
    display: flex;
    flex-direction: column;
    gap: 2rem;
}
.sidebar-logo { width: 40px; height: auto; }
.sidebar-title { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 900; color: #f2f0e8; line-height: 1.1; }
.sidebar-sub   { color: rgba(242,240,232,.45); font-size: .875rem; line-height: 1.7; }
.sidebar-facts { display: flex; flex-direction: column; gap: .75rem; margin-top: auto; }
.sidebar-fact  { display: flex; align-items: flex-start; gap: .75rem; }
.sidebar-fact svg { width:16px; height:16px; color: #73be91; flex-shrink:0; margin-top:3px; }
.sidebar-fact p  { font-size: .8rem; color: rgba(242,240,232,.5); line-height: 1.5; }
.sidebar-fact strong { color: #f2f0e8; }

/* ── Main panel ─────────────────────────────────────────────────────────── */
.meeting-main {
    background: #f2f0e8;
    padding: 3rem 2.5rem;
    position: relative;
    overflow: hidden;
}
@media (max-width: 640px) { .meeting-main { padding: 2rem 1.25rem; } }

/* ── Step system ────────────────────────────────────────────────────────── */
.meeting-step { display: none; animation: stepIn .35s ease; }
.meeting-step.active { display: block; }
@keyframes stepIn { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }

.step-header  { margin-bottom: 2rem; }
.step-badge   { display:inline-block; font-size:.65rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#73be91; background:rgba(17,39,36,.07); border-radius:99px; padding:.25rem .8rem; margin-bottom:.75rem; }
.step-title   { font-family:'Playfair Display',serif; font-size:1.75rem; font-weight:900; color:#112724; line-height:1.1; margin-bottom:.5rem; }
.step-sub     { font-size:.85rem; color:rgba(17,39,36,.5); }

.back-btn { display:inline-flex; align-items:center; gap:.4rem; background:none; border:none; cursor:pointer; font-size:.8rem; font-weight:600; color:rgba(17,39,36,.45); padding:0; margin-bottom:.75rem; transition:color .2s; }
.back-btn:hover { color:#112724; }
.back-btn svg { width:14px; height:14px; }

/* ── Calendar ───────────────────────────────────────────────────────────── */
.cal-nav { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.25rem; }
.cal-nav-btn { width:36px; height:36px; border-radius:50%; border:1px solid rgba(17,39,36,.12); background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s, border-color .2s; }
.cal-nav-btn svg { width:14px; height:14px; color:#112724; }
.cal-nav-btn:hover { background:#112724; border-color:#112724; }
.cal-nav-btn:hover svg { color:#f2f0e8; }
.cal-month-label { font-weight:700; font-size:1rem; color:#112724; }

.cal-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:.5rem; }
.cal-weekday  { text-align:center; font-size:.65rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(17,39,36,.35); padding:.25rem 0; }

.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-day  { aspect-ratio:1; display:flex; align-items:center; justify-content:center; border-radius:10px; font-size:.82rem; font-weight:600; cursor:pointer; position:relative; transition:background .2s, color .2s, transform .15s; }
.cal-day.empty       { cursor:default; }
.cal-day.past        { color:rgba(17,39,36,.2); cursor:not-allowed; }
.cal-day.unavailable { color:rgba(17,39,36,.3); cursor:not-allowed; }
.cal-day.loading     { color:rgba(17,39,36,.3); cursor:wait; }
.cal-day.available   { background:#fff; border:1px solid rgba(17,39,36,.08); color:#112724; }
.cal-day.available:hover { background:#112724; color:#f2f0e8; transform:scale(1.08); }
.cal-day.available.has-slots::after { content:''; position:absolute; bottom:4px; width:4px; height:4px; border-radius:50%; background:#73be91; }
.cal-day.selected    { background:#112724 !important; color:#f2f0e8 !important; }
.cal-day.today       { font-weight:900; }

.cal-legend { display:flex; gap:1.25rem; margin-top:1rem; }
.legend-item { display:flex; align-items:center; gap:.4rem; font-size:.7rem; color:rgba(17,39,36,.45); }
.legend-dot  { width:8px; height:8px; border-radius:50%; }
.legend-dot.available   { background:#112724; }
.legend-dot.unavailable { background:rgba(17,39,36,.2); }
.legend-dot.selected    { background:#73be91; }

/* ── Slots ──────────────────────────────────────────────────────────────── */
.slots-section { margin-bottom:1.5rem; }
.slots-period  { font-size:.7rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:rgba(17,39,36,.4); margin-bottom:.75rem; }
.slots-grid    { display:grid; grid-template-columns:repeat(auto-fill, minmax(90px,1fr)); gap:.5rem; }

.slot-btn {
    background:#fff; border:1px solid rgba(17,39,36,.1); border-radius:10px;
    padding:.6rem .5rem; text-align:center; font-size:.82rem; font-weight:600; color:#112724;
    cursor:pointer; transition:background .2s, border-color .2s, transform .15s;
}
.slot-btn:hover  { background:#112724; color:#f2f0e8; border-color:#112724; transform:translateY(-2px); }
.slot-btn.active { background:#112724; color:#73be91; border-color:#112724; }

.slots-loading { display:flex; flex-direction:column; align-items:center; gap:1rem; padding:3rem 0; color:rgba(17,39,36,.4); font-size:.85rem; }
.slots-spinner { width:32px; height:32px; border:3px solid rgba(17,39,36,.1); border-top-color:#112724; border-radius:50%; animation:spin .7s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }

.slots-error, .slots-empty { text-align:center; padding:3rem 0; color:rgba(17,39,36,.5); font-size:.875rem; }
.slots-error button, .slots-retry { color:#73be91; background:none; border:none; cursor:pointer; text-decoration:underline; font-size:inherit; }

/* ── Form ───────────────────────────────────────────────────────────────── */
.form-row   { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem; }
@media (max-width:640px) { .form-row { grid-template-columns:1fr; } }
.form-field { display:flex; flex-direction:column; gap:.4rem; margin-bottom:1rem; }
.form-field label { font-size:.75rem; font-weight:700; color:rgba(17,39,36,.5); letter-spacing:.04em; }
.req { color:#73be91; }

.form-field input,
.form-field textarea,
.form-field select {
    background:#fff; border:1.5px solid rgba(17,39,36,.1); border-radius:12px;
    padding:.75rem 1rem; font-size:.875rem; color:#112724; font-family:inherit;
    transition:border-color .2s, box-shadow .2s; width:100%;
}
.form-field input:focus,
.form-field textarea:focus,
.form-field select:focus {
    outline:none; border-color:rgba(17,39,36,.4); box-shadow:0 0 0 3px rgba(17,39,36,.06);
}
.form-field textarea { resize:vertical; min-height:90px; }

.form-error-banner { background:#fef2f2; border:1px solid #fecaca; border-radius:12px; padding:.875rem 1rem; font-size:.82rem; color:#dc2626; margin-bottom:1rem; }
.form-micro { font-size:.68rem; color:rgba(17,39,36,.3); text-align:center; margin-top:.75rem; }

/* ── Buttons ────────────────────────────────────────────────────────────── */
.btn-primary {
    display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
    background:#112724; color:#f2f0e8; border:none; border-radius:99px;
    padding:.9rem 2rem; font-size:.875rem; font-weight:700; cursor:pointer;
    transition:background .25s, transform .15s; text-decoration:none;
}
.btn-primary:hover    { background:#73be91; color:#112724; }
.btn-primary:disabled { opacity:.5; cursor:not-allowed; }
.btn-primary.btn-full { width:100%; }
.btn-arrow { width:14px; height:14px; flex-shrink:0; }

.btn-secondary {
    display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
    background:transparent; color:#112724; border:1.5px solid rgba(17,39,36,.2);
    border-radius:99px; padding:.8rem 1.75rem; font-size:.875rem; font-weight:600;
    cursor:pointer; transition:border-color .2s; text-decoration:none;
}
.btn-secondary:hover { border-color:rgba(17,39,36,.5); }

/* ── Confirmation ───────────────────────────────────────────────────────── */
.confirmation-inner { max-width:440px; margin:0 auto; text-align:center; padding:1rem 0; }

.confirm-check { margin:0 auto 1.5rem; width:72px; height:72px; }
.check-svg     { width:72px; height:72px; }
.check-circle  { stroke:#73be91; stroke-dasharray:157; stroke-dashoffset:157; animation:drawCircle .6s .2s forwards ease; }
.check-tick    { stroke:#112724; stroke-width:3; stroke-dasharray:50; stroke-dashoffset:50; animation:drawTick .4s .8s forwards ease; }
@keyframes drawCircle { to { stroke-dashoffset:0; } }
@keyframes drawTick   { to { stroke-dashoffset:0; } }

.confirm-title { font-family:'Playfair Display',serif; font-size:2rem; font-weight:900; color:#112724; margin-bottom:.5rem; }
.confirm-sub   { color:rgba(17,39,36,.55); font-size:.9rem; margin-bottom:1.5rem; line-height:1.6; }

.confirm-card  { background:#fff; border:1px solid rgba(17,39,36,.08); border-radius:16px; padding:1.25rem; margin-bottom:1.5rem; text-align:left; }
.confirm-row   { display:flex; align-items:flex-start; gap:.875rem; padding:.75rem 0; border-bottom:1px solid rgba(17,39,36,.06); }
.confirm-row:last-child { border-bottom:none; padding-bottom:0; }
.confirm-row svg     { width:18px; height:18px; color:#73be91; flex-shrink:0; margin-top:2px; }
.confirm-label       { font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgba(17,39,36,.35); margin-bottom:.2rem; }
.confirm-value       { font-size:.9rem; font-weight:600; color:#112724; }
.confirm-link        { font-size:.9rem; font-weight:600; color:#73be91; text-decoration:none; }
.confirm-link:hover  { text-decoration:underline; }

.confirm-actions { display:flex; flex-direction:column; gap:.75rem; margin-bottom:2rem; }

.confirm-expect       { text-align:left; background:rgba(17,39,36,.04); border-radius:14px; padding:1.25rem; }
.confirm-expect-title { font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:rgba(17,39,36,.4); margin-bottom:.75rem; }
.confirm-expect-list  { list-style:none; display:flex; flex-direction:column; gap:.5rem; }
.confirm-expect-list li { font-size:.82rem; color:rgba(17,39,36,.6); padding-left:1.25rem; position:relative; }
.confirm-expect-list li::before { content:'✓'; position:absolute; left:0; color:#73be91; font-weight:700; }

/* ── Progress bar (top of main) ─────────────────────────────────────────── */
.progress-bar  { display:flex; gap:4px; margin-bottom:2rem; }
.progress-step { height:3px; border-radius:99px; background:rgba(17,39,36,.1); flex:1; transition:background .4s; }
.progress-step.done   { background:#73be91; }
.progress-step.active { background:#112724; }
