.calendar-page{display:flex;flex-direction:column;flex:1;gap:var(--space-3);padding:0;max-width:none;min-width:0;overflow:hidden}.calendar-page,.calendar-page.is-desktop-calendar{height:calc(100vh - var(--topbar-height) - (var(--page-padding-y) * 2));max-height:calc(100vh - var(--topbar-height) - (var(--page-padding-y) * 2));min-height:0;width:100%}.calendar-page.is-desktop-calendar .calendar-desktop-chrome{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.calendar-page.is-desktop-calendar .calendar-desktop-scroll{flex:1 1 0;min-height:0;overflow-x:auto;touch-action:pan-y;display:block}.calendar-page.is-desktop-calendar .calendar-desktop-dynamic{display:block;height:auto;max-height:none;overflow:visible}.calendar-page.is-desktop-calendar .cal-week-matrix-wrap{overflow:visible;max-height:none;height:auto;width:100%;min-width:0}.calendar-page.is-desktop-calendar .cal-week-matrix{height:auto;max-height:none;width:100%;min-width:0}.calendar-page.is-desktop-calendar .cal-week-matrix-head{z-index:8}.calendar-page.is-desktop-calendar .calendar-desktop-dynamic>.bg-surface,.calendar-page.is-desktop-calendar .calendar-month-grid{height:auto;max-height:none;overflow:visible}.calendar-page.is-desktop-calendar .calendar-desktop-dynamic .overflow-x-auto{overflow-x:auto;overflow-y:visible}.calendar-page.is-desktop-calendar .calendar-desktop-dynamic{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.calendar-page.is-desktop-calendar .calendar-desktop-dynamic>.bg-surface,.calendar-page.is-desktop-calendar .calendar-desktop-dynamic>[class*=border]{min-height:0}.calendar-toolbar{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:row;flex-wrap:nowrap;flex-shrink:0;gap:var(--space-3);justify-content:space-between;padding:var(--space-3) var(--space-4);box-shadow:0 1px 3px rgba(15,23,42,.04);width:100%;position:sticky;top:0;z-index:6;max-width:none;box-sizing:border-box}.calendar-toolbar-row{display:flex;align-items:center;gap:var(--space-2);min-width:0}.calendar-toolbar-row-primary{flex:1 1 auto}.calendar-toolbar-row-secondary{flex:0 1 auto;justify-content:flex-end}.calendar-toolbar-row .calendar-period-nav,.calendar-toolbar-row .calendar-toolbar-controls{width:100%}.calendar-period-nav{gap:var(--space-2);min-width:0}.calendar-nav-button,.calendar-today-button{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;display:inline-flex;font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);height:36px;justify-content:center;transition:background var(--duration-fast) var(--easing-standard),border-color var(--duration-fast) var(--easing-standard)}.calendar-nav-button{font-size:1.25rem;line-height:1;width:36px}.calendar-today-button{padding:0 var(--space-4)}.calendar-nav-button:hover,.calendar-today-button:hover{background:var(--color-surface-subtle);border-color:var(--color-border-strong)}.calendar-period-label{align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);display:inline-flex;font-size:var(--font-size-small);font-weight:var(--font-weight-bold);gap:var(--space-2);height:36px;min-width:154px;padding:0 var(--space-4)}.calendar-filter-icon,.calendar-mini-icon{color:var(--color-text-muted);font-size:var(--font-size-body)}.calendar-filter{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);display:inline-flex;gap:var(--space-2);height:36px;padding:0 var(--space-3)}.calendar-room-select{background:transparent;border:0;color:var(--color-text-primary);font:inherit;font-size:var(--font-size-small);font-weight:var(--font-weight-semibold);outline:0}.calendar-content-grid{display:flex;flex:1;flex-direction:column;gap:var(--space-3);min-height:0;overflow:hidden;width:100%;max-width:none}.calendar-agenda-card,.calendar-month-card,.calendar-summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 1px 3px rgba(15,23,42,.04)}.calendar-month-card{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;width:100%;max-width:none}.calendar-day-body-grid,.calendar-day-header-grid,.calendar-day-view,.calendar-dynamic-view,.calendar-view{width:100%}.calendar-weekday-row{background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);display:grid;flex-shrink:0;font-size:var(--font-size-small);font-weight:700;grid-template-columns:repeat(7,minmax(0,1fr));position:sticky;top:0;z-index:2;text-align:center}.calendar-weekday-row span{border-right:1px solid var(--color-border);padding:var(--space-3) var(--space-2)}.calendar-weekday-row span:last-child{border-right:0}.calendar-month-grid{background:var(--color-border);display:grid;flex:1 0 auto;gap:1px;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(108px,1fr));min-height:648px;position:relative}.calendar-day-cell{background:var(--color-surface);border:0;color:var(--color-text-primary);cursor:pointer;display:flex;flex-direction:column;gap:var(--space-1);min-width:0;overflow:hidden;padding:var(--space-2);text-align:left}.calendar-day-cell:hover{background:var(--color-surface-subtle)}.calendar-day-cell.is-muted{opacity:.42}.calendar-day-cell.is-selected{background:color-mix(in srgb,var(--color-primary) 8%,white);box-shadow:inset 0 0 0 1.5px var(--color-primary)}.calendar-day-cell.is-today{background:var(--color-surface);box-shadow:none}.calendar-day-cell.is-today.is-selected{background:color-mix(in srgb,var(--color-primary) 10%,white);box-shadow:inset 0 0 0 1.5px var(--color-primary)}.calendar-day-cell.is-muted{color:var(--color-text-muted);opacity:.55}.calendar-day-cell.has-events .calendar-day-number:after{content:none}.calendar-day-top{align-items:center;display:flex;justify-content:space-between;min-height:22px}.calendar-day-number{align-items:center;border-radius:var(--radius-pill);display:inline-flex;font-size:var(--font-size-small);font-weight:var(--font-weight-bold);height:22px;justify-content:center;min-width:22px}.calendar-day-cell.is-today .calendar-day-number{background:var(--color-primary);color:var(--color-text-inverse);height:26px;min-width:26px;border-radius:999px}.calendar-day-count{background:var(--color-primary-subtle);border-radius:var(--radius-xs);color:var(--color-primary);font-size:.625rem;font-weight:var(--font-weight-semibold);padding:1px var(--space-1)}.calendar-event-list{display:flex;flex:1;flex-direction:column;gap:var(--space-1);min-height:0;overflow:hidden}.calendar-event-chip{align-items:center;border:1px solid;border-radius:6px;display:flex;flex-direction:row;font-size:11px;line-height:1.2;min-width:0;max-width:100%;padding:3px 6px;transition:opacity var(--duration-fast) var(--easing-standard)}.calendar-event-chip:hover{opacity:.82}.calendar-event-chip span,.calendar-event-chip strong,.calendar-event-chip-line{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.calendar-overflow{color:var(--color-primary);font-size:11px;font-weight:var(--font-weight-bold);padding:2px 4px}.calendar-legend-footer{align-items:center;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--space-2);justify-content:space-between;padding:var(--space-3) var(--space-4);position:sticky;top:0;z-index:4}.calendar-legend-footer p,.calendar-legend-muted{color:var(--color-text-muted);font-size:var(--font-size-caption);margin:0 auto 0 0;text-align:left}.calendar-room-legend{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:flex-end;margin-left:auto}.calendar-legend-item{align-items:center;color:var(--color-text-secondary);display:inline-flex;font-size:11px;font-weight:var(--font-weight-regular);gap:4px}.calendar-room-dot{border-radius:var(--radius-pill);display:inline-block;height:8px;width:8px}.calendar-event-chip.room-1{background:var(--room-color-1-subtle);border-color:var(--room-color-1-border);color:var(--room-color-1)}.calendar-event-chip.room-2{background:var(--room-color-2-subtle);border-color:var(--room-color-2-border);color:var(--room-color-2)}.calendar-event-chip.room-3{background:var(--room-color-3-subtle);border-color:var(--room-color-3-border);color:var(--room-color-3)}.calendar-event-chip.room-4{background:var(--room-color-4-subtle);border-color:var(--room-color-4-border);color:var(--room-color-4)}.calendar-event-chip.room-5{background:var(--room-color-5-subtle);border-color:var(--room-color-5-border);color:var(--room-color-5)}.calendar-event-chip.room-6{background:var(--room-color-6-subtle);border-color:var(--room-color-6-border);color:var(--room-color-6)}.calendar-event-chip.is-hex{background:var(--room-accent-soft);border-color:var(--room-accent);color:var(--room-accent)}.calendar-room-dot.room-1{background:var(--room-color-1)}.calendar-room-dot.room-2{background:var(--room-color-2)}.calendar-room-dot.room-3{background:var(--room-color-3)}.calendar-room-dot.room-4{background:var(--room-color-4)}.calendar-room-dot.room-5{background:var(--room-color-5)}.calendar-room-dot.room-6{background:var(--room-color-6)}.calendar-room-dot.is-hex{background:var(--room-accent)}.calendar-side-panel{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.calendar-agenda-card,.calendar-summary-card{padding:var(--space-4)}.calendar-agenda-card h2,.calendar-summary-card h2{color:var(--color-text-primary);font-size:var(--font-size-body);margin:0}.calendar-summary-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:var(--space-3)}.calendar-summary-item{background:var(--color-surface-subtle);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-1);min-height:98px;padding:var(--space-3)}.calendar-summary-item>span{align-items:center;color:var(--color-text-secondary);display:flex;font-size:var(--font-size-caption);font-weight:var(--font-weight-medium);gap:var(--space-2)}.calendar-summary-item strong{color:var(--color-text-primary);font-size:var(--font-size-section-title);line-height:var(--line-height-tight);margin-top:auto}.calendar-summary-item small{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.calendar-summary-icon{color:var(--color-primary);font-size:var(--font-size-body)}.calendar-agenda-card{flex:1;min-height:260px}.calendar-agenda-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.calendar-link-button{background:transparent;border:0;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);padding:0}.calendar-week-agenda-list{display:flex;flex-direction:column;gap:var(--space-2)}.calendar-agenda-row{align-items:flex-start;background:transparent;border:0;border-bottom:1px solid var(--color-border-subtle);cursor:pointer;display:flex;gap:var(--space-2);padding:var(--space-2) 0;text-align:left}.calendar-agenda-row span:last-child{display:flex;flex-direction:column;min-width:0}.calendar-agenda-row strong{color:var(--color-text-primary);font-size:var(--font-size-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-agenda-row small{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.calendar-grid-status{align-items:center;background:rgba(255,255,255,.92);bottom:var(--space-4);box-shadow:var(--shadow-dropdown);left:50%;max-width:min(360px,calc(100% - 32px));position:absolute;transform:translateX(-50%);z-index:2}.calendar-agenda-popup{display:flex;flex-direction:column;gap:var(--space-4)}.calendar-agenda-group{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.calendar-agenda-group h3{color:var(--color-text-primary);font-size:var(--font-size-body);margin:0 0 var(--space-2)}.calendar-agenda-detail{border-top:1px solid var(--color-border-subtle);display:grid;gap:var(--space-2);padding:var(--space-3) 0 0}.calendar-agenda-detail+.calendar-agenda-detail{margin-top:var(--space-3)}.calendar-agenda-detail div{display:grid;gap:var(--space-2);grid-template-columns:88px minmax(0,1fr)}.calendar-agenda-detail dt{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold)}.calendar-agenda-detail dd{color:var(--color-text-primary);font-size:var(--font-size-small);margin:0}.calendar-toolbar-controls{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:flex-end}.calendar-view-tabs{background:var(--color-surface-subtle);border-radius:var(--radius-sm);display:inline-flex;gap:var(--space-1);padding:var(--space-1)}.calendar-view-tab{background:transparent;border:0;border-radius:var(--radius-xs);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);min-height:28px;padding:0 var(--space-3)}.calendar-view-tab.is-active{background:var(--color-primary);box-shadow:0 1px 3px rgba(37,99,235,.25);color:#fff}.calendar-dynamic-view{flex-direction:column;display:flex;flex:1;min-height:0;overflow:hidden}.calendar-view{flex:1;min-width:0}.calendar-view-month{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}.calendar-week-grid{background:var(--color-border);display:grid;gap:1px;grid-template-columns:72px repeat(7,minmax(92px,1fr));overflow:auto}.calendar-time-cell,.calendar-time-head,.calendar-week-head,.calendar-week-slot{background:var(--color-surface)}.calendar-week-head{display:grid;gap:2px;min-height:54px;padding:var(--space-2);text-align:center}.calendar-week-head strong{color:var(--color-text-primary)}.calendar-time-cell,.calendar-time-head,.calendar-week-head span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.calendar-time-cell,.calendar-time-head{align-items:center;display:flex;font-weight:var(--font-weight-semibold);justify-content:center;padding:var(--space-2)}.calendar-week-slot{display:grid;gap:var(--space-1);min-height:76px;padding:var(--space-1)}.calendar-day-list{background:var(--color-border);display:grid;gap:1px;overflow:auto}.calendar-day-row{background:var(--color-surface);display:grid;grid-template-columns:86px minmax(0,1fr);min-height:72px}.calendar-day-row-time{align-items:center;border-right:1px solid var(--color-border-subtle);color:var(--color-text-secondary);display:flex;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);justify-content:center}.calendar-day-row-content{display:grid;gap:var(--space-2);padding:var(--space-2)}.calendar-agenda-button{align-items:flex-start;background:var(--color-primary-subtle);border:1px solid var(--color-primary-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-primary);display:grid;gap:2px;min-width:0;font:inherit;margin:0;outline:none;padding:var(--space-2);text-align:left;width:100%}.calendar-agenda-button.room-1{background:var(--room-color-1-subtle);border-color:var(--room-color-1-border)}.calendar-agenda-button.room-2{background:var(--room-color-2-subtle);border-color:var(--room-color-2-border)}.calendar-agenda-button.room-3{background:var(--room-color-3-subtle);border-color:var(--room-color-3-border)}.calendar-agenda-button.room-4{background:var(--room-color-4-subtle);border-color:var(--room-color-4-border)}.calendar-agenda-button.room-5{background:var(--room-color-5-subtle);border-color:var(--room-color-5-border)}.calendar-agenda-button.room-6{background:var(--room-color-6-subtle);border-color:var(--room-color-6-border)}.calendar-agenda-button.is-hex{background:var(--room-accent-soft);border-color:var(--room-accent)}.calendar-agenda-button small,.calendar-agenda-button span{color:var(--color-text-secondary);font-size:.6875rem}.calendar-agenda-button strong{color:var(--color-text-primary);font-size:var(--font-size-caption)}.calendar-agenda-button strong,.calendar-agenda-inline,.calendar-agenda-meta,.calendar-agenda-user{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-agenda-button-week{align-content:start;min-height:100%}.calendar-agenda-button-week .calendar-agenda-meta,.calendar-agenda-button-week .calendar-agenda-user{font-size:.625rem;line-height:1.2}.calendar-agenda-button-week .calendar-agenda-title{font-size:.6875rem;line-height:1.2}.calendar-agenda-button-day{display:flex;align-items:center;min-height:100%;padding:0 var(--space-2)}.calendar-agenda-button-day .calendar-agenda-inline{color:var(--color-text-primary);display:block;font-size:.625rem;line-height:1.2;width:100%}.calendar-agenda-button:focus-visible{box-shadow:0 0 0 2px var(--color-primary-border)}.calendar-booking-detail-grid{display:grid;gap:var(--space-2) var(--space-3);grid-template-columns:max-content minmax(0,1fr);margin:0}.calendar-booking-detail-grid dt{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold)}.calendar-booking-detail-grid dd{margin:0}.calendar-booking-modal-body{display:grid;gap:var(--space-5)}.calendar-booking-form,.calendar-booking-form-grid{display:grid;gap:var(--space-4)}.calendar-booking-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-booking-full-span{grid-column:1/-1}.calendar-booking-form-grid textarea.form-control{min-height:112px}.calendar-booking-modal-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:flex-end;width:100%}.calendar-booking-submit-error{margin:0}@media (max-width:640px){.calendar-booking-form-grid{grid-template-columns:1fr}.calendar-booking-modal-actions .button{width:100%}}.calendar-empty-slot{align-items:center;background:transparent;border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:flex;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);justify-content:center;min-height:34px;padding:var(--space-2)}.calendar-empty-slot:hover{background:var(--color-surface-subtle);border-color:var(--color-primary-border);color:var(--color-primary)}.calendar-dynamic-view>.empty-state,.calendar-dynamic-view>.error-state,.calendar-dynamic-view>.loading-state{margin:auto;max-width:420px}.calendar-dynamic-view{position:relative}.calendar-inline-status{background:rgba(255,255,255,.94);box-shadow:var(--shadow-dropdown);left:50%;max-width:min(420px,calc(100% - 32px));position:absolute;top:50%;transform:translate(-50%,-50%);z-index:3}.calendar-mini-icon:before{content:"";display:inline-block;width:14px;height:14px;border:1.5px solid;border-radius:3px;box-shadow:inset 0 4px 0 rgba(100,116,139,.18)}.calendar-filter-icon:before{content:"";display:inline-block;width:13px;height:13px;border:1.5px solid;border-top:3px solid;clip-path:polygon(0 0,100% 0,62% 48%,62% 100%,38% 100%,38% 48%)}.calendar-summary-icon:before{content:"";display:inline-block;width:13px;height:13px;border:1.5px solid;border-radius:999px}.calendar-summary-item.calendar .calendar-summary-icon:before{border-radius:3px}.calendar-summary-item.clock .calendar-summary-icon:before{box-shadow:inset 4px 0 0 rgba(37,99,235,.18)}.calendar-summary-item.building .calendar-summary-icon:before{border-radius:2px;box-shadow:inset 0 -4px 0 rgba(37,99,235,.18)}.calendar-summary-item.chart .calendar-summary-icon:before{border-radius:999px;border-right-color:transparent}.calendar-empty-slot:disabled{cursor:default;opacity:.72}.calendar-room-select:disabled{opacity:1}.calendar-date-shortcut{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);height:36px;min-width:138px;padding:0 var(--space-3)}.calendar-day-grid{background:var(--color-border);display:grid;gap:1px;grid-template-columns:72px repeat(var(--calendar-day-room-count,3),minmax(116px,1fr));overflow:auto}.calendar-day-head{align-items:center;background:var(--color-surface-subtle);color:var(--color-text-primary);display:flex;gap:var(--space-2);justify-content:center;min-height:54px;padding:var(--space-2);position:sticky;top:0;z-index:1}.calendar-day-head strong{font-size:var(--font-size-small);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-day-grid .calendar-time-head{position:sticky;top:0;z-index:2}.calendar-day-grid .calendar-week-slot{min-height:76px}.calendar-summary-icon:before,.calendar-summary-item.building .calendar-summary-icon:before,.calendar-summary-item.calendar .calendar-summary-icon:before,.calendar-summary-item.chart .calendar-summary-icon:before,.calendar-summary-item.clock .calendar-summary-icon:before{content:none}.calendar-summary-icon svg{display:block;height:15px;width:15px}.calendar-period-nav{justify-content:flex-end}.calendar-day-view{display:flex;flex-direction:column;min-height:0;overflow:hidden}.calendar-day-body-grid,.calendar-day-header-grid{display:grid;grid-template-columns:72px repeat(var(--calendar-day-room-count,1),minmax(116px,1fr));min-width:-moz-max-content;min-width:max-content}.calendar-day-header-grid{background:var(--color-border);gap:1px;position:sticky;top:0;z-index:2}.calendar-day-body-grid{background:var(--color-border);flex:1;gap:1px;overflow:auto}.calendar-day-header-grid .calendar-day-head{min-height:48px;position:static}.calendar-day-body-grid .calendar-day-row-time,.calendar-day-body-grid .calendar-week-slot{background:var(--color-surface)}.calendar-day-body-grid .calendar-day-row-time{border-right:0;min-height:76px}.calendar-period-nav .calendar-period-label.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.calendar-date-shortcut{cursor:pointer;font-size:var(--font-size-small);min-width:190px;padding:0 var(--space-4)}.calendar-date-shortcut::-webkit-calendar-picker-indicator{cursor:pointer}.calendar-reference-agenda-modal.modal-dialog{width:min(560px,calc(100vw - 1rem));max-width:560px;max-height:min(75vh,720px);overflow:hidden;border:0;border-radius:16px;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px rgba(15,23,42,.25)}.calendar-reference-agenda-modal.is-empty-agenda.modal-dialog{max-height:min(420px,80vh)}.calendar-reference-agenda-modal .modal-header{align-items:flex-start;background:#fff;border-bottom:1px solid #f3f4f6;padding:16px 20px 12px;flex-shrink:0;gap:12px}.calendar-reference-agenda-modal .modal-heading{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;-moz-column-gap:12px;column-gap:12px;row-gap:2px;flex:1;min-width:0}.calendar-reference-agenda-modal .modal-title{grid-column:2;grid-row:1;color:#111827;font-size:18px;font-weight:700;line-height:1.25;margin:0}.calendar-reference-agenda-modal .modal-title:before{display:block;margin:0}.calendar-reference-agenda-modal .modal-heading:before,.calendar-reference-agenda-modal .modal-title:before{content:"";grid-column:1;grid-row:1/span 2;width:40px;height:40px;border-radius:10px;background:#7c3aed url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='5' y='5' width='14' height='14' rx='2' stroke='white' stroke-width='2'/%3E%3Cpath d='M8 3v4M16 3v4M5 10h14M10 14l1.5 1.5L15 12' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/18px no-repeat}.calendar-reference-agenda-modal .modal-heading:before{align-self:start}.calendar-reference-agenda-modal .modal-title:before{display:none}.calendar-reference-agenda-modal .modal-description{grid-column:2;grid-row:2;color:#6b7280;font-size:12px;font-weight:500;margin:0;padding:0}.calendar-reference-agenda-modal .modal-body{padding:8px 16px 12px;overflow-y:auto;flex:1 1 auto;min-height:0}.calendar-reference-agenda-modal .modal-footer{background:#fff;border-top:1px solid #f3f4f6;padding:12px 16px 16px;flex-shrink:0}.calendar-reference-popup-body{display:flex;flex-direction:column;gap:0;max-height:none;overflow:visible}.calendar-reference-popup-body.is-empty{min-height:180px;justify-content:center}.calendar-reference-empty{color:var(--color-text-muted);font-size:var(--font-size-small);margin:0;padding:var(--space-4) 0;text-align:center}.calendar-agenda-col-head{display:grid;grid-template-columns:92px minmax(0,1.4fr) minmax(64px,.8fr) 80px 16px;gap:6px;padding:4px 6px 6px;border-bottom:1px solid #f3f4f6;color:#9ca3af;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;position:sticky;top:0;background:#fff;z-index:1}.calendar-agenda-block{padding:6px 0 2px}.calendar-agenda-block+.calendar-agenda-block{border-top:1px solid #f3f4f6;margin-top:2px;padding-top:6px}.calendar-agenda-block-heading{display:flex;align-items:center;gap:6px;padding:2px 6px 4px}.calendar-agenda-room-name{font-size:12px;font-weight:700}.calendar-agenda-room-count{font-size:10px;font-weight:600;color:#6b7280;background:#f3f4f6;border-radius:999px;padding:1px 6px}.calendar-agenda-table-row{display:grid;grid-template-columns:92px minmax(0,1.4fr) minmax(64px,.8fr) 80px 16px;gap:6px;align-items:center;width:100%;padding:5px 6px;margin:0;border:0;border-radius:6px;background:transparent;text-align:left;cursor:pointer;font:inherit;color:inherit}.calendar-agenda-table-row:hover{background:#f8fafc}.calendar-agenda-table-row:focus-visible{outline:2px solid #93c5fd;outline-offset:1px}.calendar-agenda-col-time{font-size:11px;font-weight:600;color:#374151;white-space:nowrap}.calendar-agenda-col-title{font-size:12px;font-weight:600;color:#111827}.calendar-agenda-col-pic,.calendar-agenda-col-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-agenda-col-pic{font-size:11px;color:#4b5563}.calendar-agenda-col-status{display:flex;justify-content:flex-start}.calendar-agenda-status-badge{display:inline-flex;align-items:center;padding:1px 6px;border-radius:5px;font-size:10px;font-weight:600;line-height:1.3}.calendar-agenda-status-badge.is-confirmed{background:#dcfce7;color:#15803d}.calendar-agenda-status-badge.is-tentative{background:#ffedd5;color:#c2410c}.calendar-agenda-status-badge.is-completed{background:#f3f4f6;color:#4b5563}.calendar-agenda-status-badge.is-cancelled{background:#fee2e2;color:#b91c1c}.calendar-agenda-status-badge.is-default{background:#f3f4f6;color:#6b7280}.calendar-agenda-col-chevron{color:#9ca3af;font-size:16px;line-height:1;text-align:right}.calendar-agenda-tip{margin-top:6px;padding:6px 10px;border-radius:6px;background:#eff6ff;color:#1d4ed8;font-size:11px}.calendar-reference-agenda-modal .modal-body{padding:6px 14px 10px}.calendar-reference-agenda-modal .modal-footer{padding:10px 14px 14px}.calendar-reference-agenda-modal .modal-header{padding:12px 16px 10px}.calendar-agenda-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 8px 4px;gap:8px}.calendar-agenda-empty-art{width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(167,139,250,.25),transparent 55%),radial-gradient(circle at 70% 60%,rgba(96,165,250,.2),transparent 50%),#f5f3ff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 64 64'%3E%3Crect x='14' y='18' width='36' height='32' rx='4' stroke='%237c3aed' stroke-width='2'/%3E%3Cpath d='M22 14v8M42 14v8M14 28h36' stroke='%237c3aed' stroke-width='2' stroke-linecap='round'/%3E%3Ccircle cx='44' cy='42' r='10' fill='%23ede9fe' stroke='%233b82f6' stroke-width='2'/%3E%3Cpath d='M44 38v5l3 2' stroke='%233b82f6' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") 50%/56px no-repeat}.calendar-agenda-empty-title{margin:4px 0 0;font-size:16px;font-weight:700;color:#111827}.calendar-agenda-empty-desc{margin:0;font-size:13px;color:#6b7280}.calendar-agenda-empty-hint{margin-top:4px;padding:8px 12px;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:12px;max-width:320px}.calendar-info-back-link{display:inline-flex;align-items:center;align-self:flex-start;margin:2px 0 0;padding:0;border:0;background:transparent;color:#2563eb;font-size:12px;font-weight:500;line-height:1.3;cursor:pointer;text-decoration:none}.calendar-info-back-link:hover{text-decoration:underline;color:#1d4ed8}.calendar-info-btn-back{border:1px solid #e5e7eb;color:#374151;background:#fff}.calendar-info-btn-back:hover{background:#f9fafb}.calendar-reference-agenda-group{border:0;padding:0}.calendar-reference-agenda-group h3{color:var(--color-primary);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);margin:0 0 var(--space-2)}.calendar-reference-agenda-card{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:grid;gap:var(--space-1);padding:var(--space-3)}.calendar-reference-agenda-card+.calendar-reference-agenda-card{margin-top:var(--space-3)}.calendar-reference-agenda-top{align-items:center;display:flex;justify-content:space-between;gap:var(--space-3)}.calendar-reference-room-badge{background:var(--color-primary-subtle);border-radius:var(--radius-xs);color:var(--color-primary);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);padding:2px var(--space-2)}.calendar-reference-time{color:var(--color-text-secondary);font-size:.6875rem;font-weight:var(--font-weight-medium);white-space:nowrap}.calendar-reference-agenda-title{color:var(--color-text-primary);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);margin:0}.calendar-reference-user{color:var(--color-text-secondary);font-size:.6875rem;margin:0}.calendar-reference-user span{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.calendar-reference-agenda-modal .modal-footer{background:var(--color-surface-subtle);border-top:1px solid var(--color-border-subtle);padding:var(--space-4) var(--space-6)}.calendar-reference-popup-actions{align-items:center;display:flex;gap:var(--space-3);justify-content:space-between;width:100%}.calendar-reference-booking-button,.calendar-reference-close-button{border-radius:var(--radius-lg);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);min-height:40px;padding:0 var(--space-4)}.calendar-reference-booking-button{gap:var(--space-2);padding-inline:var(--space-5)}.calendar-reference-button-icon{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);line-height:1}.calendar-week-grid{grid-template-columns:80px repeat(7,minmax(92px,1fr))}.calendar-time-head,.calendar-week-head{min-height:44px}.calendar-week-slot{min-height:32px;padding:0}.calendar-empty-slot{width:100%;height:100%;min-height:32px;border:0;border-radius:0}.calendar-day-body-grid,.calendar-day-header-grid{grid-template-columns:80px repeat(var(--calendar-day-room-count,1),minmax(116px,1fr))}.calendar-day-body-grid .calendar-day-row-time,.calendar-day-body-grid .calendar-week-slot{min-height:32px}.calendar-day-body-grid .calendar-day-row-time{color:var(--color-text-muted);font-size:var(--font-size-caption);font-weight:var(--font-weight-medium)}.calendar-day-body-grid .calendar-agenda-button{padding:var(--space-1) var(--space-2)}.calendar-reference-booking-button .calendar-reference-button-icon,.calendar-reference-booking-button .calendar-reference-button-icon+span{display:inline-flex}.calendar-day-view{--calendar-time-col:80px}.calendar-day-body-grid,.calendar-day-header-grid{grid-template-columns:var(--calendar-time-col) repeat(var(--calendar-day-room-count,1),minmax(0,1fr));min-width:0;width:100%}.calendar-day-body-grid{align-content:start;grid-auto-rows:32px}.calendar-day-body-grid .calendar-day-row-time,.calendar-day-body-grid .calendar-empty-slot,.calendar-day-body-grid .calendar-week-slot{height:32px;min-height:32px}.calendar-day-body-grid .calendar-day-row-time{grid-column:auto;font-variant-numeric:tabular-nums;width:100%}.calendar-day-head.is-placeholder{color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.calendar-day-body-grid .calendar-empty-slot,.calendar-day-body-grid .calendar-week-slot{width:100%}.calendar-day-body-grid .calendar-agenda-button{height:30px;min-height:30px}.calendar-day-body-grid .calendar-agenda-button-day{padding:0 var(--space-2)}.calendar-day-body-grid .calendar-agenda-button-day .calendar-agenda-inline{font-size:.625rem}.calendar-period-nav{align-items:center;display:flex;gap:0;justify-content:flex-start}.calendar-period-nav .calendar-nav-button,.calendar-period-nav .calendar-period-label,.calendar-period-nav .calendar-today-button{min-height:36px}.calendar-period-nav .calendar-nav-button{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;display:inline-flex;font-size:var(--font-size-body);font-weight:var(--font-weight-bold);justify-content:center;width:38px}.calendar-period-nav .calendar-nav-button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.calendar-period-nav .calendar-nav-button+.calendar-period-label{border-left:0}.calendar-period-nav .calendar-period-label{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-left:0;border-radius:0;color:var(--color-text-primary);cursor:pointer;display:inline-flex;font-size:var(--font-size-small);font-weight:var(--font-weight-bold);gap:var(--space-2);min-width:196px;overflow:hidden;padding:0 var(--space-4);position:relative}.calendar-period-nav .calendar-period-label.is-picker-open{overflow:visible;z-index:30}.calendar-period-picker{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:50;width:280px;padding:10px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.14);overflow:visible}.calendar-period-picker-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.calendar-period-picker-title{font-size:13px;font-weight:700;color:#111827}.calendar-period-picker-nav-btn{width:28px;height:28px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:16px;line-height:1;cursor:pointer}.calendar-period-picker-nav-btn:hover{background:#f8fafc}.calendar-period-picker-weekdays{margin-bottom:4px;text-align:center;font-size:10px;font-weight:600;color:#9ca3af}.calendar-period-picker-grid,.calendar-period-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-period-picker-day-btn{height:32px;border:0;border-radius:8px;background:transparent;color:#111827;font-size:12px;font-weight:500;cursor:pointer}.calendar-period-picker-day-btn:hover{background:#f3f4f6}.calendar-period-picker-day-btn.is-outside{color:#d1d5db}.calendar-period-picker-day-btn.is-today{box-shadow:inset 0 0 0 1px #93c5fd}.calendar-period-picker-day-btn.is-selected{background:#2563eb;color:#fff}.calendar-period-picker-panel.is-week .calendar-period-picker-grid{display:flex;flex-direction:column;gap:2px}.calendar-period-picker-week-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;width:100%;padding:2px;border:1px solid transparent;border-radius:8px;background:transparent;cursor:pointer}.calendar-period-picker-week-row:hover{background:#f8fafc}.calendar-period-picker-week-row.is-selected{background:#eff6ff;border-color:#bfdbfe}.calendar-period-picker-day{display:flex;align-items:center;justify-content:center;height:28px;font-size:12px;font-weight:500;color:#111827}.calendar-period-picker-day.is-outside{color:#d1d5db}.calendar-period-picker-day.is-today{border-radius:999px;box-shadow:inset 0 0 0 1px #93c5fd}.calendar-period-picker-week-row.is-selected .calendar-period-picker-day:not(.is-outside){color:#1d4ed8;font-weight:700}.calendar-period-picker-months{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.calendar-period-picker-month-btn{height:36px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#111827;font-size:12px;font-weight:600;cursor:pointer}.calendar-period-picker-month-btn:hover{background:#f8fafc}.calendar-period-picker-month-btn.is-today{box-shadow:inset 0 0 0 1px #93c5fd}.calendar-period-picker-month-btn.is-selected{background:#2563eb;border-color:#2563eb;color:#fff}.calendar-period-nav .calendar-period-label+.calendar-nav-button{border-left:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.calendar-period-nav .calendar-nav-button:hover,.calendar-period-nav .calendar-period-label:hover,.calendar-period-nav .calendar-today-button:hover{background:var(--color-surface-subtle);border-color:var(--color-border-strong)}.calendar-period-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-date-shortcut-overlay{min-width:0;opacity:0;padding:0;pointer-events:none;z-index:1}.calendar-period-nav .calendar-today-button{margin-left:var(--space-3)}@media (min-width:901px){.calendar-content-grid,.calendar-day-view,.calendar-dynamic-view,.calendar-month-card,.calendar-page,.calendar-view,.calendar-view-month{min-height:0;width:100%}.calendar-content-grid{grid-template-columns:minmax(0,1fr);align-items:start}.calendar-side-panel{position:sticky;top:calc(var(--topbar-height) + var(--space-6))}}@media (max-width:1200px){.calendar-page{min-width:0;padding:0}.calendar-toolbar{flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;gap:10px!important}.calendar-toolbar-row,.calendar-toolbar-row-primary,.calendar-toolbar-row-secondary{width:100%!important;flex:0 0 auto!important;justify-content:flex-start}.calendar-content-grid,.calendar-dynamic-view,.calendar-month-card,.calendar-side-panel,.calendar-toolbar{min-width:0}.calendar-period-nav{width:100%;display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:0!important}.calendar-period-nav .calendar-nav-button{width:36px!important;min-width:36px!important;flex:0 0 36px!important}.calendar-period-nav .calendar-period-label{flex:0 1 auto!important;width:auto!important;min-width:0!important;max-width:min(220px,calc(100% - 120px))}.calendar-period-nav .calendar-today-button{flex:0 0 auto!important;margin-left:auto!important}.calendar-toolbar-controls{display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:center;width:100%;gap:8px;min-width:0}.calendar-view-tabs{min-width:0;flex:1 1 auto}.calendar-view-tab{min-height:40px}.calendar-filter{max-width:100%;min-width:0;flex:1 1 140px}}@media (max-width:640px){.calendar-page{overflow-x:hidden}.calendar-toolbar{gap:10px!important;padding:var(--space-3)}.calendar-period-nav{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;width:100%;gap:0!important}.calendar-period-nav .calendar-nav-button{width:36px!important;min-width:36px!important;flex:0 0 36px!important;border-radius:0}.calendar-period-nav .calendar-nav-button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.calendar-period-nav .calendar-period-label{flex:0 1 auto!important;width:auto!important;min-width:0!important;max-width:min(200px,calc(100% - 120px));border-radius:0!important;border-left:0!important}.calendar-period-nav .calendar-period-label+.calendar-nav-button{border-left:0;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.calendar-period-nav .calendar-nav-button+.calendar-today-button,.calendar-period-nav .calendar-today-button{width:auto!important;min-width:72px;margin-left:auto!important;border-radius:var(--radius-sm)!important;flex:0 0 auto!important}.calendar-toolbar-controls{display:flex!important;flex-direction:row!important;flex-wrap:wrap;align-items:center;width:100%;gap:8px}.calendar-view-tabs{width:100%}.calendar-filter,.calendar-room-select{flex:1 1 auto;min-width:0;max-width:100%}.calendar-agenda-card,.calendar-month-card,.calendar-summary-card{min-width:0}.calendar-view-month{min-width:0;overflow-x:auto;overflow-y:auto}.calendar-month-grid,.calendar-weekday-row{min-width:38rem}.calendar-month-grid,.calendar-weekday-row{width:-moz-max-content;width:max-content}.calendar-month-grid{min-height:648px;grid-template-columns:repeat(7,minmax(5.25rem,1fr));grid-template-rows:repeat(6,minmax(108px,1fr))}.calendar-day-cell{min-height:108px;padding:var(--space-2)}.calendar-dynamic-view{min-width:0;overflow-x:auto;overflow-y:auto}.calendar-day-view,.calendar-week-view{min-width:0;overflow-x:auto;overflow-y:hidden}.calendar-day-body-grid,.calendar-day-grid,.calendar-day-header-grid,.calendar-week-grid{min-width:-moz-max-content;min-width:max-content}.calendar-week-grid{width:-moz-max-content;width:max-content;grid-template-columns:4.5rem repeat(7,minmax(5.25rem,1fr))}.calendar-day-view{width:100%}.calendar-day-body-grid,.calendar-day-header-grid{width:-moz-max-content;width:max-content}.calendar-day-view{--calendar-time-col:4.5rem}.calendar-day-body-grid,.calendar-day-header-grid{grid-template-columns:var(--calendar-time-col) repeat(var(--calendar-day-room-count,1),minmax(6rem,1fr))}.calendar-page{padding:0}.calendar-month-grid{min-height:600px;grid-template-rows:repeat(6,minmax(100px,1fr))}.calendar-day-cell{min-height:100px;padding:var(--space-1)}.calendar-day-count,.calendar-event-chip span{display:none}.calendar-summary-grid{grid-template-columns:1fr}.calendar-reference-agenda-modal{width:min(40rem,calc(100vw - 2rem));max-width:calc(100vw - 2rem)}}.calendar-time-view{display:flex;flex-direction:column;overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.calendar-time-header-grid{display:grid;grid-template-columns:72px repeat(var(--calendar-time-col-count,var(--calendar-day-room-count,1)),minmax(100px,1fr));gap:0;border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle);position:sticky;top:0;z-index:5;flex-shrink:0}.calendar-day-header-grid.calendar-time-header-grid{grid-template-columns:72px repeat(var(--calendar-day-room-count,1),minmax(100px,1fr))}.calendar-week-header-grid{grid-template-columns:72px repeat(7,minmax(92px,1fr))}.calendar-time-head-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;padding:8px 6px;border-right:1px solid var(--color-border-subtle);text-align:center}.calendar-time-head-cell:last-child{border-right:0}.calendar-time-head-cell strong{display:inline-flex;align-items:center;gap:6px;font-size:var(--font-size-small);font-weight:700;color:var(--color-text-primary)}.calendar-time-head-cell strong span{font-size:inherit;font-weight:700;color:inherit}.calendar-day-room-head strong,.calendar-week-head strong{font-size:var(--font-size-small);font-weight:700}.calendar-time-head-cell span{font-size:11px;color:var(--color-text-secondary);font-weight:var(--font-weight-regular)}.calendar-time-head-cell.is-today{background:var(--color-primary);color:#fff}.calendar-time-head-cell.is-today span{color:rgba(255,255,255,.9)}.calendar-time-head-cell .is-today-date{color:#fff;font-weight:var(--font-weight-bold)}.calendar-day-room-cap{font-size:10px!important;color:var(--color-text-muted)!important}.calendar-time-body-scroll{flex:1;min-height:0;overflow:auto}.calendar-time-frame{position:relative;display:grid;min-width:-moz-max-content;min-width:max-content;width:100%}.calendar-week-frame{grid-template-columns:72px repeat(7,minmax(92px,1fr))}.calendar-day-frame{grid-template-columns:72px repeat(var(--calendar-day-room-count,1),minmax(100px,1fr))}.calendar-time-gutter{position:relative;border-right:1px solid var(--color-border);background:var(--color-surface)}.calendar-time-gutter-label{position:absolute;left:0;right:0;height:var(--calendar-time-row-height,32px);display:flex;align-items:flex-start;justify-content:center;padding-top:2px;color:var(--color-text-secondary);font-size:11px;font-weight:var(--font-weight-semibold);border-bottom:1px solid var(--color-border-subtle);box-sizing:border-box}.calendar-time-day-col{position:relative;border-right:1px solid var(--color-border-subtle);background:repeating-linear-gradient(to bottom,var(--color-surface),var(--color-surface) calc(var(--calendar-time-row-height, 32px) - 1px),var(--color-border-subtle) calc(var(--calendar-time-row-height, 32px) - 1px),var(--color-border-subtle) var(--calendar-time-row-height,32px))}.calendar-time-day-col:last-child{border-right:0}.calendar-time-slot-bg{position:absolute;left:0;right:0;margin:0;padding:0;border:0;background:transparent;cursor:pointer}.calendar-time-slot-bg:hover:not(:disabled){background:rgba(37,99,235,.06)}.calendar-time-slot-bg:disabled{cursor:default}.calendar-span-event{position:absolute;z-index:2;display:flex;flex-direction:column;gap:2px;overflow:hidden;margin:0;padding:6px 8px;text-align:left;border:1px solid var(--color-border);border-radius:10px;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.06)}.calendar-span-event.room-1{color:var(--room-color-1);background:var(--room-color-1-subtle);border-color:var(--room-color-1-border)}.calendar-span-event.room-2{color:var(--room-color-2);background:var(--room-color-2-subtle);border-color:var(--room-color-2-border)}.calendar-span-event.room-3{color:var(--room-color-3);background:var(--room-color-3-subtle);border-color:var(--room-color-3-border)}.calendar-span-event.room-4{color:var(--room-color-4);background:var(--room-color-4-subtle);border-color:var(--room-color-4-border)}.calendar-span-event.room-5{color:var(--room-color-5);background:var(--room-color-5-subtle);border-color:var(--room-color-5-border)}.calendar-span-event.room-6{color:var(--room-color-6);background:var(--room-color-6-subtle);border-color:var(--room-color-6-border)}.calendar-span-event.is-hex{color:var(--room-accent);background:var(--room-accent-soft);border-color:var(--room-accent)}.calendar-span-event-time{font-size:10px;font-weight:var(--font-weight-bold);line-height:1.2;opacity:.9}.calendar-span-event-title{font-size:12px;font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.calendar-span-event-room,.calendar-span-event-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-span-event-room{font-size:11px;font-weight:var(--font-weight-semibold);opacity:.95}.calendar-span-event-meta{font-size:11px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-span-event.is-compact .calendar-span-event-meta,.calendar-span-event.is-narrow .calendar-span-event-meta,.calendar-span-event.is-narrow .calendar-span-event-room{display:none}.calendar-now-line{position:absolute;left:72px;right:0;z-index:4;height:0;border-top:2px solid #ef4444;pointer-events:none}.calendar-now-badge{left:-72px;top:-9px;width:64px;padding:1px 0;color:#fff;background:#ef4444;border-radius:999px;text-align:center}.calendar-now-badge,.calendar-overlap-more{position:absolute;font-size:10px;font-weight:700}.calendar-overlap-more{right:4px;z-index:3;min-height:22px;padding:2px 8px;color:var(--color-primary);background:var(--color-surface);border:1px solid var(--color-primary-border);border-radius:999px;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.08)}.calendar-overlap-more:hover{background:var(--color-primary-subtle)}.calendar-month-view{display:flex;flex:1;flex-direction:column;min-height:0;overflow:auto}.calendar-time-view{flex:1;min-height:0}.calendar-workspace{align-items:stretch;flex:1 1 auto;width:100%}.calendar-main-column,.calendar-workspace{display:flex;gap:var(--space-3);min-width:0;min-height:0;height:100%;overflow:hidden}.calendar-main-column{flex-direction:column;flex:1 1 auto}.calendar-main-column>.calendar-toolbar{flex-shrink:0;width:100%}.calendar-main-column>.calendar-month-card{flex:1 1 auto;min-width:0;min-height:0;height:auto;overflow:hidden}.calendar-workspace>.calendar-month-card{flex:1 1 auto;min-width:0;min-height:0;height:100%}.calendar-detail-drawer{flex:0 0 0;width:0;max-width:0;overflow:hidden;border-left:0;background:var(--color-surface);transition:flex-basis .18s ease,max-width .18s ease;align-self:stretch;display:flex;flex-direction:column;min-height:0;height:100%}.calendar-detail-drawer.is-open{display:flex}.calendar-page.has-detail-drawer .calendar-workspace{min-height:0;height:100%;align-items:stretch}.calendar-page.has-detail-drawer .calendar-month-card{min-height:0;height:100%}.calendar-detail-drawer-inner{flex:1 1 auto;min-height:0;height:100%;display:flex;flex-direction:column;overflow:hidden}.calendar-detail-panel{flex:1 1 auto}.calendar-detail-panel-header{display:grid;gap:8px}.calendar-detail-panel-heading{gap:8px}.calendar-detail-panel-close{border:0;background:transparent;color:var(--color-text-secondary);font-size:1.25rem;line-height:1;cursor:pointer;padding:0 2px}.calendar-detail-badge{display:inline-flex;width:-moz-max-content;width:max-content;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.03em}.calendar-detail-badge.is-tentative{color:#c2410c;background:#fff7ed;border:1px dashed #fb923c}.calendar-detail-panel-body{gap:0;padding-top:0}.calendar-detail-info-row{display:flex;align-items:flex-start;gap:10px}.calendar-detail-info-content{min-width:0;flex:1 1 auto;display:grid;gap:2px}.calendar-detail-info-label{color:var(--color-text-muted);font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase}.calendar-detail-info-value-row{display:flex;align-items:center;gap:6px}.calendar-detail-info-value{color:var(--color-text-primary);font-size:13px;font-weight:var(--font-weight-semibold);line-height:1.35;word-break:break-word}.calendar-detail-copy{border:0;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:12px;line-height:1;padding:2px}.calendar-detail-meta-row{display:flex;align-items:flex-start;color:var(--color-text-primary);font-size:13px}.calendar-detail-meta-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 auto;border-radius:8px;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0}.calendar-detail-meta-icon.is-location{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.calendar-detail-meta-icon.is-date{color:#7c3aed;background:#f5f3ff;border-color:#ddd6fe}.calendar-detail-meta-icon.is-time{color:#0891b2;background:#ecfeff;border-color:#a5f3fc}.calendar-detail-meta-icon.is-person{color:#db2777;background:#fdf2f8;border-color:#fbcfe8}.calendar-detail-meta-icon.is-id{color:#475569;background:#f8fafc;border-color:#e2e8f0}.calendar-detail-meta-icon.is-agenda{color:#4f46e5;background:#eef2ff;border-color:#c7d2fe}.calendar-detail-meta-icon.is-status{color:#059669;background:#ecfdf5;border-color:#a7f3d0}.calendar-detail-section{display:grid;gap:6px}.calendar-detail-section-label{color:var(--color-text-muted);font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.04em}.calendar-detail-field-value{font-size:13px}.calendar-detail-secondary{color:var(--color-text-secondary);font-size:11px;line-height:1.35}.calendar-detail-created{color:var(--color-text-muted);font-size:11px}.calendar-detail-status-pill{width:-moz-max-content;width:max-content;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:var(--font-weight-bold);letter-spacing:.02em}.calendar-detail-status-pill.is-confirmed{color:#047857;background:#ecfdf5}.calendar-detail-status-pill.is-tentative{background:#fff7ed;border:1px solid #fdba74}.calendar-detail-status-pill.is-completed{color:#047857;background:#ecfdf5}.calendar-detail-status-pill.is-cancelled{background:#fef2f2}.calendar-detail-tentative{padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px solid var(--color-border-subtle)}.calendar-detail-switch-row{gap:10px;font-size:13px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.calendar-detail-switch{width:42px;height:24px;background:#cbd5e1}.calendar-detail-switch span{width:20px;height:20px;box-shadow:0 1px 2px rgba(15,23,42,.2)}.calendar-detail-switch[aria-checked=true]{background:#2563eb}.calendar-detail-switch[aria-checked=true] span{transform:translateX(18px)}.calendar-detail-switch:disabled{opacity:.55;cursor:not-allowed}.calendar-detail-hint{margin:8px 0 0;padding:8px 10px;border-radius:10px;background:#eff6ff;color:#1d4ed8;font-size:11px;line-height:1.4}.calendar-detail-actions{padding-top:14px;border-top:var(--border-width-default) solid var(--color-border-subtle)}.calendar-detail-actions .button{width:100%;min-height:38px;font-size:13px}.calendar-span-event.is-tentative{border-style:dashed!important;opacity:.92;box-shadow:none}.calendar-span-event.is-tentative.is-hex{background:color-mix(in srgb,var(--room-accent-soft) 55%,transparent)}.calendar-span-event-tentative{position:absolute;top:4px;right:6px;display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:4px;border:1px dashed;font-size:9px;font-weight:var(--font-weight-bold);line-height:1;opacity:.85}.calendar-date-shortcut-overlay{position:absolute;inset:0;width:100%;height:100%;opacity:.01;cursor:pointer;z-index:3;border:0;background:transparent;color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.calendar-period-label{position:relative;cursor:pointer}@media (max-width:900px){.calendar-workspace{flex-direction:column}.calendar-detail-drawer.is-open{flex:0 0 auto;width:100%;max-width:100%;border-left:0;border-top:var(--border-width-default) solid var(--color-border);max-height:min(60vh,520px)}}.booking-cancel-request-modal.modal-dialog,.booking-edit-request-modal.modal-dialog{width:min(720px,calc(100vw - 1.5rem));max-width:720px}.booking-cancel-request-modal.modal-dialog{width:min(440px,calc(100vw - 1.5rem));max-width:440px}.booking-cancel-request-modal .modal-body,.booking-edit-request-modal .modal-body{padding:16px 20px}.booking-cancel-request-modal .modal-footer,.booking-edit-request-modal .modal-footer{padding:12px 20px}.booking-edit-compare{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.15fr);gap:14px;align-items:start}.booking-edit-col-title{margin:0 0 10px;color:var(--color-text-muted);font-size:11px;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase}.booking-edit-current,.booking-edit-proposed{min-width:0}.booking-edit-arrow{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-top:48px;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:14px;font-weight:700}.booking-current-summary{margin-bottom:12px}.booking-current-summary-icon{width:16px;height:16px;margin-top:2px;border-radius:4px;background:var(--color-surface-subtle);border:1px solid var(--color-border)}.booking-edit-slot-head strong{color:var(--color-text-secondary);font-size:12px}.booking-edit-slot-chips{display:flex;flex-wrap:wrap;gap:6px}.booking-edit-slot-empty{color:var(--color-text-muted);font-size:12px}.booking-form-notice{margin-top:8px}.booking-cancel-modal-body .booking-request-panel{display:grid;gap:14px}@media (max-width:720px){.booking-edit-compare{grid-template-columns:1fr}.booking-edit-arrow{margin:0 auto;transform:rotate(90deg)}}.calendar-edit-panel{display:flex;flex-direction:column;gap:0;flex:1 1 auto;min-height:0;height:100%;box-sizing:border-box;overflow:hidden}.calendar-edit-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 16px 12px;border-bottom:1px solid var(--color-border-subtle)}.calendar-edit-panel-heading{display:flex;align-items:flex-start;gap:10px;min-width:0}.calendar-edit-panel-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:0 0 auto;border-radius:10px;color:#fff;background:#7c3aed}.calendar-edit-panel-titles{min-width:0}.calendar-edit-panel-title{margin:0;font-size:15px;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);line-height:1.25}.calendar-edit-panel-subtitle{margin:2px 0 0;color:#4f46e5;font-size:12px;line-height:1.35}.calendar-edit-panel-body{display:grid;gap:14px;padding:14px 16px;flex:1 1 auto;min-height:0;overflow-y:auto;align-content:start}.calendar-edit-current-card{padding:12px 14px;border-radius:14px;background:#f8fafc;border:1px solid #e2e8f0}.calendar-edit-down-arrow{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin:0 auto;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:13px;font-weight:700}.calendar-edit-proposed{display:grid;gap:4px}.calendar-edit-panel-actions{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid var(--color-border-subtle);background:var(--color-surface);margin-top:auto;flex-shrink:0}.calendar-edit-panel-actions .button{min-height:38px;font-size:13px}.booking-current-summary{display:grid;gap:10px}.booking-current-summary-row{display:flex;align-items:flex-start;gap:10px;color:var(--color-text-primary);font-size:13px;line-height:1.35}.booking-current-summary-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex:0 0 auto;margin-top:1px;border-radius:6px;color:#64748b;background:transparent;border:0;font-size:14px}.booking-current-summary-icon.is-location:before{content:"📍"}.booking-current-summary-icon.is-date:before{content:"📅"}.booking-current-summary-icon.is-time:before{content:"🕒"}.booking-current-summary-icon.is-person:before{content:"👤"}.booking-current-summary-icon.is-id:before{content:"#";font-weight:700;color:#64748b}.booking-edit-fields{display:grid;gap:12px;grid-template-columns:1fr}.booking-edit-fields .form-field{margin:0}.booking-edit-fields .form-label{font-size:12px;font-weight:600}.booking-edit-fields .form-control{min-height:38px;font-size:13px}.booking-edit-time-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.booking-edit-slot-panel{display:grid;gap:8px;padding:10px 12px;border-radius:12px;background:#f8fafc;border:1px solid var(--color-border-subtle)}.booking-edit-slot-chip{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer}.booking-form-notice{margin:0;padding:10px 12px;border-radius:10px;background:#eff6ff;color:#1e40af;font-size:12px;line-height:1.4}.calendar-edit-panel-icon.is-cancel{background:#ef4444}.calendar-edit-panel-subtitle.is-cancel{color:#ef4444}.calendar-cancel-tentative-meta{display:grid;gap:4px}.calendar-cancel-tentative-row{display:flex;align-items:center;gap:8px}.calendar-cancel-tentative-label{color:var(--color-text-primary);font-size:13px;font-weight:var(--font-weight-semibold)}.calendar-cancel-tentative-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:var(--font-weight-bold)}.calendar-cancel-tentative-badge.is-on{color:#047857;background:#ecfdf5}.calendar-cancel-tentative-badge.is-on:before{content:"";width:7px;height:7px;border-radius:50%;background:#10b981}.calendar-cancel-tentative-badge.is-off{color:#64748b;background:#f1f5f9}.calendar-cancel-tentative-updated{color:#6366f1;font-size:11px}.calendar-cancel-reason-count{margin-top:-6px;text-align:right;color:var(--color-text-muted);font-size:11px}.calendar-cancel-panel .calendar-edit-panel-actions .button.button-danger,.calendar-cancel-panel .calendar-edit-panel-actions .button[data-variant=danger]{background:#ef4444;border-color:#ef4444}.calendar-detail-actions .calendar-detail-cancel-btn,.calendar-detail-cancel-btn.is-outline-danger{color:#dc2626!important;background:#fff!important;border:1px solid #fecaca!important}.calendar-detail-cancel-btn.is-outline-danger:hover{background:#fef2f2!important}.calendar-detail-edit-btn{color:#2563eb!important;background:#fff!important;border:1px solid #bfdbfe!important}.calendar-detail-meta-text{color:var(--color-text-primary);font-size:13px;line-height:1.4}.calendar-detail-panel-header{padding-bottom:4px}.calendar-detail-badge.is-tentative{color:#047857;background:#ecfdf5;border:1px dashed #34d399}.app-shell.has-calendar-detail .app-topbar{right:340px}.app-shell.has-calendar-detail .app-main-content{padding-right:340px}.calendar-detail-drawer.is-open{position:fixed;top:var(--topbar-height);right:0;bottom:0;flex:none!important;z-index:calc(var(--z-sticky) - 1);border:0;border-left:1px solid var(--color-border);border-radius:0;box-shadow:none}.calendar-detail-id-muted{margin-top:2px;color:var(--color-text-muted);font-size:11px;font-weight:var(--font-weight-medium);letter-spacing:.01em}.calendar-detail-panel-header{display:flex;flex-direction:column;align-items:stretch;gap:0;padding-bottom:0;border-bottom:0}.calendar-detail-panel-header .calendar-detail-status-pill{margin-top:14px;align-self:flex-start}.calendar-detail-schedule{display:grid;gap:10px;margin-top:16px}.calendar-detail-fields{display:grid;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid var(--color-border-subtle)}.calendar-detail-field-block{display:grid;gap:2px}.calendar-detail-field-label{color:var(--color-text-muted);font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase}.calendar-detail-field-value{color:var(--color-text-primary);font-size:14px;font-weight:var(--font-weight-semibold);line-height:1.35}.calendar-detail-tentative{margin-top:16px;padding:12px}.calendar-detail-meta-row{gap:10px}.calendar-detail-meta-text{font-size:13.5px;font-weight:var(--font-weight-medium)}.calendar-detail-panel-topbar{display:flex;align-items:center;gap:12px;flex-shrink:0;height:var(--topbar-height);min-height:var(--topbar-height);padding:0 16px;box-sizing:border-box;background:#eef2ff;border-bottom:1px solid #e0e7ff}.calendar-detail-panel-topbar-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:0 0 auto;border-radius:12px;color:#fff;background:#7c3aed}.calendar-detail-panel-topbar-titles{min-width:0;flex:1 1 auto}.calendar-detail-panel-topbar .calendar-detail-panel-title{margin:0;font-size:20px;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);line-height:1.2}.calendar-detail-panel-subtitle,.calendar-detail-panel-topbar .calendar-detail-panel-subtitle{margin:2px 0 0;color:#4f46e5;font-size:12px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-detail-panel-topbar .calendar-detail-panel-close{flex:0 0 auto;width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:#64748b;font-size:1.35rem;line-height:1;cursor:pointer}.calendar-detail-panel-topbar .calendar-detail-panel-close:hover{background:rgba(15,23,42,.06);color:#0f172a}.calendar-detail-panel-body{padding:16px 18px 12px}.calendar-detail-panel-body>.calendar-detail-status-pill{margin:0 0 14px;align-self:flex-start}.calendar-detail-schedule{margin-top:0}.calendar-detail-fields{margin-top:14px}.calendar-detail-actions{padding:14px 18px 16px}.app-shell.has-calendar-detail .app-topbar{right:0}.app-shell.has-calendar-detail .app-main-content{padding-right:var(--page-padding-x)}.calendar-page.has-detail-drawer .calendar-workspace{gap:0}.calendar-detail-drawer.is-open{position:relative!important;top:auto!important;right:auto!important;bottom:auto!important;flex:0 0 340px!important;width:340px!important;max-width:340px!important;height:100%!important;align-self:stretch;z-index:1;border:0!important;border-left:1px solid var(--color-border)!important;border-radius:0!important;box-shadow:none!important;background:var(--color-surface);overflow:hidden}.calendar-detail-panel{display:flex;flex-direction:column;gap:0;padding:0;height:100%;min-height:0;overflow:hidden;box-sizing:border-box}.calendar-detail-panel-header{flex-shrink:0;padding:14px 16px 12px;border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface)}.calendar-detail-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.calendar-detail-panel-heading-left{display:flex;align-items:flex-start;gap:10px;min-width:0}.calendar-detail-panel-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;flex:0 0 auto;border-radius:10px;color:#fff;background:#7c3aed}.calendar-detail-panel-titles{min-width:0}.calendar-detail-panel-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.calendar-detail-panel-title{margin:0;font-size:16px;font-weight:var(--font-weight-extrabold);color:var(--color-text-primary);line-height:1.25}.calendar-detail-panel-subtitle{margin:3px 0 0;color:#6366f1;font-size:12px;line-height:1.35}.calendar-detail-panel-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;min-height:0;overflow-y:auto;padding:12px 14px}.calendar-detail-card{display:grid;gap:10px;padding:12px;border:1px solid var(--color-border-subtle);border-radius:12px;background:#fafbfc}.calendar-detail-card-title{color:var(--color-text-muted);font-size:11px;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase}.calendar-detail-icon-value-row{display:flex;align-items:flex-start;gap:10px}.calendar-detail-icon-value-content{min-width:0;display:grid;gap:1px}.calendar-detail-icon-value-text{color:var(--color-text-primary);font-size:13px;font-weight:var(--font-weight-semibold);line-height:1.35}.calendar-detail-icon-value-label{color:var(--color-text-muted);font-size:11px;line-height:1.3}.calendar-detail-extra-id-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-detail-extra-label{color:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-medium)}.calendar-detail-extra-id-value{display:inline-flex;align-items:center;gap:6px;color:var(--color-text-primary);font-size:12px;font-weight:var(--font-weight-semibold)}.calendar-detail-actions{display:grid;gap:8px;flex-shrink:0;margin-top:auto;padding:12px 14px 14px;border-top:1px solid var(--color-border-subtle)}.calendar-detail-admin-note{margin:4px 0 0;color:var(--color-text-muted);font-size:11px;text-align:center;line-height:1.35}.calendar-detail-panel-topbar{display:none}.calendar-booking-cancel-modal.modal-dialog,.calendar-booking-edit-modal.modal-dialog,.calendar-booking-info-modal.modal-dialog{width:min(480px,calc(100vw - 1rem));max-width:480px;max-height:min(92vh,760px);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px rgba(15,23,42,.25)}.calendar-booking-edit-modal.modal-dialog{width:min(620px,calc(100vw - 1rem));max-width:620px}.calendar-booking-cancel-modal .modal-header,.calendar-booking-edit-modal .modal-header,.calendar-booking-info-modal .modal-header{align-items:flex-start;padding:16px 18px 12px;border-bottom:1px solid #f3f4f6;gap:12px;flex-shrink:0}.calendar-booking-cancel-modal .modal-heading,.calendar-booking-edit-modal .modal-heading,.calendar-booking-info-modal .modal-heading{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;-moz-column-gap:12px;column-gap:12px;row-gap:2px;flex:1;min-width:0;align-items:start}.calendar-booking-edit-modal .modal-heading:before,.calendar-booking-info-modal .modal-heading:before{content:"";grid-column:1;grid-row:1/span 2;width:40px;height:40px;border-radius:10px;background:#7c3aed url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z'/%3E%3C/svg%3E") 50%/20px no-repeat;box-shadow:0 1px 2px rgba(0,0,0,.06);align-self:start}.calendar-booking-cancel-modal .modal-heading:before{content:"";grid-column:1;grid-row:1/span 2;width:40px;height:40px;border-radius:10px;background:#ef4444 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Cpath d='M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z'/%3E%3C/svg%3E") 50%/20px no-repeat;box-shadow:0 1px 2px rgba(0,0,0,.06);align-self:start}.calendar-booking-cancel-modal .modal-title,.calendar-booking-edit-modal .modal-title,.calendar-booking-info-modal .modal-title{grid-column:2;grid-row:1;font-size:18px;font-weight:700;line-height:1.25;color:#111827;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-booking-info-modal .modal-description{grid-column:2;grid-row:2;margin:0;color:#7c3aed;font-size:12px;font-weight:600;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-booking-cancel-modal .modal-description,.calendar-booking-edit-modal .modal-description{grid-column:2;grid-row:2;margin:0;color:#6b7280;font-size:12px;font-weight:400;line-height:1.35;white-space:normal}.calendar-booking-cancel-modal .modal-body,.calendar-booking-edit-modal .modal-body,.calendar-booking-info-modal .modal-body{padding:12px 18px 16px;overflow-y:auto;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch}.calendar-booking-cancel-modal .modal-footer,.calendar-booking-edit-modal .modal-footer{border-top:0;padding:0 18px 16px;flex-shrink:0}.calendar-info-modal-body{display:flex;flex-direction:column;gap:12px}.calendar-info-divider{border:0;border-top:1px solid #f3f4f6;margin:0}.calendar-info-schedule{display:grid;gap:10px}.calendar-info-schedule .calendar-detail-meta-row{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:500;color:#1f2937}.calendar-info-schedule .calendar-detail-meta-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.calendar-info-schedule .calendar-detail-meta-icon.is-location{color:#3b82f6}.calendar-info-schedule .calendar-detail-meta-icon.is-date{color:#a78bfa}.calendar-info-schedule .calendar-detail-meta-icon.is-time{color:#2dd4bf}.calendar-info-schedule .calendar-detail-meta-icon svg{width:20px;height:20px}.calendar-detail-status-pill{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.calendar-detail-status-pill.is-completed,.calendar-detail-status-pill.is-confirmed{background:#dcfce7;color:#15803d;border:0}.calendar-detail-status-pill.is-tentative{background:#ffedd5;color:#c2410c;border:1px dashed #fb923c}.calendar-detail-status-pill.is-cancelled{background:#fee2e2;color:#b91c1c}.calendar-info-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.calendar-info-fields .calendar-detail-field-label{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6b7280;margin-bottom:2px}.calendar-info-fields .calendar-detail-field-value{font-size:12px;font-weight:600;color:#1f2937}.calendar-info-modal-body>.calendar-detail-tentative{margin-top:0;gap:6px;padding:8px 10px;border:1px solid #f3f4f6;border-radius:8px;background:#fafafa}.calendar-info-modal-body .calendar-detail-section-label{font-size:10px;margin-bottom:6px}.calendar-detail-section-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6b7280;margin-bottom:12px}.calendar-detail-switch-row{display:flex;align-items:center;gap:8px}.calendar-detail-switch{position:relative;width:36px;height:18px;border-radius:999px;border:0;background:#e5e7eb;padding:0;cursor:pointer;flex-shrink:0}.calendar-detail-switch.is-on{background:#22c55e}.calendar-detail-switch.is-locked,.calendar-detail-switch:disabled{cursor:not-allowed;opacity:.95}.calendar-detail-switch span{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.15);transition:transform .15s ease}.calendar-detail-switch.is-on span,.calendar-detail-switch[aria-checked=true] span{transform:translateX(18px)}.calendar-detail-switch-label{font-size:12px;font-weight:500;color:#1f2937}.calendar-info-modal-body .calendar-info-notice{margin-top:6px;padding:6px 8px;font-size:11px;gap:8px}.calendar-info-modal-body .calendar-info-notice-icon{width:16px;height:16px;flex-basis:16px;background-size:12px}.calendar-info-notice{display:flex;gap:10px;align-items:flex-start;margin-top:8px;padding:10px 12px;border-radius:8px;border:1px solid #dbeafe;background:rgba(239,246,255,.7);color:#1d4ed8;font-size:13px;line-height:1.35}.calendar-info-notice p{margin:0}.calendar-info-notice-icon{flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:#3b82f6 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='white'%3E%3Cpath fill-rule='evenodd' d='M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z' clip-rule='evenodd'/%3E%3C/svg%3E") 50%/14px no-repeat}.calendar-info-actions{display:grid;gap:8px;padding-top:4px}.calendar-info-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:9px 14px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;background:#fff;transition:background .15s ease}.calendar-info-btn-edit{border:1px solid #3b82f6;color:#2563eb}.calendar-info-btn-edit:hover{background:#eff6ff}.calendar-info-btn-cancel{border:1px solid #ef4444;color:#ef4444}.calendar-info-btn-cancel:hover{background:#fef2f2}.calendar-info-btn-edit .calendar-info-btn-icon{width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%232563eb' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536 3.536L6.5 21.036H3v-3.572L16.732 3.732z'/%3E%3C/svg%3E") 50%/16px no-repeat}.calendar-info-btn-cancel .calendar-info-btn-icon{width:16px;height:16px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%23ef4444' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16'/%3E%3C/svg%3E") 50%/16px no-repeat}.calendar-edit-modal-body{display:grid;gap:12px}.calendar-edit-compare-table{display:grid;gap:0;border:1px solid #e5e7eb;border-radius:12px;padding:12px;background:#fff}.calendar-edit-compare-head{display:grid;grid-template-columns:88px 1fr 1fr;gap:10px;align-items:center;padding-bottom:8px;margin-bottom:2px;border-bottom:1px solid #e5e7eb;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.calendar-edit-compare-head-current{color:#2563eb;text-align:left}.calendar-edit-compare-head-proposed{color:#6b7280;text-align:left}.calendar-edit-compare-row{display:grid;grid-template-columns:88px 1fr 1fr;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #f3f4f6}.calendar-edit-compare-row:last-child{border-bottom:0;padding-bottom:0}.calendar-edit-compare-label{color:#374151;font-size:13px;font-weight:600}.calendar-edit-compare-current{color:#1f2937;font-size:13px;font-weight:500;text-align:left}.calendar-edit-slot-row{grid-column:1/-1;padding:6px 0 4px}.calendar-edit-compare-table>.calendar-edit-slot-row{display:block;width:100%;border-bottom:1px solid #f3f4f6;margin:0}.booking-edit-slot-panel.calendar-edit-slot-panel,.calendar-edit-slot-panel{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 10px;border:1px solid #e5e7eb;border-radius:10px;background:#f8fafc}.booking-edit-slot-panel.calendar-edit-slot-panel .booking-edit-slot-head,.calendar-edit-slot-panel .booking-edit-slot-head{flex:0 0 auto;font-size:12px;color:#374151}.booking-edit-slot-panel.calendar-edit-slot-panel .booking-edit-slot-chips,.calendar-edit-slot-panel .booking-edit-slot-chips{display:flex;flex-wrap:wrap;gap:6px;flex:1 1 auto;min-width:0}.booking-edit-slot-panel.calendar-edit-slot-panel .booking-edit-slot-chip,.calendar-edit-slot-panel .booking-edit-slot-chip{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer}.booking-edit-slot-panel.calendar-edit-slot-panel .booking-edit-slot-chip.is-active,.calendar-edit-slot-panel .booking-edit-slot-chip.is-active{background:#2563eb;border-color:#2563eb;color:#fff}.booking-edit-slot-panel.calendar-edit-slot-panel .booking-edit-slot-empty,.calendar-edit-slot-panel .booking-edit-slot-empty{font-size:12px;color:#6b7280}.calendar-edit-compare-proposed .form-field{margin:0}.calendar-edit-compare-proposed .form-label{font-size:10px;color:#6b7280}.calendar-edit-time-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.calendar-edit-reason-wrap{display:grid;gap:4px;margin-top:0}.calendar-edit-modal-body>.calendar-info-notice{margin-top:0}.calendar-edit-reason-count{text-align:right;color:#9ca3af;font-size:12px}.calendar-edit-modal-footer{display:flex;justify-content:flex-end;align-items:center;gap:12px;width:100%}.calendar-edit-modal-footer .button{min-width:180px;justify-content:center}.calendar-booking-edit-modal .calendar-edit-modal-footer .button.button-secondary,.calendar-booking-edit-modal .calendar-edit-modal-footer .button[data-variant=secondary]{border:1px solid #3b82f6;color:#2563eb;background:#fff}.calendar-booking-cancel-modal .calendar-edit-modal-footer .button.button-secondary,.calendar-booking-cancel-modal .calendar-edit-modal-footer .button[data-variant=secondary]{border:1px solid #ef4444;color:#ef4444;background:#fff}.calendar-booking-cancel-modal .calendar-edit-modal-footer .button.button-danger,.calendar-booking-cancel-modal .calendar-edit-modal-footer .button[data-variant=danger]{background:#ef4444;border-color:#ef4444;color:#fff}.calendar-cancel-modal-body{display:grid;gap:12px}.calendar-cancel-modal-body>.calendar-info-notice{margin-top:0}.calendar-cancel-summary{display:grid;gap:10px;border:1px solid #e5e7eb;border-radius:12px;padding:14px 16px;background:rgba(249,250,251,.6)}.calendar-cancel-summary-row{display:grid;grid-template-columns:110px 12px 1fr;gap:8px;align-items:center;font-size:14px;border:0;padding:0}.calendar-cancel-summary-label{display:inline-flex;align-items:center;gap:8px;color:#4b5563;font-weight:500;min-width:0}.calendar-cancel-summary-sep{color:#9ca3af}.calendar-cancel-summary-value{color:#1f2937;font-weight:500}.calendar-cancel-summary .calendar-detail-meta-icon{width:16px;height:16px;color:#3b82f6}.calendar-cancel-summary-row:nth-child(2) .calendar-detail-meta-icon{color:#a78bfa}.calendar-cancel-summary-row:nth-child(3) .calendar-detail-meta-icon{color:#6b7280}.calendar-booking-cancel-modal .booking-notice,.calendar-booking-edit-modal .booking-notice,.calendar-cancel-modal-body .calendar-info-notice,.calendar-edit-modal-body .calendar-info-notice{display:flex;gap:10px;align-items:flex-start;margin-top:0;padding:10px 12px;border-radius:8px;border:1px solid #dbeafe;background:rgba(239,246,255,.7);color:#1d4ed8;font-size:13px}.calendar-cancel-modal-body>*+.calendar-info-notice,.calendar-cancel-modal-body>.calendar-edit-reason-wrap+.calendar-info-notice,.calendar-edit-modal-body>.calendar-edit-reason-wrap+.calendar-info-notice{margin-top:0}.app-shell.has-calendar-detail .app-topbar{right:0!important}.app-shell.has-calendar-detail .app-main-content{padding-right:var(--page-padding-x)!important}.calendar-detail-drawer.is-open{display:none!important;flex:0 0 0!important;width:0!important;max-width:0!important}.calendar-desktop-dynamic.is-loading-data{position:relative}.calendar-desktop-dynamic.is-loading-data .calendar-view,.calendar-desktop-dynamic.is-loading-data [class*=view]{opacity:.88;transition:opacity .15s ease}.cal-week-matrix-wrap{overflow-x:auto;width:100%}.cal-week-matrix{min-width:960px;display:flex;flex-direction:column;border:1px solid #e5ecf5;border-radius:12px;background:#fff;overflow:hidden}.cal-week-matrix-head,.cal-week-matrix-row{display:grid;grid-template-columns:minmax(168px,200px) repeat(7,minmax(110px,1fr));min-width:0}.cal-week-matrix-head{background:#f8fafc;border-bottom:1px solid #e5ecf5;position:sticky;top:0;z-index:2}.cal-week-matrix-corner{padding:.75rem .85rem;font-size:.75rem;font-weight:700;color:#64748b;display:flex;align-items:center;border-right:1px solid #e5ecf5}.cal-week-matrix-dayhead{padding:.65rem .5rem;text-align:center;border-right:1px solid #eef2f7;display:flex;flex-direction:column;gap:.1rem;align-items:center}.cal-week-matrix-dayhead:last-child{border-right:0}.cal-week-matrix-dayhead.is-today{background:#dbeafe;box-shadow:inset 0 -2px 0 #2563eb}.cal-week-matrix-dayhead.is-today .cal-week-matrix-dow{font-size:.72rem;font-weight:700;color:#475569;letter-spacing:.02em}.cal-week-matrix-dayhead.is-today .cal-week-matrix-dom{font-size:.95rem;font-weight:700;color:#0f1f3d;line-height:1.1}.cal-week-matrix-dow{font-size:.8rem;font-weight:800;color:#334155}.cal-week-matrix-dom{font-size:.72rem;color:#64748b;font-weight:600}.cal-week-matrix-dayhead.is-weekend .cal-week-matrix-dom,.cal-week-matrix-dayhead.is-weekend .cal-week-matrix-dow{color:#dc2626}.cal-week-matrix-holiday{font-size:.6rem;color:#dc2626;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-week-matrix-row{border-bottom:1px solid #eef2f7;min-height:88px}.cal-week-matrix-row:last-child{border-bottom:0}.cal-week-matrix-room{display:flex;align-items:center;gap:.65rem;padding:.65rem .75rem;border-right:1px solid #e5ecf5;background:#fafbfc;min-width:0}.cal-week-matrix-room-thumb{width:48px;height:40px;border-radius:8px;flex-shrink:0;display:grid;place-items:center;overflow:hidden;background-color:#e8eef7;background-size:cover;background-position:50%}.cal-week-matrix-room-thumb span{color:#fff;font-size:.55rem;font-weight:800;padding:2px 5px;border-radius:4px}.cal-week-matrix-room-meta{display:flex;flex-direction:column;gap:.1rem;min-width:0;flex:1}.cal-week-matrix-room-code{font-size:.8rem;font-weight:800;color:#0f172a;line-height:1.2;white-space:nowrap;overflow:visible}.cal-week-matrix-room-name{font-size:.68rem;font-weight:500;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-week-matrix-room-cap{font-size:.65rem;font-weight:500;color:#94a3b8}.cal-week-matrix-room-meta strong{font-size:.8rem;color:#0f172a;font-weight:800;line-height:1.2;white-space:nowrap;overflow:visible}.cal-week-matrix-room-meta>span:not(.cal-week-matrix-room-code):not(.cal-week-matrix-room-name):not(.cal-week-matrix-room-cap){font-size:.7rem;color:#64748b}.cal-week-matrix-cell{border-right:1px solid #eef2f7;padding:.4rem;min-height:88px;vertical-align:top}.cal-week-matrix-cell:last-child{border-right:0}.cal-week-matrix-cell.is-weekend{background:#f8f9fb}.cal-week-matrix-cell.is-today{background:#f0f7ff}.cal-week-matrix-empty{width:100%;min-height:72px;border:none;background:transparent;color:transparent;font-size:.85rem;font-weight:600;cursor:pointer;border-radius:8px}.cal-week-matrix-empty.is-free{color:transparent;background:#ffffff;font-size:.75rem;font-weight:400}.cal-week-matrix-empty.is-free.is-red-day{color:transparent;background:color-mix(in srgb,#fecaca 32%,#ffffff);font-weight:400}.cal-week-matrix-empty.is-past-slot{color:transparent;background:#f1f5f9;cursor:default;pointer-events:none;box-shadow:none;border:none}.cal-week-matrix-stack.is-past-with-events,.cal-week-matrix-status.is-past-with-events{cursor:pointer;pointer-events:auto;opacity:.92}.cal-week-matrix-empty.is-free:hover{background:color-mix(in srgb,#eff6ff 80%,#ffffff);color:transparent}.cal-week-matrix-empty.is-free.is-red-day:hover{background:color-mix(in srgb,#fecaca 48%,#ffffff);color:transparent}.cal-week-matrix-empty.is-past-slot:hover{background:#f1f5f9;color:transparent}.cal-week-matrix-stack{gap:.3rem;min-height:72px;border:none;background:transparent;padding:0}.cal-week-matrix-chip,.cal-week-matrix-stack{display:flex;flex-direction:column;width:100%;cursor:pointer;text-align:left}.cal-week-matrix-chip{align-items:flex-start;gap:.05rem;padding:.3rem .4rem;border-radius:6px;border:1px solid transparent;line-height:1.25;pointer-events:none}.cal-week-matrix-chip.is-booked{background:color-mix(in srgb,#86efac 32%,transparent);border-color:color-mix(in srgb,#4ade80 40%,transparent);color:#166534}.cal-week-matrix-chip.is-tentative{background:color-mix(in srgb,#fcd34d 28%,transparent);border-color:color-mix(in srgb,#fbbf24 40%,transparent);color:#92400e}.cal-week-matrix-chip.is-other{background:color-mix(in srgb,#cbd5e1 30%,transparent);border-color:color-mix(in srgb,#94a3b8 30%,transparent);color:#475569}.cal-week-matrix-chip-time{font-size:.7rem;font-weight:700;opacity:1}.cal-week-matrix-chip-title{font-size:.68rem;font-weight:400;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;opacity:.9}.cal-week-matrix-chip-who{font-size:.62rem;font-weight:400;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cal-week-matrix-empty-state{padding:2rem;text-align:center;color:#64748b;font-size:.9rem}.cal-week-toolbar-extra{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.65rem;padding:.15rem 0 .25rem}.cal-filter-bar{gap:.75rem 1rem;padding:.65rem .85rem;background:#fff;border:1px solid #e5ecf5;border-radius:16px;box-shadow:0 1px 2px rgba(15,23,42,.04)}.cal-filter-bar,.cal-filter-section{display:flex;align-items:center;min-width:0}.cal-filter-section{gap:.55rem}.cal-filter-section.is-rooms{flex:1 1 auto;min-width:0}.cal-filter-section.is-agenda{flex:0 0 auto}.cal-filter-label{flex-shrink:0;font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}@media (min-width:901px){.cal-filter-label{font-weight:800;color:#475569;letter-spacing:.07em;font-size:.72rem}}.cal-filter-divider{flex-shrink:0;width:1px;align-self:stretch;min-height:28px;background:#e2e8f0}.cal-chip-scroll-wrap{position:relative;display:flex;align-items:center;gap:.25rem;min-width:0;flex:1 1 auto}.cal-chip-scroll{display:flex;flex-wrap:nowrap;gap:.35rem;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:2px 0}.cal-chip-scroll::-webkit-scrollbar{display:none}.cal-chip-scroll-btn{flex-shrink:0;width:28px;height:28px;border-radius:999px;border:1px solid #e2e8f0;background:#fff;color:#475569;font-size:1rem;font-weight:700;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 1px 3px rgba(15,23,42,.08)}.cal-chip-scroll-btn:hover{background:#f8fafc;border-color:#cbd5e1}.cal-room-chips{display:flex;flex-wrap:wrap;gap:.35rem;min-width:0}.cal-agenda-chips{flex-wrap:nowrap}.cal-room-chip{height:28px;padding:0 .6rem;border-radius:999px;border:1px solid #e2e8f0;background:#fff;font-size:.6875rem;font-weight:600;color:#475569;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s ease,border-color .15s ease,color .15s ease}.cal-room-chip.is-active{background:#2563eb;border-color:#2563eb;color:#fff}.cal-hint-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.65rem 1rem}.cal-hint-row .cal-hint-banner{margin-right:auto}.cal-hint-row .cal-week-legend{margin-left:auto}.cal-hint-banner{display:flex;align-items:center;gap:.5rem;flex:1 1 240px;min-width:0;padding:.55rem .75rem;border-radius:12px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e40af;font-size:.75rem;font-weight:600;line-height:1.35}.cal-hint-ico{flex-shrink:0;width:18px;height:18px;border-radius:999px;background:#3b82f6;color:#fff;font-size:.7rem;font-weight:800;font-style:normal;display:grid;place-items:center}.cal-hint-close{flex-shrink:0;margin-left:auto;border:none;background:transparent;color:#64748b;font-size:1rem;line-height:1;cursor:pointer;padding:0 .15rem}.cal-week-legend{display:flex;flex-wrap:wrap;gap:.65rem .9rem;font-size:.72rem;font-weight:600;color:#64748b;flex-shrink:0}.cal-week-legend span{display:inline-flex;align-items:center;gap:.3rem}.cal-week-legend i{width:8px;height:8px;border-radius:50%;display:inline-block}.cal-week-legend .lg-book{background:#22c55e}.cal-week-legend .lg-tent{background:#f59e0b}.cal-week-legend .lg-off{background:#94a3b8}.cal-week-legend .lg-red-day{background:color-mix(in srgb,#f87171 55%,#ffffff)}@media (max-width:900px){.cal-filter-bar{flex-wrap:wrap}.cal-filter-divider{display:none}.cal-filter-section.is-agenda,.cal-filter-section.is-rooms{flex:1 1 100%}}.booking-drawer-overlay{position:fixed;inset:0;z-index:100;display:flex;justify-content:flex-end;align-items:stretch;background:rgba(15,23,42,.35);animation:bookingDrawerFadeIn .22s ease-out}@keyframes bookingDrawerFadeIn{0%{opacity:0}to{opacity:1}}.booking-drawer-panel{width:min(440px,100vw);max-width:100%;height:100%;max-height:100dvh;background:var(--color-surface,#fff);box-shadow:-12px 0 40px rgba(15,23,42,.12);border-left:1px solid var(--color-border,#e5ecf5);border-radius:0;transform:translateX(0);animation:bookingDrawerSlideIn .3s cubic-bezier(.22,1,.36,1);will-change:transform}.booking-drawer-panel

.booking-drawer-panel.booking-drawer-panel--compact-done .booking-edit-done-body{flex:0 0 auto}.booking-drawer-panel.booking-drawer-panel--compact-done .booking-edit-done-body button{flex:0 0 auto!important;height:44px!important;min-height:44px!important;max-height:44px!important}@keyframes bookingDrawerSlideIn{0%{transform:translateX(100%)}to{transform:translateX(0)}}.booking-drawer-panel .booking-drawer-scroll,.booking-drawer-panel>.overflow-y-auto{flex:1 1 auto;min-height:0;overflow-y:auto}@media (max-width:640px){.booking-drawer-panel{width:100%}}.cal-month-view{width:100%}.cal-month-head{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:#f8fafc;border-bottom:1px solid #e5ecf5}.cal-month-dow{padding:.65rem .35rem;text-align:center;font-size:.8rem;font-weight:700;color:#475569}.cal-month-dow.is-weekend{color:#dc2626}.cal-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-month-cell{min-height:124px;height:124px;padding:.4rem .4rem .5rem;box-sizing:border-box;overflow:hidden;border-bottom:1px solid #eef2f7;border-right:1px solid #eef2f7;background:#fff;cursor:pointer;text-align:left;transition:background .12s ease}.cal-month-cell:nth-child(7n){border-right:0}.cal-month-cell:hover{background:#f8fafc}.cal-month-cell.is-outside{background:#fafbfc;opacity:.72}.cal-month-cell.is-past{opacity:1;background:#f8fafc;cursor:default}.cal-month-cell.is-holiday:not(.is-outside),.cal-month-cell.is-weekend:not(.is-outside){background:color-mix(in srgb,#fecaca 32%,#ffffff)}.cal-month-cell.is-past:not(.is-outside){background:#f1f5f9}.cal-month-cell.is-past.is-holiday:not(.is-outside),.cal-month-cell.is-past.is-weekend:not(.is-outside){background:color-mix(in srgb,#fecaca 18%,#f1f5f9)}.cal-month-cell.is-today{background:#f0f7ff;box-shadow:inset 0 0 0 1px rgba(37,99,235,.35)}.cal-month-cell.is-selected{box-shadow:inset 0 0 0 2px #2563eb}.cal-month-cell-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:.25rem}.cal-month-date{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;border-radius:999px;font-size:.8rem;font-weight:700;color:#0f1f3d}.cal-month-cell.is-today .cal-month-date{background:#2563eb;color:#fff}.cal-month-date.is-red{color:#dc2626}.cal-month-cell.is-today .cal-month-date.is-red{color:#fff}.cal-month-holiday{margin:0 0 .25rem;font-size:.62rem;font-weight:600;color:#dc2626;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-month-chips{display:flex;flex-direction:column;gap:.2rem}.cal-month-chip{display:block;width:100%;text-align:left;border:none;border-radius:6px;padding:.2rem .35rem;font-size:.68rem;font-weight:400;cursor:pointer;line-height:1.25}.cal-month-chip-text{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}.cal-month-chip-time{font-weight:700}.cal-month-chip-room{font-weight:500;opacity:.95}.cal-month-chip.is-booked{background:#dcfce7;color:#166534}.cal-month-chip.is-tentative{background:#fef3c7;color:#92400e}.cal-month-chip.is-blocked{background:#fee2e2;color:#991b1b}.cal-month-more{border:none;background:transparent;color:#64748b;font-size:.65rem;font-weight:600;padding:.1rem .2rem;text-align:left;cursor:pointer}.cal-month-more:hover{color:#2563eb}.cal-day-view{width:100%;border-radius:16px;border:1px solid #e5ecf5;background:#fff;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.cal-day-matrix{display:grid;grid-auto-rows:minmax(0,auto);align-items:stretch;width:100%;box-sizing:border-box}.cal-day-corner{left:0;z-index:4;display:flex;align-items:center;padding:.75rem 1rem;font-size:.78rem;font-weight:700;color:#64748b;border-right:1px solid #e5ecf5}.cal-day-corner,.cal-day-hours-head{position:sticky;background:#f8fafc;border-bottom:1px solid #e5ecf5}.cal-day-hours-head{top:0;z-index:3;height:44px;width:100%;box-sizing:border-box}.cal-day-hour-label{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;padding:.65rem .2rem;font-size:.72rem;font-weight:700;color:#64748b;font-variant-numeric:tabular-nums;box-sizing:border-box;white-space:nowrap;pointer-events:none}.cal-day-hour-label.is-now{color:#1d4ed8}.cal-day-hour-now-pill{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .55rem;border-radius:999px;background:#2563eb;color:#fff;font-size:.7rem;font-weight:800;box-shadow:0 2px 8px rgba(37,99,235,.35)}.cal-day-room-cell{position:sticky;left:0;z-index:2;display:flex;align-items:center;gap:.6rem;padding:.65rem .75rem;background:#fff;border-bottom:1px solid #eef2f7;border-right:1px solid #e5ecf5;min-height:92px;box-sizing:border-box}.cal-day-room-thumb{width:48px;height:40px;border-radius:8px;flex-shrink:0;display:grid;place-items:center;overflow:hidden;background-color:#e8eef7;background-size:cover;background-position:50%}.cal-day-room-thumb span{color:#fff;font-size:.55rem;font-weight:800;padding:2px 5px;border-radius:4px}.cal-day-room-meta{display:flex;flex-direction:column;gap:.1rem;min-width:0}.cal-day-room-code{font-size:.8rem;font-weight:800;color:#0f172a;line-height:1.2}.cal-day-room-name{font-size:.68rem;font-weight:500;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-day-room-cap{font-size:.65rem;font-weight:500;color:#94a3b8}.cal-day-track{position:relative;width:100%;border-bottom:1px solid #eef2f7;background:#fff;overflow:hidden;box-sizing:border-box}.cal-day-slot{position:absolute;top:0;border:none;border-left:1px solid #eef2f7;background:transparent;cursor:pointer;padding:0;margin:0;z-index:0}.cal-day-slot:hover:not(.is-past){background:rgba(37,99,235,.06)}.cal-day-slot.is-past{background:#f8fafc;cursor:not-allowed}.cal-day-slot.is-red-day:not(.is-past){background:color-mix(in srgb,#fecaca 18%,#ffffff)}.cal-day-slot.is-red-day:hover:not(.is-past){background:color-mix(in srgb,#fecaca 32%,#ffffff)}.cal-day-hour-line{position:absolute;top:0;bottom:0;width:1px;background:#eef2f7;pointer-events:none}.cal-day-event{position:absolute;z-index:1;border-radius:10px;border:1px solid transparent;padding:.4rem .55rem;text-align:left;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:.1rem;line-height:1.25;box-sizing:border-box;min-width:0}.cal-day-event.is-booked{background:color-mix(in srgb,#86efac 42%,#ffffff);border-color:color-mix(in srgb,#4ade80 50%,transparent);color:#14532d}.cal-day-event.is-tentative{background:color-mix(in srgb,#fcd34d 40%,#ffffff);border-color:color-mix(in srgb,#fbbf24 55%,transparent);color:#78350f}.cal-day-event.is-blocked{background:color-mix(in srgb,#cbd5e1 40%,#ffffff);border-color:color-mix(in srgb,#94a3b8 45%,transparent);color:#334155}.cal-day-event-time{font-weight:800;letter-spacing:.01em}.cal-day-event-time,.cal-day-event-title{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-day-event-title{font-weight:600;opacity:.95}.cal-day-event-who{font-size:.65rem;font-weight:500;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-day-now-line{top:0;bottom:0;width:2px;z-index:2;pointer-events:none;transform:translateX(-1px)}.cal-day-now-dot,.cal-day-now-line{position:absolute;background:#2563eb}.cal-day-now-dot{top:-4px;left:50%;width:10px;height:10px;border-radius:50%;transform:translateX(-50%);box-shadow:0 0 0 3px rgba(37,99,235,.2)}.calendar-page.is-mobile-calendar .calendar-mobile-date-row{display:flex!important;align-items:center;gap:.5rem;width:100%;min-width:0}.calendar-page.is-mobile-calendar .calendar-mobile-date-row .calendar-period-nav{display:flex!important;flex:1 1 auto!important;width:auto!important;max-width:none!important;min-width:0!important;gap:0!important;align-items:center}.calendar-page.is-mobile-calendar .calendar-mobile-date-row .calendar-period-label{display:inline-flex!important;flex:1 1 auto!important;width:auto!important;min-width:0!important;max-width:none!important;overflow:hidden;align-items:center;gap:.4rem;visibility:visible!important;opacity:1!important}.calendar-page.is-mobile-calendar .calendar-period-icon{display:inline-flex;flex-shrink:0;color:var(--color-primary,#2563eb)}.calendar-page.is-mobile-calendar .calendar-mobile-date-row .calendar-period-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.calendar-page.is-mobile-calendar .calendar-mobile-date-row .calendar-today-button{flex:0 0 auto;margin-left:0!important}.calendar-page.is-mobile-calendar .calendar-mobile-filter-row{display:flex;align-items:stretch;gap:.5rem;width:100%;min-width:0}.calendar-page.is-mobile-calendar .calendar-mobile-filter-row .calendar-filter{flex:1 1 0;min-width:0;max-width:none}.calendar-page.is-mobile-calendar .calendar-mobile-agenda-chips,.calendar-page.is-mobile-calendar .calendar-mobile-room-chips{display:flex;flex-wrap:nowrap;gap:.35rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:.1rem 0 .25rem}.calendar-page.is-mobile-calendar .calendar-mobile-agenda-chips::-webkit-scrollbar,.calendar-page.is-mobile-calendar .calendar-mobile-room-chips::-webkit-scrollbar{display:none}.calendar-page.is-mobile-calendar .calendar-mobile-week-legend.is-below{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem .85rem;margin:.65rem 0 .15rem;padding:.5rem .75rem;border-radius:999px;background:#f8fafc;border:1px solid #eef2f7;font-size:.68rem;font-weight:600;color:#64748b}.calendar-page.is-mobile-calendar .calendar-mobile-week-legend span{display:inline-flex;align-items:center;gap:.25rem}.calendar-page.is-mobile-calendar .calendar-mobile-week-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.calendar-page.is-mobile-calendar .calendar-mobile-week-legend .lg-book{background:#22c55e}.calendar-page.is-mobile-calendar .calendar-mobile-week-legend .lg-tent{background:#f59e0b}.calendar-page.is-mobile-calendar .calendar-mobile-week-legend .lg-off{background:#94a3b8}.calendar-page.is-mobile-calendar .calendar-mobile-week-matrix{margin-top:.15rem}.calendar-page.is-mobile-calendar .cal-week-matrix-wrap,.calendar-page.is-mobile-calendar .cal-week-matrix-wrap.is-compact{overflow-x:hidden;border-radius:14px;border:1px solid #e5ecf5;background:#fff;width:100%}.calendar-page.is-mobile-calendar .cal-week-matrix{min-width:0!important;width:100%;border:none;border-radius:0}.calendar-page.is-mobile-calendar .cal-week-matrix-head,.calendar-page.is-mobile-calendar .cal-week-matrix-row{grid-template-columns:58px repeat(7,minmax(0,1fr))!important}.calendar-page.is-mobile-calendar .cal-week-matrix-corner{padding:.4rem .25rem;font-size:.6rem}.calendar-page.is-mobile-calendar .cal-week-matrix-dayhead{padding:.4rem .1rem;gap:0}.calendar-page.is-mobile-calendar .cal-week-matrix-dow{font-weight:700!important;font-size:.62rem}.calendar-page.is-mobile-calendar .cal-week-matrix-dom{font-size:.58rem;font-weight:600}.calendar-page.is-mobile-calendar .cal-week-matrix-holiday{display:none}.calendar-page.is-mobile-calendar .cal-week-matrix-room,.calendar-page.is-mobile-calendar .cal-week-matrix-room.is-stacked{flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.4rem .2rem;text-align:center}.calendar-page.is-mobile-calendar .cal-week-matrix-room-thumb{width:36px;height:28px;border-radius:6px}.calendar-page.is-mobile-calendar .cal-week-matrix-room-meta{align-items:center;gap:0}.calendar-page.is-mobile-calendar .cal-week-matrix-room-code,.calendar-page.is-mobile-calendar .cal-week-matrix-room-meta strong{font-size:.58rem;line-height:1.15;white-space:normal;text-align:center;word-break:break-word;overflow:visible}.calendar-page.is-mobile-calendar .cal-week-matrix-room-cap,.calendar-page.is-mobile-calendar .cal-week-matrix-room-meta span,.calendar-page.is-mobile-calendar .cal-week-matrix-room-name{font-size:.52rem;color:#64748b}.calendar-page.is-mobile-calendar .cal-week-matrix-row{align-items:stretch}.calendar-page.is-mobile-calendar .cal-week-matrix-cell{padding:.15rem .08rem;min-width:0;min-height:58px;overflow:hidden;vertical-align:top;box-sizing:border-box}.calendar-page.is-mobile-calendar .cal-week-matrix-empty{min-height:54px;height:100%;border-radius:6px;font-size:.75rem;color:#cbd5e1;box-sizing:border-box}.calendar-page.is-mobile-calendar .cal-week-matrix-empty.is-free{background:#ffffff;color:transparent;font-size:0}.calendar-page.is-mobile-calendar .cal-week-matrix-empty.is-free.is-red-day,.calendar-page.is-mobile-calendar .cal-week-matrix-empty.is-free.is-weekend-soft{background:color-mix(in srgb,#fecaca 32%,#ffffff);color:transparent;font-size:0}.calendar-page.is-mobile-calendar .cal-week-matrix-empty.is-past-slot{background:#f1f5f9;color:transparent;font-size:0;cursor:default}.calendar-page.is-mobile-calendar .cal-week-matrix-dayhead.is-today{background:#dbeafe;box-shadow:inset 0 -2px 0 #2563eb}.calendar-page.is-mobile-calendar .cal-week-matrix-status-stack{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px;width:100%;max-width:100%;min-width:0;min-height:50px;height:100%;border:none;border-radius:0;background:transparent;cursor:pointer;padding:1px 0;overflow:hidden;box-sizing:border-box;position:relative;z-index:0}.calendar-page.is-mobile-calendar .cal-week-matrix-status-stack.is-past-with-events{opacity:.85}.calendar-page.is-mobile-calendar .cal-week-matrix-status{display:flex;align-items:center;justify-content:center;width:100%;max-width:100%;min-width:0;flex:1 1 0;min-height:22px;border:none;border-radius:4px;cursor:inherit;padding:2px 1px;overflow:hidden;box-sizing:border-box;position:relative;z-index:0;pointer-events:none}.calendar-page.is-mobile-calendar .cal-week-matrix-status-lines{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:0;width:100%;min-width:0;max-width:100%;overflow:hidden;pointer-events:none}.calendar-page.is-mobile-calendar .cal-week-matrix-status-time,.calendar-page.is-mobile-calendar .cal-week-matrix-status-who{display:block;width:100%;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;line-height:1.15;letter-spacing:-.03em;box-sizing:border-box;padding:0 1px}.calendar-page.is-mobile-calendar .cal-week-matrix-status-time{font-size:9px;font-weight:700;color:#0f2b55}.calendar-page.is-mobile-calendar .cal-week-matrix-status-who{font-size:8px;font-weight:400;color:#64748b}.calendar-page.is-mobile-calendar .cal-week-matrix-status-more{display:block;flex:0 0 auto;font-size:8px;font-weight:700;line-height:1.2;text-align:center;color:#475569;letter-spacing:-.02em;pointer-events:none}.calendar-page.is-mobile-calendar .cal-week-matrix-status.is-booked{background:color-mix(in srgb,#86efac 26%,transparent)}.calendar-page.is-mobile-calendar .cal-week-matrix-status.is-booked .cal-week-matrix-status-time{color:#047857}.calendar-page.is-mobile-calendar .cal-week-matrix-status.is-booked .cal-week-matrix-status-who{color:#065f46}.calendar-page.is-mobile-calendar .cal-week-matrix-status.is-tentative{background:#fde68a}.calendar-page.is-mobile-calendar .cal-week-matrix-status.is-tentative .cal-week-matrix-status-time{color:#92400e}.calendar-page.is-mobile-calendar .cal-week-matrix-status.is-tentative .cal-week-matrix-status-who{color:#78350f}.cal-agenda-chips .cal-room-chip,.cal-room-chips .cal-room-chip{height:28px;padding:0 .6rem;font-size:.6875rem}.cal-week-legend .lg-past,.calendar-mobile-day-legend .lg-past,.calendar-mobile-month-legend .lg-past,.calendar-mobile-week-legend .lg-past{background:#cbd5e1!important}.cal-week-legend .lg-book,.calendar-mobile-day-legend .lg-booked,.calendar-mobile-month-legend .lg-booked,.calendar-mobile-week-legend .lg-book{background:#22c55e!important}.cal-week-legend .lg-tent,.calendar-mobile-day-legend .lg-tentative,.calendar-mobile-month-legend .lg-tentative,.calendar-mobile-week-legend .lg-tent{background:#f59e0b!important}.cal-month-grid .cal-month-cell.is-holiday:not(.is-outside),.cal-month-grid .cal-month-cell.is-weekend:not(.is-outside){background:color-mix(in srgb,#fecaca 34%,#ffffff)!important}.cal-month-grid .cal-month-cell.is-past:not(.is-outside){background:#f1f5f9!important}.cal-month-grid .cal-month-cell.is-past.is-holiday:not(.is-outside),.cal-month-grid .cal-month-cell.is-past.is-weekend:not(.is-outside){background:color-mix(in srgb,#fecaca 16%,#f1f5f9)!important}.cal-month-grid .cal-month-cell.is-today:not(.is-outside){background:#f0f7ff!important}.cal-pic-ico{flex:0 0 auto;display:inline-block;vertical-align:-.1em;opacity:.9}.cal-day-event-who,.cal-week-matrix-chip-who,.cal-week-matrix-status-who{display:inline-flex;align-items:center;gap:.25rem;min-width:0;max-width:100%}.cal-pic-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-page.is-desktop-calendar .calendar-desktop-chrome{flex-shrink:0;background:var(--color-bg,#f8fafc)}.calendar-page.is-desktop-calendar .cal-week-matrix{overflow:visible}.calendar-page.is-desktop-calendar .cal-week-matrix-head{position:sticky;top:0;z-index:5;background:#f8fafc}.calendar-page.is-desktop-calendar .calendar-month-weekday,.calendar-page.is-desktop-calendar .calendar-weekday-row{position:sticky;top:0;z-index:4;background:#fff}.calendar-page.is-desktop-calendar{display:flex;flex-direction:column;gap:var(--space-3);height:calc(100vh - var(--topbar-height, 64px) - (var(--page-padding-y, 16px) * 2));max-height:calc(100vh - var(--topbar-height, 64px) - (var(--page-padding-y, 16px) * 2));min-height:320px;overflow:hidden;box-sizing:border-box}.calendar-page.is-desktop-calendar .calendar-desktop-chrome{flex:0 0 auto;position:relative;z-index:20}.calendar-page.is-desktop-calendar .calendar-desktop-scroll{flex:1 1 auto;min-height:200px;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.calendar-page.is-desktop-calendar .calendar-desktop-dynamic,.calendar-page.is-desktop-calendar .calendar-grid-card,.calendar-page.is-desktop-calendar .calendar-grid-card-inner{overflow:visible!important;max-height:none!important;width:100%;min-width:0;box-sizing:border-box}.calendar-page.is-desktop-calendar .cal-week-matrix-wrap,.calendar-page.is-desktop-calendar .cal-week-matrix-wrap.is-compact{overflow:visible!important;width:100%!important;max-width:100%!important;min-width:0!important;max-height:none!important;box-sizing:border-box}.calendar-page.is-desktop-calendar .cal-week-matrix{overflow:visible!important;width:100%!important;min-width:0!important;max-width:100%!important;display:flex!important;flex-direction:column!important;box-sizing:border-box}.calendar-page.is-desktop-calendar .cal-week-matrix-head,.calendar-page.is-desktop-calendar .cal-week-matrix-row{display:grid!important;grid-template-columns:minmax(168px,200px) repeat(7,minmax(0,1fr))!important;width:100%!important;min-width:0!important;box-sizing:border-box}.calendar-page.is-desktop-calendar .cal-week-matrix-head{position:sticky!important;top:0!important;z-index:8!important;background:#f8fafc!important;box-shadow:0 1px 0 #e5ecf5}.calendar-page.is-desktop-calendar .cal-week-matrix-corner,.calendar-page.is-desktop-calendar .cal-week-matrix-dayhead{background:#f8fafc!important;min-width:0!important}.calendar-page.is-desktop-calendar .cal-week-matrix-dayhead.is-today{background:#dbeafe!important}.calendar-page.is-desktop-calendar .cal-week-matrix-cell{min-width:0!important}.calendar-page.is-desktop-calendar .cal-week-matrix-room{min-width:168px!important;overflow:visible!important}.calendar-page.is-desktop-calendar .cal-week-matrix-room-code{white-space:nowrap;overflow:visible}.calendar-page.is-desktop-calendar .cal-month-view{overflow:visible!important;width:100%}.calendar-page.is-desktop-calendar .cal-month-head{position:sticky!important;top:0!important;z-index:8!important;background:#fff!important;box-shadow:0 1px 0 #e5ecf5}.calendar-page.is-desktop-calendar .cal-month-dow{background:#fff!important}