.event-calendar{--event-requirement-bg:#fff0bc;--event-requirement-fg:#785000;--event-requirement-line:#e8cf79;--event-audit-boundary-bg:#ffe0df;--event-audit-boundary-fg:#a52731;--event-audit-boundary-line:#efa7ac;--event-audit-active-bg:#dff2e5;--event-audit-active-fg:#1e7146;--event-audit-active-line:#a3d4b2;--event-exception-bg:#e9edf3;--event-exception-fg:#536276;--event-exception-line:#cbd4de;--event-recommendation-bg:#ffead7;--event-recommendation-fg:#9b551b;--event-recommendation-line:#eac399;--event-plan-bg:#e5edff;--event-plan-fg:#345ba9;--event-plan-line:#b8cbf5;max-width:1500px;margin:auto;color:var(--text)}
[data-theme=dark] .event-calendar{--event-requirement-bg:#50411f;--event-requirement-fg:#ffe3a0;--event-requirement-line:#806b36;--event-audit-boundary-bg:#52272e;--event-audit-boundary-fg:#ffc2c3;--event-audit-boundary-line:#8c454e;--event-audit-active-bg:#1d3f34;--event-audit-active-fg:#a8e6bd;--event-audit-active-line:#47745b;--event-exception-bg:#303b4e;--event-exception-fg:#d1d9e7;--event-exception-line:#53627a;--event-recommendation-bg:#503721;--event-recommendation-fg:#ffd2ab;--event-recommendation-line:#865c35;--event-plan-bg:#293d62;--event-plan-fg:#c7d9ff;--event-plan-line:#5270a8}
.workspace:has(.event-calendar) .working-area{border-top:0;margin-top:25px}.workspace:has(.event-calendar) .workspace-inner{padding-left:clamp(18px,2.5vw,42px);padding-right:clamp(18px,2.5vw,42px)}
.event-calendar-header{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:28px 30px;border:1px solid var(--line);border-radius:16px 16px 0 0;background:var(--surface)}
.event-calendar-header h2{margin:8px 0 4px;font-size:clamp(27px,3vw,38px);font-weight:680;text-transform:capitalize;letter-spacing:-.03em}.event-calendar-header p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.event-calendar-nav{display:flex;align-items:center;gap:7px;flex-shrink:0}.event-calendar-nav button{min-width:39px;height:39px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);cursor:pointer}.event-calendar-nav button:first-child,.event-calendar-nav button:last-child{font-size:26px;line-height:1}.event-calendar-nav button:hover{background:var(--hover)}
.event-calendar-filter-bar{display:flex;align-items:flex-start;gap:18px;justify-content:space-between;padding:16px 24px;background:var(--bg);border-left:1px solid var(--line);border-right:1px solid var(--line)}.event-calendar-filter-bar>div:first-child{display:flex;flex-direction:column;gap:3px;flex-shrink:0}.event-calendar-filter-bar strong{font-size:13px}.event-calendar-filter-bar span:not(.event-calendar-icon):not(.event-calendar-filter-count){color:var(--muted);font-size:12px}
.event-calendar-filters{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px}.event-calendar-filter,.event-calendar-all{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--secondary);font-size:12px;line-height:1.15;cursor:pointer}.event-calendar-filter:hover,.event-calendar-all:hover{border-color:var(--accent);color:var(--text)}.event-calendar-filter.is-on{background:var(--event-bg);border-color:var(--event-line);color:var(--event-fg);font-weight:600}.event-calendar-filter-count{margin-left:2px;opacity:.8;font-size:11px}.event-calendar-icon{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:20px;padding:0 4px;border-radius:5px;background:currentColor;font-size:10px;font-weight:750;letter-spacing:.01em}.event-calendar-icon::first-letter{color:inherit}.event-calendar-filter .event-calendar-icon,.event-calendar-marker .event-calendar-icon{background:var(--event-fg);color:var(--event-bg)}
.tone-requirement{--event-bg:var(--event-requirement-bg);--event-fg:var(--event-requirement-fg);--event-line:var(--event-requirement-line)}.tone-audit,.tone-audit-boundary{--event-bg:var(--event-audit-boundary-bg);--event-fg:var(--event-audit-boundary-fg);--event-line:var(--event-audit-boundary-line)}.tone-audit-active{--event-bg:var(--event-audit-active-bg);--event-fg:var(--event-audit-active-fg);--event-line:var(--event-audit-active-line)}.tone-exception{--event-bg:var(--event-exception-bg);--event-fg:var(--event-exception-fg);--event-line:var(--event-exception-line)}.tone-recommendation{--event-bg:var(--event-recommendation-bg);--event-fg:var(--event-recommendation-fg);--event-line:var(--event-recommendation-line)}.tone-plan{--event-bg:var(--event-plan-bg);--event-fg:var(--event-plan-fg);--event-line:var(--event-plan-line)}
.event-calendar-weekdays,.event-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-right:1px solid var(--line)}.event-calendar-weekdays{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.event-calendar-weekdays span{text-align:center;padding:12px 0;color:var(--muted);font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.06em}
.event-calendar-grid{border-bottom:1px solid var(--line);background:var(--surface)}.event-calendar-day{min-width:0;min-height:148px;padding:12px 8px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.event-calendar-day:nth-child(7n){border-right:0}.event-calendar-day:nth-last-child(-n+7){border-bottom:0}.event-calendar-day.is-outside{background:var(--bg);opacity:.6}.event-calendar-day.is-selected{box-shadow:inset 0 0 0 2px var(--accent)}
.event-calendar-date{display:grid;place-items:center;width:36px;height:36px;margin:0 0 11px;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--text);font-size:17px;font-weight:650;cursor:pointer}.event-calendar-date:hover{border-color:var(--accent)}.event-calendar-date[class*=tone-]{background:var(--event-bg);color:var(--event-fg);border-color:var(--event-line)}.event-calendar-day.is-today .event-calendar-date{outline:2px solid var(--accent);outline-offset:2px}
.event-calendar-items{display:flex;flex-direction:column;gap:4px}.event-calendar-marker{display:flex;align-items:center;gap:5px;min-width:0;width:100%;padding:4px 5px;border:1px solid var(--event-line);border-radius:7px;background:var(--event-bg);color:var(--event-fg);font-size:11px;font-weight:600;line-height:1.25;text-decoration:none}.event-calendar-marker:hover{filter:brightness(.96);text-decoration:underline}.event-calendar-marker-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-calendar-marker .event-calendar-icon{flex-shrink:0;min-width:24px;height:18px;border-radius:4px;font-size:9px}.event-calendar-more{align-self:flex-start;border:0;background:transparent;color:var(--accent);font-size:11px;font-weight:650;cursor:pointer}
.event-calendar-agenda{padding:22px 26px 28px;border:1px solid var(--line);border-top:0;border-radius:0 0 16px 16px;background:var(--surface)}.event-calendar-agenda-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:10px}.event-calendar-agenda-head h3{margin:0;font-size:17px;font-weight:650;text-transform:capitalize}.event-calendar-agenda-head span,.event-calendar-agenda p{color:var(--muted);font-size:13px}.event-calendar-agenda-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:9px;margin-top:14px}.event-calendar-agenda-row{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.event-calendar-agenda-row .event-calendar-marker{max-width:100%;font-size:12px;padding:8px}.event-calendar-agenda-row .event-calendar-marker-text{white-space:normal;overflow-wrap:anywhere}.event-calendar-agenda-row>span{padding-left:5px;color:var(--muted);font-size:11px}
.event-calendar-state{padding:36px 25px;border:1px solid var(--line);border-radius:0 0 16px 16px;background:var(--surface);color:var(--secondary)}.event-calendar-state.is-error{color:#b84747}.event-calendar-state button{margin-left:8px;border:0;background:transparent;color:var(--accent);cursor:pointer;text-decoration:underline}
@media(max-width:1120px){.event-calendar-filter-bar{flex-direction:column}.event-calendar-filters{justify-content:flex-start}.event-calendar-day{min-height:120px}.event-calendar-marker-text{max-width:100%}}
@media(max-width:700px){.event-calendar-header{align-items:flex-start;flex-direction:column;padding:20px}.event-calendar-nav{width:100%;justify-content:space-between}.event-calendar-filter-bar{padding:14px}.event-calendar-day{min-height:92px;padding:7px 3px}.event-calendar-date{width:30px;height:30px;margin:0 0 6px;font-size:14px}.event-calendar-weekdays span{font-size:10px;padding:9px 0}.event-calendar-items{gap:3px}.event-calendar-marker{justify-content:center;padding:3px 0}.event-calendar-day .event-calendar-marker-text{display:none}.event-calendar-day .event-calendar-marker .event-calendar-icon{height:20px}.event-calendar-more{font-size:10px;white-space:nowrap}.event-calendar-agenda{padding:18px}}

/* A visible key sits between event filters and the month grid. */
.event-calendar-legend{display:grid;grid-template-columns:minmax(150px,220px) minmax(0,1fr);gap:18px;padding:15px 24px;border:1px solid var(--line);border-bottom:0;background:var(--surface)}
.event-calendar-legend-intro{display:grid;align-content:start;gap:4px}
.event-calendar-legend-intro strong{font-size:13px;color:var(--text)}
.event-calendar-legend-intro>span{font-size:12px;line-height:1.4;color:var(--muted)}
.event-calendar-legend ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 14px;list-style:none;margin:0;padding:0}
.event-calendar-legend li{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;line-height:1.35;color:var(--secondary)}
.event-calendar-legend-token{display:inline-flex;align-items:center;justify-content:center;min-width:34px;min-height:25px;flex:none;padding:2px 5px;border:1px solid var(--event-line);border-radius:6px;background:var(--event-bg);color:var(--event-fg)}
.event-calendar-legend-token .event-calendar-icon{min-width:auto;height:auto;padding:0;background:transparent;color:inherit}

/* The whole day selects the agenda; event labels remain direct links. */
.event-calendar-day[data-date]{cursor:pointer}
.event-calendar-day[data-date]:hover{background:var(--hover)}
.event-calendar-day.is-selected,.event-calendar-day.is-selected:hover{background:var(--active);box-shadow:inset 0 0 0 2px var(--accent)}
.event-calendar-date[aria-pressed="true"]{font-weight:750}
.event-calendar-agenda{scroll-margin-top:18px}
.event-calendar-agenda-head{flex-wrap:wrap}
.event-calendar-back{margin-left:auto;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--secondary);font:inherit;font-size:12px;cursor:pointer}
.event-calendar-back:hover{border-color:var(--accent);color:var(--text);background:var(--hover)}

@media(max-width:1100px){.event-calendar-legend{grid-template-columns:1fr}.event-calendar-legend ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.event-calendar-legend{padding:14px;gap:12px}.event-calendar-legend ul{grid-template-columns:1fr 1fr;gap:8px}.event-calendar-legend li{font-size:11px}.event-calendar-legend-token{min-width:31px}}
@media(max-width:480px){.event-calendar-legend ul{grid-template-columns:1fr}}
