/* ── Área do Cliente ─────────────────────────────────────── */
.alc-wrap{max-width:680px;margin:0 auto;padding:20px 16px 56px;font-family:'Segoe UI',system-ui,sans-serif}
.alc-screen{animation:alcFadeIn .25s ease}
@keyframes alcFadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* Hero */
.alc-hero{text-align:center;padding:36px 20px 28px}
.alc-hero__icon{font-size:2.8rem;display:block;margin-bottom:12px;animation:alcBounce .5s ease}
@keyframes alcBounce{0%{transform:translateY(-10px);opacity:0}60%{transform:translateY(3px)}100%{transform:translateY(0);opacity:1}}
.alc-hero__title{font-size:1.65rem;font-weight:800;color:#1a3a2a;margin:0 0 8px;letter-spacing:-.02em}
.alc-hero__sub{color:#6b7280;font-size:.95rem;margin:0}

/* Card */
.alc-card{background:#fff;border-radius:16px;padding:28px 28px 24px;box-shadow:0 4px 24px rgba(26,58,42,.10);border:1px solid #e5e7eb}
.alc-field{margin-bottom:16px}
.alc-label{display:block;font-size:.78rem;font-weight:700;color:#2d6a4f;text-transform:uppercase;letter-spacing:.06em;margin-bottom:7px}
.alc-opt{font-weight:400;color:#9ca3af;text-transform:none;letter-spacing:0}
.alc-input-wrap{position:relative}
.alc-input{width:100%;padding:12px 16px;border:2px solid #e5e7eb;border-radius:10px;font-size:.97rem;color:#1a1a1a;outline:none;transition:border-color .2s,box-shadow .2s;box-sizing:border-box;background:#fff}
.alc-input:focus{border-color:#2d6a4f;box-shadow:0 0 0 3px rgba(45,106,79,.12)}
.alc-input-wrap .alc-input{padding-right:44px}
.alc-toggle-senha{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1rem;padding:4px;opacity:.5;transition:opacity .2s}
.alc-toggle-senha:hover{opacity:1}

/* Mensagens */
.alc-msg{padding:10px 14px;border-radius:8px;font-size:.88rem;font-weight:600;margin-top:4px}
.alc-msg.error{background:#fef2f2;color:#dc2626}
.alc-msg.info{background:#e8f4ee;color:#1a3a2a}
.alc-msg.success{background:#dcfce7;color:#166534}

/* Botão principal */
.alc-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:20px;padding:13px 24px;background:#1a3a2a;color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .2s,transform .15s;letter-spacing:.01em}
.alc-btn:hover{background:#2d6a4f}
.alc-btn:active{transform:scale(.98)}
.alc-btn:disabled{opacity:.6;cursor:not-allowed}
.alc-btn__arrow{font-size:1.1rem;transition:transform .2s}
.alc-btn:hover .alc-btn__arrow{transform:translateX(4px)}

/* Links internos */
.alc-links{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;flex-wrap:wrap}
.alc-links__sep{color:#d1d5db}
.alc-link{background:none;border:none;color:#2d6a4f;font-size:.88rem;font-weight:600;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px;transition:color .2s}
.alc-link:hover{color:#1a3a2a}

/* Dashboard header */
.alc-dash-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:12px;flex-wrap:wrap;background:#fff;border-radius:14px;padding:18px 22px;box-shadow:0 2px 12px rgba(26,58,42,.08);border:1px solid #e5e7eb}
.alc-dash-saudacao{display:flex;align-items:center;gap:14px}
.alc-dash-avatar{width:46px;height:46px;border-radius:50%;background:#1a3a2a;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:800;flex-shrink:0}
.alc-dash-nome{font-size:1rem;font-weight:700;color:#1a3a2a}
.alc-dash-email{font-size:.82rem;color:#6b7280;margin-top:2px}
.alc-btn-logout{background:#f3f4f6;color:#374151;border:none;border-radius:8px;padding:8px 16px;font-size:.85rem;font-weight:700;cursor:pointer;transition:background .2s;white-space:nowrap}
.alc-btn-logout:hover{background:#e5e7eb}

/* Seção */
.alc-secao-titulo{font-size:.72rem;font-weight:800;color:#2d6a4f;text-transform:uppercase;letter-spacing:.1em;margin:24px 0 10px 2px}

/* Card reserva */
.alc-reserva{background:#fff;border-radius:14px;border:1px solid #e5e7eb;box-shadow:0 2px 12px rgba(26,58,42,.07);margin-bottom:14px;overflow:hidden;animation:alcFadeIn .3s ease}
.alc-reserva__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid #f3f4f6;gap:10px;flex-wrap:wrap}
.alc-reserva__tipo-wrap{display:flex;align-items:center;gap:10px}
.alc-reserva__icon{font-size:1.5rem;width:42px;height:42px;background:#e8f4ee;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.alc-reserva__tipo{font-size:.97rem;font-weight:700;color:#1a3a2a;margin:0 0 2px}
.alc-reserva__id{font-size:.75rem;color:#9ca3af}
.alc-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 11px;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.alc-badge--pago,.alc-badge--confirmado{background:#dcfce7;color:#166534}
.alc-badge--pendente{background:#fef9c3;color:#854d0e}
.alc-badge--cancelado{background:#fee2e2;color:#991b1b}
.alc-reserva__body{padding:14px 20px 16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.alc-detalhe{display:flex;flex-direction:column;gap:2px}
.alc-detalhe__label{font-size:.7rem;font-weight:700;color:#2d6a4f;text-transform:uppercase;letter-spacing:.05em}
.alc-detalhe__val{font-size:.92rem;color:#1a1a1a;font-weight:500}
.alc-reserva__footer{padding:11px 20px;background:#f9fafb;border-top:1px solid #f3f4f6;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.alc-reserva__total{font-size:1rem;font-weight:800;color:#1a3a2a}
.alc-reserva__total span{font-size:.75rem;font-weight:600;color:#6b7280;margin-right:4px}
.alc-btn-wa{display:inline-flex;align-items:center;gap:6px;background:#25d366;color:#fff;border:none;border-radius:8px;padding:7px 14px;font-size:.82rem;font-weight:700;cursor:pointer;text-decoration:none;transition:background .2s}
.alc-btn-wa:hover{background:#1ebe5d;color:#fff}

/* Skeleton */
.alc-skeleton{background:#f3f4f6;border-radius:14px;height:130px;margin-bottom:14px;animation:alcPulse 1.4s ease-in-out infinite}
@keyframes alcPulse{0%,100%{opacity:1}50%{opacity:.4}}

/* Empty */
.alc-empty{text-align:center;padding:44px 20px;color:#6b7280}
.alc-empty__icon{font-size:2.4rem;margin-bottom:12px}

@media(max-width:480px){
  .alc-card{padding:20px 16px}
  .alc-reserva__body{grid-template-columns:1fr 1fr}
  .alc-hero__title{font-size:1.35rem}
  .alc-dash-header{padding:14px 16px}
}
