.tb-calendar-dialog { scale:.7; position:fixed; box-sizing:border-box; width:min(540px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 40px); overflow:visible; padding:0; font-family:var(--tb-font); }
.tb-calendar-content { box-sizing:border-box; max-height:inherit; overflow:auto; padding:38px 40px 24px; border-radius:inherit; }
.tb-calendar-dialog::backdrop { background:rgba(10,18,26,.12); }
.tb-calendar-close { position:absolute;right:8px;top:4px;z-index:2;display:grid;place-items:center;width:64px;height:64px;padding:0;border:0;border-radius:50%;background:none;color:#fff;font-size:42px;font-weight:500;line-height:1;cursor:pointer; }
.tb-calendar-close:hover { background:rgba(255,255,255,.14); }
.tb-calendar-close:active { background:rgba(255,255,255,.22); }
.tb-calendar-tabs { display:flex;align-items:center;gap:16px;padding-right:64px; }
.tb-calendar-tabs button { flex:1; padding:12px 8px;border:0;border-radius:14px;background:none;color:#aaa;font:500 19px var(--tb-font);cursor:pointer; }
.tb-calendar-tabs button[aria-pressed=true] { background:#dedede;color:#383838;box-shadow:inset 0 1px 0 #fff8; }
.tb-calendar-heading { display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:22px 0 8px; }
.tb-calendar-heading h2,.tb-calendar-number { margin:0;font-size:clamp(42px,7vw,76px);font-weight:300;line-height:1.1;letter-spacing:-3px; }
.tb-calendar-navigation { display:flex;justify-content:center;align-items:center;gap:16px;margin-bottom:12px;color:#aaa;font-size:12px; }
.tb-calendar-navigation button { border:0;background:none;color:#b9b9b9;font-size:24px;cursor:pointer;padding:0 10px; }
.tb-calendar-weekdays,.tb-calendar-days { display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:7px; }
.tb-calendar-weekdays { color:#999;font-size:17px;margin-bottom:12px; }
.tb-calendar-day { position:relative;height:44px;border:0;border-radius:11px;color:#ddd;background:none;font:500 17px var(--tb-font);cursor:pointer; }
.tb-calendar-day:hover { background:#ffffff12; }
.tb-calendar-day.is-other { color:#777; }
.tb-calendar-day.is-selected { background:#5299e5;color:white;box-shadow:0 2px 7px #0003,inset 0 1px 0 #ffffff25; }
.tb-calendar-day.has-event::after { content:'';position:absolute;bottom:4px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#8ebbef; }
.tb-calendar-day.is-selected::after { background:white; }
.tb-calendar-agenda { position:relative;margin-top:16px;padding-top:12px;max-height:150px;overflow:auto; }
.tb-calendar-agenda::before { content:'';position:absolute;top:0;left:30%;right:30%;height:1px;background:#ffffff15; }
.tb-calendar-empty { color:#999;font-size:13px;line-height:1.5;margin:8px 0 16px; }
.tb-calendar-event { display:flex;gap:16px;padding:9px 0;color:#ddd;text-decoration:none;font-size:13px;line-height:1.45; }
.tb-calendar-event:hover { color:white; }
.tb-calendar-event-time { flex:0 0 54px;color:#999; }
.tb-calendar-dialog footer { display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:12px; }
.tb-calendar-open { color:#999;font-size:12px;text-decoration:none; }
.tb-calendar-dialog :is(button,a):focus-visible { outline:2px solid #80b8f6;outline-offset:3px; }
@media(max-width:540px) { .tb-calendar-content { padding:36px 24px 20px; }.tb-calendar-tabs button { font-size:16px; }.tb-calendar-day { font-size:15px; }.tb-calendar-heading { margin-top:20px; } }
@media(prefers-reduced-motion:no-preference) { html:not([data-glass-motion=off]) .tb-calendar-dialog[open] { animation:tb-calendar-in .22s ease-out; } }
@keyframes tb-calendar-in { from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none} }

.tb-calendar-dialog :is(.tb-calendar-event,.tb-calendar-day) { color:#fff; }
.tb-calendar-dialog :is(.tb-calendar-weekdays,.tb-calendar-event-time,.tb-calendar-open,.tb-calendar-empty,.tb-calendar-period) { color:rgba(255,255,255,.78); }
.tb-calendar-dialog .tb-calendar-day.is-other { color:rgba(255,255,255,.45); }
