#tab-reservas > .card,
.rv-calendar-card {
    padding: 26px;
    overflow: hidden;
}

#tab-reservas .filters {
    display: grid !important;
    grid-template-columns: minmax(220px, 1.7fr) minmax(155px, .8fr) minmax(145px, .75fr) minmax(145px, .75fr) auto;
    gap: 10px !important;
    padding: 14px !important;
    margin: 0 0 22px !important;
    border: 1px solid #e1e5eb;
    border-radius: 15px;
    background: #f7f8fa;
}

#tab-reservas .filters input,
#tab-reservas .filters select {
    width: 100%;
    min-width: 0;
    min-height: 46px;
    border-radius: 10px !important;
    border-color: #d7dde6 !important;
    background: #fff;
}

#tab-reservas .filters .btn {
    min-height: 46px;
    white-space: nowrap;
}

.rv-bookings { min-height: 190px; }

.rv-list-head,
.rv-booking-card {
    display: grid;
    grid-template-columns: minmax(150px, .85fr) minmax(180px, 1.05fr) minmax(230px, 1.35fr) minmax(100px, .65fr) minmax(250px, auto);
    gap: 18px;
    align-items: center;
}

.rv-list-head {
    padding: 0 18px 11px;
    color: #7b8493;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.rv-booking-card {
    position: relative;
    padding: 18px;
    margin-bottom: 10px;
    border: 1px solid #e3e7ed;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(21, 27, 38, .035);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.rv-booking-card:hover {
    border-color: #d0d5dd;
    box-shadow: 0 10px 28px rgba(21, 27, 38, .07);
    transform: translateY(-1px);
}

