.estate-calendar{width:min(1180px,96vw);max-width:96vw;max-height:94dvh;height:94dvh;box-sizing:border-box;border:1px solid #d9e3e2;border-radius:20px;padding:28px;background:#f7f9f8;color:#203634;font:14px/1.5 system-ui,sans-serif;overflow:auto}.estate-calendar::backdrop,.cal-editor::backdrop{background:#10262799}.estate-calendar button,.cal-editor button{font:inherit;cursor:pointer;border:1px solid #d1dedb;background:white;border-radius:9px;padding:9px 14px;min-height:42px;color:#234c44}.estate-calendar button:focus-visible,.cal-editor :focus-visible{outline:3px solid #159b83;outline-offset:2px}.cal-header,.cal-actions,.cal-toolbar,.cal-toolbar>div,.cal-tabs{display:flex;align-items:center;gap:10px}.cal-header,.cal-toolbar{justify-content:space-between}.cal-header h1{font-size:29px;margin:4px 0 18px}.cal-eyebrow{font-size:11px;letter-spacing:2px;color:#53847a}.cal-primary{background:#087d69!important;color:white!important;border-color:#087d69!important}.cal-tabs{border-bottom:1px solid #dce5e1;padding:8px 0 14px;overflow:auto}.cal-tabs [aria-pressed=true]{background:#e0f1e9;color:#076b59;border-color:#78b6a4}.cal-storage{font-size:12px;color:#657b72}.cal-toolbar{margin:20px 0}.cal-toolbar strong{min-width:160px;text-align:center;font-size:18px}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.cal-weekday{padding:8px;text-align:center;color:#73837b;font-size:12px}.cal-day{min-height:108px!important;text-align:left;padding:9px!important;display:flex;flex-direction:column;gap:4px;overflow:hidden}.cal-day strong{font-size:13px}.cal-day span{font-size:11px;border-radius:4px;padding:2px 4px;background:#e1eee9;color:#21644e;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box}.cal-today strong{background:#0a806a;color:white;border-radius:50%;padding:1px 6px}.cal-selected{border-color:#078570!important;box-shadow:inset 0 0 0 1px #078570}.cal-event{background:white;border:1px solid #dce6df;border-radius:12px;padding:16px;display:flex;align-items:start;gap:15px;margin:10px 0}.cal-event>div:nth-child(2){flex:1;min-width:0}.cal-event p{margin:4px 0;color:#6a7b71;font-size:12px;overflow-wrap:anywhere}.cal-event strong{overflow-wrap:anywhere}.cal-notes{white-space:pre-wrap}.cal-type{font-size:11px;border-radius:6px;padding:4px 8px;background:#e1eee9}.cal-day [data-type=Meeting],.cal-type[data-type=Meeting]{background:#e4eefa;color:#325c9a}.cal-day [data-type=Festival],.cal-type[data-type=Festival]{background:#fcebd9;color:#965815}.cal-day [data-type=Task],.cal-type[data-type=Task]{background:#eee5f9;color:#70438e}.cal-item-actions{display:flex;gap:6px;flex-wrap:wrap}.cal-item-actions button{font-size:12px}.cal-done strong{text-decoration:line-through;color:#819389}.cal-day-detail{margin-top:25px}.cal-day-detail h2,.cal-agenda h2{font-size:18px}.cal-empty{text-align:center;padding:50px 20px;background:white;border:1px dashed #c9d9d0;border-radius:14px}.cal-editor{width:540px;max-width:92vw;max-height:90dvh;overflow:auto;box-sizing:border-box;padding:25px;border:1px solid #d9e3e2;border-radius:16px;background:#fff;color:#203634;font:14px/1.5 system-ui,sans-serif}.cal-editor label{display:grid;gap:5px;margin-bottom:12px}.cal-editor input,.cal-editor select,.cal-editor textarea{width:100%;box-sizing:border-box;font:inherit;padding:9px;border:1px solid #cadbd1;border-radius:7px}.cal-fields{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.cal-editor .cal-checkbox{display:flex;align-items:center}.cal-checkbox input{width:auto}.cal-editor footer{display:flex;gap:8px;justify-content:end}.cal-editor p{font-size:12px;color:#738377}.cal-editor [role=status],[data-error=true]{color:#b12c3e!important}@media(max-width:700px){.estate-calendar{padding:15px;width:98vw;max-width:98vw;max-height:97dvh;height:97dvh}.cal-header{align-items:start;flex-direction:column}.cal-header h1{font-size:24px;margin-bottom:6px}.cal-actions{flex-wrap:wrap}.cal-day{min-height:77px!important;padding:5px!important}.cal-day span{font-size:9px;padding:1px}.cal-event{flex-wrap:wrap;gap:8px}.cal-item-actions{width:100%}.cal-grid{gap:3px}.cal-editor{padding:18px}.cal-toolbar strong{min-width:130px;font-size:16px}}
/* Calendar workspace: compact navigation, mini month and weekly schedule. */
.estate-calendar{width:96vw;max-width:1480px;padding:16px;border-radius:14px;background:var(--es-canvas,#F8FAFC);color:var(--es-text,#0F172A)}
.estate-calendar .cal-header h1{font-size:23px;margin:0}.cal-eyebrow{display:none}.estate-calendar .cal-header{gap:12px}.estate-calendar .cal-actions{flex-wrap:wrap;gap:6px}.estate-calendar button{font-size:12px;padding:6px 10px;min-height:34px}.estate-calendar .cal-tabs{margin:12px 0 8px;gap:5px;overflow-x:auto;flex-wrap:nowrap}.cal-tabs button{white-space:nowrap}.cal-search{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--es-text-muted);max-width:430px}.cal-search input{width:280px;max-width:70vw;padding:8px 10px;border:1px solid var(--es-border,#CBD5E1);border-radius:8px;background:var(--es-surface,#fff);color:var(--es-text)}.estate-calendar .cal-toolbar{margin:8px 0}.cal-layout{display:grid;grid-template-columns:205px minmax(0,1fr);gap:18px}.cal-sidebar{padding:4px 12px 0 0;border-right:1px solid var(--es-border,#E2E8F0)}.cal-sidebar h2{font-size:12px;margin:22px 0 10px}.cal-sidebar #cal-side-create{padding:10px 18px;font-size:14px}.cal-mini{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;font-size:10px}.cal-mini>span{padding:5px 0;color:var(--es-text-muted)}.estate-calendar .cal-mini button{border:0;border-radius:50%;padding:0;min-height:26px;height:26px;font-size:11px;background:transparent;color:var(--es-text)}.estate-calendar .cal-mini button[aria-pressed=true]{background:var(--es-primary,#2563EB);color:white}.cal-category{display:flex;gap:9px;align-items:center;margin:12px 0;font-size:12px}.cal-category input{accent-color:var(--event-color,#2563EB)}[data-type=Meeting]{--event-color:#2563EB;--event-bg:#DBEAFE;--event-ink:#1E3A8A}[data-type=Event]{--event-color:#7C3AED;--event-bg:#EDE9FE;--event-ink:#4C1D95}[data-type=Festival]{--event-color:#D97706;--event-bg:#FEF3C7;--event-ink:#78350F}[data-type=Task]{--event-color:#059669;--event-bg:#D1FAE5;--event-ink:#064E3B}.cal-main-view{min-width:0}.cal-week-scroll{max-height:62dvh;overflow:auto;border:1px solid var(--es-border,#E2E8F0);border-radius:10px;background:var(--es-surface,#fff)}.cal-week-board{min-width:760px}.cal-week-head,.cal-all-day,.cal-week-hours{display:grid;grid-template-columns:65px repeat(7,minmax(0,1fr))}.cal-week-head{position:sticky;top:0;z-index:4;background:var(--es-surface,#fff);border-bottom:1px solid var(--es-border,#E2E8F0)}.cal-week-head>span{font-size:9px;overflow-wrap:anywhere;padding:8px}.estate-calendar .cal-week-head button{border:0;border-radius:0;background:transparent;color:var(--es-text);text-transform:uppercase;font-size:10px;padding:8px}.cal-week-head strong{display:block;width:32px;line-height:32px;font-size:21px;margin:3px auto 0;font-weight:500}.cal-week-head .is-today strong{background:var(--es-primary,#2563EB);color:white;border-radius:50%}.cal-all-day{border-bottom:1px solid var(--es-border,#E2E8F0)}.cal-all-day>span{font-size:10px;padding:8px}.cal-all-day>div{border-left:1px solid var(--es-border,#E2E8F0);padding:3px;min-height:34px}.estate-calendar .cal-all-day button{display:block;width:100%;min-height:24px;text-align:left;padding:3px 5px;background:var(--event-bg);color:var(--event-ink);border:0;border-left:3px solid var(--event-color);border-radius:4px;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.cal-week-hours{position:relative}.cal-hour-labels span{display:block;height:56px;box-sizing:border-box;font-size:10px;padding:4px 8px;color:var(--es-text-muted);text-align:right}.cal-time-day{position:relative;border-left:1px solid var(--es-border,#E2E8F0)}.estate-calendar .cal-time-slot{display:block;width:100%;height:56px;border:0;border-bottom:1px solid var(--es-border,#E2E8F0);background:transparent;border-radius:0;padding:0}.estate-calendar .cal-time-slot:hover{background:var(--es-primary-soft,#EFF6FF)}.estate-calendar .cal-time-event{position:absolute;z-index:2;height:52px;min-height:0;text-align:left;overflow:hidden;border:0;border-left:3px solid var(--event-color);border-radius:5px;background:var(--event-bg);color:var(--event-ink);padding:4px 5px;font-size:11px;line-height:1.3}.cal-time-event strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-time-event small{display:block;font-size:10px}.cal-week-hint{font-size:11px;color:var(--es-text-muted);margin:8px 0}.cal-sidebar .cal-storage{font-size:10px;line-height:1.6;margin-top:24px}.cal-editor{background:var(--es-surface,#fff);color:var(--es-text,#0F172A)}
@media(max-width:800px){.cal-layout{grid-template-columns:minmax(0,1fr)}.cal-sidebar{display:none}.estate-calendar{padding:10px;max-width:98vw;width:98vw}.estate-calendar .cal-header{align-items:flex-start;flex-direction:column}.estate-calendar .cal-header h1{font-size:20px}.estate-calendar button{min-height:44px}.cal-week-scroll{max-height:58dvh}.estate-calendar .cal-time-event{min-height:0}.estate-calendar .cal-week-head button{min-height:60px}}

html[data-estate-theme="shared"][data-es-color-mode] .estate-calendar .cal-week-head .is-today strong{color:#FFFFFF!important}
html[data-estate-theme="shared"][data-es-color-mode] .estate-calendar .cal-time-event :is(strong,small){color:var(--event-ink)!important}
.cal-week-board.cal-single-day{min-width:300px}.cal-single-day :is(.cal-week-head,.cal-all-day,.cal-week-hours){grid-template-columns:65px minmax(0,1fr)}.cal-now{position:absolute;left:0;right:0;height:2px;background:#EF4444;z-index:3;pointer-events:none}.cal-now:before{content:'';position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:#EF4444}
.estate-calendar .cal-mini-heading{display:flex;align-items:center;gap:2px;margin:16px 0 6px}.estate-calendar .cal-mini-heading h2{font-size:12px;font-weight:500;margin:0 auto 0 0}.estate-calendar .cal-mini-heading button{background:transparent;color:var(--es-text);border:0;padding:0;width:28px;min-width:28px;min-height:28px;height:28px;font-size:22px;line-height:1}.estate-calendar .cal-mini{gap:1px}.estate-calendar .cal-mini button{min-height:25px;height:25px;font-size:10px}.estate-calendar .cal-mini button.cal-mini-outside{color:var(--es-text-muted);opacity:.65}.estate-calendar .cal-mini button.cal-mini-today{box-shadow:inset 0 0 0 1px var(--es-primary,#2563EB)}.estate-calendar .cal-mini button:hover{background:var(--es-primary-soft,#DBEAFE)}.estate-calendar .cal-mini button[aria-pressed=true]{background:var(--es-primary,#2563EB);color:white;opacity:1}
@media(max-width:800px){.estate-calendar .cal-sidebar{display:block;border-right:0;max-width:230px;padding:0}.estate-calendar .cal-sidebar>h2,.estate-calendar .cal-sidebar>.cal-category,.estate-calendar .cal-sidebar>.cal-storage,.estate-calendar #cal-side-create{display:none}.estate-calendar .cal-mini-heading button{min-height:36px;height:36px;width:36px}.estate-calendar .cal-mini button{min-height:30px;height:30px}}
/* Saturated schedule blocks with consistent light foregrounds in both modes. */
.estate-calendar [data-type=Meeting]{--event-color:#60A5FA;--event-bg:#1E40AF;--event-ink:#FFFFFF}
.estate-calendar [data-type=Event]{--event-color:#C4B5FD;--event-bg:#6D28D9;--event-ink:#FFFFFF}
.estate-calendar [data-type=Festival]{--event-color:#FCD34D;--event-bg:#92400E;--event-ink:#FFFFFF}
.estate-calendar [data-type=Task]{--event-color:#6EE7B7;--event-bg:#065F46;--event-ink:#FFFFFF}
html[data-estate-theme="shared"][data-es-color-mode] .estate-calendar :is(.cal-time-event,.cal-all-day button){background:var(--event-bg)!important;color:#FFFFFF!important;border-left-color:var(--event-color)!important}
html[data-estate-theme="shared"][data-es-color-mode] .estate-calendar .cal-time-event :is(strong,small){color:#FFFFFF!important}
.estate-calendar :is(.cal-time-event,.cal-all-day button):hover{filter:brightness(1.14)}

/* Scheduled property visits use a dark blue plate with white artwork. */
.estate-calendar .cal-time-event[data-type="Site visit"]{background:#1e5680;color:#fff;border-left:3px solid #63b9ed}
.estate-calendar .cal-type[data-type="Site visit"]{background:#e5f2fb;color:#1e5680}
