/* SpaMaster 360 v21 - Agenda Master */

.agenda-pro-wrap{
    padding:0 0 40px;
}

.agenda-shell{
    display:grid;
    grid-template-columns:260px 1fr;
    gap:16px;
    min-height:760px;
}

.agenda-sidebar{
    background:#fff;
    border:1px solid #dbe3ef;
    border-radius:22px;
    padding:14px;
    height:max-content;
    position:sticky;
    top:10px;
}

.agenda-side-field{
    display:grid;
    gap:6px;
    margin-bottom:13px;
}

.agenda-side-field label{
    font-size:12px;
    font-weight:950;
    color:#64748b;
    text-transform:uppercase;
    letter-spacing:.04em;
}

.agenda-input,
.agenda-select{
    width:100%;
    border:1px solid #cbd5e1;
    border-radius:12px;
    padding:12px;
    font-weight:800;
    color:#172033;
    background:#fff;
}

.agenda-mini-calendar{
    margin-top:18px;
    border-top:1px solid #e2e8f0;
    padding-top:15px;
}

.agenda-mini-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-weight:950;
    margin-bottom:10px;
}

.agenda-mini-grid{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:5px;
    font-size:12px;
    text-align:center;
}

.agenda-mini-day{
    padding:6px 0;
    border-radius:999px;
    color:#64748b;
}

.agenda-mini-day.is-today{
    background:#6C4CF1;
    color:#fff;
    font-weight:950;
}

.agenda-main{
    background:#fff;
    border:1px solid #dbe3ef;
    border-radius:24px;
    overflow:hidden;
}

.agenda-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:14px 16px;
    border-bottom:1px solid #e2e8f0;
}

.agenda-toolbar-left,
.agenda-toolbar-right{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
}

.agenda-btn{
    border:0;
    border-radius:12px;
    padding:11px 14px;
    font-weight:950;
    cursor:pointer;
    background:#f3edff;
    color:#6C4CF1;
}

.agenda-btn-primary{
    background:#6C4CF1;
    color:#fff;
    box-shadow:0 10px 24px rgba(108,76,241,.20);
}

.agenda-btn-dark{
    background:#172033;
    color:#fff;
}

.agenda-current-range{
    font-weight:950;
    color:#172033;
}

.agenda-view-tabs{
    display:inline-flex;
    border:1px solid #dbe3ef;
    border-radius:12px;
    overflow:hidden;
}

.agenda-view-tabs button{
    border:0;
    background:#fff;
    padding:10px 14px;
    font-weight:900;
    cursor:pointer;
}

.agenda-view-tabs button.active{
    background:#172033;
    color:#fff;
}

.agenda-grid-wrap{
    overflow:auto;
}

.agenda-grid{
    min-width:980px;
    display:grid;
    grid-template-columns:64px repeat(7, 1fr);
    position:relative;
}

.agenda-grid.day-view{
    grid-template-columns:64px 1fr;
    min-width:620px;
}

.agenda-head-cell{
    min-height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:950;
    border-bottom:1px solid #e2e8f0;
    background:#f8fafc;
    color:#172033;
    position:sticky;
    top:0;
    z-index:3;
}

.agenda-time-cell{
    min-height:56px;
    border-right:1px solid #e2e8f0;
    border-bottom:1px solid #e2e8f0;
    display:flex;
    justify-content:center;
    align-items:flex-start;
    padding-top:7px;
    font-size:12px;
    color:#64748b;
    background:#fff;
}

.agenda-slot{
    min-height:56px;
    border-right:1px solid #e2e8f0;
    border-bottom:1px solid #e2e8f0;
    background:#fff;
    position:relative;
    cursor:pointer;
}

.agenda-slot:hover{
    background:#f8fafc;
}

.agenda-slot.is-past{
    background:#f1f5f9;
}

.agenda-appointment{
    position:absolute;
    left:5px;
    right:5px;
    top:4px;
    min-height:48px;
    border-radius:8px;
    padding:7px 8px 7px 14px;
    font-size:12px;
    line-height:1.15;
    color:#172033;
    box-shadow:0 8px 18px rgba(15,23,42,.08);
    overflow:hidden;
    cursor:pointer;
    z-index:2;
}

.agenda-appointment::before{
    content:"$";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:10px;
    background:#10b981;
    color:#064e3b;
    font-size:10px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.agenda-appointment strong{
    display:block;
    font-weight:950;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.agenda-appointment span{
    display:block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.agenda-modal-backdrop{
    position:fixed;
    inset:0;
    background:rgba(15,23,42,.45);
    z-index:100000;
    display:grid;
    place-items:center;
    padding:20px;
}

.agenda-modal{
    width:min(840px,96vw);
    max-height:92vh;
    overflow:auto;
    background:#fff;
    border-radius:26px;
    box-shadow:0 28px 90px rgba(15,23,42,.25);
}

.agenda-modal-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px 22px;
    border-bottom:1px solid #e2e8f0;
}

.agenda-modal-title{
    font-size:22px;
    font-weight:950;
}

.agenda-modal-close{
    border:0;
    background:#fff;
    font-size:30px;
    cursor:pointer;
    color:#334155;
}

.agenda-modal-body{
    padding:18px 22px 24px;
}

.agenda-form-card{
    border:1px solid #dbe3ef;
    border-radius:18px;
    padding:16px;
    margin-bottom:14px;
}

.agenda-form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
}

.agenda-form-field{
    display:grid;
    gap:7px;
}

.agenda-form-field label{
    font-weight:950;
    color:#172033;
}

.agenda-status-select{
    border:1px solid #94a3b8;
    border-radius:10px;
    padding:10px 12px;
    font-weight:900;
}

.agenda-client-row{
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px;
    align-items:end;
}

.agenda-client-results{
    display:grid;
    gap:8px;
    margin-top:8px;
}

.agenda-client-option{
    border:1px solid #dbe3ef;
    border-radius:14px;
    padding:10px 12px;
    background:#fff;
    cursor:pointer;
    display:flex;
    justify-content:space-between;
    gap:10px;
    text-align:left;
}

.agenda-client-option:hover{
    border-color:#6C4CF1;
}

.agenda-service-list{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    max-height:260px;
    overflow:auto;
}

.agenda-service-option{
    border:1px solid #dbe3ef;
    border-radius:14px;
    padding:12px;
    background:#fff;
    cursor:pointer;
    text-align:left;
    font-weight:900;
}

.agenda-service-option.active{
    border-color:#6C4CF1;
    box-shadow:0 10px 22px rgba(108,76,241,.12);
}

.agenda-service-option small{
    display:block;
    color:#64748b;
    margin-top:4px;
}

.agenda-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:18px;
}

.agenda-empty{
    padding:28px;
    text-align:center;
    color:#64748b;
    font-weight:900;
}

@media(max-width:1050px){
    .agenda-shell{grid-template-columns:1fr}
    .agenda-sidebar{position:relative;top:auto}
    .agenda-form-grid{grid-template-columns:1fr}
    .agenda-service-list{grid-template-columns:1fr}
}
