/* Calendar workspace: broad date grid, quiet chrome, and distinct appointment states. */
#chat-workspace{max-width:1440px;padding-top:28px}.topbar{height:76px;padding-inline:32px}.page-intro{margin-bottom:22px}.page-intro h1{font-size:28px;font-weight:550}.clinic-switcher{margin-bottom:20px}.workspace-tabs{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dee5df;margin-bottom:22px;gap:16px}.workspace-tabs>div{display:flex;gap:25px}.workspace-tabs button{border:0;border-bottom:3px solid transparent;background:none;color:#7b8981;font-size:13px;font-weight:600;display:flex;align-items:center;gap:9px;padding:13px 1px 15px}.workspace-tabs button[aria-pressed=true]{color:#285b49;border-bottom-color:#285b49}.workspace-tabs svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.calendar-sync{font-size:11px;color:#7b8c80;display:flex;gap:7px;align-items:center}.calendar-shell{display:grid;grid-template-columns:216px minmax(0,1fr);border:1px solid #dfe6e0;border-radius:16px;background:white;box-shadow:0 4px 24px #243b3004;overflow:hidden}.calendar-sidebar{padding:21px 18px;background:#fcfdfa;border-right:1px solid #e5eae3;min-width:0}.calendar-chat-button{width:100%;padding:12px 10px;border:1px solid #dde7d9;border-radius:12px;background:#edf4e8;color:#315843;display:flex;gap:8px;align-items:center;text-align:left;font-size:12px;font-weight:600;box-shadow:0 3px 9px #27492c05}.calendar-chat-button>.avatar{width:29px;height:32px;font-size:19px;border:0;background:#deead7}.calendar-chat-button small{display:block;font-size:8px;font-weight:400;line-height:1.7;color:#788a70;margin-top:3px}.calendar-chat-button>span:last-child{margin-left:auto;font-size:17px;font-weight:400}.mini-calendar{margin:29px 0 24px}.mini-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:2px}.mini-heading h2{text-transform:capitalize;font-size:12px;font-weight:600}.mini-heading>div{display:flex;gap:2px}.cal-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:50%;background:transparent;color:#697d70;font-size:25px;line-height:1}.cal-icon:hover{background:#edf2ec}.mini-heading .cal-icon{width:23px;height:25px;font-size:21px}.mini-weekdays,.mini-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}.mini-weekdays{font-size:9px;color:#8d9a8c;font-weight:600;margin-bottom:6px}.mini-weekdays span{padding:4px 0}.mini-day{position:relative;font-size:10px;min-height:28px;background:transparent;border:0;border-radius:50%;color:#4d6053;padding:0;margin:1px 0}.mini-day.in-week{background:#eaf0e6;border-radius:7px}.mini-day.outside{color:#b3bcb0}.mini-day[aria-current=date]{color:#315d46;font-weight:750;box-shadow:inset 0 0 0 1px #86a97a}.mini-day.selected{background:#2c604f;color:white;font-weight:600;box-shadow:none}.mini-day.has-events::after{content:"";position:absolute;width:3px;height:3px;background:currentColor;bottom:3px;left:calc(50% - 1.5px);border-radius:50%}.calendar-filter{padding-top:21px;border-top:1px solid #e4e9df}.calendar-filter label{display:block;font-size:8px;color:#8a9783;letter-spacing:1.1px;font-weight:600;margin-bottom:12px}.calendar-filter select{width:100%;font-size:10px;padding:9px 6px;background:white;border:1px solid #e2e8dd;border-radius:7px;color:#53674f}.calendar-legend{display:grid;gap:13px;margin-top:20px}.calendar-legend span{display:flex;align-items:center;gap:9px;font-size:10px;color:#75846b}.calendar-legend i{width:9px;height:9px;border-radius:3px}.legend-booked{background:#7a9dda}.legend-confirmed{background:#66a58c}.legend-pending{background:#d6a24d}.legend-block{background:repeating-linear-gradient(-45deg,#d6dcd4 0 2px,#eef1ec 2px 4px);border:1px solid #cbd3c6}.calendar-day-summary{margin-top:27px;padding:18px 0 0;border-top:1px solid #e4e9df}.calendar-day-summary .eyebrow{display:block;font-size:8px;letter-spacing:1px}.calendar-day-summary>strong{font-size:26px;font-weight:500;letter-spacing:-1px}.calendar-day-summary p{font-size:10px;color:#8a967e;line-height:1.7;margin:4px 0 10px}.calendar-day-summary button{font-size:10px;color:#507346;border:0;background:transparent;padding:4px 0}.calendar-local-note{font-size:10px;color:#74846a;display:flex;gap:6px;flex-wrap:wrap;align-items:center;line-height:1.5;margin-top:25px}.calendar-local-note small{display:block;width:100%;padding-left:12px;font-size:8px;color:#a2ac99}.calendar-main{min-width:0;display:flex;flex-direction:column}.calendar-toolbar{min-height:86px;display:flex;gap:15px;align-items:center;justify-content:space-between;padding:20px 24px 12px}.calendar-toolbar-date{display:flex;align-items:center;gap:15px;min-width:0}.calendar-toolbar-date .button{padding:8px 15px;font-size:11px;border-color:#dde5da;box-shadow:0 1px 2px #273d2605}.calendar-arrows{display:flex;gap:3px}.calendar-toolbar h2{text-transform:capitalize;font-size:22px;letter-spacing:-.6px;font-weight:500;white-space:nowrap}.calendar-toolbar p{font-size:10px;color:#88957e;margin:3px 0 0;text-transform:capitalize}.calendar-view-switch{display:flex;gap:2px;border:1px solid #e3e9df;border-radius:8px;background:#f7f9f4;padding:3px}.calendar-view-switch button{border:1px solid transparent;border-radius:5px;padding:6px 13px;font-size:11px;background:transparent;color:#819074}.calendar-view-switch button[aria-pressed=true]{background:white;border-color:#e1e8da;color:#355c2e;box-shadow:0 1px 4px #233b1b08;font-weight:600}.calendar-searchbar{display:flex;justify-content:space-between;gap:20px;padding:0 24px 17px;align-items:center;border-bottom:1px solid #e8ece3}.calendar-search{display:flex;align-items:center;gap:8px;padding:8px 11px;background:#f5f7f2;border:1px solid #edf0e8;border-radius:7px;max-width:290px;width:100%;color:#94a08b}.calendar-search svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;flex-shrink:0}.calendar-search input{background:none;border:0;outline:none;font-size:11px;width:100%;color:#405a36;min-width:0}.calendar-search:focus-within{outline:2px solid #a2bc95;outline-offset:1px}.calendar-search input::placeholder{color:#98a38f}.calendar-searchbar>span{font-size:10px;color:#7f8e74;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-feedback{margin:0;padding:11px 22px;background:#fbfcf7;border-bottom:1px solid #e7ecdf;font-size:11px;color:#7c8b6d;line-height:1.6}.calendar-scroll{height:600px;overflow:auto;scrollbar-width:thin;scrollbar-color:#d7e0cf transparent;overscroll-behavior:contain;outline-offset:-3px!important}.calendar-grid{min-width:660px;position:relative}.calendar-grid.single-day{min-width:0}.calendar-day-headings,.calendar-grid-body{display:grid;grid-template-columns:54px repeat(var(--day-count),minmax(0,1fr))}.calendar-day-headings{position:sticky;top:0;height:72px;background:#fffffff5;backdrop-filter:blur(8px);border-bottom:1px solid #e3e8df;z-index:6}.calendar-corner{display:flex;align-items:end;justify-content:center;font-size:7px;color:#acb5a5;letter-spacing:.8px;padding-bottom:10px;border-right:1px solid #e9ede4}.calendar-day-heading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:0;border-right:1px solid #e9ede4;background:transparent;color:#738369;min-width:0}.calendar-day-heading>span{text-transform:uppercase;font-size:9px;letter-spacing:1px}.calendar-day-heading>strong{display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-weight:450;font-size:23px;line-height:1;letter-spacing:-.5px;border-radius:50%;color:#42583a}.calendar-day-heading.is-today>strong{background:#2d604b;color:white}.calendar-day-heading.is-today>span{color:#315d41;font-weight:700}.calendar-time-ruler{position:relative;background:white;border-right:1px solid #e4e9de;z-index:3}.calendar-time-ruler span{position:absolute;right:9px;font-size:9px;color:#9aa58e;line-height:14px;transform:translateY(5px)}.calendar-day-column{position:relative;border-right:1px solid #e7ece2;min-width:0;overflow:hidden;background:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,#f1f4ec 31px,#f1f4ec 32px,transparent 32px,transparent 63px,#e7ece1 63px,#e7ece1 64px)}.calendar-day-column:last-child{border-right:0}.calendar-off-hours{position:absolute;width:100%;background:#f4f6f07d;pointer-events:none}.today-column{background-color:#fbfdf8}.calendar-block{position:absolute;left:1px;width:calc(100% - 2px);text-align:left;background:repeating-linear-gradient(-45deg,#e6eae270 0,#e6eae270 1px,#f2f4ee65 1px,#f2f4ee65 7px);border:1px solid #e0e6d9;border-radius:4px;color:#8c9980;padding:8px 7px;overflow:hidden;display:flex;flex-direction:column;gap:4px;z-index:1;min-height:0}.calendar-block>span{font-size:9px;font-weight:600}.calendar-block>small{font-size:8px;line-height:1.5;font-weight:400}.calendar-event{position:absolute;z-index:2;border:1px solid #bbcee8;border-left:3px solid #6b93d1;border-radius:5px;padding:3px 5px;display:flex;flex-direction:column;text-align:left;gap:0;line-height:12px;min-width:0;background:#e8f0fd;color:#31578e;box-shadow:0 1px 2px #21425405;overflow:hidden;transition:box-shadow .15s,filter .15s}.calendar-event:hover{box-shadow:0 2px 8px #24445925;z-index:4}.calendar-event:focus-visible{outline-offset:-2px}.calendar-event strong{font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;max-width:100%}.calendar-event .event-time{font-size:9px;white-space:nowrap}.calendar-event small{font-size:9px;line-height:1.5;opacity:.7;margin-top:4px}.event-confirmed{background:#e5f3eb;border-color:#b9dfc9;border-left-color:#63a082;color:#326c51}.event-pending{background:#fbefd9;border-color:#ead5ab;border-left-color:#c79c44;color:#8d6827}.event-cancelled,.event-no_show,.event-attended{background:#f1f2ef;border-color:#d9dfd3;border-left-color:#a4ad9a;color:#87937b}.event-cancelled strong{text-decoration:line-through}.compact-event{flex-direction:row;align-items:center;gap:5px;padding-block:1px}.compact-event .event-time{order:-1}.calendar-now-line{position:absolute;height:1px;background:#cc7767;width:100%;z-index:5;pointer-events:none}.calendar-now-line::before{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#cc7767;top:-2.5px;left:-2px}.calendar-footer{padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #e7ece1;font-size:9px;color:#9aa58e;line-height:1.6;background:#fdfefa}.calendar-footer>span:first-child{display:flex;align-items:center;gap:6px}.calendar-footer i{width:5px;height:5px;border-radius:50%;background:#9aac8c}.calendar-search-results{height:600px;overflow:auto;padding:10px 20px}.calendar-search-row{display:flex;align-items:center;gap:13px;width:100%;border:0;border-bottom:1px solid #e8eddf;padding:18px 6px;background:white;color:#49623e;text-align:left}.calendar-search-row>span:nth-child(2){flex:1;min-width:0}.calendar-search-row strong{font-size:13px;display:block;font-weight:500}.calendar-search-row small{display:block;font-size:10px;color:#8d9c7f;margin-top:6px}.calendar-search-row>span:nth-child(3){font-size:11px}.search-event-dot{width:8px;height:28px;border-radius:3px;background:#8cadda;flex-shrink:0}.search-event-dot.event-pending{background:#d6af64}.search-event-dot.event-confirmed{background:#83ba9a}.calendar-empty{text-align:center;font-size:13px;color:#8b987f;margin:70px 30px;line-height:1.8}.calendar-detail{width:min(415px,calc(100vw - 32px));padding:24px;border-radius:17px}.calendar-detail-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.calendar-detail-top .status-pill{font-size:9px;padding:5px 8px}.calendar-detail-avatar{display:flex;width:46px;height:46px;align-items:center;justify-content:center;background:#edf3e7;color:#7a9368;border:1px solid #e1e9d8;border-radius:15px;font-size:17px;margin-bottom:13px}.calendar-detail h2{font-size:26px;letter-spacing:-.7px;overflow-wrap:anywhere}.calendar-detail>p{font-size:12px;color:#8b987e;margin:6px 0 23px}.calendar-detail dl{border-top:1px solid #e7ecdf;padding-top:5px;margin:0}.calendar-detail dl>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:15px;padding:11px 0;font-size:11px;line-height:1.65}.calendar-detail dt{color:#8e9b82}.calendar-detail dd{margin:0;color:#4d6440;text-transform:none}.calendar-detail-note{font-size:11px;padding:13px 15px;line-height:1.8;border-radius:8px;background:#faf3e5;color:#998052;margin-top:12px}.calendar-detail-actions{display:grid;gap:9px;margin-top:23px}.calendar-detail-actions .button{padding:12px}.calendar-detail-actions .text-button{font-size:10px}.calendar-block-pill{color:#7f8c70;background:#ecf0e6}#calendar-workspace>.absence-followup{margin-top:22px;padding:23px 28px}#calendar-workspace .absence-campaign{margin-top:17px}#calendar-workspace .case-row{display:grid;grid-template-columns:1fr auto}#calendar-workspace .case-actions{flex-direction:row;gap:13px}.conversation-column{min-width:0}#conversation-workspace .chat-panel{height:720px}
@media(min-width:1500px){#chat-workspace{margin-inline:auto;padding-inline:32px}.calendar-shell{grid-template-columns:230px minmax(0,1fr)}.calendar-scroll,.calendar-search-results{height:640px}.calendar-event strong{font-size:11px}.calendar-sidebar{padding-inline:22px}}
@media(max-width:1100px){.calendar-shell{grid-template-columns:192px minmax(0,1fr)}.calendar-sidebar{padding-inline:12px}.calendar-toolbar{padding-inline:16px;gap:8px}.calendar-toolbar-date{gap:8px}.calendar-toolbar h2{font-size:20px}.calendar-searchbar{padding-inline:16px}.calendar-searchbar>span{max-width:38%}.calendar-view-switch button{padding-inline:9px}.calendar-footer{font-size:8px}.calendar-chat-button{padding-inline:8px;gap:5px}.calendar-chat-button small{font-size:7px}}
@media(max-width:900px){.calendar-shell{grid-template-columns:1fr}.calendar-sidebar{display:none}.calendar-grid{min-width:640px}.calendar-scroll,.calendar-search-results{height:560px}.calendar-toolbar{padding:17px 18px}.calendar-searchbar{padding-inline:18px}.calendar-searchbar>span{max-width:45%}.calendar-event strong{font-size:11px}.calendar-footer{font-size:9px}}
@media(max-width:600px){.topbar{height:68px;padding-inline:16px}.top-actions{gap:8px}.topbar .button{padding:9px;font-size:9px}.brand{font-size:26px}.brand-mark{width:29px;height:29px}.workspace{margin-inline:14px}.page-intro h1{font-size:23px}.page-intro p:not(.eyebrow){font-size:11px;max-width:245px}.clinic-switcher{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:10px}.clinic-switcher label{grid-column:1/-1}.clinic-switcher select{min-width:0;width:100%;font-size:11px;padding:9px}.clinic-switcher .button{font-size:9px;padding:10px 8px}.workspace-tabs{margin-bottom:16px}.workspace-tabs>div{gap:24px}.workspace-tabs button{font-size:12px}.calendar-sync{display:none}.calendar-toolbar{padding:16px 11px;gap:7px;align-items:start}.calendar-toolbar-date{flex-wrap:wrap;gap:4px}.calendar-toolbar-date>div:last-child{width:100%;padding-top:8px}.calendar-toolbar h2{font-size:21px}.calendar-toolbar-date .button{padding:7px 12px}.calendar-arrows .cal-icon{width:27px}.calendar-view-switch{margin-top:2px;flex-shrink:0}.calendar-view-switch button{font-size:10px;padding:6px 10px}.calendar-searchbar{padding:0 11px 13px;gap:10px}.calendar-searchbar>span{display:none}.calendar-search{max-width:none}.calendar-scroll,.calendar-search-results{height:500px}.calendar-footer{padding:11px;font-size:9px}.calendar-footer>span:last-child{display:none}.calendar-shell{border-radius:12px}.calendar-detail{padding:22px}.calendar-search-results{padding-inline:10px}.calendar-search-row{gap:8px}.calendar-search-row .status-pill{font-size:7px;max-width:70px}.calendar-search-row strong{font-size:12px}.calendar-search-row small{font-size:9px}.calendar-search-row>span:nth-child(3){font-size:10px}.calendar-feedback{font-size:10px;padding:10px 12px}#calendar-workspace>.absence-followup{padding:20px 16px}#calendar-workspace .case-actions{flex-direction:column;align-items:end;gap:7px}#conversation-workspace .chat-panel{height:650px}}
.calendar-block>span{position:sticky;top:82px}.calendar-block>small{position:sticky;top:98px}.calendar-mobile-tools{display:none}
@media(max-width:900px){.calendar-mobile-tools{display:flex;gap:14px;padding:10px 18px;border-bottom:1px solid #e8ece3;background:#fcfdf9}.calendar-mobile-tools label{display:flex;align-items:center;gap:8px;font-size:10px;color:#8b987d;flex:1;min-width:0}.calendar-mobile-tools input,.calendar-mobile-tools select{font:inherit;color:#536d43;padding:7px 8px;border:1px solid #e2e9d9;background:white;border-radius:6px;min-width:0;width:100%;max-width:190px}}
@media(max-width:600px){.calendar-mobile-tools{padding:9px 11px;gap:10px}.calendar-mobile-tools label{display:block;font-size:9px}.calendar-mobile-tools input,.calendar-mobile-tools select{display:block;margin-top:4px;width:100%;max-width:none;height:33px;font-size:10px}}
html{scrollbar-gutter:stable}
#chat-workspace{width:calc(100% - 64px);margin-inline:auto;padding-inline:0}.calendar-toolbar h2,.mini-heading h2{text-transform:none}.calendar-toolbar h2::first-letter,.mini-heading h2::first-letter{text-transform:uppercase}
@media(max-width:1000px){#chat-workspace{width:calc(100% - 44px)}}
@media(max-width:600px){#chat-workspace{width:calc(100% - 28px)}#chat-workspace>.page-intro{display:block;position:relative}#chat-workspace>.page-intro>.text-button{position:absolute;right:0;top:-8px}#chat-workspace>.page-intro h1{font-size:22px}#chat-workspace>.page-intro .eyebrow{padding-right:95px}}
/* Holidays are all-day annotations, distinct from clinic closures. */
#calendar-new-block{flex-shrink:0;font-size:11px;padding:9px 12px;color:#3f684f;background:#f7faf4;border-color:#dfe8d8;white-space:nowrap}.calendar-searchbar>span{margin-left:auto}.calendar-block.short-block>span,.calendar-block.short-block>small{position:static}.calendar-block.short-block>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-block.short-block{background:repeating-linear-gradient(-45deg,#e4ebdd 0,#e4ebdd 1px,#f3f6ee 1px,#f3f6ee 7px);border-left:3px solid #92a681;color:#647853}.calendar-block-dialog{width:min(440px,calc(100vw - 32px));padding:26px;border-radius:17px}.calendar-block-dialog h2{font-size:26px;letter-spacing:-.7px}.calendar-block-dialog .dialog-description{font-size:12px;line-height:1.7;margin:10px 0 16px}.calendar-block-dialog .eyebrow{font-size:9px}.calendar-block-dialog .block-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.block-field-wide{grid-column:1/-1}.calendar-block-dialog .field{min-width:0;margin:0}.calendar-block-dialog .field label{display:block;margin:0 0 7px;font-size:11px}.calendar-block-dialog .field input,.calendar-block-dialog .field select{width:100%;min-width:0;font:inherit;font-size:13px;padding:11px;border:1px solid #dfe6d9;background:#fff;border-radius:8px;color:#41563a}.calendar-block-dialog .block-summary{font-size:12px;color:#48653c;margin:17px 0 8px}.calendar-block-dialog .dialog-actions{margin-top:22px}.calendar-block-dialog .control-note{line-height:1.7}#calendar-lunch-preset{padding:9px 13px;font-size:11px}#calendar-detail .error-message{color:#a2463d;font-size:12px}
@media(max-width:600px){#calendar-new-block{font-size:10px;padding:9px 8px}.calendar-block-dialog{padding:22px}.calendar-searchbar{gap:8px}.calendar-block-dialog .dialog-actions .button{padding:11px 14px;font-size:12px}}
.calendar-holiday-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 22px;border-bottom:1px solid #e7ece3;background:#fdfcfe;font-size:10px;color:#889080}.calendar-holiday-controls label{display:flex;align-items:center;gap:7px;font-size:10px;color:#76648f;cursor:pointer;white-space:nowrap}.calendar-holiday-controls input{accent-color:#8c75ad;margin:0;width:13px;height:13px}.calendar-holiday-controls>a{margin-left:auto;color:#92869f;text-decoration:none;font-size:9px}.calendar-holiday-controls>a:hover{text-decoration:underline}#calendar-holiday-status{font-size:9px}.holiday-warning{color:#a28042}.mini-day.is-holiday:not(.selected){color:#9275b7;font-weight:650}.mini-day.is-holiday::before{content:"";position:absolute;width:3px;height:3px;right:4px;top:4px;background:#b097cb;border-radius:50%}.calendar-day-heading.has-holiday:not(.is-today)>strong{color:#8a6ba7}.holiday-column{background-color:#fcfaff}.calendar-holiday-row{display:grid;grid-template-columns:54px repeat(var(--day-count),minmax(0,1fr));position:sticky;top:72px;z-index:5;min-height:41px;background:#fff;border-bottom:1px solid #e5e1ed}.holiday-row-label{display:flex;align-items:center;justify-content:center;color:#a196ad;font-size:7px;letter-spacing:.4px;border-right:1px solid #e7ece2}.holiday-cell{padding:4px 3px;border-right:1px solid #ede8f2;min-width:0;display:flex;align-items:stretch}.calendar-holiday{display:block;width:100%;border:1px solid #e3d9ef;border-left:3px solid #aa8cc6;border-radius:4px;background:#f3ecfb;color:#84669e;font-size:9px;text-align:left;padding:4px 5px;line-height:1.4;overflow:hidden;overflow-wrap:anywhere;max-height:48px}.holiday-pill{color:#85639f;background:#f0e7f7}.calendar-grid:has(.calendar-holiday-row) .calendar-block>span{top:126px}.calendar-grid:has(.calendar-holiday-row) .calendar-block>small{top:142px}
@media(max-width:600px){.calendar-holiday-controls{padding:10px 11px;gap:8px}.calendar-holiday-controls label{font-size:10px}#calendar-holiday-status{order:3;width:100%;font-size:9px}.calendar-holiday-controls>a{font-size:9px}.calendar-holiday{font-size:10px;padding:6px 8px}.calendar-holiday-row{min-height:39px}}
