.cal-wrap { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 1rem; margin-bottom: 2rem; box-shadow: 0 4px 20px rgba(0,0,0,.05); }
.cal-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 1rem; justify-content: center; }
.cal-tab { padding: .5rem 1rem; border-radius: 20px; border: 2px solid #e2e8f0; background: #fff; color: #64748b; cursor: pointer; font-weight: 600; font-size: .85rem; }
.cal-tab.active { background: #0284c7; border-color: #0284c7; color: #fff; }
.cal-nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; }
.cal-nav button { background: none; border: 1px solid #e2e8f0; border-radius: 8px; padding: .3rem .8rem; font-size: 1.1rem; cursor: pointer; }
.cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.cal-dow { text-align: center; font-size: .7rem; font-weight: 700; color: #94a3b8; text-transform: uppercase; padding: 4px 0; }
.cal-cell { min-height: 46px; border-radius: 6px; padding: 4px; font-size: .85rem; display: flex; flex-direction: column; align-items: center; cursor: pointer; border: 2px solid transparent; }
.cal-cell small { font-size: .6rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.cal-cell.empty { cursor: default; }
.cal-cell.free { background: #d1fae5; color: #065f46; }
.cal-cell.pending { background: #fef3c7; color: #92400e; }
.cal-cell.booked { background: #fee2e2; color: #991b1b; }
.cal-cell.past { background: #f1f5f9; color: #cbd5e1; cursor: default; }
.cal-cell.sel { border-color: #0284c7; box-shadow: inset 0 0 0 2px #bae6fd; }
.cal-legend { display: flex; gap: 1rem; flex-wrap: wrap; justify-content: center; margin-top: .8rem; font-size: .8rem; }
.cal-legend i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 4px; vertical-align: middle; }
.cal-hint { text-align: center; font-size: .8rem; color: #64748b; margin: .5rem 0 0; }
@media (max-width: 600px) { .cal-cell { min-height: 40px; font-size: .75rem; padding: 2px; } }
