.ical-browser { color:#0f172a; background:#fff; }
.ical-browser [hidden] { display:none !important; }
.ical-tabs { display:flex; gap:4px; padding:6px; margin:16px 20px 20px; background:#f1f5f9; border-radius:12px; }
.ical-tabs [role=tab] { flex:1; min-height:44px; border:0; border-radius:8px; background:transparent; color:#475569; font:600 14px/1.3 Inter,sans-serif; cursor:pointer; }
.ical-tabs [aria-selected=true] { background:var(--app-header-bg,#1e40af); color:var(--app-header-text,#fff); }
.ical-browser button:focus-visible,.ical-search input:focus-visible { outline:3px solid #60a5fa; outline-offset:3px; }
.ical-search { margin:0 20px 10px; }
.ical-search label { display:block; margin-bottom:8px; font:600 13px/1.4 Inter,sans-serif; color:#334155; }
.ical-search input { box-sizing:border-box; width:100%; min-width:0; height:46px; padding:10px 14px; border:1px solid #cbd5e1; border-radius:10px; background:#fff; color:#0f172a; font:400 16px/1.4 Inter,sans-serif; }
.ical-result-count { margin:0 20px 8px; color:#64748b; font:400 12px/1.5 Inter,sans-serif; }
.ical-more,.ical-back { min-height:44px; padding:10px 14px; border:1px solid #cbd5e1; border-radius:9px; color:#334155; background:#fff; font:600 13px/1.4 Inter,sans-serif; cursor:pointer; }
.ical-more { display:block; margin:16px auto 24px; }
.ical-month-controls { display:flex; justify-content:space-between; gap:12px; margin:0 20px 20px; }
.ical-month-controls button { display:flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:10px 12px; border:1px solid #e2e8f0; border-radius:9px; background:#fff; color:#334155; font:600 12px/1.4 Inter,sans-serif; cursor:pointer; }
.ical-month-controls button span { font-size:22px; line-height:1; }
.ical-month-controls button:disabled { opacity:.4; cursor:default; }
.ical-month-heading { margin:0 20px 20px; text-align:center; font:700 21px/1.4 Inter,sans-serif; }
[data-ical-grid] { padding:0 16px 16px; }
.ical-weekdays,.ical-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.ical-weekdays { margin-bottom:8px; text-align:center; color:#64748b; font:600 11px/1.6 Inter,sans-serif; }
.ical-day { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; min-height:55px; min-width:0; padding:6px 2px; border:1px solid transparent; border-radius:10px; background:transparent; color:#475569; font:500 15px/1.2 Inter,sans-serif; }
.ical-day.has-events { background:#f1f5f9; color:#0f172a; cursor:pointer; font-weight:700; }
.ical-day.has-events:hover { background:#e2e8f0; }
.ical-day.is-today { border-color:var(--app-header-bg,#1e40af); }
.ical-day:disabled { opacity:1; }
.ical-dots { display:flex; align-items:center; justify-content:center; gap:3px; height:5px; }
.ical-dots span { width:5px; height:5px; border-radius:50%; background:var(--app-header-bg,#1e40af); }
.ical-month-hint { margin:18px 4px 4px; color:#64748b; text-align:center; font:400 12px/1.5 Inter,sans-serif; }
.ical-month-status { padding:32px 8px; text-align:center; color:#64748b; font:400 14px/1.5 Inter,sans-serif; }
.ical-day-events > .ical-back { margin:0 20px 16px; }
.ical-day-heading { margin:0 20px 12px; font:700 19px/1.45 Inter,sans-serif; }
@media (max-width:360px) {
    .ical-tabs,.ical-search,.ical-month-controls { margin-left:12px; margin-right:12px; }
    .ical-month-controls { gap:6px; }
    .ical-month-controls button { padding:9px 8px; font-size:11px; }
    [data-ical-grid] { padding-left:8px; padding-right:8px; }
}
