.tfm-calendar{box-sizing:border-box;max-width:100%;margin:24px 0;padding:24px;border:1px solid #dce5eb;border-radius:18px;background:#fff;color:#24394c;font-family:inherit;text-align:left}
.tfm-calendar *{box-sizing:border-box}
.tfm-calendar [hidden]{display:none!important}
.tfm-calendar--rich{--tfm-ink:#19364b;--tfm-muted:#61778a;--tfm-blue:#176787;--tfm-teal:#087c77;--tfm-line:#e0e9ee;box-shadow:0 10px 34px #19364b08;container-type:inline-size}
.tfm-calendar--rich .tfm-calendar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--tfm-line)}
.tfm-calendar--rich .tfm-eyebrow{display:block;margin-bottom:8px;color:var(--tfm-teal);font-size:11px;font-weight:700;letter-spacing:.14em}
.tfm-calendar--rich .tfm-calendar-title{margin:0;padding:0;border:0;color:var(--tfm-ink);font-size:clamp(22px,2.6vw,30px);font-weight:750;line-height:1.3;text-align:left}
.tfm-calendar--rich .tfm-calendar-intro{margin:9px 0 0;color:var(--tfm-muted);font-size:13px;line-height:1.7}
.tfm-calendar--rich .tfm-scope-label{flex-shrink:0;margin-top:4px;padding:7px 10px;border:1px solid #cce6e1;border-radius:30px;background:#eef8f5;color:#166c63;font-size:11px;line-height:1.3}
.tfm-calendar--rich .tfm-calendar-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0}
.tfm-calendar--rich .tfm-summary-item{display:flex;align-items:baseline;gap:8px;min-width:0;padding:14px 12px;border:1px solid #e4edf1;border-radius:10px;background:#f7fafb}
.tfm-calendar--rich .tfm-summary-item strong{color:var(--tfm-ink);font-size:27px;font-weight:750;line-height:1.1;font-variant-numeric:tabular-nums}
.tfm-calendar--rich .tfm-summary-item span{color:var(--tfm-muted);font-size:12px}
.tfm-calendar--rich button,.tfm-calendar--rich .tfm-event-link,.tfm-calendar--rich .tfm-event-source{font:inherit;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.tfm-calendar--rich button{min-height:44px;margin:0;border:1px solid var(--tfm-line);border-radius:8px;background:#fff;color:var(--tfm-ink);box-shadow:none}
.tfm-calendar--rich button:hover{border-color:#94b9c7;background:#f1f8fa}
.tfm-calendar--rich button:focus-visible,.tfm-calendar--rich a:focus-visible,.tfm-calendar--rich input:focus-visible,.tfm-calendar--rich textarea:focus-visible,.tfm-calendar--rich summary:focus-visible{outline:3px solid #df8d28;outline-offset:3px}
.tfm-calendar--rich button:disabled{cursor:wait;opacity:.6}
.tfm-calendar--rich .tfm-calendar-toolbar{display:flex;align-items:center;gap:8px;margin:0 0 14px}
.tfm-calendar--rich .tfm-prev,.tfm-calendar--rich .tfm-next{flex:0 0 44px;font-size:25px}
.tfm-calendar--rich .tfm-month{flex:1;color:var(--tfm-ink);font-size:20px;line-height:1.4;font-weight:700;text-align:center}
.tfm-calendar--rich .tfm-today{flex-shrink:0;min-height:44px;padding:8px 11px;font-size:12px}
.tfm-calendar--rich .tfm-display-tools{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.tfm-calendar--rich .tfm-search{display:block;flex:1;min-width:0;margin:0;float:none}
.tfm-calendar--rich .tfm-search-label{display:block;margin:0 0 6px;color:var(--tfm-muted);font-size:11px;font-weight:600}
.tfm-calendar--rich .tfm-search input{display:block;float:none;width:100%;height:44px;margin:0;padding:10px 13px;border:1px solid #d7e3ea;border-radius:8px;background:#fff;color:var(--tfm-ink);font:inherit;font-size:13px;box-shadow:none}
.tfm-calendar--rich .tfm-search input::placeholder{color:#718799;opacity:1}
.tfm-calendar--rich .tfm-view-switch{display:flex;flex-shrink:0;gap:3px;padding:3px;border:1px solid var(--tfm-line);border-radius:9px;background:#f3f7f9}
.tfm-calendar--rich .tfm-view-button{min-height:44px;padding:6px 13px;border-color:transparent;background:transparent;font-size:12px}
.tfm-calendar--rich .tfm-view-button[aria-pressed=true]{border-color:#cddde5;background:#fff;color:#145f80;font-weight:700;box-shadow:0 2px 5px #19364b09}
.tfm-calendar--rich .tfm-results{margin:11px 0 15px;color:var(--tfm-muted);font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.tfm-calendar--rich .tfm-calendar-key{margin:0 0 10px;color:var(--tfm-muted);font-size:11px;line-height:1.7}
.tfm-calendar--rich .tfm-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;min-width:0}
.tfm-calendar--rich .tfm-weekday{padding:8px 0;color:var(--tfm-muted);font-size:12px;font-weight:600;text-align:center}
.tfm-calendar--rich .tfm-weekday:first-child,.tfm-calendar--rich .tfm-weekday:nth-child(7){color:#a45a32}
.tfm-calendar--rich .tfm-day{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;width:100%;min-width:0;min-height:84px;padding:7px 5px;border:1px solid #e4ecf1;border-radius:7px;background:#fafcfd;color:var(--tfm-ink);text-align:left;overflow-wrap:anywhere}
.tfm-calendar--rich .tfm-day-heading{display:flex;justify-content:space-between;align-items:center;gap:2px;line-height:1.3}
.tfm-calendar--rich .tfm-day-heading strong{color:inherit;font-size:13px;font-weight:650;font-variant-numeric:tabular-nums}
.tfm-calendar--rich .tfm-today-mark{padding:1px 3px;border-radius:3px;background:#176787;color:#fff;font-size:9px}
.tfm-calendar--rich .tfm-day[aria-current=date]{border:2px solid #176787;padding:6px 4px;background:#f3fafc}
.tfm-calendar--rich .tfm-has-events{border-color:#c2dedb;background:#eff8f5}
.tfm-calendar--rich .tfm-has-events:hover{border-color:#56998f;background:#e0f0e9}
.tfm-calendar--rich .tfm-has-events[aria-pressed=true]{border-color:#176787;background:#e0edf4;box-shadow:inset 0 0 0 1px #176787}
.tfm-calendar--rich .tfm-day-event{display:block;padding:4px;border-left:2px solid #328a7e;border-radius:3px;background:#ffffffb3;line-height:1.3}
.tfm-calendar--rich .tfm-day-event-title{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#245e55;font-size:10px;font-weight:600;word-break:break-word}
.tfm-calendar--rich .tfm-day-event small{display:block;margin-top:3px;color:#58736e;font-size:9px;line-height:1.4;font-variant-numeric:tabular-nums}
.tfm-calendar--rich .tfm-day-more{display:block;color:#216d64;font-size:10px;font-weight:700;line-height:1.5}
.tfm-calendar--rich .tfm-calendar-agenda{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:25px 0 12px;padding-top:19px;border-top:1px solid var(--tfm-line)}
.tfm-calendar--rich .tfm-calendar-agenda-title{margin:0;color:var(--tfm-ink);font-size:18px;font-weight:700;line-height:1.5;text-align:left}
.tfm-calendar--rich .tfm-show-month{flex-shrink:0;padding:6px 10px;font-size:12px}
.tfm-calendar--rich .tfm-calendar-list{display:grid;gap:12px;margin:0;overflow-wrap:anywhere}
.tfm-calendar--rich .tfm-event{display:flex;align-items:flex-start;gap:14px;margin:0;padding:18px 15px;border:1px solid var(--tfm-line);border-radius:12px;background:#fff}
.tfm-calendar--rich .tfm-event-stamp{display:flex;flex:0 0 48px;flex-direction:column;align-items:center;gap:4px;padding:9px 4px;border:1px solid #d5e6ea;border-radius:9px;background:#f1f8fa;color:var(--tfm-blue);line-height:1.2}
.tfm-calendar--rich .tfm-event-stamp span{font-size:10px;font-weight:600}
.tfm-calendar--rich .tfm-event-stamp strong{color:var(--tfm-blue);font-size:25px;font-weight:750}
.tfm-calendar--rich .tfm-event-body{flex:1;min-width:0}
.tfm-calendar--rich .tfm-event-state{display:inline-block;margin-bottom:7px;padding:3px 7px;border-radius:4px;background:#edf5f2;color:#216f58;font-size:10px;font-weight:650;line-height:1.5}
.tfm-calendar--rich .tfm-state-past{background:#eef1f4;color:#627486}
.tfm-calendar--rich .tfm-state-today{background:#fff1db;color:#8c5414}
.tfm-calendar--rich .tfm-event-title{margin:0 0 10px;padding:0;border:0;color:var(--tfm-ink);font-size:16px;font-weight:700;line-height:1.6;text-align:left;overflow-wrap:anywhere}
.tfm-calendar--rich .tfm-event-time{margin:0 0 7px;color:#245b78;font-size:12px;line-height:1.6;font-weight:600;font-variant-numeric:tabular-nums}
.tfm-calendar--rich .tfm-event-place{margin:0;color:#405f71;font-size:12px;line-height:1.8}
.tfm-calendar--rich .tfm-event-note{margin:10px 0 0;padding-top:10px;border-top:1px dashed #dce6eb;color:#64778a;font-size:12px;line-height:1.9;white-space:pre-line}
.tfm-calendar--rich .tfm-event-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:13px}
.tfm-calendar--rich .tfm-event-link,.tfm-calendar--rich .tfm-event-source{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:8px 10px;border:1px solid #dbe6eb;border-radius:7px;color:#285e79;font-size:11px;line-height:1.5;text-decoration:none;overflow-wrap:anywhere}
.tfm-calendar--rich .tfm-event-source{flex-basis:100%;justify-content:flex-start;padding:0;border:0;color:#587789;font-size:11px;text-decoration:underline;text-underline-offset:3px}
.tfm-calendar--rich .tfm-event-link:hover{border-color:#8bb2c1;background:#f1f8fa;color:#174a67}
.tfm-calendar--rich .tfm-event-primary{border-color:#176787;background:#176787;color:#fff}
.tfm-calendar--rich .tfm-event-primary:hover{border-color:#124e68;background:#124e68;color:#fff}
.tfm-calendar--rich .tfm-edit-event,.tfm-calendar--rich .tfm-delete-event{padding:7px 10px;font-size:11px}
.tfm-calendar--rich .tfm-delete-event{color:#9c4843}
.tfm-calendar--rich .tfm-calendar-empty{padding:28px 16px;border:1px dashed #cddfe6;border-radius:12px;background:#f8fbfc;text-align:center}
.tfm-calendar--rich .tfm-empty-symbol{display:block;margin-bottom:9px;color:#6b9eaa;font-size:34px;line-height:1}
.tfm-calendar--rich .tfm-calendar-empty>strong{display:block;color:#355b70;font-size:15px;line-height:1.6}
.tfm-calendar--rich .tfm-calendar-empty p{margin:8px 0 14px;color:var(--tfm-muted);font-size:12px;line-height:1.8}
.tfm-calendar--rich .tfm-calendar-empty button{padding:8px 14px;font-size:12px}
.tfm-calendar--rich .tfm-calendar-editor{margin-top:20px;border:1px solid #d5e5e9;border-radius:10px;background:#f6fafb}
.tfm-calendar--rich .tfm-calendar-editor summary{padding:16px;color:#25566d;font-size:13px;font-weight:650;cursor:pointer}
.tfm-calendar--rich .tfm-calendar-form{display:grid;gap:12px;margin:0;padding:4px 16px 16px}
.tfm-calendar--rich .tfm-calendar-form label{display:grid;gap:7px;margin:0;color:#415f72;font-size:12px}
.tfm-calendar--rich .tfm-calendar-form input,.tfm-calendar--rich .tfm-calendar-form textarea{float:none;width:100%;max-width:100%;min-height:44px;margin:0;padding:10px 12px;border:1px solid #cbdde5;border-radius:7px;background:#fff;color:#24394c;font:inherit;line-height:1.5}
.tfm-calendar--rich .tfm-calendar-form textarea{min-height:90px;resize:vertical}
.tfm-calendar--rich .tfm-calendar-form p{margin:0;color:var(--tfm-muted);font-size:11px;line-height:1.8}
.tfm-calendar--rich .tfm-calendar-form button{padding:9px 14px}
.tfm-calendar--rich .tfm-calendar-form button[type=submit]{border-color:#176787;background:#176787;color:#fff}
@media(max-width:600px){.tfm-calendar{padding:15px 12px;border-radius:13px;margin:16px 0}.tfm-calendar--rich .tfm-calendar-header{display:block;padding-bottom:15px}.tfm-calendar--rich .tfm-scope-label{display:inline-block;margin-top:12px}.tfm-calendar--rich .tfm-calendar-summary{gap:6px;margin:15px 0}.tfm-calendar--rich .tfm-summary-item{display:block;padding:11px 8px}.tfm-calendar--rich .tfm-summary-item strong{display:block;font-size:25px}.tfm-calendar--rich .tfm-summary-item span{display:block;margin-top:6px;font-size:10px}.tfm-calendar--rich .tfm-calendar-toolbar{flex-wrap:wrap;gap:6px}.tfm-calendar--rich .tfm-month{font-size:17px}.tfm-calendar--rich .tfm-today{flex-basis:100%;min-height:44px}.tfm-calendar--rich .tfm-display-tools{align-items:stretch;flex-direction:column;gap:10px}.tfm-calendar--rich .tfm-view-switch{align-self:flex-start}.tfm-calendar--rich .tfm-view-button{min-height:44px;padding:7px 20px}.tfm-calendar--rich .tfm-calendar-grid{gap:3px}.tfm-calendar--rich .tfm-day{min-height:75px;padding:5px 2px;gap:3px;border-radius:5px}.tfm-calendar--rich .tfm-day[aria-current=date]{padding:4px 1px}.tfm-calendar--rich .tfm-day-heading strong{font-size:11px}.tfm-calendar--rich .tfm-day-event{padding:2px;border-left-width:1px}.tfm-calendar--rich .tfm-day-event-title{font-size:9px}.tfm-calendar--rich .tfm-day-event small{font-size:8px;letter-spacing:-.3px}.tfm-calendar--rich .tfm-day-more{font-size:8px}.tfm-calendar--rich .tfm-today-mark{font-size:8px;padding:1px 2px}.tfm-calendar--rich .tfm-weekday{font-size:10px}.tfm-calendar--rich .tfm-event{gap:10px;padding:14px 10px}.tfm-calendar--rich .tfm-event-stamp{flex-basis:40px}.tfm-calendar--rich .tfm-event-title{font-size:14px}.tfm-calendar--rich .tfm-event-link,.tfm-calendar--rich .tfm-event-source{min-height:44px}.tfm-calendar--rich .tfm-calendar-agenda-title{font-size:16px}}
@media(prefers-reduced-motion:reduce){.tfm-calendar--rich *{scroll-behavior:auto!important;transition:none!important}}
