/* 3.10: same-document workspace. Only calendar content and dialogs scroll. */
html,body{width:100%;height:100%;overflow:hidden!important;overscroll-behavior:none}
#app-shell{transition:transform .34s cubic-bezier(.22,.8,.24,1),opacity .3s ease;transform:translateX(0)}
.view-calendar #app-shell{transform:translateX(-9%);opacity:0;pointer-events:none}
.virtual-calendar{position:fixed;inset:0;z-index:12;background:var(--bg);color:var(--ink);overflow:hidden;transform:translateX(100%);opacity:0;transition:transform .34s cubic-bezier(.22,.8,.24,1),opacity .28s ease;contain:layout paint;touch-action:pan-y}
.view-calendar .virtual-calendar{transform:translateX(0);opacity:1}
#calendar-view .calendar-shell{height:100%;height:var(--view-h,100dvh);padding:24px 38px 46px;max-width:1680px;display:flex;flex-direction:column;overflow:hidden}




#calendar-view .calendar-shell>main{min-height:0;flex:1;overflow:hidden;overscroll-behavior:none;padding:0}
#calendar-view .calendar-heading{margin:24px 0 20px;gap:15px}
#calendar-view .calendar-heading h1{font-size:clamp(28px,3.7vw,46px)}
#calendar-view .calendar-heading .section-label{font-size:10px;margin-bottom:6px}
#calendar-view .calendar-subtitle{margin-top:7px}
#calendar-view .calendar-toolbar{position:sticky;top:0;z-index:2;background:var(--bg);padding:8px 0 12px}
#calendar-view .calendar-footer{display:none}
#calendar-view .calendar-cell{min-height:83px}




#calendar-view .calendar-event,#calendar-view .calendar-agenda-row{cursor:pointer}
#cal-content{min-height:0}
#calendar-view [hidden]{display:none!important}
#cal-warnings{padding:14px 0;line-height:1.6;font-size:12px}
#cal-warning-list{padding-left:22px;margin-top:8px;overflow-wrap:anywhere}
#cal-sources-dialog,#cal-event-dialog{overflow-x:hidden}
#cal-sources-dialog form{max-width:100%;min-width:0}
#cal-source-manager{max-width:100%}
.view-dots{position:fixed;z-index:14;left:50%;bottom:max(5px,env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;gap:2px;align-items:center;height:24px;transition:opacity .4s}
.view-dots button{background:none;display:grid;place-items:center;width:28px;height:24px;border-radius:20px;padding:0}
.view-dots button span{height:5px;width:5px;border-radius:50%;background:var(--faint);opacity:.5;transition:width .25s,opacity .25s}
.view-dots button[aria-current=page] span{width:17px;background:var(--accent);border-radius:5px;opacity:1}
body.has-panel .view-dots{opacity:0;pointer-events:none}
.has-view-dots #app-shell{padding-bottom:max(30px,calc(env(safe-area-inset-bottom) + 25px))!important}
.view-calendar .backdrop *{animation-play-state:paused!important}

#upcoming-title{font:13px var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#upcoming-time{flex-shrink:0;margin-left:10px;color:var(--muted);font:11px var(--sans);white-space:nowrap}
.timer-sound-choice{padding:12px 0 9px}.timer-choice-label{display:block;font-size:11px;color:var(--muted);margin-bottom:10px}
.timer-sound-segments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:4px;border:1px solid var(--line);border-radius:16px}
.timer-sound-segments button{background:transparent;min-height:40px;display:flex;justify-content:center;align-items:center;gap:6px;border-radius:12px;color:var(--muted);font-size:12px}
.timer-sound-segments .icon{height:17px;width:17px}.timer-sound-segments button[aria-pressed=true]{color:var(--ink);background:var(--accent-soft)}
.timer-sound-segments button:disabled{opacity:.38}.timer-sound-segments button[aria-pressed=true]:disabled{opacity:.8}





.collection-library-toolbar{padding:0 30px 18px;flex:0 0 auto;border-bottom:1px solid var(--line);display:grid;gap:16px}