.rv-booking-primary,
.rv-booking-client,
.rv-booking-service {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.rv-booking-card strong { color: #151820; font-size: 14px; }
.rv-booking-card span,
.rv-booking-card small { color: #667085; font-size: 12px; line-height: 1.4; }
.rv-booking-card small { overflow-wrap: anywhere; }
.rv-booking-card svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.rv-booking-primary > span:last-child,
.rv-booking-service span,
.rv-booking-service small { display: flex; align-items: flex-start; gap: 5px; }

.rv-booking-id {
    width: max-content;
    padding: 3px 7px;
    border-radius: 6px;
    background: #f0f2f5;
    color: #505866 !important;
    font-size: 10px !important;
    font-weight: 800;
    text-transform: uppercase;
}

.rv-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 86px;
    padding: 7px 10px;
    border-radius: 999px;
    font-size: 11px !important;
    font-weight: 800;
}

.rv-status--asignado { color: #087443 !important; background: #d9f8e8; }
.rv-status--pendiente { color: #8a5a00 !important; background: #fff1bd; }
.rv-status--cancelado { color: #b42318 !important; background: #fee4e2; }
.rv-status--cerrado { color: #555d68 !important; background: #e8eaed; }
.rv-status--nula { color:#606773 !important; background:#eceef1; }

.rv-booking-actions { display: flex; justify-content: flex-end; gap: 7px; }
.rv-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 38px;
    padding: 0 11px;
    border: 1px solid #d9dee6;
    border-radius: 9px;
    background: #fff;
    color: #4d5664;
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}
.rv-action:hover { background: #f5f6f8; border-color: #bdc4ce; }
.rv-action--primary { color: #17191f; border-color: #ffd21c; background: #ffd21c; }
.rv-action--primary:hover { background: #f1c400; border-color: #f1c400; }
.rv-action--danger { color: #b42318; }
.rv-action:disabled { opacity: .5; cursor: wait; }

.rv-loading,
.rv-empty {
    display: flex;
    min-height: 180px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 7px;
    color: #737c8b;
    text-align: center;
}
.rv-empty svg { width: 30px; height: 30px; fill: none; stroke: #a7afba; stroke-width: 1.5; }
.rv-empty strong { color: #303641; font-size: 15px; }
.rv-empty--error strong { color: #b42318; }

body.rv-modal-open { overflow: hidden; }
.rv-modal { position: fixed; inset: 0; z-index: 2500; display: none; align-items: center; justify-content: center; padding: 22px; }
.rv-modal.is-open { display: flex; }
.rv-modal-backdrop { position: absolute; inset: 0; background: rgba(9, 12, 18, .68); backdrop-filter: blur(5px); }
.rv-modal-card {
    position: relative;
    width: min(720px, 100%);
    max-height: calc(100vh - 44px);
    overflow: auto;
    border: 1px solid rgba(255, 255, 255, .65);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .28);
    animation: rv-modal-in .2s ease-out;
}
@keyframes rv-modal-in { from { opacity: 0; transform: translateY(12px) scale(.985); } }
.rv-modal-header { display: flex; align-items: flex-start; justify-content: space-between; padding: 24px 26px 19px; border-bottom: 1px solid #e8ebf0; }
.rv-modal-header span,
.rv-eyebrow { color: #8a6a00; font-size: 10px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.rv-modal-header h3 { margin: 4px 0 0; color: #151820; font-size: 22px; }
.rv-icon-button { display: grid; width: 38px; height: 38px; place-items: center; border: 1px solid #dfe3e9; border-radius: 10px; background: #fff; color: #4b5360; cursor: pointer; }
.rv-icon-button svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.rv-editor-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 20px 26px 0; padding: 15px; border-radius: 13px; background: #f5f6f8; }
.rv-editor-summary > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.rv-editor-summary span { color: #7c8491; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.rv-editor-summary strong { color: #242832; font-size: 13px; }
.rv-editor-summary small { color: #6f7784; overflow-wrap: anywhere; }
.rv-editor-summary a { width:max-content; margin-top:3px; color:#826900; font-size:10px; font-weight:800; text-decoration:none; }
.rv-editor-summary a:hover { text-decoration:underline; }
.rv-editor-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; padding: 22px 26px 26px; }
.rv-field { display: flex; min-width: 0; flex-direction: column; gap: 7px; }
.rv-field label { color: #454d59; font-size: 12px; font-weight: 800; }
.rv-field input,
.rv-field select {
    width: 100%;
    min-height: 45px;
    padding: 0 12px;
    border: 1px solid #d7dde5;
    border-radius: 10px;
    outline: none;
    background: #fff;
    color: #1e232c;
    font: inherit;
}
.rv-field input:focus,
.rv-field select:focus { border-color: #d5aa00; box-shadow: 0 0 0 3px rgba(255, 210, 28, .18); }
.rv-duration-input { position: relative; }
.rv-duration-input input { padding-right: 75px; }
.rv-duration-input span { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); color: #737b88; font-size: 11px; font-weight: 700; }
.rv-block-preview { grid-column: 1 / -1; display: flex; align-items: center; gap: 11px; padding: 14px; border: 1px solid #efdc87; border-radius: 12px; background: #fffbed; }
.rv-block-preview svg { width: 20px; fill: none; stroke: #8c6a00; stroke-width: 1.8; }
.rv-block-preview div { display: flex; flex-direction: column; gap: 2px; }
.rv-block-preview span { color: #766a43; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.rv-block-preview strong { color: #26230f; font-size: 14px; }
.rv-form-note { grid-column: 1 / -1; margin: -3px 0 0; color: #717987; font-size: 11px; }
.rv-editor-actions { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 5px; }
.rv-editor-actions > div { display: flex; gap: 8px; }
.rv-editor-actions button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 7px; padding: 0 15px; border-radius: 10px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.rv-editor-actions svg { width: 15px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.rv-secondary-button { border: 1px solid #d8dde5; background: #fff; color: #505865; }
.rv-save-button { border: 1px solid #ffd21c; background: #ffd21c; color: #15171c; }
.rv-delete-button { border: 1px solid #f2d0cc; background: #fff; color: #b42318; }
.rv-delete-button.is-confirming { border-color: #b42318; background: #b42318; color: #fff; }
.rv-editor-actions button:disabled { opacity: .55; cursor: wait; }

.rv-calendar-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.rv-calendar-toolbar h3 { margin: 3px 0 5px; color: #151820; font-size: 24px; }
.rv-calendar-toolbar p { margin: 0; color: #727b89; font-size: 13px; }
.rv-calendar-controls { display: flex; align-items: flex-end; gap: 10px; }
.rv-calendar-create { display:flex; height:42px; align-items:center; justify-content:center; gap:8px; padding:0 16px; border:1px solid #d8ad00; border-radius:10px; background:#ffd21c; color:#17191e; font:inherit; font-size:12px; font-weight:850; white-space:nowrap; cursor:pointer; box-shadow:0 5px 12px rgba(185,148,0,.14); transition:transform .16s ease, background .16s ease, box-shadow .16s ease; }
.rv-calendar-create:hover { background:#ffca05; box-shadow:0 7px 16px rgba(185,148,0,.2); transform:translateY(-1px); }
.rv-calendar-create:focus-visible { outline:3px solid rgba(255,210,28,.35); outline-offset:2px; }
.rv-calendar-create svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.rv-calendar-nav { display: flex; overflow: hidden; border: 1px solid #d9dee6; border-radius: 10px; background: #fff; }
.rv-calendar-nav button { min-width: 39px; height: 42px; padding: 0 12px; border: 0; border-right: 1px solid #e2e5ea; background: #fff; color: #3e4652; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.rv-calendar-nav button:last-child { border-right: 0; }
.rv-calendar-nav button:hover { background: #f5f6f8; }
.rv-calendar-controls label { display: flex; flex-direction: column; gap: 4px; color: #727b89; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.rv-calendar-controls input { width: 145px; height: 42px; padding: 0 9px; border: 1px solid #d9dee6; border-radius: 10px; background: #fff; color: #303641; font: inherit; }
.rv-calendar-period { display: flex; align-items: center; justify-content: space-between; margin-top: 24px; padding: 13px 16px; border: 1px solid #e3e7ed; border-bottom: 0; border-radius: 12px 12px 0 0; background: #f7f8fa; }
.rv-calendar-period strong { color: #252a33; font-size: 14px; text-transform: capitalize; }
.rv-calendar-period span { padding: 5px 8px; border-radius: 7px; background: #eceff3; color: #59616e; font-size: 10px; font-weight: 800; }
.rv-calendar { border: 1px solid #e3e7ed; border-radius: 0 0 12px 12px; background: #fff; }
.rv-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(72px,1fr)); gap:7px; margin-top:22px; padding:8px; border:1px solid #e3e7ed; border-radius:12px; background:#f7f8fa; overflow-x:auto; }
.rv-calendar-days button { display:flex; min-width:72px; min-height:54px; align-items:center; justify-content:center; flex-direction:column; gap:3px; border:1px solid transparent; border-radius:9px; background:transparent; color:#727b88; font:inherit; cursor:pointer; }
.rv-calendar-days button:hover { border-color:#d9dde4; background:#fff; color:#252a32; }
.rv-calendar-days button span { font-size:9px; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.rv-calendar-days button strong { font-size:15px; }
.rv-calendar-days button.is-today strong { color:#9a7b00; }
.rv-calendar-days button.is-active { border-color:#e0bb00; background:#ffd21c; color:#17191e; box-shadow:0 5px 13px rgba(185,148,0,.15); }
.rv-calendar-days button.is-active strong { color:#17191e; }
.rv-calendar-days + .rv-calendar-period { margin-top:14px; }

.rv-resource-scroll { max-height:calc(100vh - 325px); min-height:470px; overflow:auto; overscroll-behavior:contain; }
.rv-resource-grid { display:grid; width:100%; }
.rv-resource-grid--head { position:sticky; z-index:30; top:0; border-bottom:1px solid #dfe3e8; background:#fff; box-shadow:0 5px 13px rgba(18,25,35,.045); }
.rv-resource-grid--body { align-items:start; }
.rv-resource-corner { position:sticky; z-index:35; left:0; display:grid; height:78px; place-items:center; border-right:1px solid #e1e5ea; background:#f8f9fb; color:#8b929e; }
.rv-resource-corner span { font-size:9px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.rv-resource-head { display:grid; height:78px; min-width:190px; grid-template-columns:36px minmax(0,1fr); grid-template-rows:1fr auto; gap:3px 9px; align-items:center; padding:11px 12px; border-right:1px solid #e7e9ed; background:#fff; }
.rv-resource-head.is-busy { background:linear-gradient(180deg,#fffdf6,#fff); }
.rv-resource-avatar { grid-row:1 / 3; display:grid; width:36px; height:36px; place-items:center; border:1px solid hsl(var(--avatar-hue) 44% 75%); border-radius:50%; background:hsl(var(--avatar-hue) 52% 94%); color:hsl(var(--avatar-hue) 45% 34%); font-size:10px; font-weight:900; }
.rv-resource-head > div { min-width:0; display:grid; gap:2px; }
.rv-resource-head strong { overflow:hidden; color:#252a32; font-size:11px; font-weight:850; text-overflow:ellipsis; white-space:nowrap; }
.rv-resource-head small { overflow:hidden; color:#858d99; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.rv-resource-head em { grid-column:2; width:max-content; padding:3px 6px; border-radius:5px; background:#f0f2f5; color:#68717e; font-size:8px; font-style:normal; font-weight:800; }
.rv-resource-head.is-busy em { background:#fff2b8; color:#765d00; }
.rv-resource-hours { position:sticky; z-index:12; left:0; min-width:68px; border-right:1px solid #dfe3e8; background:#f8f9fb; }
.rv-resource-hours span { position:absolute; right:8px; transform:translateY(-50%); color:#a0a7b1; font-size:7px; font-weight:700; }
.rv-resource-hours span.is-hour { color:#68717d; font-size:9px; font-weight:850; }
.rv-resource-hours span:first-child { transform:none; }
.rv-resource-column { position:relative; min-width:190px; border-right:1px solid #e4e7eb; background-color:#fff; background-image:linear-gradient(to bottom,#edf0f3 1px,transparent 1px); }
.rv-resource-column.is-empty { background-color:#fcfcfd; }
.rv-resource-event { position:absolute; z-index:4; left:5px; right:5px; display:flex; overflow:hidden; align-items:flex-start; flex-direction:column; gap:2px; padding:7px 8px 7px 10px; border:1px solid #cddbf4; border-left:4px solid #4777ce; border-radius:7px; background:#edf3ff; color:#233c68; text-align:left; cursor:pointer; box-shadow:0 2px 6px rgba(29,46,74,.09); transition:transform .14s ease,box-shadow .14s ease,filter .14s ease; }
.rv-resource-event:hover { z-index:8; filter:brightness(.985); transform:translateY(-1px); box-shadow:0 7px 18px rgba(29,46,74,.15); }
.rv-resource-event span { font-size:8px; font-weight:900; }
.rv-resource-event strong { max-width:100%; overflow:hidden; font-size:10px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.rv-resource-event small { max-width:100%; overflow:hidden; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.rv-resource-event em { max-width:100%; overflow:hidden; opacity:.72; font-size:8px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.rv-resource-event--pendiente { border-color:#ead27b; border-left-color:#d5a100; background:#fff5ca; color:#66500a; }
.rv-resource-event--cerrado { border-color:#d7dbe0; border-left-color:#7d858f; background:#f0f1f3; color:#575e67; opacity:.78; }
.rv-resource-event--cancelado { border-color:#edc2be; border-left-color:#c5453c; background:#fee9e7; color:#7f231c; opacity:.72; }
.rv-resource-event--nula { border-style:dashed; border-color:#cfd3d8; border-left:4px solid #747b85; background:#f3f4f5; color:#5d646e; opacity:.7; }
.rv-resource-block { position:absolute; z-index:2; left:4px; right:4px; display:flex; overflow:hidden; align-items:flex-start; flex-direction:column; gap:2px; padding:6px 8px; border:1px solid #d6d9de; border-radius:6px; background:repeating-linear-gradient(135deg,#eceef1,#eceef1 6px,#e4e6e9 6px,#e4e6e9 12px); color:#6b727c; pointer-events:none; }
.rv-resource-block strong { font-size:9px; }
.rv-resource-block span { font-size:8px; }
.rv-resource-block--full { inset:4px; justify-content:center; align-items:center; text-align:center; opacity:.8; }
.rv-resource-now { position:absolute; z-index:7; left:0; right:0; height:2px; background:#e5483f; pointer-events:none; }
.rv-resource-now::before { content:''; position:absolute; left:-4px; top:-3px; width:8px; height:8px; border-radius:50%; background:#e5483f; }
.rv-cal-scroll { max-height: calc(100vh - 290px); min-height: 460px; overflow: auto; }
.rv-cal-grid { display: grid; grid-template-columns: 62px repeat(7, minmax(125px, 1fr)); min-width: 970px; }
.rv-cal-grid--head { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid #e4e7ec; background: #fff; box-shadow: 0 4px 10px rgba(20, 25, 35, .035); }
.rv-cal-corner { border-right: 1px solid #e7e9ed; }
.rv-cal-day-head { display: flex; height: 68px; align-items: center; justify-content: center; flex-direction: column; gap: 3px; border-right: 1px solid #eceef2; color: #7b8492; }
.rv-cal-day-head span { font-size: 10px; font-weight: 800; text-transform: uppercase; }
.rv-cal-day-head strong { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #313741; font-size: 13px; }
.rv-cal-day-head.is-today strong { background: #ffd21c; color: #17191e; }
.rv-cal-hours { position: relative; border-right: 1px solid #e4e7ec; background: #fafbfc; }
.rv-cal-hours span { position: absolute; right: 9px; transform: translateY(-50%); color: #9098a4; font-size: 9px; font-weight: 700; }
.rv-cal-hours span:first-child { transform: none; }
.rv-cal-day { position: relative; border-right: 1px solid #eceef2; background-image: linear-gradient(to bottom, #e9ecf0 1px, transparent 1px); }
.rv-cal-day.is-today { background-color: #fffdf5; }
.rv-cal-event { position: absolute; z-index: 2; display: flex; overflow: hidden; align-items: flex-start; flex-direction: column; gap: 2px; padding: 7px 8px; border: 0; border-left: 3px solid #3c6bc7; border-radius: 7px; background: #eaf1ff; color: #20375f; text-align: left; cursor: pointer; box-shadow: 0 2px 5px rgba(22, 32, 50, .08); transition: filter .15s ease, transform .15s ease; }
.rv-cal-event:hover { z-index: 5; filter: brightness(.97); transform: translateY(-1px); }
.rv-cal-event span { font-size: 9px; font-weight: 900; }
.rv-cal-event strong { max-width: 100%; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.rv-cal-event small { max-width: 100%; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.rv-cal-event em { max-width: 100%; overflow: hidden; opacity: .75; font-size: 8px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.rv-cal-event--pendiente { border-left-color: #d59d00; background: #fff2bf; color: #66500a; }
.rv-cal-event--cancelado { border-left-color: #c5453c; background: #fee9e7; color: #7f231c; opacity: .65; }
.rv-cal-event--cerrado { border-left-color: #7c838d; background: #eceef0; color: #535a64; opacity: .72; }
.rv-cal-event--nula { border-left-color:#747b85; background:#f3f4f5; color:#5d646e; opacity:.68; }

@media (max-width: 1250px) {
    #tab-reservas .filters { grid-template-columns: minmax(220px, 1.5fr) repeat(3, minmax(140px, 1fr)); }
    #tab-reservas .filters .btn { grid-column: 1 / -1; width: max-content !important; }
    .rv-list-head { display: none; }
    .rv-booking-card { grid-template-columns: .8fr 1fr 1.3fr auto; }
    .rv-booking-actions { grid-column: 1 / -1; padding-top: 12px; border-top: 1px solid #edf0f3; }
}

@media (max-width: 820px) {
    #tab-reservas > .card,
    .rv-calendar-card { padding: 18px; border-radius: 15px; }
    #tab-reservas .filters { grid-template-columns: 1fr 1fr; }
    #tab-reservas .filters input:first-child { grid-column: 1 / -1; }
    .rv-booking-card { grid-template-columns: 1fr 1fr; gap: 15px; }
    .rv-booking-state { align-self: end; justify-self: end; }
    .rv-booking-actions { justify-content: stretch; }
    .rv-action { flex: 1; }
    .rv-calendar-toolbar { flex-direction: column; }
    .rv-calendar-controls { width: 100%; justify-content: space-between; }
    .rv-cal-scroll { max-height: calc(100vh - 330px); }
    .rv-resource-scroll { max-height:65vh; }
}

@media (max-width: 560px) {
    #tab-reservas > .card,
    .rv-calendar-card { padding: 13px; margin-left: -5px; margin-right: -5px; }
    #tab-reservas .filters { grid-template-columns: 1fr; padding: 10px !important; }
    #tab-reservas .filters input:first-child,
    #tab-reservas .filters .btn { grid-column: auto; width: 100% !important; }
    .rv-booking-card { grid-template-columns: 1fr; padding: 15px; }
    .rv-booking-state { position: absolute; top: 14px; right: 14px; }
    .rv-booking-primary { padding-right: 92px; }
    .rv-booking-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .rv-action--primary { grid-column: 1 / -1; }
    .rv-editor-summary,
    .rv-editor-form { grid-template-columns: 1fr; }
    .rv-editor-summary { margin: 15px 16px 0; }
    .rv-editor-form { padding: 18px 16px; }
    .rv-editor-actions { flex-direction: column-reverse; align-items: stretch; }
    .rv-editor-actions > div { display: grid; grid-template-columns: 1fr 1fr; }
    .rv-delete-button { width: 100%; }
    .rv-modal { padding: 8px; }
    .rv-modal-card { max-height: calc(100vh - 16px); border-radius: 15px; }
    .rv-modal-header { padding: 19px 17px 15px; }
    .rv-calendar-controls { align-items: stretch; flex-direction: column; }
    .rv-calendar-create { width:100%; }
    .rv-calendar-nav { width: 100%; }
    .rv-calendar-nav button { flex: 1; }
    .rv-calendar-controls input { width: 100%; }
    .rv-calendar-period { align-items: flex-start; flex-direction: column; gap: 6px; }
    .rv-cal-scroll { max-height: 62vh; }
    .rv-calendar-days { grid-template-columns:repeat(7,72px); }
    .rv-resource-scroll { max-height:62vh; min-height:430px; }
    .rv-resource-head,.rv-resource-column { min-width:176px; }
}
