.logo{
    margin:26px 0 18px;
}

.brand{
    display:inline-block;
    margin-bottom:10px;
    color:var(--primary);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
}

.public-logo-img{
    width:72px;
    height:72px;
    object-fit:cover;
    border-radius:8px;
    border:1px solid var(--border);
    margin-bottom:12px;
}

.logo h1{
    margin:0;
    color:var(--text);
    font-size:30px;
    line-height:1.15;
}

.logo p{
    margin:8px 0 0;
    color:var(--muted);
    line-height:1.5;
}

.public-info{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));
    gap:10px;
    margin-top:16px;
}

.public-info-card{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:62px;
    padding:12px;
    border:1px solid var(--border);
    border-radius:8px;
    background:rgba(255,255,255,0.045);
    color:var(--text);
    text-decoration:none;
}

.public-info-card strong,
.public-info-card small{
    display:block;
}

.public-info-card strong{
    font-size:12px;
    color:var(--primary);
    text-transform:uppercase;
}

.public-info-card small{
    margin-top:4px;
    color:var(--muted);
    font-size:13px;
    line-height:1.35;
}

.info-icon{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    border-radius:8px;
    background:rgba(245,197,66,0.12);
    color:var(--primary);
    font-weight:900;
    flex-shrink:0;
}

.instagram-card{
    border-color:rgba(37,211,102,0.24);
    background:rgba(37,211,102,0.08);
}

.instagram-card .info-icon{
    background:#25d366;
    color:#07120b;
}

.instagram-card:hover{
    border-color:#25d366;
    transform:translateY(-1px);
}

body.light-public{
    background:#f4f2ee;
    color:#161616;
}

body.light-public .card,
body.light-public .public-info-card,
body.light-public .resumo-box,
body.light-public .empty-state{
    background:rgba(255,255,255,0.92);
    color:#161616;
    border-color:rgba(0,0,0,0.12);
}

body.light-public .logo h1,
body.light-public .section-head h2,
body.light-public .success-card h2{
    color:#161616;
}

body.light-public .logo p,
body.light-public .public-info-card small{
    color:#555;
}

.steps{
    position:relative;
}

.step{
    display:none;
    animation:slide 0.24s ease;
}

.step.active{
    display:block;
}

@keyframes slide{
    from{
        opacity:0;
        transform:translateY(10px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

.step-indicator{
    display:flex;
    justify-content:center;
    gap:8px;
    margin:0 0 18px;
}

.dot{
    width:28px;
    height:4px;
    border-radius:8px;
    background:#444;
}

.dot.active{
    background:var(--primary);
}

.section-head{
    margin-bottom:16px;
}

.section-head span{
    display:block;
    margin-bottom:6px;
    color:var(--primary);
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
}

.section-head h2{
    margin:0;
    color:var(--text);
    font-size:22px;
}

.section-title{
    margin:22px 0 12px;
    font-size:16px;
}

.success-card{
    text-align:center;
}

.success-mark{
    display:grid;
    place-items:center;
    width:44px;
    height:44px;
    margin:0 auto 14px;
    border-radius:50%;
    background:rgba(66,199,122,0.14);
    border:1px solid rgba(66,199,122,0.38);
    color:var(--success);
    font-size:24px;
    font-weight:800;
}

.success-card h2{
    margin:0 0 10px;
    color:var(--text);
}

.success-card p{
    margin:0 0 18px;
    color:var(--muted);
    line-height:1.6;
    white-space:pre-line;
}

.success-card .btn + .btn{
    margin-top:10px;
}

.success-details{
    display:grid;
    gap:8px;
    margin:16px 0;
    text-align:left;
}

.success-details div,
.success-details a{
    display:block;
    padding:11px 12px;
    border:1px solid var(--border);
    border-radius:8px;
    background:rgba(255,255,255,0.045);
    color:var(--text);
    text-decoration:none;
}

.success-details strong,
.success-details span{
    display:block;
}

.success-details strong{
    color:var(--primary);
    font-size:12px;
    text-transform:uppercase;
}

.success-details span{
    margin-top:4px;
    color:var(--muted);
    font-size:13px;
}

body.light-public .success-details div,
body.light-public .success-details a{
    background:rgba(255,255,255,0.92);
    color:#161616;
    border-color:rgba(0,0,0,0.12);
}

body.light-public .success-details span{
    color:#555;
}

.whatsapp-confirm{
    background:#22c55e;
    color:#06130a;
}

.whatsapp-confirm:hover{
    background:#36d979;
}

#clientCalendar{
    margin-top:14px;
}

.client-calendar-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:12px;
}

.client-calendar-header h3{
    margin:0;
    font-size:16px;
    color:var(--text);
}

.calendar-nav{
    width:40px;
    height:40px;
    border:none;
    border-radius:8px;
    background:var(--surface-2);
    color:var(--primary);
    font-size:18px;
    cursor:pointer;
}

.client-weekdays,
.client-calendar-grid{
    display:grid;
    grid-template-columns:repeat(7, minmax(0, 1fr));
    gap:6px;
}

.client-weekdays{
    margin-bottom:8px;
}

.client-weekdays span{
    text-align:center;
    font-size:11px;
    color:var(--muted);
}

.client-day{
    aspect-ratio:1 / 1;
    min-width:0;
    border-radius:8px;
    border:1px solid var(--border);
    background:var(--surface-2);
    color:var(--text);
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:13px;
    transition:background 0.18s ease, border-color 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.client-day:hover{
    border-color:var(--primary);
    transform:translateY(-1px);
}

.client-day.empty{
    background:transparent;
    border:none;
    cursor:default;
}

.client-day.empty:hover{
    transform:none;
}

.client-day.selected{
    background:var(--primary);
    border-color:var(--primary);
    color:#0b0b0b;
    font-weight:800;
}

.client-day.today{
    border-color:var(--primary);
}

.client-day.disabled{
    opacity:0.32;
    cursor:not-allowed;
}

.client-day.disabled:hover{
    border-color:var(--border);
    transform:none;
}

#listaHorarios{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:10px;
    margin:0;
}

#listaHorarios .empty-state{
    grid-column:1 / -1;
}

.horario{
    justify-content:center;
}

.form-group{
    margin-top:14px;
}

.form-group label{
    display:block;
    margin-bottom:6px;
    font-size:13px;
    color:var(--muted);
}

.resumo-box{
    padding:14px;
    border-radius:8px;
    background:var(--surface-2);
    border:1px solid var(--border);
    color:var(--muted);
    line-height:1.6;
}

.resumo-box strong{
    color:var(--text);
}

.form-feedback{
    min-height:20px;
    margin:12px 0 0;
    color:var(--danger);
    font-size:13px;
}

@media(max-width:560px){
    .logo{
        margin-top:18px;
    }

    .logo h1{
        font-size:26px;
    }

    #listaHorarios{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .client-weekdays,
    .client-calendar-grid{
        gap:5px;
    }

    .client-day{
        border-radius:7px;
        font-size:12px;
    }
}
