.offline-banner{z-index:10000;-webkit-backdrop-filter:blur(8px);color:#fff4def2;pointer-events:none;background:#281e08eb;border:1px solid #f5c45173;border-radius:10px;align-items:center;gap:9px;max-width:calc(100vw - 24px);margin-top:12px;padding:9px 16px;font-size:.82rem;line-height:1.3;animation:.35s cubic-bezier(.16,1,.3,1) offline-banner-in;display:flex;position:fixed;top:0;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000059}@keyframes offline-banner-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.offline-banner__dot{background:#f5c451;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.6s ease-in-out infinite offline-banner-pulse;box-shadow:0 0 8px #f5c451cc}@keyframes offline-banner-pulse{0%,to{opacity:1}50%{opacity:.35}}.offline-banner__text{white-space:normal}
.recap-overlay{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10000;background:#000c;justify-content:center;align-items:center;padding:20px;animation:.2s recap-fadeIn;display:flex;position:fixed;inset:0}.recap-card{text-align:center;font-variant-numeric:tabular-nums;background:#0f0f11;border:1px solid #ffffff14;border-radius:16px;width:100%;max-width:460px;max-height:calc(100dvh - 40px);padding:18px 0;animation:.3s cubic-bezier(.16,1,.3,1) recap-slideUp;position:relative;overflow:hidden auto;box-shadow:0 12px 40px #00000080}.recap-card:before{content:"";pointer-events:none;background:radial-gradient(closest-side,#6366f147,#0000);border-radius:50%;width:320px;height:220px;position:absolute;top:-70px;left:50%;transform:translate(-50%)}.recap-close{z-index:1;color:#ffffff8c;cursor:pointer;background:#ffffff0d;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:background-color .15s,color .15s;display:flex;position:absolute;top:12px;right:12px}.recap-close:hover{color:#ffffffd9;background:#ffffff17}.recap-close:focus-visible,.recap-btn:focus-visible,.recap-tab:focus-visible,.recap-acc-hd:focus-visible{outline-offset:2px;outline:2px solid #fff6}.recap-tabs{background:#ffffff0d;border-radius:999px;gap:2px;margin:0 auto;padding:3px;display:inline-flex;position:relative}.recap-tab{color:#f5f5f79e;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:6px 16px;font-size:12px;font-weight:500}.recap-tab--on{color:#f5f5f7;background:#ffffff17;font-weight:600}.recap-tab-n{color:#f5f5f75c;margin-left:5px;font-size:10.5px}.recap-pane{grid-template-rows:0fr;transition:grid-template-rows .3s cubic-bezier(.16,1,.3,1);display:grid}.recap-pane--on{grid-template-rows:1fr}.recap-pane-in{opacity:0;visibility:hidden;min-height:0;transition:opacity .2s,transform .3s cubic-bezier(.16,1,.3,1),visibility 0s linear .3s;overflow:hidden;transform:translateY(6px)}.recap-pane--on .recap-pane-in{opacity:1;visibility:visible;transition:opacity .24s 70ms,transform .3s cubic-bezier(.16,1,.3,1) 70ms,visibility;transform:none}.recap-hero{padding:20px 32px 18px;position:relative}.recap-eyebrow{letter-spacing:.15em;text-transform:uppercase;color:#a5b4fcf2;margin:0 0 12px;font-size:.7rem;font-weight:600}.recap-focus-time{letter-spacing:-.035em;background:linear-gradient(120deg,#fff 10%,#a5b4fc 95%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:3.4rem;font-weight:800;line-height:1}.recap-focus-label{color:#ffffff8c;margin:8px 0 0;font-size:.85rem}.recap-session-duration{color:#ffffff52;margin:4px 0 0;font-size:.75rem}.recap-plan-note{color:#818cf8;margin:4px 0 0;font-size:12px;font-weight:500}.recap-plan-note--over{color:#34d399}.recap-plan-note--under{color:#ffffff73}.recap-timeline{padding:14px 20px 0}.recap-tl-row{align-items:center;gap:8px;display:flex}.recap-tl-time{color:#fff6;white-space:nowrap;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10.5px}.recap-tl-barwrap{flex:1;position:relative}.recap-tl-tip{color:#f5f5f7e6;white-space:nowrap;pointer-events:none;z-index:2;background:#1a1c22;border:1px solid #ffffff1a;border-radius:8px;padding:5px 10px;font-size:11px;font-weight:500;position:absolute;bottom:calc(100% + 7px);transform:translate(-50%);box-shadow:0 6px 20px #00000073}.recap-tl-bar{border-radius:8px;gap:2px;height:14px;display:flex;overflow:hidden}.recap-tl-bar--slim{height:9px}.recap-tl{border-radius:4px;min-width:3px;display:block;position:relative}.recap-tl--focus,.recap-sw--focus,.recap-dot--focus{background:var(--focus-solid,#64ff8b)}.recap-tl--short,.recap-sw--short,.recap-dot--short{background:var(--short-solid,#6fa8ff)}.recap-tl--long,.recap-sw--long,.recap-dot--long{background:var(--long-solid,#ff7a7a)}.recap-tl--warmup,.recap-sw--warmup,.recap-dot--warmup{background:var(--warmup-solid,#ffb366)}.recap-tl--breathe,.recap-sw--breathe,.recap-dot--breathe{background:var(--breathe-solid,#5acfff)}.recap-tl--cooldown,.recap-sw--cooldown,.recap-dot--cooldown{background:var(--cooldown-solid,#9b7dff)}.recap-tl--wait,.recap-sw--wait,.recap-dot--wait{background:repeating-linear-gradient(135deg,#f59e0b99 0 2.5px,#f59e0b1f 2.5px 6px)}.recap-tl--ext:after{content:"";background:repeating-linear-gradient(135deg,#ffffff6b 0 2px,#0000 2px 5px);width:17%;min-width:4px;position:absolute;inset:0 0 0 auto}.recap-legend{color:#ffffff8c;flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:9px;font-size:11px;display:flex}.recap-legend b{color:#ffffffeb;font-weight:650}.recap-legend-note{color:#ffffff57;flex-basis:100%;font-size:10.5px}.recap-sw{vertical-align:-1px;border-radius:3px;width:9px;height:9px;margin-right:5px;display:inline-block}.recap-timeline-tab{padding:12px 20px 0}.recap-acc-scroll{text-align:left;flex-direction:column;gap:6px;max-height:min(52vh,430px);margin-top:12px;display:flex;overflow-y:auto}.recap-rowbox{background:#ffffff0d;border-radius:12px;flex-shrink:0;padding:0 13px;transition:background-color .24s}.recap-rowbox--open{background:#ffffff17}.recap-acc-collapse{grid-template-rows:0fr;transition:grid-template-rows .26s cubic-bezier(.16,1,.3,1);display:grid}.recap-acc-collapse--open{grid-template-rows:1fr}.recap-acc-collapse-in{min-height:0;overflow:hidden}.recap-acc-hd{color:#f5f5f7;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:9px 0;font-size:12px;display:flex}div.recap-acc-hd{cursor:default}.recap-acc-time{color:#ffffff5c;flex-shrink:0;width:46px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.recap-acc-name{white-space:nowrap;font-weight:650}.recap-acc-mini{border-radius:4px;flex:1;gap:2px;min-width:36px;height:7px;display:flex;overflow:hidden}.recap-acc-mini i{border-radius:2px;min-width:3px;display:block}.recap-acc-dur{color:#ffffff8c;white-space:nowrap}.recap-flag{white-space:nowrap;border-radius:6px;padding:2px 6px;font-size:10.5px;font-weight:700}.recap-flag--wait{color:#f59e0b;background:#f59e0b24}.recap-flag--ext{color:#34d399;background:#34d39924}.recap-acc-caret{color:#ffffff5c;flex-shrink:0;font-size:10px;transition:transform .26s cubic-bezier(.16,1,.3,1)}.recap-acc-caret--open{transform:rotate(90deg)}.recap-acc-inner{border-top:1px solid #ffffff14;padding:2px 0 8px}.recap-ledger{border-collapse:collapse;text-align:left;width:100%;font-size:12px}.recap-ledger td{vertical-align:baseline;padding:5.5px 0}.recap-ledger-time{color:#ffffff57;width:46px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.recap-ledger-name{color:#ffffffe0;font-weight:550}.recap-ledger-name--wait{color:#f59e0b;font-weight:600}.recap-dot{border-radius:2.5px;width:8px;height:8px;margin-right:8px;display:inline-block}.recap-ledger-dur{text-align:right;color:#ffffff8c;white-space:nowrap}.recap-ledger-dur--wait{color:#f59e0b}.recap-ledger-ext{color:#34d399;font-weight:650}.recap-ledger-addedtag{color:#34d399;vertical-align:1px;background:#34d39924;border-radius:6px;margin-left:7px;padding:1.5px 6px;font-size:10px;font-weight:700}.recap-ledger-paused{color:#f59e0b}.recap-bento{grid-template-columns:repeat(4,1fr);gap:7px;padding:16px 20px 0;display:grid}.recap-tile{background:#ffffff08;border-radius:12px;flex-direction:column;align-items:center;gap:4px;min-width:0;padding:11px 6px 9px;display:flex}.recap-tile b{color:#fffffff0;font-size:1.15rem;font-weight:700;line-height:1}.recap-tile span{color:#ffffff6b;text-transform:uppercase;letter-spacing:.05em;text-align:center;font-size:.62rem;font-weight:500}.recap-tile-sub{text-transform:none;letter-spacing:0;font-style:normal}.recap-tile-ic{border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;margin-bottom:2px;display:flex}.recap-tile-ic--focus{color:var(--focus-solid,#64ff8b);background:#ffffff0d}.recap-tile-ic--break{color:var(--short-solid,#6fa8ff);background:#ffffff0d}.recap-tile-ic--tasks{color:#fbbf24;background:#fbbf241f}.recap-tile-ic--skips{color:#a1a1aacc;background:#ffffff0d}.recap-tile-ic--streak{color:#fb923c;background:#fb923c1f}.recap-tile-ic--week{color:#a5b4fc;background:#ffffff0d}.recap-tile--wide{flex-direction:row;grid-column:span 2;justify-content:center;gap:8px;padding:9px 10px}.recap-tile--wide .recap-tile-ic{margin-bottom:0}.recap-tile--wide b{font-size:1rem}.recap-bento--mini{justify-content:center;gap:7px;padding:0 0 12px;display:flex}.recap-tile--mini{border-radius:10px;flex-direction:row;gap:6px;padding:7px 13px}.recap-tile--mini b{font-size:.85rem}.recap-tile--mini span{text-transform:none;letter-spacing:0;font-size:.72rem}.recap-tile--mini-wait b,.recap-tile--mini-wait span{color:#f59e0b}.recap-insight{color:#f59e0bd9;margin:14px 28px 0;font-size:12px}.recap-btn{cursor:pointer;color:#f5f5f7;background:#ffffff0d;border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;height:38px;padding:0 16px;font-size:12.5px;font-weight:500;transition:background-color .15s,transform .15s;display:inline-flex}.recap-btn:hover{background:#ffffff17;transform:scale(1.01)}.recap-btn--primary{background:#ffffff17;font-weight:600}.recap-btn--primary:hover{background:#ffffff21}.recap-plus{color:#34d399}.recap-btn--snug{flex:none}.recap-btn--endlive{color:#fda4afe6;background:#f43f5e1a;width:100%}.recap-btn--endlive:hover{color:#fecdd3;background:#f43f5e2b}.recap-keepgoing{gap:8px;padding:18px 20px 0;display:flex}.recap-keepgoing .recap-btn--primary{flex:1;height:42px;font-size:.85rem}.recap-actions{gap:8px;padding:8px 20px 0;display:flex}.recap-actions .recap-btn{flex:1}.recap-endlive{padding:8px 20px 0}@keyframes recap-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes recap-slideUp{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.recap-overlay,.recap-card{animation:none}.recap-btn:hover{transform:none}.recap-acc-collapse,.recap-acc-caret,.recap-rowbox,.recap-pane,.recap-pane-in{transition:none}}@media (max-height:740px){.recap-hero{padding:12px 24px}.recap-focus-time{font-size:2.4rem}.recap-acc-scroll{max-height:42vh}.recap-keepgoing .recap-btn--primary{height:38px}}@media (max-width:480px){.recap-hero{padding:16px 22px 12px}.recap-focus-time{font-size:2.6rem}.recap-keepgoing{flex-wrap:wrap}.recap-bento{grid-template-columns:repeat(2,1fr)}}
.participant-stack{cursor:pointer;align-items:center;gap:0;height:fit-content;transition:transform .2s;display:flex;position:relative}.participant-avatar{clip-path:url(#avatar-crescent);background:#1f2937;border-radius:50%;flex-shrink:0;width:38px;height:38px;margin-left:-8px;transition:transform .2s,z-index .2s;position:relative;overflow:hidden}.participant-avatar:first-child{margin-left:0}.participant-avatar.first,.participant-avatar.last{clip-path:none}.participant-avatar:hover{clip-path:none;transform:scale(1.02);z-index:10!important}.participant-avatar img{object-fit:cover;width:100%;height:100%}.avatar-fallback{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);justify-content:center;align-items:center;width:100%;height:100%;font-size:14px;font-weight:600;display:flex}.host-badge{color:#000;background:linear-gradient(135deg,#fbbf24,#f59e0b);border:2px solid #00000080;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:flex;position:absolute;bottom:-2px;right:-2px}.mirror-badge{color:#052e16;background:linear-gradient(135deg,#34d399,#10b981);border:2px solid #00000080;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:flex;position:absolute;bottom:-2px;right:-2px}.host-badge-small{color:#000;background:linear-gradient(135deg,#fbbf24,#f59e0b);border:1px solid #0000004d;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;display:flex;position:absolute;bottom:0;right:0}.participant-overflow{color:#ffffffb3;background:#ffffff1a;border:2px solid #fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.participant-overflow:hover{background:#ffffff26;border-color:#ffffff4d;transform:scale(1.05)}.participant-list-container{background:0 0;flex-direction:column;min-width:240px;display:flex}.participant-list-container h3{letter-spacing:-.01em;margin:0;font-size:13px}.avatar-fallback{color:#fff;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.welcome-banner{z-index:1500;background:linear-gradient(135deg,#14181ffa,#0c0f15f7);border-radius:16px;max-width:400px;padding:16px 24px;animation:.3s ease-out welcomeSlideUp;position:fixed;bottom:80px;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000080,0 0 0 1px #ffffff1a}.welcome-close{color:#ffffffb3;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:16px;line-height:1;transition:all .15s;display:flex;position:absolute;top:8px;right:8px}.welcome-close:hover{color:#fff;background:#fff3}@keyframes welcomeSlideUp{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes welcomeSlideDown{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(20px)}}.welcome-banner.exiting{animation:.5s ease-out forwards welcomeSlideDown}.welcome-banner-content{align-items:center;gap:16px;display:flex}.welcome-avatar{color:#fff;border:2px solid #fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;font-weight:600;display:flex}.welcome-text{flex:1}.welcome-text h4{color:#fff;margin:0 0 4px;font-size:1rem;font-weight:600}.welcome-text p{color:#ffffffb3;margin:0;font-size:.85rem}.welcome-text button{color:#60a5fa;cursor:pointer;background:0 0;border:none;margin-top:4px;padding:0;font-size:.8rem;text-decoration:underline}.welcome-text button:hover{color:#93c5fd}
