/* Boyce's calendar is an independent attorney frontend. These styles address
   only its own markup; Pragtical administration keeps its original frontend. */
[data-boyce-calendar] { box-sizing: border-box; width: 100%; min-width: 0; padding: 24px 32px 32px; color: #252933; font: 16px/1.5 Arial, sans-serif; background: #f6f7f8; }
[data-boyce-calendar] *, [data-boyce-calendar] *::before, [data-boyce-calendar] *::after { box-sizing: border-box; }
[data-boyce-calendar] .boyce-firm-calendar { width: 100%; max-width: none; min-width: 0; }
[data-boyce-calendar] .boyce-cal-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
[data-boyce-calendar] .boyce-cal-heading h1 { margin: 0 0 4px; color: #171717; font: 32px/1.2 Georgia, serif; }
[data-boyce-calendar] .boyce-cal-heading p { margin: 0; color: #646a74; font-size: 16px; }
[data-boyce-calendar] .boyce-cal-heading .boyce-cal-eyebrow, [data-boyce-calendar] .boyce-cal-eyebrow { margin: 0 0 6px; color: #757983; font-size: 14px; letter-spacing: .08em; }
[data-boyce-calendar] .boyce-cal-heading-actions, [data-boyce-calendar] .boyce-cal-dialog-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
[data-boyce-calendar] .boyce-cal-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; color: #30343d; font: inherit; font-size: 16px; line-height: 1.3; background: #fff; border: 1px solid #cbd0d6; border-radius: 5px; cursor: pointer; }
[data-boyce-calendar] .boyce-cal-button.is-primary { color: #fff; background: #252844; border-color: #252844; }
[data-boyce-calendar] button:disabled { opacity: .5; cursor: not-allowed; }
[data-boyce-calendar] :is(button, a, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid #536996; outline-offset: 3px; }
[data-boyce-calendar] .boyce-cal-viewbar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px; margin-bottom: 18px; }
[data-boyce-calendar] .boyce-calendar-views { display: flex; flex-wrap: wrap; gap: 3px; padding: 4px; border: 1px solid #d6d9df; border-radius: 6px; background: #fff; }
[data-boyce-calendar] .boyce-calendar-views button { min-width: 80px; min-height: 44px; padding: 10px 18px; color: #39414d; font: inherit; border: 0; border-radius: 4px; background: transparent; cursor: pointer; }
[data-boyce-calendar] .boyce-calendar-views button[aria-pressed="true"] { color: #fff; background: #252844; }
[data-boyce-calendar] .boyce-calendar-connection { color: #252844; font-size: 14px; text-underline-offset: 3px; }
[data-boyce-calendar] .boyce-calendar-sync-note { color: #717782; font-size: 14px; }
[data-boyce-calendar] .boyce-cal-panel { overflow: hidden; background: #fff; border: 1px solid #dfe2e7; border-radius: 8px; box-shadow: 0 2px 7px #19233109; }
[data-boyce-calendar] .boyce-cal-filters { display: grid; grid-template-columns: minmax(160px, 1.1fr) minmax(140px, .8fr) minmax(130px, .7fr) minmax(220px, 1.5fr); gap: 14px; padding: 16px 20px; border-bottom: 1px solid #e3e6eb; }
[data-boyce-calendar] :is(.boyce-cal-filters, .boyce-cal-display-options, .boyce-cal-dialog-body) label { display: flex; flex-direction: column; gap: 5px; color: #555d69; font-size: 14px; }
[data-boyce-calendar] :is(select, input[type="search"], input[type="date"], input[type="text"], input[type="datetime-local"], textarea) { box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; padding: 9px 11px; color: #29313e; font: inherit; font-size: 16px; background: #fff; border: 1px solid #cbd1da; border-radius: 5px; }
[data-boyce-calendar] .boyce-cal-navigation { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 14px 20px 8px; }
[data-boyce-calendar] .boyce-cal-date-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
[data-boyce-calendar] .boyce-cal-date-actions h2 { margin: 0 8px; font: 24px/1.2 Georgia, serif; color: #232831; }
[data-boyce-calendar] .boyce-cal-date-input { width: 150px; }
[data-boyce-calendar] .boyce-cal-display-options { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
[data-boyce-calendar] .boyce-cal-display-options label:not(.boyce-cal-check) { flex-direction: row; align-items: center; }
[data-boyce-calendar] .boyce-cal-display-options select { width: 185px; font-size: 14px; }
[data-boyce-calendar] .boyce-cal-check { flex-direction: row !important; align-items: center; min-height: 44px; white-space: nowrap; }
[data-boyce-calendar] input[type="checkbox"] { width: 20px; height: 20px; accent-color: #252844; }
[data-boyce-calendar] .boyce-cal-context { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 8px 20px 12px; color: #747b86; font-size: 14px; }
[data-boyce-calendar] .boyce-cal-context a { color: #626d80; }
[data-boyce-calendar] .boyce-cal-notice { margin: 0; padding: 0 20px; color: #465e53; font-size: 14px; }
[data-boyce-calendar] .boyce-cal-notice:not(:empty) { padding-bottom: 12px; }
[data-boyce-calendar] .boyce-cal-scroll, [data-boyce-calendar] .boyce-cal-list-scroll { width: 100%; overflow: auto; }
[data-boyce-calendar] .boyce-cal-month { display: grid; grid-template-columns: repeat(var(--boyce-days, 7), minmax(0, 1fr)); min-width: 900px; }
[data-boyce-calendar] .boyce-cal-weekday { padding: 14px 10px; color: #626b77; font-size: 14px; font-weight: 600; text-align: center; background: #f5f6f8; border-top: 1px solid #e2e5e9; border-bottom: 1px solid #e2e5e9; }
[data-boyce-calendar] .boyce-cal-day { min-width: 0; min-height: 142px; padding: 8px; border-right: 1px solid #e3e6eb; border-bottom: 1px solid #e3e6eb; }
[data-boyce-calendar] .boyce-cal-day.is-outside { color: #959ca6; background: #fafbfc; }
[data-boyce-calendar] .boyce-cal-day-number { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; margin: -4px 0 0 auto; color: inherit; font: inherit; font-size: 16px; background: transparent; border: 0; border-radius: 50%; cursor: pointer; }
[data-boyce-calendar] .boyce-cal-day-number:hover { color: #252844; background: #eef0f6; }
[data-boyce-calendar] .boyce-cal-day-events { display: grid; gap: 6px; }
[data-boyce-calendar] .boyce-cal-event { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; min-height: 44px; padding: 8px 10px; overflow: hidden; color: #25494c; font: inherit; font-size: 14px; text-align: left; background: #e8f3f2; border: 1px solid #d4e8e6; border-left: 3px solid #508b86; border-radius: 4px; cursor: pointer; }
[data-boyce-calendar] .boyce-cal-event strong { display: -webkit-box; max-width: 100%; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow-wrap: anywhere; font-size: 16px; line-height: 1.25; }
[data-boyce-calendar] .boyce-cal-event-time, [data-boyce-calendar] .boyce-cal-event-status { font-size: 14px; }
[data-boyce-calendar] .boyce-cal-event.is-cancelled { color: #7a7f87; background: #f1f2f4; border-color: #dfe2e7; }
[data-boyce-calendar] .boyce-cal-event.is-cancelled strong { text-decoration: line-through; }
[data-boyce-calendar] .boyce-cal-timeline { height: 650px; overflow: auto; }
[data-boyce-calendar] .boyce-cal-timeline-inner { display: grid; grid-template-columns: 80px repeat(var(--boyce-days, 7), minmax(130px, 1fr)); min-width: max(100%, 850px); position: relative; }
[data-boyce-calendar] .boyce-cal-time-heading, [data-boyce-calendar] .boyce-cal-timeline-heading { position: sticky; top: 0; z-index: 2; min-height: 54px; padding: 10px; color: #576171; font: inherit; font-size: 14px; background: #f5f6f8; border: 0; border-bottom: 1px solid #e0e4ea; }
[data-boyce-calendar] .boyce-cal-hours { display: grid; grid-template-rows: repeat(24, 72px); color: #717985; font-size: 14px; background: #fafbfc; }
[data-boyce-calendar] .boyce-cal-hours span { padding: 8px; border-bottom: 1px solid #e7e9ee; }
[data-boyce-calendar] .boyce-cal-timeline-day { position: relative; border-left: 1px solid #e3e6eb; }
[data-boyce-calendar] .boyce-cal-hour { height: 72px; border-bottom: 1px solid #e7e9ee; }
[data-boyce-calendar] .boyce-cal-timeline-day .boyce-cal-event { position: absolute; min-height: 56px; }
[data-boyce-calendar] .boyce-cal-timeline-day .boyce-cal-event.is-short { justify-content: center; padding: 4px 8px; }
[data-boyce-calendar] .boyce-cal-event.is-short :is(.boyce-cal-event-time, .boyce-cal-event-status) { display: none; }
[data-boyce-calendar] .boyce-cal-list-card { padding: 20px; border-top: 1px solid #e3e6eb; }
[data-boyce-calendar] .boyce-cal-list-card header { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
[data-boyce-calendar] .boyce-cal-list-card h3 { flex: 1 1 auto; margin: 0; color: #293d4d; font-size: 18px; font-weight: 500; }
[data-boyce-calendar] .boyce-cal-list-card dl { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 20px; margin: 16px 0 0; }
[data-boyce-calendar] .boyce-cal-list-card dt { margin-bottom: 4px; color: #737c89; font-size: 14px; }
[data-boyce-calendar] .boyce-cal-list-card dd { margin: 0; overflow-wrap: anywhere; font-size: 16px; }
[data-boyce-calendar] .boyce-cal-empty { padding: 24px; }
[data-boyce-calendar] .boyce-cal-status { display: inline-block; padding: 4px 9px; color: #3d6260; font-size: 14px; background: #edf5f3; border-radius: 4px; }
[data-boyce-calendar] .boyce-cal-local-note { margin: 12px 0 0; color: #7c828c; font-size: 14px; }
[data-boyce-calendar] .boyce-cal-dialog { width: min(660px, calc(100vw - 32px)); max-height: calc(100dvh - 48px); padding: 0; color: #29313e; font: 16px/1.5 Arial, sans-serif; border: 1px solid #d7dce4; border-radius: 10px; box-shadow: 0 16px 70px #101a3930; }
[data-boyce-calendar] .boyce-cal-dialog::backdrop { background: #17203866; }
[data-boyce-calendar] .boyce-cal-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 24px; border-bottom: 1px solid #e5e8ed; }
[data-boyce-calendar] .boyce-cal-dialog-heading h2 { margin: 0; color: #222631; font: 26px/1.3 Georgia, serif; }
[data-boyce-calendar] .boyce-cal-close { min-width: 44px; min-height: 44px; padding: 0; color: #697180; font: 26px/1 Arial, sans-serif; background: transparent; border: 0; cursor: pointer; }
[data-boyce-calendar] .boyce-cal-dialog-body { display: grid; gap: 16px; padding: 24px; }
[data-boyce-calendar] .boyce-cal-dialog-body :is(p,h3) { margin: 0; }
[data-boyce-calendar] .boyce-cal-field-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
[data-boyce-calendar] .boyce-cal-staff { margin: 0; padding: 12px; border: 1px solid #dce1e7; border-radius: 5px; }
[data-boyce-calendar] .boyce-cal-staff label { flex-direction: row; align-items: center; padding: 6px 0; color: #35404e; font-size: 16px; }
[data-boyce-calendar] .boyce-cal-dialog-actions { justify-content: flex-end; padding: 18px 24px; border-top: 1px solid #e4e7ed; }
[data-boyce-calendar] .boyce-cal-meta { color: #747c88; font-size: 14px; }
[data-boyce-calendar] .boyce-cal-facts { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px 18px; margin: 0; }
[data-boyce-calendar] .boyce-cal-facts dt { color: #78808d; font-size: 14px; }
[data-boyce-calendar] .boyce-cal-facts dd { margin: 0; }
[data-boyce-calendar] .boyce-cal-slot-list { display: flex; flex-wrap: wrap; gap: 10px; }
[data-boyce-calendar] [role="alert"] { color: #a63a3a; }
[data-boyce-calendar] [hidden] { display: none !important; }
[data-boyce-calendar] .boyce-cal-sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 1050px) {
  [data-boyce-calendar] .boyce-cal-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  [data-boyce-calendar] { padding: 18px 14px 24px; }
  [data-boyce-calendar] .boyce-cal-heading { align-items: flex-start; flex-direction: column; }
  [data-boyce-calendar] .boyce-cal-heading h1 { font-size: 28px; }
  [data-boyce-calendar] .boyce-cal-heading-actions { width: 100%; }
  [data-boyce-calendar] .boyce-cal-heading-actions .boyce-cal-button { flex: 1 1 0; }
  [data-boyce-calendar] .boyce-calendar-views { width: 100%; }
  [data-boyce-calendar] .boyce-calendar-views button { flex: 1 1 0; min-width: 0; padding-inline: 10px; }
  [data-boyce-calendar] .boyce-cal-filters { gap: 12px; padding: 14px; }
  [data-boyce-calendar] .boyce-cal-search { grid-column: 1 / -1; }
  [data-boyce-calendar] .boyce-cal-navigation { padding: 14px; }
  [data-boyce-calendar] .boyce-cal-date-actions h2 { flex: 1 1 auto; margin-right: 0; font-size: 22px; }
  [data-boyce-calendar] .boyce-cal-date-input { width: 100%; }
  [data-boyce-calendar] .boyce-cal-display-options select { width: 175px; }
  [data-boyce-calendar] .boyce-cal-context { padding-inline: 14px; }
  [data-boyce-calendar] .boyce-cal-list-card { padding: 18px 14px; }
  [data-boyce-calendar] .boyce-cal-list-card dl { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  [data-boyce-calendar] .boyce-cal-field-pair { grid-template-columns: minmax(0, 1fr); }
  [data-boyce-calendar] .boyce-cal-dialog-body, [data-boyce-calendar] .boyce-cal-dialog-heading, [data-boyce-calendar] .boyce-cal-dialog-actions { padding: 18px; }
  [data-boyce-calendar] .boyce-cal-facts { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* The native calendar lives inside the firm's fixed-height main slot. Let
   main own vertical page travel; the month/week grids alone own sideways or
   hourly travel, so every date and lower-page control remains reachable. */
.boyce-workspace > .pragtical-app > #main-content.boyce-view-host:has(> .native-gate4-view-host[data-boyce-calendar]) { overflow-y:auto; overflow-x:hidden; overscroll-behavior-y:contain; }
.boyce-workspace > .pragtical-app > #main-content.boyce-view-host > .native-gate4-view-host[data-boyce-calendar] { height:auto; min-height:100%; overflow:visible; }
.boyce-workspace [data-boyce-calendar] { --boyce-calendar-control-size:40px; padding:24px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-heading { align-items:center; gap:16px; margin-bottom:18px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-heading h1 { margin:0; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-heading-actions { gap:8px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-button,
.boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu > summary { min-height:var(--boyce-calendar-control-size); padding:8px 14px; border-color:#9cabbc; font-size:14px; font-weight:500; line-height:1.4; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-button:hover:not(:disabled) { background:#edf3fb; border-color:#58789d; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-button.is-primary:hover:not(:disabled) { color:#fff; background:#245fa8; border-color:#245fa8; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-viewbar { display:grid; grid-template-columns:auto minmax(180px,1fr) minmax(200px,1.25fr) auto; align-items:center; gap:12px; margin-bottom:16px; }
.boyce-workspace [data-boyce-calendar] .boyce-calendar-views { flex-wrap:nowrap; gap:0; padding:0; overflow:hidden; border-color:#9cabbc; }
.boyce-workspace [data-boyce-calendar] .boyce-calendar-views button { min-width:58px; min-height:var(--boyce-calendar-control-size); padding:8px 12px; border-radius:0; }
.boyce-workspace [data-boyce-calendar] .boyce-calendar-views button + button { border-left:1px solid #d0d9e3; }
.boyce-workspace [data-boyce-calendar] .boyce-calendar-views button[aria-pressed=true] { color:#173f70; background:#dfedff; box-shadow:inset 0 -3px #245fa8; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-viewbar > label { display:block; min-width:0; }
.boyce-workspace [data-boyce-calendar] :is(select,input[type=search],input[type=date]) { height:var(--boyce-calendar-control-size); min-height:var(--boyce-calendar-control-size); padding-block:8px; border-color:#9cabbc; font-size:14px; }
.boyce-workspace [data-boyce-calendar] select:not([multiple]) { padding-inline-end:42px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu { position:relative; justify-self:end; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu > summary { display:flex; align-items:center; justify-content:center; gap:8px; color:#243b56; background:#fff; border:1px solid #9cabbc; border-radius:5px; list-style:none; white-space:nowrap; cursor:pointer; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu > summary::-webkit-details-marker { display:none; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu > summary::after { content:''; width:8px; height:8px; margin:-4px 2px 0 5px; border-right:1.8px solid currentColor; border-bottom:1.8px solid currentColor; transform:rotate(45deg); }
.boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu[open] > summary { background:#e7f0fc; border-color:#58789d; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu > summary:focus-visible { outline:3px solid #387bc4; outline-offset:3px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-filter-count { min-width:20px; padding:0 5px; color:#fff; background:#183d68; border-radius:10px; font-size:12px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu > .boyce-cal-filters { position:absolute; z-index:50; top:calc(100% + 8px); right:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; width:390px; max-width:calc(100vw - 48px); max-height:calc(100dvh - 160px); overflow:auto; padding:18px; background:#fff; border:1px solid #9cabbc; border-radius:6px; box-shadow:0 12px 30px #172b4626; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-filters .boyce-cal-check { align-self:end; min-height:var(--boyce-calendar-control-size); font-size:14px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-navigation { padding:16px 18px 8px; gap:12px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-date-actions { gap:6px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-period-buttons { display:flex; gap:6px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-date-actions :is([data-business-calendars-previous-period],[data-business-calendars-next-period]) { width:var(--boyce-calendar-control-size); padding:6px; font-size:22px; line-height:1; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-date-actions h2 { margin-inline:12px 0; font-size:22px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-date-input { width:155px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-context { padding:6px 18px 14px; color:#52647a; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-active-filters { color:#244f80; font-weight:500; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-timeline { height:clamp(280px,calc(100dvh - 340px),620px); scrollbar-gutter:stable; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-scroll { overscroll-behavior-x:contain; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-weekday { position:sticky; top:0; z-index:1; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-local-note { font-size:13px; }
@media(max-width:1100px) {
  .boyce-workspace [data-boyce-calendar] .boyce-cal-viewbar { grid-template-columns:auto minmax(0,1fr) auto; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-viewbar > .boyce-cal-search { grid-column:2; grid-row:2; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu { grid-column:3; grid-row:1 / 3; align-self:center; }
}
@media(max-width:700px) {
  .boyce-workspace [data-boyce-calendar] { --boyce-calendar-control-size:44px; padding:20px 16px 24px; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-heading { align-items:flex-start; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-heading-actions { width:100%; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-heading-actions > .boyce-cal-button { flex:1 1 auto; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-viewbar { grid-template-columns:minmax(0,1fr) auto; gap:10px; }
  .boyce-workspace [data-boyce-calendar] .boyce-calendar-views { grid-column:1 / -1; width:100%; }
  .boyce-workspace [data-boyce-calendar] .boyce-calendar-views button { flex:1 1 0; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-viewbar > .boyce-cal-calendar-choice { grid-column:1 / -1; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-viewbar > .boyce-cal-search { grid-column:1; grid-row:auto; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu { grid-column:2; grid-row:auto; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu > summary { padding-inline:10px; font-size:13px; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-filter-menu > .boyce-cal-filters { width:calc(100vw - 32px); max-width:calc(100vw - 32px); grid-template-columns:minmax(0,1fr); }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-navigation { padding:14px; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-date-actions { width:100%; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-date-actions h2 { margin-inline-start:8px; font-size:19px; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-date-input { width:100%; }
  .boyce-workspace [data-boyce-calendar] .boyce-cal-timeline { height:340px; }
}
/* Native workspace tools enter through stable slots. Flatten only the two
   utility wrappers so shared action-menu items keep one vertical rhythm. */
.boyce-workspace [data-boyce-calendar] .boyce-action-menu-panel :is([data-boyce-calendar-utility-tools],[data-calendar-workspace-tools]) { display:contents; }
.boyce-workspace [data-boyce-calendar] :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid #245fa8!important; outline-offset:2px!important; }

/* Bounded month previews stop a busy date from stretching every day in its
   week. Full titles/times remain in accessible labels and hover tooltips; the
   existing day view exposes every entry behind the exact overflow count. */
.boyce-workspace [data-boyce-calendar] .boyce-cal-day { min-height:118px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-day-number { width:var(--boyce-calendar-control-size); height:var(--boyce-calendar-control-size); margin:-2px 0 4px auto; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-month .boyce-cal-event { min-height:44px; gap:0; padding:5px 8px; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-month .boyce-cal-event strong { display:block; width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:14px; line-height:1.3; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-month .boyce-cal-event-time { font-size:12px; line-height:1.3; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-more { display:flex; align-items:center; justify-content:center; width:100%; min-height:var(--boyce-calendar-control-size); padding:6px 8px; color:#183d68; background:#edf4fd; border:1px solid #a8bfdc; border-radius:4px; font:500 14px/1.4 'DM Sans',Arial,sans-serif; cursor:pointer; }
.boyce-workspace [data-boyce-calendar] .boyce-cal-more:hover { color:#173f70; background:#dceaff; border-color:#58789d; }