.collection-library-toolbar .search-field{margin:0}.collection-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-height:none;overflow:visible;padding:0}
.collection-card{display:flex;flex-direction:column;gap:11px;min-width:0;padding:19px;border:1px solid var(--line);border-radius:16px;background:var(--accent-soft)}
.collection-card.is-selected{border-color:var(--accent)}.collection-card>strong{font:22px/1.25 var(--serif);letter-spacing:-.02em}
.collection-card>small{font-size:10px;color:var(--accent)}.collection-card p{font-size:12px;line-height:1.7;color:var(--muted);flex:1}
.collection-card-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.collection-card-actions .secondary-button{font-size:11px;padding:9px 13px;min-height:34px}
.collection-card-actions .icon-button{height:32px;width:32px}.collection-card-actions .icon{height:16px;width:16px}.collection-card .collection-card-actions>span{font-size:11px;color:var(--accent)}
#collection-library-note{margin:0 0 18px}.collection-library-grid:empty{display:none}
#collection-library-empty{padding:20px 0;font-size:13px;color:var(--muted)}
@media (max-width:1000px){#calendar-view .calendar-layout{grid-template-columns:minmax(0,1fr);gap:14px}#calendar-view .calendar-sync-status{margin:3px 0 8px;font-size:10px}.calendar-week-day{min-height:200px}}
@media (max-width:740px){#calendar-view .calendar-shell{padding:18px 17px 44px}#calendar-view .calendar-subtitle{display:none}#calendar-view .calendar-cell{min-height:70px;padding:5px 2px}#calendar-view .calendar-event{font-size:8px;padding:4px 3px}#calendar-view .calendar-event .event-time{display:none}#calendar-view .calendar-more{font-size:8px}#calendar-view .calendar-year{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#calendar-view .calendar-week{grid-template-columns:1fr;gap:12px}#calendar-view .calendar-week-day{min-height:60px;display:grid;grid-template-columns:50px minmax(0,1fr);gap:0 12px;align-items:start}#calendar-view .calendar-week-day>button{grid-row:1 / span 20;padding:8px 0}#calendar-view .calendar-week-day .calendar-event{grid-column:2}#calendar-view .calendar-week-day .event-time{display:inline}.collection-library-toolbar{padding:0 20px 16px}.collection-library-grid{grid-template-columns:1fr}.collection-card{padding:17px}}
@media (max-height:540px) and (orientation:landscape){#calendar-view .calendar-shell{padding:10px 24px 32px}.view-dots{height:20px;bottom:2px}.has-view-dots #app-shell{padding-bottom:21px!important}}
@media (prefers-reduced-motion:reduce){#app-shell,#calendar-view,.view-dots *{transition:none!important}}
body.no-motion #app-shell,body.no-motion #calendar-view{transition:none!important}

#calendar-view .calendar-month{display:block;width:100%;margin:0;min-height:0;background:transparent;color:var(--ink);font-family:var(--sans)}
#calendar-view .calendar-grid,#calendar-view .calendar-weekdays{gap:0;padding:0}
#calendar-view .calendar-week-day>button.calendar-event{font-size:11px;padding:8px 6px;text-align:left;color:var(--ink)}
#calendar-view .calendar-heading h1{margin:0}
#calendar-view button{font-family:var(--sans)}

.collection-card-actions .icon-button>svg{height:17px;width:17px;fill:currentColor}



/* 3.10.1 rebuild: compact source feedback and finger-sized view navigation. */
#performance-setting small{font-size:11px;line-height:1.55;color:var(--muted);font-weight:400}
.timer-source-description{font-size:11px;line-height:1.5;color:var(--muted);margin:9px 2px 0;min-height:33px;max-width:100%;overflow-wrap:anywhere}
.timer-sound-segments button{white-space:normal;line-height:1.2;padding:8px 3px}
.timer-sound-segments button .icon{flex-shrink:0}
.view-dots{height:32px;bottom:max(0px,env(safe-area-inset-bottom))}
.view-dots button{width:40px;height:32px;min-height:32px}
.view-dots button:focus-visible{outline:1px solid var(--accent);outline-offset:-3px}
@media (pointer:coarse){.view-dots{height:38px}.view-dots button{height:38px;min-height:38px;width:44px}.has-view-dots #app-shell{padding-bottom:max(40px,calc(env(safe-area-inset-bottom) + 38px))!important}}
@media (max-height:540px) and (orientation:landscape){.view-dots{height:24px}.view-dots button{height:24px;min-height:24px}.has-view-dots #app-shell{padding-bottom:max(25px,env(safe-area-inset-bottom))!important}}
.share-formats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))!important;border-radius:18px;gap:4px}
.share-formats button{flex-direction:column;gap:4px;border-radius:14px;font-size:12px;line-height:1.3;text-align:center;min-height:56px;padding:8px 5px}
.share-formats button small{font-size:10px}
@media (max-width:520px){.share-formats{grid-template-columns:repeat(3,minmax(0,1fr))!important}.share-formats button{min-height:48px;padding-inline:4px}}

/* v3.10.1 rebuild: calendar stays inside one viewport; no page scrollbar. */
#calendar-view,#calendar-view .calendar-shell,#calendar-view .calendar-shell>main,#calendar-view .calendar-layout,#calendar-view .calendar-main,#cal-content{min-height:0;max-height:100%;overflow:hidden!important}
#calendar-view .calendar-shell>main{display:flex;flex-direction:column}
#calendar-view .calendar-heading{flex:0 0 auto}#calendar-view .calendar-toolbar{flex:0 0 auto;position:static}
#calendar-view .calendar-layout{flex:1;display:grid}#calendar-view .calendar-main{height:100%}#cal-content{height:100%}
#calendar-view .calendar-month{height:100%;display:flex;flex-direction:column}#calendar-view .calendar-weekdays{flex:0 0 auto}#calendar-view .calendar-grid{flex:1;grid-auto-rows:minmax(0,1fr)}#calendar-view .calendar-cell{min-height:0!important}
#calendar-view .calendar-year{height:100%;overflow:hidden;grid-auto-rows:minmax(0,1fr)}#calendar-view .calendar-mini{min-height:0;overflow:hidden;padding:8px 6px}#calendar-view .calendar-mini h2 button{margin-bottom:6px;font-size:16px}#calendar-view .calendar-mini-grid button{height:21px}
#calendar-view .calendar-week{height:100%;overflow:hidden}#calendar-view .calendar-week-day{min-height:0!important;overflow:hidden}
#calendar-view .calendar-agenda{height:100%;overflow:hidden;gap:10px}#calendar-view .calendar-agenda-day{min-height:0}.calendar-warnings{max-height:22%;overflow:hidden}
@media (max-width:740px){#calendar-view .calendar-shell{padding-bottom:42px}#calendar-view .calendar-cell{padding:2px 1px}#calendar-view .calendar-event{padding:2px;font-size:7px}#calendar-view .calendar-year{gap:6px}#calendar-view .calendar-mini{padding:5px 3px}#calendar-view .calendar-mini h2 button{font-size:14px;margin-bottom:3px}#calendar-view .calendar-mini-grid button{height:18px;font-size:9px}}


/* v3.10.1 rebuild: calendar stays a single viewport. Only the calendar content can scroll. */
#calendar-view .calendar-agenda{display:block;height:100%;min-height:0;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;padding-right:6px;scrollbar-width:thin;scrollbar-color:var(--faint) transparent}
#calendar-view .calendar-agenda-day{display:block;min-height:auto!important}
#calendar-view .calendar-agenda-day+.calendar-agenda-day{margin-top:24px}
#calendar-view .calendar-agenda-row{display:grid!important;min-height:0;position:relative}
#calendar-view .calendar-warnings{flex:0 0 auto;max-height:18%;overflow-y:auto!important;overflow-x:hidden!important}
@media (max-width:740px),(max-height:680px){
 #calendar-view .calendar-main{overflow:hidden!important}
 #calendar-view #cal-content{overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--faint) transparent;padding-right:2px}
 #calendar-view #cal-content>.calendar-month{height:auto;min-height:420px}
 #calendar-view #cal-content>.calendar-year{height:auto;min-height:660px;grid-auto-rows:auto}
 #calendar-view #cal-content>.calendar-week{height:auto;overflow:visible;min-height:0}
 #calendar-view #cal-content>.calendar-agenda{height:auto;overflow:visible!important;padding-right:0}
 #calendar-view .calendar-warnings{max-height:90px}
}
@media (max-height:540px) and (orientation:landscape){
 #calendar-view #cal-content>.calendar-month{min-height:300px}
 #calendar-view #cal-content>.calendar-year{min-height:520px}
 #calendar-view .calendar-agenda-row{grid-template-columns:70px minmax(0,1fr);padding:9px 0}
 #calendar-view .calendar-agenda-day h2{font-size:17px;margin-bottom:6px}
}

/* v3.10.1 rebuild small-viewport correction: override the legacy 450px content minimum. */
#calendar-view #cal-content{min-height:0!important}
@media (max-height:540px) and (orientation:landscape){
 
 
 
 
 
 
}

/* v3.10.1 rebuild: compact calendar header and quiet timer rhythm. */
#calendar-view .calendar-heading-combined{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid var(--line)}
#calendar-view .calendar-heading-combined .wordmark{background:transparent;align-self:center}
#calendar-view .calendar-title-copy{min-width:0}
#calendar-view .calendar-heading-combined .section-label{margin:0 0 3px;font-size:8px}
#calendar-view .calendar-heading-combined h1{font-size:clamp(24px,3vw,38px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#calendar-view .calendar-heading-combined .calendar-subtitle{margin:2px 0 0;font-size:10px}
#calendar-view .calendar-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0}
#calendar-view .calendar-heading-actions .primary-button,#calendar-view .calendar-heading-actions .secondary-button{min-height:36px;padding:8px 11px;font-size:10px;white-space:nowrap}
#calendar-view .calendar-heading-actions .icon{width:15px;height:15px}

#cal-empty{display:none!important}

#calendar-view .calendar-toolbar{padding-top:2px}
#calendar-view .calendar-source-toggle input[type=checkbox]{width:17px;height:17px;min-width:17px}
.timer-panel .timer-preference-summary{min-height:0;padding:4px 0 0;display:block}
.timer-panel .timer-finish-description{white-space:normal;overflow:visible;text-overflow:clip;text-align:center;margin:0;font-size:11px;line-height:1.45}
.timer-panel .timer-session-options{padding-bottom:0}
.timer-panel .timer-content{padding-bottom:0}
@media (max-width:740px){}
@media (max-height:540px) and (orientation:landscape){}
