:root{--cal-brand:var(--portal-brand,#102a43);--cal-accent:var(--portal-accent,#27ab83);--cal-bg:var(--portal-page-bg,#f8fafc);--cal-radius:18px;--cal-text:#0f172a;--cal-muted:#64748b}.cal-shell{display:grid;gap:1rem}.cal-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between}.cal-view-switch{display:inline-flex;padding:.3rem;background:#e2e8f0;border-radius:14px}.cal-view-btn{border:0;background:transparent;border-radius:11px;padding:.65rem .85rem;font:700 .78rem/1 system-ui;color:#64748b;cursor:pointer}.cal-view-btn.is-active{background:white;color:#0f172a;box-shadow:0 6px 18px -12px rgba(15,23,42,.5)}.cal-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(2,minmax(150px,.7fr));gap:.7rem}.cal-field{width:100%;border:1px solid #dbe3ed;background:#fff;border-radius:14px;padding:.78rem .9rem;font:600 .82rem/1.2 system-ui;color:#334155;outline:none;transition:.2s}.cal-field:focus{border-color:var(--cal-brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--cal-brand) 14%,transparent)}.cal-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.cal-summary-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;padding:1rem;box-shadow:0 16px 40px -34px rgba(15,23,42,.5)}.cal-summary-label{display:block;font:800 .65rem/1.2 system-ui;text-transform:uppercase;letter-spacing:.13em;color:#94a3b8}.cal-summary-value{display:block;margin-top:.35rem;font:800 1rem/1.25 system-ui;color:#0f172a}.cal-summary-meta{display:block;margin-top:.35rem;font:600 .75rem/1.4 system-ui;color:#64748b}.cal-calendar-card{overflow:hidden;border:1px solid #e2e8f0;border-radius:24px;background:#fff;box-shadow:0 24px 60px -46px rgba(15,23,42,.55)}.cal-month-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.1rem;border-bottom:1px solid #eef2f7}.cal-month-title{font:800 1.1rem/1.2 system-ui;color:#0f172a}.cal-nav{display:flex;gap:.45rem}.cal-nav button{width:38px;height:38px;border-radius:12px;border:1px solid #e2e8f0;background:#fff;color:#334155;cursor:pointer}.cal-weekdays,.cal-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.cal-weekdays{border-bottom:1px solid #eef2f7;background:#f8fafc}.cal-weekday{padding:.72rem;text-align:center;font:800 .64rem/1 system-ui;text-transform:uppercase;letter-spacing:.09em;color:#94a3b8}.cal-day{min-height:128px;padding:.6rem;border-right:1px solid #eef2f7;border-bottom:1px solid #eef2f7;position:relative;background:#fff}.cal-day:nth-child(7n){border-right:0}.cal-day.is-outside{background:#f8fafc;color:#cbd5e1}.cal-day.is-today{background:color-mix(in srgb,var(--cal-accent) 7%,#fff)}.cal-day-number{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;font:800 .75rem/1 system-ui;color:#475569}.cal-day.is-today .cal-day-number{background:var(--cal-brand);color:#fff}.cal-day-events{display:grid;gap:.35rem;margin-top:.4rem}.cal-chip{display:flex;align-items:center;gap:.35rem;border:0;border-left:3px solid var(--event-color,#64748b);background:#f8fafc;border-radius:8px;padding:.38rem .45rem;color:#334155;text-decoration:none;cursor:pointer;min-width:0}.cal-chip-time{font:800 .62rem/1 system-ui;color:#64748b}.cal-chip-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 .67rem/1.2 system-ui}.cal-more{font:800 .64rem/1 system-ui;color:var(--cal-brand);padding:.2rem}.cal-agenda{display:grid;gap:.8rem}.cal-event{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.9rem;align-items:center;border:1px solid #e2e8f0;background:#fff;border-radius:20px;padding:1rem;box-shadow:0 14px 38px -32px rgba(15,23,42,.45);transition:.2s}.cal-event:hover{transform:translateY(-1px);border-color:#cbd5e1}.cal-event-date{display:grid;place-items:center;align-content:center;width:62px;height:62px;border-radius:16px;background:color-mix(in srgb,var(--event-color,#64748b) 10%,#fff);color:var(--event-color,#64748b)}.cal-event-date strong{font:900 1.25rem/1 system-ui}.cal-event-date span{margin-top:.25rem;font:900 .58rem/1 system-ui;letter-spacing:.1em}.cal-event-kicker{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.cal-badge{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.32rem .5rem;background:#f1f5f9;font:800 .6rem/1 system-ui;text-transform:uppercase;letter-spacing:.06em;color:#475569}.cal-badge.is-live{background:#dcfce7;color:#166534}.cal-badge.is-cancelled{background:#fee2e2;color:#991b1b}.cal-event-title{margin:.35rem 0 0;font:800 1rem/1.3 system-ui;color:#0f172a}.cal-event-info{display:flex;flex-wrap:wrap;gap:.35rem .85rem;margin-top:.45rem;font:600 .74rem/1.4 system-ui;color:#64748b}.cal-event-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.cal-action{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid #dbe3ed;background:#fff;border-radius:11px;padding:.58rem .7rem;font:800 .7rem/1 system-ui;color:#334155;text-decoration:none;cursor:pointer}.cal-action.primary{background:var(--cal-brand);border-color:var(--cal-brand);color:#fff}.cal-empty{padding:3rem 1rem;text-align:center;border:1px dashed #cbd5e1;border-radius:22px;background:#fff;color:#64748b}.cal-live-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.5);animation:calPulse 1.8s infinite}@keyframes calPulse{70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}.cal-highlight{border-color:color-mix(in srgb,var(--event-color,#64748b) 35%,#e2e8f0);background:linear-gradient(135deg,color-mix(in srgb,var(--event-color,#64748b) 6%,#fff),#fff)}.cal-public-label{display:inline-flex;align-items:center;gap:.3rem;font:700 .67rem/1 system-ui;color:#64748b}.cal-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.25rem}.cal-panel{border:1px solid #e2e8f0;background:#fff;border-radius:22px;padding:1.1rem;box-shadow:0 18px 48px -38px rgba(15,23,42,.5)}.cal-section-title{font:800 .95rem/1.2 system-ui;color:#0f172a}.cal-doc{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.75rem;border-radius:14px;background:#f8fafc}.cal-modal{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:1rem;background:rgba(15,23,42,.58);backdrop-filter:blur(6px)}.cal-modal.is-open{display:flex}.cal-modal-card{width:min(860px,100%);max-height:92vh;overflow:auto;border-radius:26px;background:#fff;box-shadow:0 30px 80px -28px rgba(15,23,42,.65)}.cal-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.cal-form-span{grid-column:1/-1}@media(max-width:900px){.cal-filters{grid-template-columns:1fr 1fr}.cal-filters .cal-search{grid-column:1/-1}.cal-summary{grid-template-columns:1fr}.cal-detail-grid{grid-template-columns:1fr}.cal-day{min-height:105px;padding:.4rem}.cal-chip-title{display:none}.cal-event{grid-template-columns:auto minmax(0,1fr)}.cal-event-actions{grid-column:1/-1;justify-content:flex-start}}@media(max-width:640px){.cal-toolbar{align-items:stretch}.cal-view-switch{width:100%}.cal-view-btn{flex:1}.cal-filters{grid-template-columns:1fr}.cal-filters .cal-search{grid-column:auto}.cal-weekdays,.cal-month-grid{min-width:700px}.cal-calendar-card{overflow-x:auto}.cal-month-head{position:sticky;left:0;min-width:100%;background:#fff;z-index:2}.cal-event{grid-template-columns:1fr}.cal-event-date{width:100%;height:auto;grid-auto-flow:column;justify-content:start;gap:.35rem;padding:.6rem .8rem}.cal-event-date span{margin:0}.cal-event-actions{grid-column:auto}.cal-form-grid{grid-template-columns:1fr}.cal-form-span{grid-column:auto}}