body:not(.hub-public-home)>main.wrap:has(>#calendarView:not(.hidden)){padding-top:12px!important}
#calendarView{--cal-free:#91d6aa;--cal-busy:#efa59b;--cal-partial:#e9c66d;max-width:1280px;margin:auto;padding-bottom:32px}
/* Keep the grid below side badges where the viewport leaves no side gutter. */
#calendarView .calendar-heading{min-height:max(80px,calc(var(--hub-ds-side-size,144px) * 1.14 + var(--hub-ds-side-top,9px) - 12px));display:flex;justify-content:center;align-items:center;text-align:center;margin:0 0 18px;padding:12px 150px 16px}
#calendarView h1{font-size:clamp(30px,3.6vw,46px);color:#e6bf65;margin:0}
#calendarView .calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 315px;gap:22px;align-items:start}
#calendarView .calendar-panel{padding:22px;border:1px solid #947337;border-radius:18px;background:linear-gradient(145deg,#0d231aee,#06170ff5);box-shadow:inset 0 0 0 5px #ddba6020,0 14px 30px #0003;min-width:0}
#calendarView .calendar-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:22px}
#calendarView .calendar-toolbar h2{font:700 clamp(20px,2vw,27px)/1.2 Georgia,serif;color:#e6bf65;margin:0;flex:1;min-width:0}
#calendarView .calendar-toolbar button{min-width:44px;min-height:44px;padding:8px 12px;background:#12291d;color:#f0d99c;border:1px solid #866b36;border-radius:10px}
#calendarView .calendar-arrows{display:flex;gap:7px}
#calendarView button:focus-visible,#bookingEditor button:focus-visible,#bookingEditor textarea:focus-visible,#bookingEditor input:focus-visible{outline:2px solid #f5d68b;outline-offset:3px}
#calendarView .calendar-weekdays,#calendarView .calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
#calendarView .calendar-weekdays{margin-bottom:10px;text-align:center;color:#bdb193;font-size:12px;font-weight:700}
#calendarView .calendar-weekdays span:nth-last-child(-n+2){color:#dbbd7d}
#calendarView .calendar-day{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;min-height:102px;padding:10px 7px 8px;border-radius:10px;text-align:left;border:1px solid #416d50;background:#123623;color:#c9efd6;transition:background .15s,border-color .15s}
#calendarView .calendar-day.partial{background:#3b3219;border-color:#8b773b;color:#f4dd9b}
#calendarView .calendar-day.busy{background:#3a1d1b;border-color:#8a4b42;color:#f3b5ad}
#calendarView .calendar-day.unknown{background:#18231d;border-color:#4e574b;color:#b7bdb4}
#calendarView .calendar-day.past{opacity:.62}
#calendarView .calendar-day:hover:not(:disabled){filter:brightness(1.13)}
#calendarView .calendar-day.selected{border-color:#f2cb70;box-shadow:0 0 0 2px #f2cb70,0 3px 14px #0006;opacity:1}
#calendarView .calendar-day:disabled{cursor:default}
#calendarView .calendar-date-number{font:700 20px/1 Georgia,serif;display:flex;align-items:center;gap:5px;margin-bottom:3px}
#calendarView .calendar-today-dot{width:5px;height:5px;background:currentColor;border-radius:50%}
#calendarView .calendar-mini-slot{display:flex;align-items:center;gap:5px;color:var(--cal-free);font:11px/1.2 Arial,sans-serif;white-space:nowrap}
#calendarView .calendar-mini-slot.busy{color:var(--cal-busy)}
#calendarView .calendar-mini-slot::before{content:'';width:5px;height:5px;flex:none;background:currentColor;border-radius:50%}
#calendarView .calendar-legend{display:flex;flex-wrap:wrap;gap:10px 19px;margin:20px 0 0;font-size:12px;color:#d6cebd;line-height:1.4}
#calendarView .calendar-legend span{display:flex;align-items:center;gap:7px}
#calendarView .calendar-legend i{width:9px;height:9px;display:block;border-radius:3px;background:var(--cal-free)}
#calendarView .calendar-legend .partial{background:var(--cal-partial)}
#calendarView .calendar-legend .busy{background:var(--cal-busy)}
/* Private booking assignments: lower left = day, lower right = evening. */
:is(#calendarView,#bookingEditor) [data-booking-master="nastya"]{--cal-master:#e6a2c7;--cal-master-soft:#b04e7e25}
:is(#calendarView,#bookingEditor) [data-booking-master="ros"]{--cal-master:#88b8ed;--cal-master-soft:#426fa52b}
#calendarView .calendar-master-colors{position:absolute;left:3px;right:3px;bottom:3px;height:7px;display:grid;grid-template-columns:1fr 1fr;gap:2px;pointer-events:none}
#calendarView .calendar-master-colors i{background:transparent;border-radius:2px}
#calendarView .calendar-master-colors i[data-booking-master]{background:var(--cal-master);box-shadow:0 -3px 9px var(--cal-master-soft)}
#calendarView .calendar-master-legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 17px;margin-top:12px;padding-top:12px;border-top:1px solid #d9bc7526;font:12px/1.4 Arial,sans-serif;color:#d6cebd}
#calendarView .calendar-master-legend[hidden]{display:none}
#calendarView .calendar-master-legend-title{color:#aea48f}
#calendarView .calendar-master-legend span[data-booking-master]{display:inline-flex;align-items:center;gap:7px;color:var(--cal-master)}
#calendarView .calendar-master-legend i{width:16px;height:5px;border-radius:2px;background:currentColor}
#calendarView .calendar-slot[data-booking-master]{box-shadow:inset 3px 0 var(--cal-master)}
#calendarView .calendar-slot{min-width:0;overflow-wrap:anywhere}
#calendarView .calendar-slot-master{display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding:5px 9px;border-radius:6px;background:var(--cal-master-soft);color:var(--cal-master);font:600 13px/1.3 Arial,sans-serif}
#calendarView .calendar-slot-master i{width:6px;height:6px;border-radius:50%;background:currentColor}
#bookingEditor #bookingMasterField{margin:0 0 22px}
#bookingEditor .booking-master-choice{position:relative}
#bookingEditor .booking-master-choice::before{content:'';position:absolute;left:13px;top:50%;width:8px;height:8px;transform:translateY(-50%);border-radius:50%;background:var(--cal-master,#82775d);pointer-events:none}
#bookingEditor #bookingMaster{box-sizing:border-box;width:100%;min-height:46px;padding:10px 12px 10px 32px;border:1px solid #806534;border-radius:9px;background:#07170f;color:#f3ead8;font:16px/1.4 Arial,sans-serif}
#bookingEditor #bookingMaster:focus-visible{outline:2px solid #f5d68b;outline-offset:3px}
@media(max-width:700px){
  #calendarView .calendar-master-colors{height:5px;bottom:2px;left:2px;right:2px}
  #calendarView .calendar-master-legend{font-size:11px;gap:8px 14px}
}
@media(max-width:360px){
  #calendarView .calendar-slot-list{grid-template-columns:1fr!important}
  #calendarView .calendar-master-note-marker{width:12px;height:12px;top:2px;right:2px;font-size:8px}
}
#calendarView .calendar-selection h2{font:700 26px/1.2 Georgia,serif;color:#e6bf65;margin:0 0 6px;text-transform:none}
#calendarView .calendar-weekday{color:#bcb195;font-size:14px;margin:0 0 22px;text-transform:capitalize}
#calendarView .calendar-slot-list{display:grid;gap:14px}
#calendarView .calendar-slot{display:block;width:100%;padding:18px;text-align:left;border-radius:12px;background:linear-gradient(130deg,#173d29,#102b1d);border:1px solid #4b835c;color:#e9f3e8;font-family:inherit;min-height:145px}
#calendarView button.calendar-slot:hover{background:#1b4430;border-color:#92cda3}
#calendarView .calendar-slot.busy{background:linear-gradient(130deg,#452523,#2b1717);border-color:#995c51;color:#f8e3db}
#calendarView button.calendar-slot.busy:hover{background:#502b27;border-color:#dfa397}
#calendarView .calendar-slot-title{display:flex;align-items:center;gap:9px;font:700 22px/1.2 Georgia,serif;color:inherit;margin-bottom:8px}
#calendarView .calendar-slot-symbol{font:24px/1 Georgia,serif;opacity:.8}
#calendarView .calendar-slot-time{display:block;font-size:13px;color:#dbd8c9;margin-bottom:17px;line-height:1.5}
#calendarView .calendar-slot-state{display:flex;gap:7px;align-items:center;font-size:14px;font-weight:700;color:var(--cal-free)}
#calendarView .calendar-slot.busy .calendar-slot-state{color:var(--cal-busy)}
#calendarView .calendar-slot-state::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
#calendarView .calendar-admin-hint{font-size:12px;line-height:1.5;color:#bcb195;margin:18px 0 0}
#calendarView .calendar-booking-contact{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid rgba(230,191,101,.28);
  color:#d8cfbc;
  font:400 13px/1.55 Georgia,serif;
}
#calendarView .calendar-booking-contact a{
  color:#e6bf65;
  font-weight:700;
  text-decoration:none;
  text-underline-offset:3px;
  transition:color .15s ease;
}
#calendarView .calendar-booking-contact a:hover{
  color:#f5d98d;
  text-decoration:underline;
}
#calendarView .calendar-booking-contact a:focus-visible{
  outline:1px solid #f5d68b;
  outline-offset:3px;
  border-radius:3px;
}
#calendarView .calendar-master-note-marker{
  position:absolute;top:8px;right:9px;display:flex;align-items:center;justify-content:center;
  width:21px;height:21px;border:1px solid #dbc0788c;border-radius:50%;
  background:#102419d9;color:#f0cd79;font:700 13px/1 Georgia,serif;
}
#calendarView .calendar-master-note{
  margin-top:20px;padding:17px 16px 16px;border:1px solid #967843;
  border-radius:13px;background:linear-gradient(145deg,#1d2c20,#0b2118);
  box-shadow:inset 0 1px 0 #e5c77b22;
}
#calendarView .calendar-master-note-heading{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:12px}
#calendarView .calendar-master-note-heading h3{
  flex:1;margin:0;color:#e6bf65;font:700 20px/1.3 Georgia,serif;
}
#calendarView .calendar-master-note-lock{
  color:#bcb09a;font:italic 11px/1.3 Georgia,serif;white-space:nowrap;
}
#calendarView .calendar-master-note-content{
  margin:0 0 14px;color:#eee2ca;font:15px/1.6 Georgia,serif;
  white-space:pre-wrap;overflow-wrap:anywhere;
}
#calendarView .calendar-master-note-content.is-empty{color:#aba58f;font-style:italic}
#calendarView .calendar-master-note-edit{
  min-height:39px;padding:8px 12px;border:1px solid #af904e;border-radius:9px;
  background:linear-gradient(#37432c,#213223);color:#f0cf83;
  font:700 13px/1.3 Georgia,serif;
}
#calendarView .calendar-master-note-edit:hover{border-color:#f2ce7c;background:#354c33}
#calendarMasterNoteEditor{
  width:min(570px,calc(100vw - 24px));max-height:90dvh;overflow:auto;
  padding:26px;border:1px solid #b58d44;border-radius:17px;
  background:linear-gradient(145deg,#0f281c,#07180f);color:#f3ead8;
  box-shadow:0 24px 70px #000b;
}
#calendarMasterNoteEditor::backdrop{background:#020805c9;backdrop-filter:blur(3px)}
#calendarMasterNoteEditor h2{margin:0 0 8px;color:#e6bf65;font:700 26px/1.2 Georgia,serif}
#calendarMasterNoteEditor .booking-editor-date{margin:0 0 22px;color:#cbbfa5;font-size:14px}
#calendarMasterNoteEditor .booking-comment-label{display:block;font-size:14px;font-weight:700;margin-bottom:9px}
#calendarMasterNoteEditor textarea{
  box-sizing:border-box;display:block;width:100%;resize:vertical;min-height:190px;max-height:55vh;
  padding:12px;border:1px solid #8e7040;border-radius:10px;
  color:#f6ead5;background:#06160e;font:15px/1.6 Georgia,serif;
}
#calendarMasterNoteEditor .booking-comment-hint{margin:9px 0;color:#bcb195;font-size:12px}
#calendarMasterNoteEditor #calendarMasterNoteError{margin:12px 0;color:#efb1a5;font-size:14px}
#calendarMasterNoteEditor #calendarMasterNoteError:empty{display:none}
#calendarMasterNoteEditor .booking-editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
#calendarMasterNoteEditor .booking-editor-actions button{min-height:44px;padding:10px 16px}
#calendarMasterNoteEditor button:disabled{opacity:.6;cursor:wait}
#calendarMasterNoteEditor textarea:focus-visible,#calendarMasterNoteEditor button:focus-visible{outline:2px solid #f5d68b;outline-offset:3px}
@media(max-width:700px){
  #calendarView .calendar-master-note-marker{width:16px;height:16px;top:3px;right:3px;font-size:10px}
  #calendarView .calendar-master-note{padding:15px 13px}
  #calendarMasterNoteEditor{padding:22px 18px}
}

