.ifl-public-calendar{--cal-own:#ed9a32;--cal-partner:#a88be8;--cal-external:#57b9cf;box-sizing:border-box;margin:24px auto 48px;padding:clamp(16px,3vw,32px);max-width:1140px;min-width:0;border:1px solid var(--ifl-border,rgba(255,255,255,.13));border-radius:22px;background:var(--ifl-bg-elevated,#15151d);color:var(--ifl-text-primary,#f5f3f8);font-family:var(--font-body,system-ui);text-align:left;overflow-wrap:anywhere}
.ifl-public-calendar *,.ifl-cal-dialog *{box-sizing:border-box}
.ifl-cal-heading h2{font-family:var(--font-display,inherit);margin:0 0 8px;font-size:clamp(1.35rem,3vw,2rem)}
.ifl-cal-heading p,.ifl-cal-zone,.ifl-cal-status,.ifl-cal-scroll-hint{color:var(--ifl-text-secondary,#bcb8c9);font-size:.9rem;line-height:1.5}
.ifl-cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:24px 0 16px}
.ifl-cal-month{flex:1;text-align:center;min-width:150px;font-size:1.15rem;margin:0}
.ifl-cal-button,.ifl-cal-dialog input,.ifl-cal-dialog select,.ifl-cal-edit-actions select{font:inherit;min-height:44px;padding:9px 13px;border:1px solid var(--ifl-border,rgba(255,255,255,.2));border-radius:10px;background:var(--ifl-bg-card,#20202b);color:var(--ifl-text-primary,#f5f3f8)}
.ifl-cal-button{cursor:pointer;touch-action:manipulation}
.ifl-cal-button:hover,.ifl-cal-button:focus-visible,.ifl-cal-link:focus-visible,.ifl-cal-scroll:focus-visible,.ifl-cal-dialog input:focus-visible,.ifl-cal-dialog select:focus-visible{outline:2px solid var(--ifl-accent,#f9a348);outline-offset:2px}
.ifl-cal-button:disabled{opacity:.55;cursor:wait}
.ifl-cal-legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.ifl-cal-tag{display:inline-flex;align-items:center;gap:6px;border:1px solid currentColor;border-radius:999px;padding:4px 10px;font-size:.75rem;font-weight:700}
.ifl-cal-ifl{color:var(--cal-own,#ed9a32)}.ifl-cal-partner{color:var(--cal-partner,#a88be8)}.ifl-cal-external{color:var(--cal-external,#57b9cf)}
.ifl-public-calendar .ifl-cal-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-color:var(--ifl-accent,#f9a348) var(--ifl-bg-card,#20202b);border:1px solid var(--ifl-border,rgba(255,255,255,.16));border-radius:12px}
.ifl-cal-grid{width:100%;min-width:770px;table-layout:fixed;border-collapse:collapse;margin:0;background:var(--ifl-bg-card,#20202b)}
.ifl-cal-grid th{height:42px;font-size:.75rem;text-align:center;padding:8px 0;color:var(--ifl-text-secondary,#bcb8c9);font-weight:700;background:var(--ifl-bg-elevated,#15151d)}
.ifl-cal-grid td{height:120px;padding:5px;vertical-align:top;border:1px solid var(--ifl-border,rgba(255,255,255,.12));text-align:left}
.ifl-cal-grid .ifl-cal-outside{background:var(--ifl-bg-elevated,#15151d);opacity:.65}
.ifl-cal-grid .ifl-cal-day{display:block;min-height:34px;width:34px;padding:5px;border-color:transparent;background:transparent;font-size:.85rem;font-variant-numeric:tabular-nums}
.ifl-cal-day[aria-current=date]{background:var(--ifl-accent,#f9a348);color:var(--ifl-bg,#12121a);font-weight:800}
.ifl-cal-day[aria-pressed=true]{border-color:var(--ifl-accent,#f9a348)}
.ifl-cal-grid .ifl-cal-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-height:72px;margin:5px 0;padding:7px 8px;border:1px solid currentColor;border-left-width:3px;border-radius:6px;text-align:left;white-space:normal;line-height:1.35;background:var(--ifl-bg-elevated,#15151d)}
.ifl-cal-item-time{font-size:.67rem;font-weight:600;font-variant-numeric:tabular-nums}
.ifl-cal-item-name{font-size:.78rem;font-weight:750;color:var(--ifl-text-primary,#f5f3f8);overflow-wrap:anywhere}
.ifl-cal-item-category{font-size:.62rem;font-weight:600}
.ifl-cal-scroll-hint{display:none;font-size:.75rem;margin:0 0 8px}
.ifl-cal-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px;margin-top:18px}
.ifl-cal-event{padding:18px;border:1px solid var(--ifl-border,rgba(255,255,255,.12));border-radius:14px;background:var(--ifl-bg-card,#20202b);min-width:0}
.ifl-cal-event h3{font-family:var(--font-display,inherit);font-size:1.05rem;margin:12px 0;line-height:1.4}
.ifl-cal-event p{font-size:.85rem;line-height:1.45;color:var(--ifl-text-secondary,#bcb8c9);margin:6px 0}
.ifl-cal-event-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.ifl-cal-event time{font-size:.8rem;color:var(--ifl-text-secondary,#bcb8c9)}
.ifl-cal-link{display:inline-block;padding:10px 0;color:var(--ifl-accent,#f9a348);font-weight:700;text-decoration:none}
.ifl-cal-status{min-height:1.5em;margin:16px 0 0}.ifl-cal-error{color:#f5b06c}
.ifl-cal-admin,.ifl-cal-edit-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}
.ifl-cal-compact{margin:28px auto 0;padding:20px;max-width:1140px}.ifl-cal-compact .ifl-cal-heading h2{font-size:1.4rem}
.ifl-cal-dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:24px;overflow:auto;background:var(--ifl-bg-elevated,#15151d);color:var(--ifl-text-primary,#f5f3f8);border:1px solid var(--ifl-border,#555);border-radius:20px}
.ifl-cal-dialog::backdrop{background:rgba(0,0,0,.7)}.ifl-cal-detail-dialog>.ifl-cal-button{margin-top:16px}
.ifl-cal-form{display:grid;gap:14px}.ifl-cal-form label{display:grid;gap:6px;font-size:.85rem}.ifl-cal-form input,.ifl-cal-form select{width:100%;min-width:0}.ifl-cal-form .ifl-cal-check{display:flex;align-items:center}.ifl-cal-check input{width:20px;height:20px;min-height:20px;flex-shrink:0}.ifl-cal-form [hidden]{display:none!important}
.ifl-cal-hidden{opacity:.65;border-style:dashed!important}
.ifl-public-calendar .ifl-table-region>table.ifl-cal-grid{width:100%;min-width:770px;table-layout:fixed}html.ifl-responsive .ifl-public-calendar .ifl-table-region>table.ifl-cal-grid td{padding:5px!important}html.ifl-responsive .ifl-public-calendar .ifl-table-region>table.ifl-cal-grid th{padding:8px 0!important}
@media(max-width:920px){.ifl-cal-scroll-hint{display:block}}
@media(max-width:480px){.ifl-cal-toolbar{gap:6px}.ifl-cal-toolbar>.ifl-cal-button{flex:1;padding:8px;font-size:.8rem}.ifl-cal-month{order:-1;flex-basis:100%;margin-bottom:8px}.ifl-cal-tag{padding:4px 8px}.ifl-cal-dialog{padding:18px}}
@media(prefers-reduced-motion:reduce){.ifl-public-calendar *,.ifl-cal-dialog *{scroll-behavior:auto!important;transition:none!important}}
