@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,sans-serif;background:#f5f5f5;color:#1a1a1a}.title-row{display:inline-flex;align-items:center;gap:.5rem}header[data-v-52ea8c81]{background:#1a1a2e;color:#fff;padding:0 1.5rem;height:48px;display:flex;align-items:center;gap:2rem}.brand[data-v-52ea8c81]{color:#fff;text-decoration:none;font-size:1rem;font-weight:600;letter-spacing:.02em}nav[data-v-52ea8c81]{display:flex;gap:.25rem;flex:1}nav a[data-v-52ea8c81]{color:#ffffffa6;text-decoration:none;padding:.35rem .85rem;border-radius:4px;font-size:.875rem;transition:all .15s}nav a[data-v-52ea8c81]:hover{color:#fff;background:#ffffff1a}nav a.router-link-active[data-v-52ea8c81]{color:#fff;background:#ffffff26}.nav-end[data-v-52ea8c81]{display:flex;align-items:center;gap:.75rem;margin-left:auto}.nav-user[data-v-52ea8c81]{font-size:.8rem;color:#fff9;text-decoration:none;padding:.2rem .5rem;border-radius:4px;transition:all .15s}.nav-user[data-v-52ea8c81]:hover{color:#fff;background:#ffffff14}.nav-user.router-link-active[data-v-52ea8c81]{color:#fff;background:#ffffff1f}.nav-logout[data-v-52ea8c81]{background:none;border:1px solid rgba(255,255,255,.3);color:#ffffffb3;padding:.25rem .75rem;border-radius:4px;cursor:pointer;font-size:.8rem}.nav-logout[data-v-52ea8c81]:hover{background:#ffffff1a;color:#fff}main.main-padded[data-v-52ea8c81]{padding:1.5rem}@media print{header[data-v-52ea8c81]{display:none!important}main.main-padded[data-v-52ea8c81]{padding:2.5rem 4rem}}@media print{body{background:#fff}}.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:1000;display:flex;align-items:center;justify-content:center}.help-panel{background:#fff;border-radius:10px;width:520px;max-width:calc(100vw - 2rem);max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000002e}.help-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid #e5e7eb}.help-panel-header h3{font-size:1rem;font-weight:700;color:#1a1a2e}.help-close{background:none;border:none;font-size:1rem;color:#9ca3af;cursor:pointer;padding:.2rem .4rem;border-radius:4px}.help-close:hover{background:#f3f4f6;color:#374151}.help-panel-body{overflow-y:auto;padding:1rem 1.25rem;flex:1}.help-panel-footer{padding:.75rem 1.25rem;border-top:1px solid #e5e7eb}.help-full-link{font-size:.8rem;color:#4f46e5;text-decoration:none}.help-full-link:hover{text-decoration:underline}.hb{margin-bottom:.9rem}.hb h4{font-size:.85rem;font-weight:600;color:#374151;margin-bottom:.3rem}.hb p{font-size:.85rem;color:#4b5563;line-height:1.6}.hb ul{padding-left:1.1rem}.hb li{font-size:.85rem;color:#4b5563;line-height:1.6;margin-bottom:.25rem}.hb code{background:#f3f4f6;padding:.1em .3em;border-radius:3px;font-family:monospace;font-size:.82em}.hb-tip{background:#eff6ff;border-left:3px solid #3b82f6;padding:.5rem .8rem;border-radius:0 5px 5px 0;font-size:.82rem;color:#1e40af;margin-top:.4rem}.hb-warning{background:#fff7ed;border-left:3px solid #f97316;padding:.5rem .8rem;border-radius:0 5px 5px 0;font-size:.82rem;color:#9a3412;margin-top:.4rem}.help-trigger[data-v-dd01f150]{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#e0e7ff;color:#4f46e5;border:none;font-size:.8rem;font-weight:700;cursor:pointer;flex-shrink:0;transition:background .15s}.help-trigger[data-v-dd01f150]:hover{background:#c7d2fe}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,.08);box-shadow:1px 0 #e6e6e6,-1px 0 #e6e6e6,0 1px #e6e6e6,0 -1px #e6e6e6,0 3px 13px #00000014}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1);animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none!important;box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:"";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.arrowRight:before,.flatpickr-calendar.rightMost:after,.flatpickr-calendar.arrowRight:after{left:auto;right:22px}.flatpickr-calendar.arrowCenter:before,.flatpickr-calendar.arrowCenter:after{left:50%;right:50%}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#000000e6;fill:#000000e6;height:34px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;cursor:pointer;position:absolute;top:0;height:34px;padding:10px;z-index:3;color:#000000e6;fill:#000000e6}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,.flatpickr-months .flatpickr-next-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill .1s;transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-outer-spin-button,.numInputWrapper input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,.15);-webkit-box-sizing:border-box;box-sizing:border-box}.numInputWrapper span:hover{background:#0000001a}.numInputWrapper span:active{background:#0003}.numInputWrapper span:after{display:block;content:"";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,.6);top:40%}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover{background:#0000000d}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:7.48px 0 0;line-height:1;height:34px;display:inline-block;text-align:center;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:#0000000d}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch�;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#000000e6}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#000000e6}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#00000080;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:auto;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:focus,.flatpickr-current-month .flatpickr-monthDropdown-months:active{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:#0000000d}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#0000008a;line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 #e6e6e6}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#393939;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6}.flatpickr-day.today{border-color:#959ea9}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#3939394d;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#3939391a}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.flatpickr-time:after{content:"";display:table;clear:both}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#393939}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#393939}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#393939;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;float:left;line-height:inherit;color:#393939;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#eee}.flatpickr-input[readonly]{cursor:pointer}@-webkit-keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}@keyframes fpFadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translateZ(0)}}.calendar-view[data-v-14f337e7]{background:#fff;border-radius:8px;padding:1rem;box-shadow:0 1px 3px #0000001a;position:relative}.toolbar[data-v-14f337e7]{margin-bottom:1rem;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.toolbar select[data-v-14f337e7]{padding:.4rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.single-room-hint[data-v-14f337e7]{font-size:.78rem;color:#888;font-style:italic}.holiday-toolbar-badge[data-v-14f337e7]{margin-left:auto;display:flex;align-items:center;gap:.35rem;background:#ef444417;border:1px solid rgba(239,68,68,.25);color:#b91c1c;font-size:.78rem;font-weight:600;padding:.28rem .7rem;border-radius:5px;white-space:nowrap}.loading[data-v-14f337e7],.error[data-v-14f337e7]{padding:2rem;text-align:center;color:#666}.error[data-v-14f337e7]{color:#c0392b}.session-popup[data-v-14f337e7]{position:fixed;z-index:200;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;width:240px;box-shadow:0 4px 16px #00000026}.popup-header[data-v-14f337e7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.popup-code[data-v-14f337e7]{font-family:monospace;font-size:.8rem;background:#f0f0f0;padding:.1rem .4rem;border-radius:3px}.popup-close[data-v-14f337e7]{background:none;border:none;font-size:1.1rem;cursor:pointer;color:#888;line-height:1;padding:0}.popup-name[data-v-14f337e7]{font-weight:600;font-size:.9rem;margin-bottom:.35rem}.popup-meta[data-v-14f337e7]{font-size:.8rem;color:#666;margin-bottom:.2rem}.popup-actions[data-v-14f337e7]{display:flex;gap:.5rem;margin-top:.75rem}.btn-move-session[data-v-14f337e7]{flex:1;padding:.4rem;background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:4px;cursor:pointer;font-size:.82rem}.btn-move-session[data-v-14f337e7]:hover{background:#dbeafe}.btn-cancel-session[data-v-14f337e7]{flex:1;padding:.4rem;background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;border-radius:4px;cursor:pointer;font-size:.82rem}.btn-cancel-session[data-v-14f337e7]:hover{background:#fecaca}.move-backdrop[data-v-14f337e7]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:300}.move-modal[data-v-14f337e7]{background:#fff;border-radius:8px;padding:1.5rem;width:440px;max-width:95vw;box-shadow:0 8px 32px #0003}.move-header[data-v-14f337e7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-weight:600;font-size:1rem}.move-origin[data-v-14f337e7]{font-size:.85rem;color:#555;background:#f8f8f8;border-radius:6px;padding:.6rem .75rem;margin-bottom:1.1rem;display:flex;flex-direction:column;gap:.25rem}.move-origin-meta[data-v-14f337e7]{font-size:.78rem;color:#888}.move-fields[data-v-14f337e7]{display:flex;flex-direction:column;gap:.85rem}.mfield[data-v-14f337e7]{display:flex;flex-direction:column;gap:.3rem}.mfield-row[data-v-14f337e7]{display:flex;gap:.75rem}.mfield-row .mfield[data-v-14f337e7]{flex:1}.mfield label[data-v-14f337e7]{font-size:.78rem;font-weight:600;color:#555}.mfield .hint[data-v-14f337e7]{font-weight:400;color:#aaa}.mfield input[data-v-14f337e7],.mfield select[data-v-14f337e7]{border:1px solid #ddd;border-radius:4px;padding:.45rem .6rem;font-size:.88rem;font-family:inherit}.mfield-check[data-v-14f337e7]{margin-top:.25rem}.check-label[data-v-14f337e7]{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;color:#333;cursor:pointer}.check-label input[type=checkbox][data-v-14f337e7]{width:1rem;height:1rem;cursor:pointer}.move-forward-result[data-v-14f337e7]{margin-top:.75rem;border-radius:4px;overflow:hidden;font-size:.82rem}.mfr-ok[data-v-14f337e7]{padding:.4rem .75rem;background:#d1fae5;color:#065f46;font-weight:600}.mfr-warn[data-v-14f337e7]{padding:.4rem .75rem;background:#fef3c7;color:#92400e}.mfr-item[data-v-14f337e7]{margin-top:.2rem}.move-error[data-v-14f337e7]{margin-top:.75rem;padding:.5rem .75rem;background:#fee2e2;color:#991b1b;border-radius:4px;font-size:.82rem}.move-actions[data-v-14f337e7]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.move-actions button[data-v-14f337e7]{padding:.45rem 1rem;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.88rem;background:#fff;color:#333}.move-actions .btn-primary[data-v-14f337e7]{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.move-actions .btn-primary[data-v-14f337e7]:hover{background:#2a2a4e}.move-actions .btn-primary[data-v-14f337e7]:disabled{opacity:.6;cursor:not-allowed}.occupied-dates[data-v-14f337e7]{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem;align-items:center}.occupied-label[data-v-14f337e7]{font-size:.72rem;color:#888}.odate[data-v-14f337e7]{font-size:.72rem;background:#f3f4f6;padding:.1rem .4rem;border-radius:3px;color:#555}.odate.conflict[data-v-14f337e7]{background:#fef3c7;color:#92400e;font-weight:600}.date-conflict-warn[data-v-14f337e7]{margin-top:.35rem;font-size:.78rem;color:#92400e;background:#fef3c7;padding:.3rem .5rem;border-radius:4px}.room-label{display:flex;flex-direction:column;line-height:1.3;gap:2px}.room-label span{font-size:.75rem;color:#555}.fc-bg-event.holiday-bg{opacity:1!important}.holiday-chip{display:block;font-size:.6rem;font-weight:600;line-height:1.2;color:#b91c1c;background:#ef44441f;border-radius:3px;padding:1px 4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.fc-resourceTimeGridWeek-view .fc-col-header-cell-cushion{font-size:.68rem;padding:2px 3px;line-height:1.3}.fc-resourceTimeGridWeek-view .fc-col-header-cell{padding:1px 0!important}.fc-resourceTimeGridWeek-view .fc-timegrid-col.fc-day-today,.fc-resourceTimeGridDay-view .fc-timegrid-col.fc-day-today{background:transparent!important}.fc-col-header-cell.fc-day-today .dhdr-tip{font-weight:700;color:#4f46e5}.dhdr-tip{position:relative;display:inline-block;width:100%}.dhdr-tip:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);background:#1a1a2e;color:#fff;font-size:.7rem;font-weight:400;padding:3px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:500}.dhdr-tip:hover:after{opacity:1}.fc-event-title,.fc-event-title-container{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-timegrid-event .fc-event-main{padding:1px 3px}.fc-timegrid-event .fc-event-title{font-size:.72rem;font-weight:600;line-height:1.25}.fc-timegrid-event .fc-event-time{font-size:.65rem;opacity:.85}.year-view[data-v-b1bd269f]{display:flex;flex-direction:column;gap:.75rem}.toolbar[data-v-b1bd269f]{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;background:#fff;padding:.6rem .85rem;border-radius:6px;box-shadow:0 1px 3px #00000014}.room-sel[data-v-b1bd269f]{padding:.4rem .6rem;font-size:.9rem;border:1px solid #d1d5db;border-radius:4px;min-width:240px}.year-nav[data-v-b1bd269f]{display:inline-flex;align-items:center;gap:.4rem}.nav-btn[data-v-b1bd269f]{width:28px;height:28px;border:1px solid #d1d5db;background:#fff;border-radius:4px;cursor:pointer;font-size:1rem}.nav-btn[data-v-b1bd269f]:hover{background:#f3f4f6}.year-num[data-v-b1bd269f]{font-size:1.05rem;font-weight:600;min-width:4ch;text-align:center}.seg-control[data-v-b1bd269f]{display:inline-flex;border:1px solid #d1d5db;border-radius:4px;overflow:hidden}.seg-btn[data-v-b1bd269f]{background:#fff;border:none;padding:.35rem .7rem;font-size:.82rem;cursor:pointer}.seg-btn[data-v-b1bd269f]:not(:last-child){border-right:1px solid #d1d5db}.seg-btn.active[data-v-b1bd269f]{background:#1a1a2e;color:#fff}.weekend-toggle[data-v-b1bd269f]{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:#374151}.loading[data-v-b1bd269f],.error[data-v-b1bd269f]{padding:1.5rem;background:#fff;border-radius:6px;text-align:center}.error[data-v-b1bd269f]{color:#b91c1c}.year-nav-bar[data-v-b1bd269f]{position:relative;height:38px;background:#fff;border-radius:6px;box-shadow:0 1px 3px #00000014;-webkit-user-select:none;user-select:none;margin-bottom:.5rem;padding-right:180px}.nav-months[data-v-b1bd269f]{position:absolute;top:0;left:0;right:180px;height:16px}.nav-month[data-v-b1bd269f]{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;font-size:.62rem;color:#6b7280;border-right:1px solid #f3f4f6;font-weight:600;letter-spacing:.04em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .12s,background .12s}.nav-month[data-v-b1bd269f]:hover{color:#1a1a2e;background:#eef2ff}.nav-track[data-v-b1bd269f]{position:absolute;top:16px;bottom:0;left:0;right:180px;background:#f3f4f6;cursor:pointer;border-radius:0 0 6px}.nav-window[data-v-b1bd269f]{position:absolute;top:0;bottom:0;background:#6366f166;border-left:2px solid #4f46e5;border-right:2px solid #4f46e5;cursor:grab;display:flex;align-items:center;justify-content:center}.nav-window[data-v-b1bd269f]:active{cursor:grabbing}.nav-window-label[data-v-b1bd269f]{font-size:.7rem;color:#312e81;font-weight:600;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 .25rem}.nav-handle[data-v-b1bd269f]{position:absolute;top:0;bottom:0;width:8px;background:#4f46e5;cursor:ew-resize}.nav-handle[data-v-b1bd269f]:hover{background:#3730a3}.nav-h-left[data-v-b1bd269f]{left:-2px}.nav-h-right[data-v-b1bd269f]{right:-2px}.nav-today-mark[data-v-b1bd269f]{position:absolute;top:-16px;bottom:0;width:0;border-left:2px solid #ef4444;pointer-events:none;z-index:1}.nav-today-mark[data-v-b1bd269f]:after{content:"";position:absolute;top:-3px;left:-4px;width:8px;height:8px;border-radius:50%;background:#ef4444}.nav-buttons[data-v-b1bd269f]{position:absolute;top:4px;right:6px;display:flex;gap:.35rem}.nav-today-btn[data-v-b1bd269f]{height:30px;padding:0 .7rem;font-size:.78rem;background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;border-radius:4px;cursor:pointer;font-weight:600}.nav-today-btn[data-v-b1bd269f]:hover{background:#fecaca}.nav-reset[data-v-b1bd269f]{height:30px;padding:0 .7rem;font-size:.78rem;background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;border-radius:4px;cursor:pointer;font-weight:600}.nav-reset[data-v-b1bd269f]:hover{background:#e0e7ff}.grid-shell[data-v-b1bd269f]{display:flex;background:#fff;border-radius:6px;box-shadow:0 1px 3px #00000014;overflow:hidden}.axis-col[data-v-b1bd269f]{flex:0 0 56px;background:#f9fafb;border-right:1px solid #e5e7eb;position:relative}.hour-mark[data-v-b1bd269f]{position:absolute;right:.4rem;font-size:.7rem;color:#6b7280;transform:translateY(-50%);white-space:nowrap}.body-col[data-v-b1bd269f]{flex:1;min-width:0}.month-row[data-v-b1bd269f]{display:grid;border-bottom:1px solid #e5e7eb;height:24px}.month-cell[data-v-b1bd269f]{font-size:.72rem;font-weight:600;color:#1f2937;text-transform:uppercase;text-align:center;border-right:1px solid #e5e7eb;padding:.2rem .3rem;background:#f3f4f6;letter-spacing:.04em;overflow:hidden;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s,color .12s}.month-cell[data-v-b1bd269f]:hover{background:#e0e7ff;color:#312e81}.grid-body[data-v-b1bd269f]{position:relative;background:#fff;overflow:hidden}.col-bg[data-v-b1bd269f]{position:absolute;top:0;bottom:0;border-right:1px solid #f3f4f6}.col-bg.col-weekend[data-v-b1bd269f]{background:#f9fafb}.col-bg.col-holiday[data-v-b1bd269f]{background:#fee2e28c}.col-bg.col-closure[data-v-b1bd269f]{background:#fed7aa8c}.col-bg.col-week-divider[data-v-b1bd269f]{border-right:2px solid #cbd5e1}.col-bg.col-first-of-month[data-v-b1bd269f]{border-left:2px solid #64748b}.col-bg.col-today[data-v-b1bd269f]{background:#fef08a59}.col-bg.col-today.col-weekend[data-v-b1bd269f]{background:#fef08a8c}.afternoon-band[data-v-b1bd269f]{position:absolute;left:0;right:0;background:#6366f106;pointer-events:none;border-top:1px solid rgba(99,102,241,.12)}.today-line[data-v-b1bd269f]{position:absolute;top:0;bottom:0;width:0;border-left:2px solid #ef4444;pointer-events:none;z-index:4}.hour-line[data-v-b1bd269f]{position:absolute;left:0;right:0;border-bottom:1px dashed #f3f4f6;pointer-events:none}.session-block[data-v-b1bd269f]{position:absolute;border-radius:2px;cursor:pointer;opacity:.88;transition:opacity .12s,transform .12s;border:1px solid rgba(0,0,0,.08)}.session-block[data-v-b1bd269f]:hover{opacity:1;transform:scale(1.04);z-index:5}.hover-tip[data-v-b1bd269f]{position:fixed;background:#111827f5;color:#fff;padding:.45rem .65rem;border-radius:4px;font-size:.78rem;line-height:1.35;z-index:150;pointer-events:none;box-shadow:0 4px 12px #00000040;max-width:240px;white-space:nowrap}.hover-tip .tip-date[data-v-b1bd269f]{font-weight:600}.hover-tip .tip-time[data-v-b1bd269f]{font-family:ui-monospace,monospace;opacity:.9}.hover-tip .tip-course[data-v-b1bd269f]{opacity:.9;white-space:normal}.hover-tip .tip-holiday[data-v-b1bd269f]{color:#fca5a5}.hover-tip .tip-closure[data-v-b1bd269f]{color:#fdba74}.hover-tip .tip-weekend[data-v-b1bd269f]{color:#cbd5e1;opacity:.8}.legend[data-v-b1bd269f]{background:#fff;border-radius:6px;padding:.6rem .85rem;box-shadow:0 1px 3px #00000014;display:flex;flex-wrap:wrap;gap:.6rem 1rem;font-size:.78rem}.legend-title[data-v-b1bd269f]{font-weight:600;color:#374151}.legend-hint[data-v-b1bd269f]{font-weight:400;color:#9ca3af;font-size:.7rem}.legend-item[data-v-b1bd269f]{display:inline-flex;align-items:center;gap:.35rem;background:#fff;border:1px solid #e5e7eb;border-radius:4px;padding:.2rem .5rem;cursor:pointer;font-size:.78rem;transition:opacity .12s,background .12s}.legend-item[data-v-b1bd269f]:hover{background:#f9fafb}.legend-item.is-hidden[data-v-b1bd269f]{opacity:.35;background:#f3f4f6;text-decoration:line-through}.legend-swatch[data-v-b1bd269f]{width:12px;height:12px;border-radius:2px;display:inline-block}.legend-code[data-v-b1bd269f]{font-family:ui-monospace,monospace;color:#1f2937}.legend-name[data-v-b1bd269f]{color:#6b7280}.legend-clear[data-v-b1bd269f]{background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;padding:.2rem .6rem;border-radius:4px;font-size:.75rem;cursor:pointer}.legend-clear[data-v-b1bd269f]:hover{background:#e0e7ff}.free-slots[data-v-b1bd269f]{background:#fff;border-radius:6px;padding:.6rem .85rem;box-shadow:0 1px 3px #00000014}.fs-bar[data-v-b1bd269f]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.82rem}.fs-title[data-v-b1bd269f]{font-weight:600;color:#374151}.fs-count[data-v-b1bd269f]{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;padding:0 .4rem;background:#d1fae5;color:#065f46;border-radius:11px;font-weight:700;font-size:.78rem}.fs-count-zero[data-v-b1bd269f]{background:#f3f4f6;color:#9ca3af}.fs-sep[data-v-b1bd269f]{color:#d1d5db}.fs-label[data-v-b1bd269f]{color:#6b7280;font-size:.78rem}.fs-sel[data-v-b1bd269f]{padding:.25rem .4rem;font-size:.78rem;border:1px solid #d1d5db;border-radius:4px;background:#fff}.fs-totals[data-v-b1bd269f]{color:#6b7280;font-size:.78rem;margin-left:auto}.fs-toggle[data-v-b1bd269f]{padding:.3rem .7rem;font-size:.78rem;background:#1a1a2e;color:#fff;border:none;border-radius:4px;cursor:pointer}.fs-toggle[data-v-b1bd269f]:hover:not(:disabled){background:#2a2a4e}.fs-toggle[data-v-b1bd269f]:disabled{opacity:.4;cursor:not-allowed;background:#9ca3af}.fs-list[data-v-b1bd269f]{margin-top:.7rem;border-top:1px solid #e5e7eb;padding-top:.7rem;max-height:320px;overflow-y:auto}.fs-group[data-v-b1bd269f]{margin-bottom:.7rem}.fs-group[data-v-b1bd269f]:last-child{margin-bottom:0}.fs-group-head[data-v-b1bd269f]{font-size:.78rem;font-weight:600;color:#4b5563;margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em}.fs-group-count[data-v-b1bd269f]{color:#9ca3af;font-weight:400;text-transform:none;letter-spacing:0}.fs-items[data-v-b1bd269f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.35rem}.fs-item[data-v-b1bd269f]{display:grid;grid-template-columns:1fr 1fr auto;gap:.4rem;align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:4px;padding:.35rem .5rem;cursor:pointer;font-size:.78rem;text-align:left;transition:background .12s,border-color .12s}.fs-item[data-v-b1bd269f]:hover{background:#ecfdf5;border-color:#86efac}.fs-item-date[data-v-b1bd269f]{color:#1f2937;font-weight:500}.fs-item-time[data-v-b1bd269f]{color:#4b5563;font-family:ui-monospace,monospace;font-size:.75rem}.fs-item-dur[data-v-b1bd269f]{color:#065f46;font-weight:600;background:#d1fae5;padding:.1rem .4rem;border-radius:3px;font-size:.72rem}.session-popup[data-v-b1bd269f]{position:fixed;background:#fff;border-radius:6px;box-shadow:0 4px 16px #0000002e;width:280px;padding:.8rem;z-index:100;font-size:.85rem}.popup-header[data-v-b1bd269f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem}.popup-code[data-v-b1bd269f]{font-family:ui-monospace,monospace;font-weight:600;background:#eef2ff;color:#4338ca;padding:.15rem .5rem;border-radius:3px}.popup-close[data-v-b1bd269f]{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#6b7280;line-height:1}.popup-name[data-v-b1bd269f]{font-weight:600;color:#1f2937;margin-bottom:.4rem}.popup-meta[data-v-b1bd269f]{color:#6b7280;font-size:.78rem;margin-bottom:.2rem}.popup-actions[data-v-b1bd269f]{display:flex;gap:.4rem;margin-top:.7rem}.btn-move-session[data-v-b1bd269f]{flex:1;padding:.4rem;background:#eef2ff;color:#4338ca;border:1px solid #c7d2fe;border-radius:4px;cursor:pointer;font-size:.82rem}.btn-move-session[data-v-b1bd269f]:hover{background:#e0e7ff}.btn-cancel-session[data-v-b1bd269f]{flex:1;padding:.4rem;background:#fee2e2;color:#991b1b;border:1px solid #fca5a5;border-radius:4px;cursor:pointer;font-size:.82rem}.btn-cancel-session[data-v-b1bd269f]:hover{background:#fecaca}.move-backdrop[data-v-b1bd269f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:200}.move-modal[data-v-b1bd269f]{background:#fff;border-radius:8px;padding:1.5rem;width:440px;max-width:95vw;box-shadow:0 8px 32px #0003}.move-header[data-v-b1bd269f]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem;font-weight:600;color:#1f2937}.move-origin[data-v-b1bd269f]{background:#f9fafb;padding:.6rem;border-radius:4px;margin-bottom:.8rem;font-size:.85rem}.move-origin-meta[data-v-b1bd269f]{display:block;color:#6b7280;font-size:.78rem;margin-top:.25rem}.move-fields[data-v-b1bd269f]{display:flex;flex-direction:column;gap:.7rem}.mfield[data-v-b1bd269f]{display:flex;flex-direction:column;gap:.25rem}.mfield-row[data-v-b1bd269f]{display:flex;gap:.6rem}.mfield-row .mfield[data-v-b1bd269f]{flex:1}.mfield label[data-v-b1bd269f]{font-size:.8rem;color:#374151;font-weight:500}.mfield .hint[data-v-b1bd269f]{color:#9ca3af;font-weight:400}.mfield input[data-v-b1bd269f],.mfield select[data-v-b1bd269f]{padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem}.mfield-check[data-v-b1bd269f]{flex-direction:row}.check-label[data-v-b1bd269f]{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#374151;cursor:pointer}.date-conflict-warn[data-v-b1bd269f]{background:#fef3c7;color:#92400e;padding:.35rem .5rem;border-radius:3px;font-size:.78rem;margin-top:.25rem}.move-error[data-v-b1bd269f]{background:#fee2e2;color:#991b1b;padding:.5rem;border-radius:4px;margin-top:.7rem;font-size:.85rem}.move-forward-result[data-v-b1bd269f]{background:#ecfdf5;padding:.6rem;border-radius:4px;margin-top:.7rem;font-size:.85rem}.mfr-ok[data-v-b1bd269f]{color:#047857;font-weight:600}.mfr-warn[data-v-b1bd269f]{color:#92400e;margin-top:.4rem}.mfr-item[data-v-b1bd269f]{font-size:.78rem;color:#92400e;padding-left:.5rem}.move-actions[data-v-b1bd269f]{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.move-actions button[data-v-b1bd269f]{padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;border:1px solid #d1d5db;background:#fff}.move-actions button.btn-primary[data-v-b1bd269f]{background:#1a1a2e;color:#fff;border:1px solid #1a1a2e}.move-actions button.btn-primary[data-v-b1bd269f]:hover{background:#2a2a4e}.move-actions button.btn-primary[data-v-b1bd269f]:disabled{opacity:.6;cursor:not-allowed}.admin-rooms[data-v-c77cb935]{max-width:1000px;margin:0 auto}.admin-header[data-v-c77cb935]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-header h2[data-v-c77cb935]{font-size:1.25rem;font-weight:600}.rooms-table[data-v-c77cb935]{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.rooms-table th[data-v-c77cb935]{background:#f8f8f8;padding:.75rem 1rem;text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#666}.rooms-table td[data-v-c77cb935]{padding:.75rem 1rem;border-top:1px solid #f0f0f0;font-size:.9rem;vertical-align:middle}.rooms-table tr.inactive td[data-v-c77cb935]{opacity:.5}.rooms-table tbody tr[data-v-c77cb935]{cursor:grab}.rooms-table tbody tr[data-v-c77cb935]:active{cursor:grabbing}.rooms-table tbody tr.drag-over[data-v-c77cb935]{background:#eef4ff;outline:2px dashed #4a7ee6;outline-offset:-2px}.th-drag[data-v-c77cb935]{width:2rem}.drag-handle[data-v-c77cb935]{color:#bbb;font-size:1.1rem;cursor:grab;-webkit-user-select:none;user-select:none;text-align:center}.tag[data-v-c77cb935]{display:inline-block;background:#e8f4fd;color:#1a6a9a;font-size:.75rem;padding:.15rem .5rem;border-radius:99px;margin-right:.25rem}.muted[data-v-c77cb935]{color:#aaa}.toggle[data-v-c77cb935]{border:none;padding:.3rem .75rem;border-radius:99px;font-size:.8rem;cursor:pointer;font-weight:500}.toggle-on[data-v-c77cb935]{background:#d4edda;color:#155724}.toggle-off[data-v-c77cb935]{background:#f0f0f0;color:#888}.actions[data-v-c77cb935]{display:flex;gap:.5rem}.btn-sm[data-v-c77cb935]{padding:.3rem .75rem;font-size:.8rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer}.btn-sm[data-v-c77cb935]:hover{background:#f5f5f5}.btn-danger[data-v-c77cb935]{border-color:#e74c3c;color:#e74c3c}.btn-danger[data-v-c77cb935]:hover{background:#fdf0f0}.btn-primary[data-v-c77cb935]{background:#1a1a2e;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-primary[data-v-c77cb935]:hover{background:#2a2a4e}.state-msg[data-v-c77cb935]{padding:2rem;text-align:center;color:#666}.state-msg.error[data-v-c77cb935]{color:#c0392b}.modal-backdrop[data-v-c77cb935]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-c77cb935]{background:#fff;border-radius:8px;padding:1.5rem;width:440px;max-width:95vw}.modal-sm[data-v-c77cb935]{width:360px}.modal h3[data-v-c77cb935]{margin-bottom:1.25rem;font-size:1.1rem}.modal p[data-v-c77cb935]{color:#666;font-size:.9rem;margin-bottom:1rem}.field[data-v-c77cb935]{margin-bottom:1rem}.field label[data-v-c77cb935]{display:block;font-size:.8rem;font-weight:600;color:#555;margin-bottom:.35rem}.field input[data-v-c77cb935],.field select[data-v-c77cb935],.field textarea[data-v-c77cb935]{width:100%;border:1px solid #ddd;border-radius:4px;padding:.5rem .75rem;font-size:.9rem;font-family:inherit}.field textarea[data-v-c77cb935]{font-family:monospace;font-size:.85rem;resize:vertical}.hint[data-v-c77cb935]{font-weight:400;color:#aaa;font-size:.75rem}.caps-grid[data-v-c77cb935]{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 1rem;padding:.5rem 0}.cap-check[data-v-c77cb935]{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#444;cursor:pointer;font-weight:400}.cap-check input[data-v-c77cb935]{cursor:pointer;accent-color:#4f46e5;width:15px;height:15px}.modal-actions[data-v-c77cb935]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.btn-pdf[data-v-c77cb935]{border-color:#7c3aed;color:#7c3aed}.btn-pdf[data-v-c77cb935]:hover{background:#f5f3ff}.pdf-wrap[data-v-c77cb935]{position:relative}.pdf-popover[data-v-c77cb935]{position:absolute;top:calc(100% + 6px);right:0;z-index:50;display:flex;align-items:center;gap:.4rem;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 12px #0000001f;padding:.5rem .6rem;white-space:nowrap}.pop-date[data-v-c77cb935]{border:1px solid #ddd;border-radius:4px;padding:.3rem .4rem;font-size:.8rem;width:120px}.pop-sep[data-v-c77cb935]{color:#aaa;font-size:.85rem}.pop-btn[data-v-c77cb935]{background:#7c3aed;color:#fff;border:none;border-radius:4px;padding:.3rem .65rem;font-size:.8rem;cursor:pointer;font-weight:500}.pop-btn[data-v-c77cb935]:hover{background:#6d28d9}.pop-btn[data-v-c77cb935]:disabled{opacity:.4;cursor:not-allowed}.admin-venues[data-v-6c16e767]{max-width:900px;margin:0 auto}.admin-header[data-v-6c16e767]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-header h2[data-v-6c16e767]{font-size:1.25rem;font-weight:600}.venues-table[data-v-6c16e767]{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.venues-table th[data-v-6c16e767]{background:#f8f8f8;padding:.75rem 1rem;text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#666}.venues-table td[data-v-6c16e767]{padding:.75rem 1rem;border-top:1px solid #f0f0f0;font-size:.9rem;vertical-align:middle}.color-dot[data-v-6c16e767]{display:inline-block;width:1.2rem;height:1.2rem;border-radius:50%;border:1px solid rgba(0,0,0,.15);vertical-align:middle}.color-swatches[data-v-6c16e767]{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.25rem}.swatch[data-v-6c16e767]{width:2rem;height:2rem;border-radius:6px;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s}.swatch[data-v-6c16e767]:hover{transform:scale(1.15)}.swatch.selected[data-v-6c16e767]{border-color:#1a1a2e;box-shadow:0 0 0 1px #1a1a2e}.actions[data-v-6c16e767]{display:flex;gap:.5rem}.btn-sm[data-v-6c16e767]{padding:.3rem .75rem;font-size:.8rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer}.btn-sm[data-v-6c16e767]:hover{background:#f5f5f5}.btn-danger[data-v-6c16e767]{border-color:#e74c3c;color:#e74c3c}.btn-danger[data-v-6c16e767]:hover{background:#fdf0f0}.btn-primary[data-v-6c16e767]{background:#1a1a2e;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-primary[data-v-6c16e767]:hover{background:#2a2a4e}.state-msg[data-v-6c16e767]{padding:2rem;text-align:center;color:#666}.state-msg.error[data-v-6c16e767]{color:#c0392b}.modal-backdrop[data-v-6c16e767]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-6c16e767]{background:#fff;border-radius:8px;padding:1.5rem;width:440px;max-width:95vw}.modal-sm[data-v-6c16e767]{width:360px}.modal h3[data-v-6c16e767]{margin-bottom:1.25rem;font-size:1.1rem}.modal p[data-v-6c16e767]{color:#666;font-size:.9rem;margin-bottom:1rem}.field[data-v-6c16e767]{margin-bottom:1rem}.field label[data-v-6c16e767]{display:block;font-size:.8rem;font-weight:600;color:#555;margin-bottom:.35rem}.field input[data-v-6c16e767],.field select[data-v-6c16e767]{width:100%;border:1px solid #ddd;border-radius:4px;padding:.5rem .75rem;font-size:.9rem;font-family:inherit}.modal-actions[data-v-6c16e767]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.weekday-checks[data-v-6c16e767]{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.wd-label[data-v-6c16e767]{display:flex;align-items:center;gap:.3rem;font-size:.85rem;cursor:pointer;padding:.3rem .5rem;border:1px solid #e5e7eb;border-radius:4px}.wd-label input[type=checkbox][data-v-6c16e767]{accent-color:#1a1a2e}.field-hint[data-v-6c16e767]{font-size:.75rem;color:#aaa;margin-top:.35rem;line-height:1.4}.field-error[data-v-6c16e767]{font-size:.75rem;color:#e74c3c;margin-top:.25rem}.field-label-hint[data-v-6c16e767]{font-weight:400;color:#aaa;font-size:.75rem}.field-row[data-v-6c16e767]{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.venue-logo-row[data-v-6c16e767]{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}.venue-logo-thumb[data-v-6c16e767]{width:72px;height:48px;border-radius:6px;border:1px solid #e5e7eb;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;background:#f9fafb}.venue-logo-thumb img[data-v-6c16e767]{max-width:100%;max-height:100%;object-fit:contain}.venue-logo-thumb.empty[data-v-6c16e767]{border-style:dashed}.no-logo-text[data-v-6c16e767]{font-size:.65rem;color:#aaa}.venue-logo-actions[data-v-6c16e767]{display:flex;gap:.4rem;flex-wrap:wrap}.btn-upload[data-v-6c16e767]{display:inline-block;cursor:pointer}.admin-courses[data-v-5da06c64]{max-width:1200px;margin:0 auto}.admin-header[data-v-5da06c64]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-header h2[data-v-5da06c64]{font-size:1.25rem;font-weight:600}.courses-table[data-v-5da06c64]{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.courses-table th[data-v-5da06c64]{background:#f8f8f8;padding:.75rem 1rem;text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#666}.courses-table td[data-v-5da06c64]{padding:.75rem 1rem;border-top:1px solid #f0f0f0;font-size:.9rem;vertical-align:middle}.mono[data-v-5da06c64]{font-family:monospace;font-size:.85rem}.center[data-v-5da06c64]{text-align:center}.dates-col[data-v-5da06c64]{font-size:.8rem;color:#666;white-space:nowrap}.schedule-col[data-v-5da06c64]{min-width:120px}.track-pill[data-v-5da06c64]{display:inline-flex;align-items:center;gap:.35rem;background:#f0f4ff;border-radius:4px;padding:.15rem .5rem;font-size:.8rem;margin-right:.25rem;margin-bottom:.15rem}.track-time[data-v-5da06c64]{color:#666;font-size:.75rem}.muted[data-v-5da06c64]{color:#aaa}.badge[data-v-5da06c64]{display:inline-block;padding:.2rem .6rem;border-radius:99px;font-size:.75rem;font-weight:600}.badge-draft[data-v-5da06c64]{background:#f0f0f0;color:#666}.badge-scheduled[data-v-5da06c64]{background:#dbeafe;color:#1e40af}.badge-active[data-v-5da06c64]{background:#d1fae5;color:#065f46}.badge-finished[data-v-5da06c64]{background:#e5e7eb;color:#374151}.badge-cancelled[data-v-5da06c64]{background:#fee2e2;color:#991b1b}.actions[data-v-5da06c64]{display:flex;gap:.35rem}.btn-sm[data-v-5da06c64]{padding:.3rem .65rem;font-size:.78rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;white-space:nowrap}.btn-sm[data-v-5da06c64]:hover{background:#f5f5f5}.btn-danger[data-v-5da06c64]{border-color:#e74c3c;color:#e74c3c}.btn-danger[data-v-5da06c64]:hover{background:#fdf0f0}.btn-generate[data-v-5da06c64]{border-color:#10b981;color:#10b981}.btn-generate[data-v-5da06c64]:hover{background:#ecfdf5}.btn-generate-pending[data-v-5da06c64]{background:#10b981;color:#fff;border-color:#10b981;font-weight:600}.btn-generate-pending[data-v-5da06c64]:hover{background:#059669;border-color:#059669}.no-sessions-warn[data-v-5da06c64]{color:#c2410c;font-size:.78rem;font-weight:600;white-space:nowrap}.stale-badge[data-v-5da06c64]{display:inline-block;margin-left:.4rem;padding:.1rem .4rem;font-size:.7rem;font-weight:600;background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:3px;cursor:pointer;white-space:nowrap}.stale-badge[data-v-5da06c64]:hover{background:#fde68a}.btn-outline[data-v-5da06c64]{border:1px solid #1a1a2e;color:#1a1a2e;background:#fff;padding:.5rem 1rem;border-radius:4px;cursor:pointer}.btn-primary[data-v-5da06c64]{background:#1a1a2e;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-primary[data-v-5da06c64]:hover{background:#2a2a4e}.state-msg[data-v-5da06c64]{padding:2rem;text-align:center;color:#666}.state-msg.error[data-v-5da06c64]{color:#c0392b}.modal-backdrop[data-v-5da06c64]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-5da06c64]{background:#fff;border-radius:8px;padding:1.5rem;width:440px;max-width:95vw;max-height:90vh;overflow-y:auto}.modal-sm[data-v-5da06c64]{width:360px}.modal-lg[data-v-5da06c64]{width:680px}.modal h3[data-v-5da06c64]{margin-bottom:1.25rem;font-size:1.1rem}.modal p[data-v-5da06c64]{color:#666;font-size:.9rem;margin-bottom:1rem}.form-row[data-v-5da06c64]{display:flex;gap:.75rem;flex-wrap:wrap}.field[data-v-5da06c64]{flex:1;min-width:120px;margin-bottom:1rem}.field-sm[data-v-5da06c64]{flex:0 0 100px}.field-grow[data-v-5da06c64]{flex:2}.field label[data-v-5da06c64]{display:block;font-size:.8rem;font-weight:600;color:#555;margin-bottom:.35rem}.field input[data-v-5da06c64],.field select[data-v-5da06c64],.field textarea[data-v-5da06c64]{width:100%;border:1px solid #ddd;border-radius:4px;padding:.5rem .75rem;font-size:.9rem;font-family:inherit;box-sizing:border-box}.field textarea[data-v-5da06c64]{resize:vertical}.section-title[data-v-5da06c64]{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#888;margin:.5rem 0 .75rem;border-top:1px solid #f0f0f0;padding-top:1rem}.color-swatches[data-v-5da06c64]{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.25rem}.swatch[data-v-5da06c64]{width:2rem;height:2rem;border-radius:6px;border:2px solid transparent;cursor:pointer;padding:0;transition:transform .1s}.swatch[data-v-5da06c64]:hover{transform:scale(1.15)}.swatch.selected[data-v-5da06c64]{border-color:#1a1a2e;box-shadow:0 0 0 1px #1a1a2e}.swatch-none[data-v-5da06c64]{background:#f3f4f6;font-size:.65rem;color:#666;font-weight:600}.info-note[data-v-5da06c64]{background:#fffbeb;border:1px solid #fde68a;border-radius:4px;padding:.5rem .75rem;font-size:.82rem;color:#92400e;margin-bottom:1rem}.warn-note[data-v-5da06c64]{background:#fff7ed;border:1px solid #fed7aa;border-radius:4px;padding:.75rem;font-size:.85rem;color:#9a3412;margin-bottom:1rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.track-form[data-v-5da06c64]{background:#fafafa;border:1px solid #e8e8e8;border-radius:6px;padding:1rem;margin-bottom:1rem}.freq-tabs[data-v-5da06c64]{display:flex;gap:.25rem}.freq-tab[data-v-5da06c64]{padding:.3rem .85rem;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.85rem;background:#fff}.freq-tab.active[data-v-5da06c64]{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.day-checks[data-v-5da06c64]{display:flex;gap:.35rem;flex-wrap:wrap}.day-check[data-v-5da06c64]{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:600;background:#fff;-webkit-user-select:none;user-select:none}.day-check.active[data-v-5da06c64]{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.rrule-preview[data-v-5da06c64]{font-size:.82rem;color:#555;margin-top:.35rem;font-style:italic}.modal-actions[data-v-5da06c64]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.result-row[data-v-5da06c64]{display:flex;align-items:center;gap:.75rem;padding:.75rem 0;font-size:.95rem;border-bottom:1px solid #f0f0f0;flex-wrap:wrap}.result-row.ok[data-v-5da06c64]{color:#065f46}.result-row.warn[data-v-5da06c64]{color:#92400e}.result-row.error[data-v-5da06c64]{color:#991b1b}.result-num[data-v-5da06c64]{font-size:1.5rem;font-weight:700}.conflict-item[data-v-5da06c64]{font-size:.82rem;padding:.2rem 0;color:#666}.conflict-holiday[data-v-5da06c64]{color:#92400e}.conflict-room[data-v-5da06c64]{color:#991b1b}.conflict-room-hint[data-v-5da06c64]{font-size:.8rem;color:#6b7280;margin:.3rem 0 0;width:100%;font-style:italic}.field-error[data-v-5da06c64]{font-size:.78rem;color:#dc2626;margin-top:.2rem;display:block}.input-warn[data-v-5da06c64]{border-color:#f59e0b!important}.min-date-chips[data-v-5da06c64]{display:flex;align-items:center;gap:.4rem;margin-top:.3rem;flex-wrap:wrap}.min-date-chip[data-v-5da06c64]{padding:.15rem .5rem;border-radius:12px;border:1px solid;font-size:.75rem;cursor:pointer;font-family:inherit;font-weight:600;transition:opacity .15s}.min-date-chip[data-v-5da06c64]:hover{opacity:.75}.min-date-chip--plain[data-v-5da06c64]{border-color:#d1d5db;background:#f3f4f6;color:#374151}.min-date-chip--hol[data-v-5da06c64]{border-color:#6ee7b7;background:#d1fae5;color:#065f46}.min-date-label[data-v-5da06c64]{font-size:.72rem;color:#9ca3af}.session-summary[data-v-5da06c64]{display:block;font-size:.75rem;color:#6366f1;margin-top:.2rem;font-weight:600}.notes-details[data-v-5da06c64]{margin-bottom:.5rem}.notes-summary[data-v-5da06c64]{font-size:.82rem;font-weight:600;color:#555;cursor:pointer;-webkit-user-select:none;user-select:none}.notes-dot[data-v-5da06c64]{color:#f59e0b;font-size:.6rem;vertical-align:middle}.aula-warn-badge[data-v-5da06c64]{font-size:.7rem;font-weight:600;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;border-radius:4px;padding:0 .35rem;margin-left:.3rem}.teacher-col[data-v-5da06c64]{font-size:.85rem;color:#4b5563}.filter-bar[data-v-5da06c64]{display:flex;gap:.75rem;margin-bottom:1rem;align-items:center;flex-wrap:wrap}.filter-input[data-v-5da06c64]{padding:.45rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;min-width:220px}.filter-select[data-v-5da06c64]{padding:.45rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;background:#fff}.btn-clear[data-v-5da06c64]{padding:.4rem .75rem;border:1px solid #d1d5db;border-radius:6px;background:#fff;font-size:.8rem;cursor:pointer;color:#6b7280}.btn-clear[data-v-5da06c64]:hover{background:#f3f4f6}.btn-pdf[data-v-5da06c64]{border-color:#7c3aed;color:#7c3aed}.btn-pdf[data-v-5da06c64]:hover{background:#f5f3ff}.btn-pdf-large[data-v-5da06c64]{background:#7c3aed;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-pdf-large[data-v-5da06c64]:hover{background:#6d28d9}.teacher-drop[data-v-5da06c64]{position:absolute;z-index:200;top:calc(100% - .5rem);left:0;right:0;background:#fff;border:1px solid #d1d5db;border-radius:6px;box-shadow:0 4px 16px #0000001f;overflow:hidden}.teacher-opt[data-v-5da06c64]{padding:.5rem .75rem;cursor:pointer;display:flex;gap:.75rem;align-items:baseline;font-size:.875rem}.teacher-opt[data-v-5da06c64]:hover{background:#f5f3ff}.teacher-name[data-v-5da06c64]{font-weight:500}.teacher-email[data-v-5da06c64]{color:#9ca3af;font-size:.8rem}.teacher-new[data-v-5da06c64]{color:#4f46e5}.teacher-selected-note[data-v-5da06c64]{font-size:.78rem;color:#374151;margin-top:.4rem;display:flex;align-items:center;gap:.4rem}.dot-green[data-v-5da06c64]{color:#16a34a;font-size:.7rem}.clear-teacher[data-v-5da06c64]{background:none;border:none;cursor:pointer;color:#9ca3af;font-size:.85rem;padding:0 .2rem}.clear-teacher[data-v-5da06c64]:hover{color:#374151}.btn-recover[data-v-5da06c64]{border-color:#0891b2;color:#0891b2}.btn-recover[data-v-5da06c64]:hover{background:#ecfeff}.recovery-title-row[data-v-5da06c64]{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.recovery-title-row h3[data-v-5da06c64]{margin:0}.recovery-help[data-v-5da06c64]{font-size:.88rem;color:#4b5563;line-height:1.45;margin-bottom:1rem}.recovery-auto-hint[data-v-5da06c64]{display:block;font-size:.78rem;color:#6b7280;margin-top:.25rem}.recovery-summary[data-v-5da06c64]{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:.85rem;color:#374151;background:#f9fafb;padding:.5rem .75rem;border-radius:6px;margin-bottom:.85rem}.recovery-warnings[data-v-5da06c64]{margin-bottom:.85rem;display:flex;flex-direction:column;gap:.4rem}.recovery-empty[data-v-5da06c64]{padding:1rem;background:#fef3c7;color:#92400e;border-radius:6px;font-size:.88rem}.recovery-options[data-v-5da06c64]{display:flex;flex-direction:column;gap:.5rem;max-height:50vh;overflow-y:auto;padding:.1rem}.recovery-option[data-v-5da06c64]{border:1px solid #e5e7eb;border-radius:6px;padding:.7rem .85rem;cursor:pointer;background:#fff;transition:border-color .12s,box-shadow .12s,background .12s}.recovery-option[data-v-5da06c64]:hover{background:#f9fafb;border-color:#d1d5db}.recovery-option.selected[data-v-5da06c64]{border-color:#0891b2;box-shadow:0 0 0 2px #0891b22e;background:#ecfeff}.recovery-option.partial[data-v-5da06c64]{border-style:dashed}.ro-head[data-v-5da06c64]{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.ro-kind[data-v-5da06c64]{font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:3px;text-transform:uppercase;letter-spacing:.04em}.ro-kind-append[data-v-5da06c64]{background:#dbeafe;color:#1e40af}.ro-kind-extend[data-v-5da06c64]{background:#fef3c7;color:#92400e}.ro-kind-gap_insert[data-v-5da06c64]{background:#d1fae5;color:#065f46}.ro-kind-weekend[data-v-5da06c64]{background:#fee2e2;color:#991b1b}.ro-kind-mixed[data-v-5da06c64]{background:#ede9fe;color:#5b21b6}.ro-label[data-v-5da06c64]{font-weight:600;color:#1f2937;flex:1}.ro-coverage[data-v-5da06c64]{font-size:.78rem;font-weight:600;padding:.15rem .5rem;border-radius:11px}.ro-coverage.ok[data-v-5da06c64]{background:#d1fae5;color:#065f46}.ro-coverage.warn[data-v-5da06c64]{background:#fef3c7;color:#92400e}.ro-desc[data-v-5da06c64]{color:#6b7280;font-size:.82rem;margin-top:.3rem;line-height:1.4}.ro-detail[data-v-5da06c64]{margin-top:.7rem;border-top:1px dashed #e5e7eb;padding-top:.6rem}.ro-warnings[data-v-5da06c64]{margin-bottom:.5rem;display:flex;flex-direction:column;gap:.3rem}.ro-preview-title[data-v-5da06c64]{font-size:.78rem;font-weight:600;color:#4b5563;margin-bottom:.3rem}.ro-preview ul[data-v-5da06c64]{margin:0;padding-left:1.2rem;font-size:.82rem;color:#374151}.ro-preview li[data-v-5da06c64]{margin-bottom:.2rem}.recovery-done[data-v-5da06c64]{background:#ecfdf5;padding:1rem;border-radius:6px}.recovery-done .result-row[data-v-5da06c64]{font-size:.95rem}.recovery-done-hint[data-v-5da06c64]{font-size:.82rem;color:#4b5563;margin-top:.7rem;line-height:1.45}.recovery-undo-result[data-v-5da06c64]{margin-top:.8rem;padding:.6rem .8rem;background:#eef2ff;color:#4338ca;border-radius:4px;font-size:.85rem}.field-checkbox[data-v-5da06c64]{margin-top:.7rem;padding:.6rem .75rem;background:#f9fafb;border-radius:6px;display:flex;flex-direction:column;gap:.35rem}.field-checkbox .check-label[data-v-5da06c64]{display:flex;align-items:flex-start;gap:.5rem;font-size:.88rem;color:#374151;cursor:pointer}.field-checkbox .check-label input[type=checkbox][data-v-5da06c64]{margin-top:.2rem}.btn-undo-recovery[data-v-5da06c64]{padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;background:#fef3c7;color:#92400e;border:1px solid #fde68a}.btn-undo-recovery[data-v-5da06c64]:hover:not(:disabled){background:#fde68a}.btn-undo-recovery[data-v-5da06c64]:disabled{opacity:.6;cursor:not-allowed}.hm-field[data-v-5da06c64]{flex:0 0 auto;min-width:0}.hm-input[data-v-5da06c64]{display:inline-flex;align-items:center;gap:.5rem}.hm-input .hm-num[data-v-5da06c64]{width:72px!important;padding:.5rem .6rem;border:1px solid #d1d5db;border-radius:4px;font-size:.95rem;text-align:right}.hm-input .hm-min[data-v-5da06c64]{width:72px!important;padding:.5rem .6rem;border:1px solid #d1d5db;border-radius:4px;font-size:.95rem;background:#fff}.hm-unit[data-v-5da06c64]{color:#6b7280;font-size:.9rem}.recovery-hint-row[data-v-5da06c64]{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;font-size:.82rem;color:#6b7280;margin:-.3rem 0 .9rem}.hm-decimal[data-v-5da06c64]{font-style:italic}.hint-sep[data-v-5da06c64]{color:#d1d5db}.link-btn[data-v-5da06c64]{background:none;border:none;color:#0891b2;cursor:pointer;text-decoration:underline;font-size:inherit;padding:0}.link-btn[data-v-5da06c64]:hover{color:#0e7490}.admin-holidays[data-v-49ded778]{max-width:960px;margin:0 auto}.admin-header[data-v-49ded778]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.admin-header h2[data-v-49ded778]{font-size:1.25rem;font-weight:600}.tabs[data-v-49ded778]{display:flex;gap:0;border-bottom:2px solid #e5e7eb;margin-bottom:1rem}.tab[data-v-49ded778]{padding:.5rem 1.25rem;border:none;background:none;cursor:pointer;font-size:.9rem;color:#666;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.tab[data-v-49ded778]:hover{color:#1a1a2e}.tab.active[data-v-49ded778]{color:#1a1a2e;font-weight:600;border-bottom-color:#1a1a2e}.filter-bar[data-v-49ded778]{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.filter-bar select[data-v-49ded778]{padding:.4rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.875rem}.data-table[data-v-49ded778]{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.data-table th[data-v-49ded778]{background:#f8f8f8;padding:.75rem 1rem;text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#666}.data-table td[data-v-49ded778]{padding:.7rem 1rem;border-top:1px solid #f0f0f0;font-size:.88rem;vertical-align:middle}.data-table td.empty[data-v-49ded778]{text-align:center;color:#aaa;padding:2rem}.scope-badge[data-v-49ded778]{padding:.15rem .5rem;border-radius:3px;font-size:.75rem;font-weight:500}.scope-badge.national[data-v-49ded778]{background:#dbeafe;color:#1e40af}.scope-badge.regional[data-v-49ded778]{background:#d1fae5;color:#065f46}.scope-badge.local[data-v-49ded778]{background:#fef3c7;color:#92400e}.recur-badge[data-v-49ded778]{margin-left:.3rem;font-size:.8rem;color:#7c3aed;font-weight:600}.field-check[data-v-49ded778]{margin-top:.25rem}.check-label[data-v-49ded778]{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:#374151;cursor:pointer}.check-label input[type=checkbox][data-v-49ded778]{width:auto}.hint-block[data-v-49ded778]{font-size:.75rem;color:#6b7280;margin-top:.25rem;display:block}.scope-badge.custom[data-v-49ded778]{background:#f3f4f6;color:#374151}.all-rooms[data-v-49ded778]{font-style:italic;color:#888;font-size:.82rem}.all-venues-badge[data-v-49ded778]{font-size:.78rem;background:#ede9fe;color:#5b21b6;padding:.15rem .5rem;border-radius:3px;font-weight:500}.actions[data-v-49ded778]{display:flex;gap:.5rem}.btn-sm[data-v-49ded778]{padding:.3rem .75rem;font-size:.8rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer}.btn-sm[data-v-49ded778]:hover{background:#f5f5f5}.btn-sm.btn-danger[data-v-49ded778],.btn-danger[data-v-49ded778]{border-color:#e74c3c;color:#e74c3c;background:#fff}.btn-sm.btn-danger[data-v-49ded778]:hover,.btn-danger[data-v-49ded778]:hover{background:#fdf0f0}.btn-primary[data-v-49ded778]{background:#1a1a2e;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-primary[data-v-49ded778]:hover{background:#2a2a4e}.state-msg[data-v-49ded778]{padding:2rem;text-align:center;color:#666}.state-msg.error[data-v-49ded778]{color:#c0392b}.modal-backdrop[data-v-49ded778]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-49ded778]{background:#fff;border-radius:8px;padding:1.5rem;width:460px;max-width:95vw}.modal-sm[data-v-49ded778]{width:360px}.modal h3[data-v-49ded778]{margin-bottom:1.25rem;font-size:1.1rem}.modal p[data-v-49ded778]{color:#666;font-size:.9rem;margin-bottom:1rem}.field[data-v-49ded778]{margin-bottom:1rem}.field label[data-v-49ded778]{display:block;font-size:.8rem;font-weight:600;color:#555;margin-bottom:.35rem}.field input[data-v-49ded778],.field select[data-v-49ded778]{width:100%;border:1px solid #ddd;border-radius:4px;padding:.5rem .75rem;font-size:.9rem;font-family:inherit}.field .hint[data-v-49ded778]{font-weight:400;color:#aaa;font-size:.75rem}.field-row[data-v-49ded778]{display:flex;gap:1rem}.field-row .field[data-v-49ded778]{flex:1}.modal-actions[data-v-49ded778]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.modal-actions button[data-v-49ded778]:not(.btn-primary){padding:.45rem 1rem;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.88rem;background:#fff;color:#374151}.settings-page[data-v-45d318e0]{max-width:860px;margin:0 auto}.page-header[data-v-45d318e0]{margin-bottom:1.5rem}.page-header h1[data-v-45d318e0]{font-size:1.4rem;font-weight:600}.subtitle[data-v-45d318e0]{color:#6b7280;font-size:.875rem;margin-top:.25rem}.brand-preview[data-v-45d318e0]{border-radius:10px;padding:1.1rem 1.5rem;display:flex;align-items:center;gap:1.25rem;margin-bottom:1.25rem;position:relative;min-height:76px;transition:background .25s;box-shadow:0 2px 8px #0000002e}.preview-logo-wrap[data-v-45d318e0]{flex-shrink:0}.preview-logo[data-v-45d318e0]{height:46px;width:auto;max-width:140px;object-fit:contain;display:block}.preview-logo-empty[data-v-45d318e0]{width:46px;height:46px;border-radius:8px;background:#ffffff26}.preview-info[data-v-45d318e0]{display:flex;flex-direction:column;gap:.2rem}.preview-name[data-v-45d318e0]{color:#fff;font-size:1.05rem;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2)}.preview-web[data-v-45d318e0]{color:#ffffffa6;font-size:.78rem}.preview-tag[data-v-45d318e0]{position:absolute;bottom:8px;right:10px;color:#ffffffe6;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:#00000047;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.2rem .55rem;border-radius:20px}.main-grid[data-v-45d318e0]{display:grid;grid-template-columns:260px 1fr;gap:1.25rem;margin-bottom:1.25rem}.card[data-v-45d318e0]{background:#fff;border-radius:10px;border:1px solid #e5e7eb;padding:1.25rem 1.4rem}.card h2[data-v-45d318e0]{font-size:.95rem;font-weight:600;color:#374151;margin-bottom:1.1rem}.card-contacto[data-v-45d318e0],.card-social[data-v-45d318e0]{margin-bottom:1.25rem}.contact-grid[data-v-45d318e0]{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.5rem}.contact-field label[data-v-45d318e0]{display:block;font-size:.8rem;font-weight:500;color:#4b5563;margin-bottom:.3rem}.contact-field input[data-v-45d318e0]{width:100%;padding:.45rem .65rem;border:1px solid #d1d5db;border-radius:6px;font-size:.83rem;font-family:inherit}.contact-field input[data-v-45d318e0]:focus{outline:none;border-color:#6366f1}.logo-dropzone[data-v-45d318e0]{border:2px dashed #d1d5db;border-radius:8px;min-height:140px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:border-color .15s,background .15s;position:relative;overflow:hidden;margin-bottom:.75rem}.logo-dropzone[data-v-45d318e0]:not(.has-logo):hover,.logo-dropzone.dragging[data-v-45d318e0]{border-color:#6366f1;background:#f5f3ff}.logo-dropzone.has-logo[data-v-45d318e0]{cursor:default;border-style:solid;border-color:#e5e7eb}.logo-img[data-v-45d318e0]{max-height:100px;max-width:100%;object-fit:contain;padding:.5rem}.logo-overlay[data-v-45d318e0]{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;gap:.6rem;opacity:0;transition:opacity .15s}.logo-dropzone.has-logo:hover .logo-overlay[data-v-45d318e0]{opacity:1}.overlay-btn[data-v-45d318e0]{background:#fff;color:#111;border:none;padding:.35rem .9rem;border-radius:5px;font-size:.8rem;font-weight:500;cursor:pointer}.overlay-btn-danger[data-v-45d318e0]{background:#dc2626;color:#fff}.upload-icon[data-v-45d318e0]{width:2rem;height:2rem;color:#9ca3af}.upload-label[data-v-45d318e0]{font-size:.82rem;color:#6b7280;font-weight:500}.upload-hint[data-v-45d318e0]{font-size:.72rem;color:#9ca3af}.logo-note[data-v-45d318e0]{font-size:.72rem;color:#9ca3af;line-height:1.5}.logo-note a[data-v-45d318e0]{color:#6366f1;text-decoration:none}.logo-note a[data-v-45d318e0]:hover{text-decoration:underline}.field[data-v-45d318e0]{margin-bottom:1rem}.field[data-v-45d318e0]:last-child{margin-bottom:0}.field label[data-v-45d318e0]{display:block;font-size:.8rem;font-weight:500;color:#4b5563;margin-bottom:.35rem}.label-hint[data-v-45d318e0]{font-weight:400;color:#9ca3af}.field input[data-v-45d318e0],.field textarea[data-v-45d318e0]{width:100%;padding:.5rem .7rem;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;font-family:inherit;transition:border-color .15s}.field input[data-v-45d318e0]:focus,.field textarea[data-v-45d318e0]:focus{outline:none;border-color:#6366f1}.field textarea[data-v-45d318e0]{resize:vertical}.field-hint[data-v-45d318e0]{font-size:.72rem;color:#9ca3af;margin-top:.3rem}.field-error[data-v-45d318e0]{font-size:.8rem;color:#dc2626;margin-top:.4rem}.color-row[data-v-45d318e0]{display:flex;gap:.6rem;align-items:center}.color-swatch[data-v-45d318e0]{width:38px;height:38px;flex-shrink:0;border-radius:8px;border:2px solid rgba(0,0,0,.12);cursor:pointer;position:relative;transition:transform .12s,box-shadow .12s}.color-swatch[data-v-45d318e0]:hover{transform:scale(1.08);box-shadow:0 2px 8px #0003}.hidden-color[data-v-45d318e0]{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.hex-input[data-v-45d318e0]{font-family:Courier New,monospace;width:96px;letter-spacing:.04em}.color-reset[data-v-45d318e0]{background:none;border:none;color:#9ca3af;font-size:1.1rem;cursor:pointer;padding:.2rem .3rem;border-radius:4px;transition:color .15s}.color-reset[data-v-45d318e0]:hover{color:#4b5563}.social-header[data-v-45d318e0]{display:flex;align-items:baseline;gap:.75rem;margin-bottom:1rem}.social-header h2[data-v-45d318e0]{margin-bottom:0}.social-hint[data-v-45d318e0]{font-size:.78rem;color:#9ca3af}.social-grid[data-v-45d318e0]{display:grid;grid-template-columns:1fr 1fr;gap:.6rem 1.5rem}.social-field label[data-v-45d318e0]{display:flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:500;color:#4b5563;margin-bottom:.3rem}.social-field input[data-v-45d318e0]{width:100%;padding:.45rem .65rem;border:1px solid #d1d5db;border-radius:6px;font-size:.83rem;font-family:inherit}.social-field input[data-v-45d318e0]:focus{outline:none;border-color:#6366f1}.net-badge[data-v-45d318e0]{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;color:#fff;font-size:.62rem;font-weight:700;letter-spacing:0;flex-shrink:0}.save-bar[data-v-45d318e0]{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:.75rem 0 .5rem}.saved-msg[data-v-45d318e0]{display:flex;align-items:center;gap:.35rem;color:#16a34a;font-size:.875rem;font-weight:500}.check-icon[data-v-45d318e0]{width:16px;height:16px}.btn-save[data-v-45d318e0]{background:#4f46e5;color:#fff;border:none;padding:.55rem 1.4rem;border-radius:7px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-save[data-v-45d318e0]:hover:not(:disabled){background:#4338ca}.btn-save[data-v-45d318e0]:disabled{opacity:.55;cursor:not-allowed}.fade-enter-active[data-v-45d318e0],.fade-leave-active[data-v-45d318e0]{transition:opacity .4s}.fade-enter-from[data-v-45d318e0],.fade-leave-to[data-v-45d318e0]{opacity:0}.loading[data-v-45d318e0]{color:#6b7280;padding:3rem 0;text-align:center}.load-error[data-v-45d318e0]{padding:2rem;text-align:center;color:#c0392b}.btn-retry[data-v-45d318e0]{margin-left:.75rem;padding:.3rem .75rem;border:1px solid #c0392b;color:#c0392b;background:#fff;border-radius:4px;cursor:pointer;font-size:.85rem}.btn-retry[data-v-45d318e0]:hover{background:#fdf0f0}.admin-users[data-v-80c890f0]{max-width:800px;margin:0 auto}.admin-header[data-v-80c890f0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.admin-header h2[data-v-80c890f0]{font-size:1.25rem;font-weight:600}.users-table[data-v-80c890f0]{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.users-table th[data-v-80c890f0]{background:#f8f8f8;padding:.75rem 1rem;text-align:left;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#666}.users-table td[data-v-80c890f0]{padding:.75rem 1rem;border-top:1px solid #f0f0f0;font-size:.9rem;vertical-align:middle}.users-table tr.inactive td[data-v-80c890f0]{opacity:.5}.role-badge[data-v-80c890f0]{display:inline-block;padding:.15rem .6rem;border-radius:99px;font-size:.75rem;font-weight:600}.role-badge.admin[data-v-80c890f0]{background:#e8f4fd;color:#1a6a9a}.role-badge.client[data-v-80c890f0]{background:#fef3c7;color:#92400e}.mcp-badge[data-v-80c890f0]{display:inline-block;margin-left:.4rem;padding:.1rem .45rem;border-radius:99px;font-size:.7rem;font-weight:600;background:#fef9c3;color:#854d0e;border:1px solid #fde047}.status-pill[data-v-80c890f0]{display:inline-block;padding:.15rem .6rem;border-radius:99px;font-size:.75rem;font-weight:500}.status-pill.active[data-v-80c890f0]{background:#d4edda;color:#155724}.status-pill.inactive[data-v-80c890f0]{background:#f0f0f0;color:#888}.actions[data-v-80c890f0]{display:flex;gap:.5rem;flex-wrap:wrap}.btn-sm[data-v-80c890f0]{padding:.3rem .75rem;font-size:.8rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;white-space:nowrap}.btn-sm[data-v-80c890f0]:hover{background:#f5f5f5}.btn-sm[data-v-80c890f0]:disabled{opacity:.4;cursor:not-allowed}.btn-danger[data-v-80c890f0]{border-color:#e74c3c;color:#e74c3c}.btn-danger[data-v-80c890f0]:hover:not(:disabled){background:#fdf0f0}.btn-warn[data-v-80c890f0]{border-color:#d97706;color:#d97706}.btn-warn[data-v-80c890f0]:hover{background:#fffbeb}.btn-primary[data-v-80c890f0]{background:#1a1a2e;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-primary[data-v-80c890f0]:hover{background:#2a2a4e}.state-msg[data-v-80c890f0]{padding:2rem;text-align:center;color:#666}.state-msg.error[data-v-80c890f0]{color:#c0392b}.modal-backdrop[data-v-80c890f0]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.modal[data-v-80c890f0]{background:#fff;border-radius:8px;padding:1.5rem;width:420px;max-width:95vw}.modal-sm[data-v-80c890f0]{width:360px}.modal h3[data-v-80c890f0]{margin-bottom:1.25rem;font-size:1.1rem}.modal p[data-v-80c890f0]{color:#666;font-size:.9rem;margin-bottom:1rem}.field[data-v-80c890f0]{margin-bottom:1rem}.field label[data-v-80c890f0]{display:block;font-size:.8rem;font-weight:600;color:#555;margin-bottom:.35rem}.field input[data-v-80c890f0],.field select[data-v-80c890f0]{width:100%;border:1px solid #ddd;border-radius:4px;padding:.5rem .75rem;font-size:.9rem;font-family:inherit;box-sizing:border-box}.field-error[data-v-80c890f0]{color:#e74c3c;font-size:.8rem;margin-top:.5rem;display:block}.input-eye[data-v-80c890f0]{position:relative}.input-eye input[data-v-80c890f0]{padding-right:2.5rem}.eye-btn[data-v-80c890f0]{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1rem;padding:0;line-height:1}.modal-actions[data-v-80c890f0]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.agenda-view[data-v-31f6303f]{background:#fff;border-radius:8px;padding:1rem 1.25rem;box-shadow:0 1px 3px #0000001a}.toolbar[data-v-31f6303f]{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin-bottom:1.25rem}.toolbar select[data-v-31f6303f]{padding:.4rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.875rem}.date-range[data-v-31f6303f]{display:flex;align-items:center;gap:.4rem}.date-range input[data-v-31f6303f]{padding:.4rem .6rem;border:1px solid #ddd;border-radius:4px;font-size:.875rem}.range-sep[data-v-31f6303f]{color:#aaa;font-size:.8rem}.quick-ranges[data-v-31f6303f]{display:flex;gap:.4rem}.quick-ranges button[data-v-31f6303f]{padding:.35rem .75rem;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:.8rem;color:#555}.quick-ranges button[data-v-31f6303f]:hover{background:#f3f4f6;color:#1a1a2e}.state-msg[data-v-31f6303f]{padding:3rem;text-align:center;color:#888}.state-msg.error[data-v-31f6303f]{color:#c0392b}.day-groups[data-v-31f6303f]{display:flex;flex-direction:column;gap:1.5rem}.day-header[data-v-31f6303f]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.5rem;padding-bottom:.35rem;border-bottom:2px solid #e5e7eb}.day-label[data-v-31f6303f]{font-weight:600;font-size:.95rem;color:#1a1a2e}.day-count[data-v-31f6303f]{font-size:.78rem;color:#aaa}.session-table[data-v-31f6303f]{width:100%;border-collapse:collapse}.session-row td[data-v-31f6303f]{padding:.5rem .75rem;font-size:.875rem;vertical-align:middle;border-top:1px solid #f5f5f5}.session-row.cancelled td[data-v-31f6303f]{opacity:.45}.session-row:hover td[data-v-31f6303f]{background:#fafafa}.col-time[data-v-31f6303f]{white-space:nowrap;font-variant-numeric:tabular-nums;color:#555;width:120px}.col-color[data-v-31f6303f]{width:24px;padding:0 .25rem}.course-dot[data-v-31f6303f]{display:inline-block;width:10px;height:10px;border-radius:50%}.course-code[data-v-31f6303f]{font-family:monospace;font-size:.78rem;background:#f0f0f0;padding:.1rem .35rem;border-radius:3px;margin-right:.5rem}.course-name[data-v-31f6303f]{color:#333}.col-room[data-v-31f6303f]{color:#555;font-size:.83rem}.col-venue[data-v-31f6303f]{color:#888;font-size:.8rem}.col-status[data-v-31f6303f]{width:90px}.badge[data-v-31f6303f]{font-size:.75rem;padding:.15rem .5rem;border-radius:3px}.badge.cancelled[data-v-31f6303f]{background:#fee2e2;color:#991b1b}.badge.moved[data-v-31f6303f]{background:#dbeafe;color:#1e40af}.col-actions[data-v-31f6303f]{width:140px;text-align:right;display:flex;gap:.35rem;justify-content:flex-end}.btn-move[data-v-31f6303f]{padding:.25rem .6rem;font-size:.78rem;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;border-radius:4px;cursor:pointer}.btn-move[data-v-31f6303f]:hover{background:#dbeafe}.btn-cancel[data-v-31f6303f]{padding:.25rem .6rem;font-size:.78rem;border:1px solid #fca5a5;background:#fee2e2;color:#991b1b;border-radius:4px;cursor:pointer}.btn-cancel[data-v-31f6303f]:hover{background:#fecaca}.move-backdrop[data-v-31f6303f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:300}.move-modal[data-v-31f6303f]{background:#fff;border-radius:8px;padding:1.5rem;width:440px;max-width:95vw;box-shadow:0 8px 32px #0003}.move-header[data-v-31f6303f]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-weight:600;font-size:1rem}.move-close[data-v-31f6303f]{background:none;border:none;font-size:1.1rem;cursor:pointer;color:#888;padding:0}.move-origin[data-v-31f6303f]{font-size:.85rem;color:#555;background:#f8f8f8;border-radius:6px;padding:.6rem .75rem;margin-bottom:1.1rem;display:flex;flex-direction:column;gap:.25rem}.move-meta[data-v-31f6303f]{font-size:.78rem;color:#888}.move-fields[data-v-31f6303f]{display:flex;flex-direction:column;gap:.85rem}.mfield[data-v-31f6303f]{display:flex;flex-direction:column;gap:.3rem}.mfield-row[data-v-31f6303f]{display:flex;gap:.75rem}.mfield-row .mfield[data-v-31f6303f]{flex:1}.mfield label[data-v-31f6303f]{font-size:.78rem;font-weight:600;color:#555}.mfield .hint[data-v-31f6303f]{font-weight:400;color:#aaa}.mfield input[data-v-31f6303f],.mfield select[data-v-31f6303f]{border:1px solid #ddd;border-radius:4px;padding:.45rem .6rem;font-size:.88rem;font-family:inherit}.move-error[data-v-31f6303f]{margin-top:.75rem;padding:.5rem .75rem;background:#fee2e2;color:#991b1b;border-radius:4px;font-size:.82rem}.move-actions[data-v-31f6303f]{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.25rem}.move-actions button[data-v-31f6303f]{padding:.45rem 1rem;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.88rem;background:#fff;color:#333}.move-actions .btn-primary[data-v-31f6303f]{background:#1a1a2e;color:#fff;border-color:#1a1a2e}.move-actions .btn-primary[data-v-31f6303f]:hover{background:#2a2a4e}.move-actions .btn-primary[data-v-31f6303f]:disabled{opacity:.6;cursor:not-allowed}.occupied-dates[data-v-31f6303f]{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem;align-items:center}.occupied-label[data-v-31f6303f]{font-size:.72rem;color:#888}.odate[data-v-31f6303f]{font-size:.72rem;background:#f3f4f6;padding:.1rem .4rem;border-radius:3px;color:#555}.odate.conflict[data-v-31f6303f]{background:#fef3c7;color:#92400e;font-weight:600}.date-conflict-warn[data-v-31f6303f]{margin-top:.35rem;font-size:.78rem;color:#92400e;background:#fef3c7;padding:.3rem .5rem;border-radius:4px}.auth-shell[data-v-6035cd2c]{height:100vh;overflow:hidden;display:grid;grid-template-columns:1.05fr 1fr;background:#fafafa;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#1a1a2e}.brand-panel[data-v-6035cd2c]{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:3rem;color:#fff;overflow:hidden;background:linear-gradient(135deg,var(--brand-deep) 0%,var(--brand) 60%,var(--brand-bright) 100%)}.brand-glow[data-v-6035cd2c]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.2),transparent 50%),radial-gradient(circle at 82% 88%,rgba(0,0,0,.3),transparent 55%)}.brand-glow[data-v-6035cd2c]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(circle at 50% 40%,black,transparent 70%);-webkit-mask-image:radial-gradient(circle at 50% 40%,black,transparent 70%);opacity:.6}.brand-content[data-v-6035cd2c]{position:relative;z-index:1;margin:auto 0;max-width:460px}.brand-logo-wrap[data-v-6035cd2c]{display:flex;align-items:center;margin-bottom:1.5rem}.brand-logo[data-v-6035cd2c]{max-height:80px;max-width:240px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.2))}.brand-logo-fallback[data-v-6035cd2c]{width:72px;height:72px;border-radius:16px;background:#ffffff24;border:1px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;font-size:1.7rem;font-weight:700;letter-spacing:-.02em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand-name[data-v-6035cd2c]{font-size:1.7rem;font-weight:700;letter-spacing:-.015em;margin-bottom:.5rem;line-height:1.15}.brand-tagline[data-v-6035cd2c]{font-size:.95rem;font-weight:400;opacity:.82;line-height:1.55;max-width:30ch;margin:0}.brand-footer[data-v-6035cd2c]{position:relative;z-index:1;display:flex;align-items:center;gap:.5rem;font-size:.72rem;font-weight:500;opacity:.6;letter-spacing:.06em;text-transform:uppercase}.brand-mark[data-v-6035cd2c]:before{content:"";display:inline-block;width:6px;height:6px;background:#ffffffb3;border-radius:50%;margin-right:.55rem;vertical-align:middle}.form-panel[data-v-6035cd2c]{display:grid;grid-template-rows:1fr auto;align-items:center;justify-items:center;padding:2rem;overflow:hidden;position:relative}.form-card[data-v-6035cd2c]{width:100%;max-width:380px;align-self:center}.form-header[data-v-6035cd2c]{margin-bottom:1.5rem}.form-card h2[data-v-6035cd2c]{font-size:1.55rem;font-weight:700;letter-spacing:-.015em;margin:0;color:#0f172a}.form-body[data-v-6035cd2c]{display:flex;flex-direction:column;gap:1rem}.field[data-v-6035cd2c]{display:flex;flex-direction:column}.field label[data-v-6035cd2c]{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#475569;margin-bottom:.4rem}.input-wrap[data-v-6035cd2c]{position:relative;display:flex;align-items:center}.input-icon[data-v-6035cd2c]{position:absolute;left:.95rem;color:#94a3b8;pointer-events:none;transition:color .15s}.input-wrap input[data-v-6035cd2c]{width:100%;border:1px solid #e2e8f0;background:#fff;border-radius:10px;padding:.78rem .9rem .78rem 2.7rem;font-size:.95rem;font-family:inherit;color:#0f172a;transition:border-color .15s,box-shadow .15s,background .15s;box-sizing:border-box}.input-wrap input[data-v-6035cd2c]::placeholder{color:#cbd5e1}.input-wrap input[data-v-6035cd2c]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-ring)}.input-wrap input[data-v-6035cd2c]:disabled{background:#f8fafc;color:#94a3b8}.input-wrap:focus-within .input-icon[data-v-6035cd2c]{color:var(--brand)}.eye-btn[data-v-6035cd2c]{position:absolute;right:.45rem;background:none;border:none;cursor:pointer;padding:.4rem;color:#94a3b8;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:color .15s,background .15s}.eye-btn[data-v-6035cd2c]:hover{color:#475569;background:#f1f5f9}.form-error[data-v-6035cd2c]{margin:0;padding:.7rem .85rem;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:8px;font-size:.85rem;line-height:1.4;display:flex;align-items:flex-start;gap:.5rem}.btn-submit[data-v-6035cd2c]{width:100%;background:var(--brand);color:#fff;border:none;padding:.9rem;border-radius:10px;font-size:.95rem;font-weight:600;letter-spacing:.01em;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.55rem;transition:filter .15s,transform .05s,box-shadow .2s;box-shadow:0 1px 2px #0000000d,0 6px 18px var(--brand-ring);margin-top:.4rem;font-family:inherit}.btn-submit[data-v-6035cd2c]:hover:not(:disabled){filter:brightness(1.08)}.btn-submit[data-v-6035cd2c]:active:not(:disabled){transform:translateY(1px)}.btn-submit[data-v-6035cd2c]:disabled{opacity:.78;cursor:progress}.btn-loading[data-v-6035cd2c]{display:inline-flex;align-items:center;gap:.5rem}.spinner[data-v-6035cd2c]{animation:spin-6035cd2c .85s linear infinite}@keyframes spin-6035cd2c{to{transform:rotate(360deg)}}.fade-enter-active[data-v-6035cd2c],.fade-leave-active[data-v-6035cd2c]{transition:opacity .2s,transform .2s}.fade-enter-from[data-v-6035cd2c],.fade-leave-to[data-v-6035cd2c]{opacity:0;transform:translateY(-3px)}.form-footer[data-v-6035cd2c]{font-size:.72rem;color:#94a3b8;letter-spacing:.04em;margin:0;align-self:end;padding-top:1rem}@media(max-width:900px){.auth-shell[data-v-6035cd2c]{height:auto;min-height:100vh;grid-template-columns:1fr;grid-template-rows:auto 1fr;overflow:visible}.brand-panel[data-v-6035cd2c]{padding:2rem 1.5rem;min-height:0}.brand-content[data-v-6035cd2c]{margin:0;max-width:100%}.brand-logo-wrap[data-v-6035cd2c]{margin-bottom:1rem}.brand-logo[data-v-6035cd2c]{max-height:60px}.brand-logo-fallback[data-v-6035cd2c]{width:56px;height:56px;font-size:1.3rem;border-radius:12px}.brand-name[data-v-6035cd2c]{font-size:1.35rem}.brand-tagline[data-v-6035cd2c]{font-size:.88rem}.brand-footer[data-v-6035cd2c]{display:none}.form-panel[data-v-6035cd2c]{padding:2rem 1.25rem;overflow:visible}.form-card h2[data-v-6035cd2c]{font-size:1.35rem}.form-footer[data-v-6035cd2c]{padding-top:1.5rem;padding-bottom:1rem}}@media(max-height:640px)and (min-width:901px){.brand-panel[data-v-6035cd2c]{padding:2rem 2.5rem}.brand-logo[data-v-6035cd2c]{max-height:64px}.brand-name[data-v-6035cd2c]{font-size:1.45rem}.form-header[data-v-6035cd2c]{margin-bottom:1rem}.form-body[data-v-6035cd2c]{gap:.75rem}}.about-page[data-v-96b16ff8]{max-width:680px;margin:0 auto;font-family:Montserrat,system-ui,sans-serif}.about-card[data-v-96b16ff8]{background:#fff;border-radius:12px;padding:2.5rem;box-shadow:0 1px 3px #00000014;margin-bottom:1.5rem}.about-header[data-v-96b16ff8]{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.75rem}.brand-logo[data-v-96b16ff8]{width:140px;height:140px;flex-shrink:0}.app-name[data-v-96b16ff8]{font-size:1.5rem;font-weight:700;color:#1a1a2e;margin-bottom:.2rem}.app-tagline[data-v-96b16ff8]{font-size:.85rem;color:#6b7280;letter-spacing:.04em;margin-bottom:.2rem}.app-version[data-v-96b16ff8]{font-size:.75rem;color:#9ca3af;font-family:monospace}.app-description[data-v-96b16ff8]{color:#4b5563;font-size:.95rem;line-height:1.6;margin-bottom:2rem}.section[data-v-96b16ff8]{margin-bottom:2rem}.section h2[data-v-96b16ff8]{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#9ca3af;font-weight:600;margin-bottom:.75rem}.dev-name[data-v-96b16ff8]{font-size:1rem;font-weight:600;color:#1a1a2e;margin-bottom:.75rem}.contact-grid[data-v-96b16ff8]{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.contact-item[data-v-96b16ff8]{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#4b5563;text-decoration:none;padding:.5rem .75rem;border-radius:6px;background:#f9fafb;border:1px solid #e5e7eb;transition:background .15s,color .15s}.contact-item[data-v-96b16ff8]:hover{background:#f3f4f6;color:#1a1a2e}.contact-svg[data-v-96b16ff8]{width:22px;height:22px;flex-shrink:0;color:#6b7280}.contact-item--wa .contact-svg[data-v-96b16ff8]{color:#16a34a}.contact-item--tg .contact-svg[data-v-96b16ff8]{color:#0284c7}.stack-grid[data-v-96b16ff8]{display:grid;gap:.5rem}.stack-item[data-v-96b16ff8]{display:grid;grid-template-columns:130px 1fr;gap:.5rem;font-size:.875rem;padding:.4rem 0;border-bottom:1px solid #f3f4f6}.stack-label[data-v-96b16ff8]{font-weight:600;color:#374151}.stack-value[data-v-96b16ff8]{color:#6b7280}.license-section p[data-v-96b16ff8]{font-size:.85rem;color:#6b7280;line-height:1.7}.about-footer[data-v-96b16ff8]{background:#1a1a2e;border-radius:12px;padding:1.5rem 2rem}.footer-inner[data-v-96b16ff8]{display:flex;flex-direction:column;align-items:center;gap:.75rem}.footer-logo[data-v-96b16ff8]{width:72px;height:72px;filter:brightness(0) invert(1);opacity:.85}.footer-links[data-v-96b16ff8]{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem .75rem}.footer-links a[data-v-96b16ff8]{color:#ffffffb3;text-decoration:none;font-size:.8rem}.footer-links a[data-v-96b16ff8]:hover{color:#fff}.footer-sep[data-v-96b16ff8]{color:#ffffff40;font-size:.8rem}.footer-copy[data-v-96b16ff8]{font-size:.72rem;color:#ffffff59}.help-page[data-v-e3646ff8]{max-width:760px;margin:0 auto}.help-header[data-v-e3646ff8]{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.help-page h1[data-v-e3646ff8]{font-size:1.5rem;font-weight:700;margin-bottom:.4rem}.help-intro[data-v-e3646ff8]{color:#6b7280;margin-bottom:0}.print-btn[data-v-e3646ff8]{display:flex;align-items:center;gap:.4rem;padding:.45rem .9rem;background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem;color:#374151;cursor:pointer;white-space:nowrap;flex-shrink:0}.print-btn[data-v-e3646ff8]:hover{background:#f3f4f6}.help-nav[data-v-e3646ff8]{display:flex;flex-wrap:wrap;gap:.4rem .75rem;margin-bottom:2.5rem;padding:1rem 1.25rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000012}.help-nav-link[data-v-e3646ff8]{font-size:.85rem;color:#4f46e5;text-decoration:none}.help-nav-link[data-v-e3646ff8]:hover{text-decoration:underline}.help-section[data-v-e3646ff8]{margin-bottom:2.5rem;scroll-margin-top:1rem}.help-section h2[data-v-e3646ff8]{font-size:1.1rem;font-weight:700;color:#1a1a2e;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #e5e7eb}.help-block[data-v-e3646ff8]{margin-bottom:1rem}.help-block h3[data-v-e3646ff8]{font-size:.9rem;font-weight:600;color:#374151;margin-bottom:.4rem}.help-block p[data-v-e3646ff8]{font-size:.875rem;color:#4b5563;line-height:1.65}.help-block ul[data-v-e3646ff8]{padding-left:1.25rem}.help-block li[data-v-e3646ff8]{font-size:.875rem;color:#4b5563;line-height:1.65;margin-bottom:.3rem}.help-block code[data-v-e3646ff8]{background:#f3f4f6;padding:.1em .35em;border-radius:3px;font-family:monospace;font-size:.85em}.tip[data-v-e3646ff8]{background:#eff6ff;border-left:3px solid #3b82f6;padding:.6rem .9rem;border-radius:0 6px 6px 0;font-size:.85rem;color:#1e40af;margin-top:.5rem}.warning[data-v-e3646ff8]{background:#fff7ed;border-left:3px solid #f97316;padding:.6rem .9rem;border-radius:0 6px 6px 0;font-size:.85rem;color:#9a3412;margin-top:.5rem}@media print{.no-print[data-v-e3646ff8]{display:none!important}.help-page[data-v-e3646ff8]{max-width:100%}.help-section[data-v-e3646ff8]{page-break-inside:avoid;margin-bottom:1.5rem}.help-section h2[data-v-e3646ff8]{font-size:1rem}.tip[data-v-e3646ff8],.warning[data-v-e3646ff8]{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.cp-wrap[data-v-6591cfa8]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f3f4f6}.cp-card[data-v-6591cfa8]{background:#fff;border-radius:12px;padding:2.5rem 2rem;width:380px;max-width:95vw;box-shadow:0 4px 24px #0000001a;text-align:center}.cp-icon[data-v-6591cfa8]{font-size:2.5rem;margin-bottom:.75rem}h2[data-v-6591cfa8]{font-size:1.2rem;font-weight:700;color:#1a1a2e;margin:0 0 .5rem}.cp-sub[data-v-6591cfa8]{font-size:.85rem;color:#6b7280;margin:0 0 1.5rem;line-height:1.5}.cp-form[data-v-6591cfa8]{text-align:left;display:flex;flex-direction:column;gap:1rem}.cp-field[data-v-6591cfa8]{display:flex;flex-direction:column;gap:.3rem}.cp-field label[data-v-6591cfa8]{font-size:.8rem;font-weight:600;color:#374151}.cp-field input[data-v-6591cfa8]{border:1px solid #d1d5db;border-radius:6px;padding:.55rem .75rem;font-size:.9rem;font-family:inherit}.cp-field input[data-v-6591cfa8]:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 2px #6366f126}.cp-error[data-v-6591cfa8]{background:#fee2e2;color:#991b1b;border-radius:6px;padding:.5rem .75rem;font-size:.82rem}.cp-btn[data-v-6591cfa8]{background:#1a1a2e;color:#fff;border:none;border-radius:6px;padding:.65rem;font-size:.95rem;font-weight:600;cursor:pointer;font-family:inherit}.cp-btn[data-v-6591cfa8]:hover{background:#2a2a4e}.cp-btn[data-v-6591cfa8]:disabled{opacity:.6;cursor:not-allowed}.profile-view[data-v-4b6c22b8]{max-width:560px;margin:0 auto;background:#fff;border-radius:8px;padding:2rem;box-shadow:0 1px 3px #0000001a}.profile-view h1[data-v-4b6c22b8]{font-size:1.4rem;margin-bottom:.4rem}.profile-view h2[data-v-4b6c22b8]{font-size:1.05rem;margin:0 0 1rem}.hint[data-v-4b6c22b8]{color:#666;font-size:.85rem;margin-bottom:1.2rem}.profile-form[data-v-4b6c22b8]{display:flex;flex-direction:column;gap:1rem}.field[data-v-4b6c22b8]{display:flex;flex-direction:column;gap:.3rem}.field label[data-v-4b6c22b8]{font-size:.82rem;font-weight:600;color:#444}.field input[data-v-4b6c22b8],.field select[data-v-4b6c22b8]{padding:.5rem .7rem;border:1px solid #ddd;border-radius:4px;font-size:.92rem}.field input[data-v-4b6c22b8]:disabled{background:#f5f5f5;color:#888}.hint-inline[data-v-4b6c22b8]{font-size:.78rem;color:#888;margin-top:.15rem}.actions[data-v-4b6c22b8]{display:flex;gap:.6rem;justify-content:flex-end}.btn-primary[data-v-4b6c22b8]{background:#2563eb;color:#fff;border:none;padding:.5rem 1.1rem;border-radius:4px;cursor:pointer;font-size:.9rem}.btn-primary[data-v-4b6c22b8]:disabled{background:#94a3b8;cursor:not-allowed}.btn-cancel[data-v-4b6c22b8]{background:#f1f5f9;color:#333;padding:.5rem 1.1rem;border-radius:4px;text-decoration:none;font-size:.9rem}.form-error[data-v-4b6c22b8]{color:#b91c1c;font-size:.85rem}.form-success[data-v-4b6c22b8]{color:#059669;font-size:.85rem}.sep[data-v-4b6c22b8]{margin:1.6rem 0;border:0;border-top:1px solid #eee}