#calendarView .calendar-private-note{display:block;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:13px;padding-top:11px;border-top:1px solid #ffffff25;font-size:13px;line-height:1.5;color:#e8deca}
#calendarView .calendar-private-note small{display:block;color:#bdb59f;margin-bottom:3px;font-size:10px;letter-spacing:.03em}
#calendarView .calendar-message{display:flex;align-items:center;flex-wrap:wrap;gap:10px;line-height:1.5;font-size:14px;margin:18px 0 0;color:#d9c799;min-height:22px}
#calendarView .calendar-message.error{color:#efb1a5}
#calendarView .calendar-message:empty{margin:0;min-height:0}
#calendarView .calendar-message button{font-size:13px;min-height:38px}
#calendarView .calendar-loading{min-height:200px;display:flex;align-items:center;color:#bdb195;line-height:1.6}
#bookingEditor{width:min(480px,calc(100vw - 24px));max-height:90dvh;overflow:auto;padding:26px;background:#0b2117;color:#f3ead8;border:1px solid #b58d44;border-radius:17px;box-shadow:0 24px 70px #000b}
#bookingEditor::backdrop{background:#020805c9;backdrop-filter:blur(3px)}
#bookingEditor h2{color:#e6bf65;font:700 26px/1.2 Georgia,serif;margin:0 0 8px}
#bookingEditor .booking-editor-date{margin:0 0 24px;color:#cbbfa5;font-size:14px;line-height:1.5}
#bookingEditor fieldset{border:0;padding:0;margin:0 0 22px}
#bookingEditor legend{font-size:14px;font-weight:700;margin-bottom:10px}
#bookingEditor .booking-status-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#bookingEditor .booking-status-options label{display:flex;align-items:center;gap:9px;min-height:48px;border:1px solid #687444;border-radius:9px;background:#173323;padding:10px;font-size:14px;cursor:pointer}
#bookingEditor .booking-status-options label:last-child{background:#38201e;border-color:#89594b}
#bookingEditor .booking-status-options label:has(:checked){outline:2px solid #e6bf65;outline-offset:1px}
#bookingEditor input[type=radio]{width:16px;height:16px;margin:0;accent-color:#d7ae57;flex:none}
#bookingEditor .booking-comment-label{display:block;font-size:14px;font-weight:700;margin-bottom:8px}
#bookingEditor textarea{display:block;width:100%;resize:vertical;min-height:110px;max-height:220px;box-sizing:border-box;border:1px solid #806534;background:#07170f;color:#f3ead8;border-radius:9px;font:16px/1.5 Arial,sans-serif;padding:12px}
#bookingEditor .booking-comment-hint{font-size:12px;color:#bcb195;line-height:1.5;margin:8px 0 0}
#bookingEditor .booking-editor-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}
#bookingEditor .booking-editor-actions button{min-height:44px;padding:10px 16px}
#bookingEditor #bookingError{color:#efb1a5;font-size:14px;line-height:1.5;margin-top:14px}
#bookingEditor #bookingError:empty{display:none}
#bookingEditor button:disabled{opacity:.6;cursor:wait}
/* Wide screens place the calendar between the badges, so no tall spacer is needed. */
@media(min-width:1700px){#calendarView .calendar-heading{min-height:80px}}
@media(max-width:1020px){#calendarView .calendar-layout{grid-template-columns:minmax(0,1fr) 265px;gap:14px}#calendarView .calendar-panel{padding:17px}#calendarView .calendar-day{min-height:95px;padding:9px 5px}#calendarView .calendar-mini-slot{font-size:10px}#calendarView .calendar-weekdays,#calendarView .calendar-grid{gap:6px}}
@media(max-width:820px){#calendarView .calendar-layout{grid-template-columns:1fr}#calendarView .calendar-slot-list{grid-template-columns:1fr 1fr}#calendarView .calendar-selection h2{font-size:24px}#calendarView .calendar-weekday{margin-bottom:17px}#calendarView .calendar-day{min-height:100px;padding:12px}#calendarView .calendar-mini-slot{font-size:12px}}
@media(max-width:700px){#calendarView .calendar-heading{min-height:88px;padding:14px 72px 18px}#calendarView h1{font-size:clamp(24px,7.5vw,30px)}#calendarView .calendar-panel{padding:16px 12px;border-radius:14px}#calendarView .calendar-toolbar{gap:6px;margin-bottom:17px}#calendarView .calendar-toolbar h2{font-size:22px}#calendarView .calendar-toolbar button{padding:7px 10px}#calendarView .calendar-today-button{font-size:12px}#calendarView .calendar-weekdays,#calendarView .calendar-grid{gap:6px}#calendarView .calendar-day{min-height:62px;gap:6px;align-items:center;justify-content:center;padding:7px 2px}#calendarView .calendar-date-number{font-size:18px;margin:0}#calendarView .calendar-mini-slot{display:none}#calendarView .calendar-mobile-slots{display:flex;gap:3px}#calendarView .calendar-mobile-slots i{width:9px;height:3px;border-radius:2px;background:var(--cal-free)}#calendarView .calendar-mobile-slots i.busy{background:var(--cal-busy)}#calendarView .calendar-legend{font-size:10px;gap:9px 12px;margin-top:15px}#calendarView .calendar-legend span{gap:5px}#calendarView .calendar-legend i{width:7px;height:7px}#calendarView .calendar-slot{padding:15px 13px;min-height:147px}#calendarView .calendar-slot-title{font-size:21px}#calendarView .calendar-slot-time{font-size:12px}#calendarView .calendar-slot-state{font-size:13px}#calendarView .calendar-selection{scroll-margin-top:16px}#calendarView .calendar-slot-list{gap:10px}#bookingEditor{padding:22px 18px}}
@media(min-width:701px){#calendarView .calendar-mobile-slots{display:none}}
@media(max-width:360px){#calendarView .calendar-toolbar{flex-wrap:wrap}#calendarView .calendar-toolbar h2{flex-basis:calc(100% - 104px)}#calendarView .calendar-today-button{order:3;margin-left:auto}#calendarView .calendar-legend{font-size:9px;gap:9px}#calendarView .calendar-slot-title{font-size:19px}#calendarView .calendar-slot{padding:13px 10px}}
