.ehr-bu-calendar{color:#17324d;--bc-surface:#fff;--bc-raised:#f2f7fb;--bc-border:#dce7f0;--bc-muted:#627f99;display:grid;gap:20px;min-width:0}
html.dark .ehr-bu-calendar{color:#e7eff7;--bc-surface:#0f1d2f;--bc-raised:#142a40;--bc-border:#2b435c;--bc-muted:#a8bfd3}
.ehr-bu-calendar__layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:20px;align-items:start}
.ehr-bu-calendar__panel{border:1px solid var(--bc-border);border-radius:18px;background:var(--bc-surface);overflow:hidden;min-width:0}
.ehr-bu-calendar__panel>.ehr-box-heading{padding:15px 20px;background:linear-gradient(110deg,var(--bc-raised),var(--bc-surface));border-bottom:1px solid var(--bc-border)}
.ehr-bu-calendar__body{padding:20px;display:flex;flex-direction:column;gap:16px;min-width:0}
.ehr-bu-calendar__summary{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1fr);gap:24px;padding:22px;margin:0}
.ehr-bu-calendar__summary>div{min-width:0}
.ehr-bu-calendar__summary dt{font-size:11px;line-height:1.6;color:var(--bc-muted)}
.ehr-bu-calendar__summary dd{margin:8px 0 0;font-size:18px;font-weight:650;line-height:1.6;font-variant-numeric:tabular-nums}
.ehr-bu-calendar__summary dd small{display:block;font-size:10px;color:var(--bc-muted);font-weight:400}
.ehr-bu-calendar__week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.ehr-bu-calendar__time{white-space:nowrap}
.ehr-bu-calendar__schedule-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;padding:11px 22px;border-top:1px solid var(--bc-border);font-size:10px;line-height:1.6;color:var(--bc-muted)}
.ehr-bu-calendar__schedule-meta>span:first-child{display:flex;align-items:center;gap:6px}
.ehr-bu-calendar__schedule-meta i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#1682bd;flex:none}
.ehr-bu-calendar__schedule-meta i.is-upcoming{background:#c69b38}
.ehr-bu-calendar__draft{margin:0;padding:9px 22px;background:var(--bc-raised);font-size:11px;line-height:1.6;color:var(--bc-muted);border-top:1px solid var(--bc-border)}
.ehr-bu-calendar__month-header{display:flex;align-items:center;justify-content:space-between;min-height:44px;font-size:15px}
.ehr-bu-calendar__month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--bc-border);border-radius:10px;overflow:hidden;gap:0}
.ehr-bu-calendar__month>span{display:grid;place-items:center;padding:12px 0;background:var(--bc-raised);color:var(--bc-muted);font-size:10px}
.ehr-bu-calendar__month>div,.ehr-bu-calendar__month>i{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;min-width:0;min-height:48px;padding:8px 3px;border-top:1px solid var(--bc-border);border-right:1px solid var(--bc-border);font-size:12px}
.ehr-bu-calendar__month>div:nth-child(7n),.ehr-bu-calendar__month>i:nth-child(7n){border-right:0}
.ehr-bu-calendar__month .is-dayoff,.ehr-bu-calendar__month>i{background:var(--bc-raised);color:var(--bc-muted)}
.ehr-bu-calendar__month strong{font-weight:550;line-height:1.5}
.ehr-bu-calendar__month small{font-size:8px;color:var(--bc-muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ehr-bu-calendar__month .is-exception strong{color:#0c5da3;border-bottom:2px solid #83b4d9}
html.dark .ehr-bu-calendar__month .is-exception strong{color:#a4d7fc}
.ehr-bu-calendar__month .is-today strong{display:grid;place-items:center;min-width:24px;height:24px;margin:-3px 0;border-radius:6px;background:#0c5da3;color:#fff}
.ehr-bu-calendar__legend{display:flex;flex-wrap:wrap;align-items:center;gap:8px 15px;color:var(--bc-muted);font-size:10px;line-height:1.6}
.ehr-bu-calendar__legend span{display:flex;align-items:center;gap:5px}
.ehr-bu-calendar__legend i{width:9px;height:9px;background:var(--bc-surface);border:1px solid var(--bc-border);border-radius:2px}
.ehr-bu-calendar__legend i.is-off{background:var(--bc-raised)}
.ehr-bu-calendar__legend i.is-exception{border-bottom:2px solid #83b4d9}
.ehr-bu-calendar__import{display:flex;align-items:center;flex-direction:column;gap:10px;border:1px dashed var(--bc-border);border-radius:13px;background:linear-gradient(140deg,var(--bc-raised),var(--bc-surface));padding:22px 16px;text-align:center}
.ehr-bu-calendar__import-icon{display:grid;place-items:center;width:40px;height:40px;background:var(--bc-surface);border:1px solid var(--bc-border);border-radius:11px;color:#0c5da3}
.ehr-bu-calendar__import-icon svg{width:20px;height:20px}
html.dark .ehr-bu-calendar__import-icon{color:#a4d7fc}
.ehr-bu-calendar__import>strong{font-size:13px;font-weight:650}
.ehr-bu-calendar__import>p{font-size:11px;color:var(--bc-muted);line-height:1.6;margin:0}
.ehr-bu-calendar__import>small{color:var(--bc-muted);font-size:9px;line-height:1.5}
.ehr-bu-calendar__actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.ehr-bu-calendar__download{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 13px;border:1px solid var(--bc-border);border-radius:10px;font-size:12px;font-weight:600;background:var(--bc-surface)}
.ehr-bu-calendar__download svg{width:15px;height:15px}
.ehr-bu-calendar__review{display:flex;flex-direction:column;gap:12px;padding:13px;border:1px solid var(--bc-border);border-radius:10px;font-size:12px}
.ehr-bu-calendar__table-scroll{overflow:auto;max-height:250px;max-width:100%}
.ehr-bu-calendar table{width:100%;min-width:420px;font-size:11px;text-align:left;border-collapse:collapse}
.ehr-bu-calendar th,.ehr-bu-calendar td{padding:9px;border-bottom:1px solid var(--bc-border);max-width:200px;overflow-wrap:anywhere}
.ehr-bu-calendar th{font-weight:600;color:var(--bc-muted);background:var(--bc-raised)}
.ehr-bu-calendar__list-heading{display:flex;align-items:center;justify-content:space-between;font-size:12px}
.ehr-bu-calendar__list-heading strong{font-weight:650}
.ehr-bu-calendar__list-heading>span{font-size:10px;color:var(--bc-muted)}
.ehr-bu-calendar__dates{min-width:0}
.ehr-bu-calendar__dates>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--bc-border);font-size:12px}
.ehr-bu-calendar__dates span{min-width:0;overflow-wrap:anywhere}
.ehr-bu-calendar__dates strong{font-size:12px;font-weight:600;line-height:1.5}
.ehr-bu-calendar__dates small{display:block;font-size:10px;color:var(--bc-muted);margin-top:3px}
.ehr-bu-calendar__hint{font-size:11px;color:var(--bc-muted);line-height:1.7;margin:0}
.ehr-bu-calendar__error{font-size:12px;color:#d34d62;line-height:1.6}
.ehr-bu-calendar a:focus-visible{outline:2px solid #30a1e8;outline-offset:2px}
@media(max-width:1199px),(hover:none) and (max-width:1366px){.ehr-bu-calendar__layout{grid-template-columns:1fr}.ehr-bu-calendar__month>div,.ehr-bu-calendar__month>i{min-height:48px}}
@media(max-width:1023px){.ehr-bu-calendar__summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px}}
@media(max-width:639px){.ehr-bu-calendar{gap:16px}.ehr-bu-calendar__body{padding:15px;gap:14px}.ehr-bu-calendar__summary{padding:16px;gap:20px}.ehr-bu-calendar__summary>div:first-child{grid-column:1/-1}.ehr-bu-calendar__summary dd{font-size:16px}.ehr-bu-calendar__summary>div:nth-child(2){grid-column:1/-1}.ehr-bu-calendar__week{max-width:340px}.ehr-bu-calendar__schedule-meta{padding:11px 16px}.ehr-bu-calendar__panel>.ehr-box-heading{padding:13px 15px}.ehr-bu-calendar__month>div,.ehr-bu-calendar__month>i{min-height:49px;padding:8px 2px}.ehr-bu-calendar__month>span{font-size:9px;padding:10px 0}.ehr-bu-calendar__import{padding:18px 12px}}

/* Holidays and office location occupy two stacked rows beside the month. */
.ehr-bu-calendar__side{display:grid;gap:20px;min-width:0;align-content:start}
.ehr-bu-calendar__holiday-panel .ehr-bu-calendar__import{padding:16px;gap:8px}
.ehr-bu-calendar__holiday-panel .ehr-bu-calendar__import-icon{display:none}
.ehr-bu-calendar__location-intro{display:flex;align-items:center;gap:12px}
.ehr-bu-calendar__location-intro>svg{width:96px;height:64px;flex:none;color:#1681bd}
.ehr-bu-calendar__location-intro>div{min-width:0}
.ehr-bu-calendar__location-intro strong{font-size:13px;font-weight:650;line-height:1.6}
.ehr-bu-calendar__location-intro p{font-size:11px;line-height:1.7;color:var(--bc-muted);margin-top:4px}
.ehr-bu-calendar__coordinates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}
.ehr-bu-calendar__coordinates dt{font-size:10px;color:var(--bc-muted)}
.ehr-bu-calendar__coordinates dd{margin-top:4px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.ehr-bu-calendar-modal .fi-modal-footer-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:10px}
.ehr-bu-calendar-modal .fi-modal-footer-actions .fi-btn{min-height:44px;border-radius:10px}
.ehr-office-map{display:grid;gap:10px;min-width:0}
.ehr-office-map__toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:var(--bu-muted)}
.ehr-office-map__canvas{height:310px;width:100%;border:1px solid var(--bu-line);border-radius:12px;overflow:hidden;isolation:isolate;background:var(--bu-raised)}
.ehr-office-map__canvas .leaflet-control-attribution{font-size:9px;line-height:1.5}
.ehr-office-map__pin{background:transparent;border:0}
.ehr-office-map__pin svg{display:block;width:32px;height:42px;filter:drop-shadow(0 3px 3px #123c5e33)}
.ehr-office-map__hint{font-size:11px;color:var(--bu-muted);line-height:1.6;margin:0}
.ehr-office-map__error{font-size:12px;line-height:1.6;color:#bd3c50;margin:0}
html.dark .ehr-office-map__error{color:#f59ba8}
.ehr-holiday-review{display:grid;gap:16px;min-width:0;color:var(--bu-ink)}
.ehr-holiday-review>p{font-size:13px;line-height:1.6;margin:0}
.ehr-holiday-review>p>span{display:block;margin-top:4px;font-size:11px;color:var(--bu-muted)}
.ehr-holiday-review__scroll{overflow:auto;max-height:340px;border:1px solid var(--bu-line);border-radius:10px}
.ehr-holiday-review table{width:100%;min-width:460px;border-collapse:collapse;text-align:left;font-size:12px}
.ehr-holiday-review th,.ehr-holiday-review td{padding:12px;border-bottom:1px solid var(--bu-line);max-width:260px;overflow-wrap:anywhere}
.ehr-holiday-review th{position:sticky;top:0;background:var(--bu-raised);font-weight:600;font-size:11px;color:var(--bu-muted)}
.ehr-holiday-review tr:last-child td{border-bottom:0}
.ehr-holiday-review>small{font-size:11px;line-height:1.6;color:var(--bu-muted)}
@media(max-width:639px){.ehr-bu-calendar__side{gap:16px}.ehr-office-map__canvas{height:240px}.ehr-office-map__toolbar{align-items:flex-start;flex-direction:column}.ehr-bu-calendar__location-intro>svg{width:76px;height:58px}}
@media(max-height:520px){.ehr-office-map__canvas{height:200px}}

/* Fetch six dates per page; the list needs no nested scroll area. */
.ehr-bu-calendar__dates .fi-icon-btn{flex:none}
.ehr-bu-calendar__pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;padding-top:10px;border-top:1px solid var(--bc-border);font-size:11px;color:var(--bc-muted);font-variant-numeric:tabular-nums}
.ehr-bu-calendar__pagination>div{display:flex;align-items:center;gap:4px;flex-shrink:0}
.ehr-bu-calendar__pagination>div>span{min-width:42px;text-align:center;white-space:nowrap}
.ehr-bu-calendar__pagination .fi-icon-btn{width:44px;min-width:44px;height:44px;flex:none}

.ehr-bu-calendar__holiday-month{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:10px;background:var(--bc-raised);min-height:48px;padding:2px 4px}
.ehr-bu-calendar__holiday-month>strong{font-size:12px;font-weight:650;line-height:1.6}
.ehr-bu-calendar__holiday-month .fi-icon-btn{width:44px;height:44px}

.ehr-bu-calendar .fi-icon-btn{margin:0}
