.stickyChrome{position:sticky;top:0;z-index:var(--z-sticky);background:var(--surface)}body.mobile-layout .stickyChrome{top:env(safe-area-inset-top,0px)}.headerPullRefresh{position:absolute;left:50%;top:0;transform:translate(-50%,-125%);opacity:0;transition:transform var(--t-fast),opacity var(--t-fast);z-index:var(--z-pull);pointer-events:none;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid rgba(0,0,0,.08);border-radius:999px;background:#fffffff5;box-shadow:0 10px 24px #3c40431f;color:var(--muted);font-size:12px;line-height:1;white-space:nowrap}.headerPullRefresh .spinner{display:none;width:12px;height:12px;border-width:2px}.stickyChrome.isRefreshing .headerPullRefresh .spinner{display:block}.toolbar{position:relative;background:var(--surface);padding:10px 0 12px;border-bottom:1px solid var(--border);gap:12px;overflow:visible;transition:padding var(--t-std),border-color var(--t-std)}.toolbarTop{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-left:6px;max-height:200px;opacity:1;overflow:hidden;transform:translateY(0);transition:max-height var(--t-std),opacity .18s ease,transform var(--t-std),margin var(--t-std)}.toolbarLeft{display:flex;align-items:center;gap:8px;min-width:0}.toolbarRight{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;min-width:0}.toolbarDesktopLabel{display:inline}.toolbarMobileLabel{display:none}.title{font-size:15px;font-weight:600;display:flex;align-items:center;gap:7px}.titleIcon{width:22px;height:22px;flex-shrink:0}.titleText{display:inline;white-space:nowrap}.buildBadge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:var(--surface-muted);color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.legend{display:flex;flex-wrap:wrap;gap:6px;margin:0;align-items:center;padding-left:6px;transition:margin var(--t-std)}.legendItem{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;box-sizing:border-box;width:auto;min-height:26px;max-width:100%;padding:3px 10px;border:1.5px solid rgba(0,0,0,.8);border-radius:6px;-webkit-user-select:none;user-select:none;cursor:default;gap:6px}.legendLabel{display:block;max-width:100%;font-size:11px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.55);line-height:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legendMeta{display:inline-flex;align-items:center;max-width:100%;font-size:11px;font-weight:600;color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.55);letter-spacing:0;line-height:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-left:6px;border-left:1px solid rgba(255,255,255,.32)}.legendEmoji{display:inline-flex;align-items:center;line-height:1;text-shadow:none}.status{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.iconBtn{min-width:34px;padding:7px 8px;display:inline-flex;align-items:center;justify-content:center;gap:4px}.iconBtn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.iconBtn .userCaret{font-size:10px;line-height:1;color:var(--muted);margin-left:1px}.userMenu{position:relative;display:inline-flex}.toolbarOverflow{position:relative;display:none}.userMenu.open .userMenuPanel,.toolbarOverflow.open .toolbarOverflowPanel{display:block}.userMenuPanel{position:absolute;top:calc(100% + 6px);right:0;min-width:230px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface-raised);box-shadow:0 8px 22px #00000029;padding:8px;z-index:var(--z-menu);display:none}.userMenuEmail{font-size:12px;color:var(--text);line-height:1.3;word-break:break-word;border-bottom:1px solid var(--border);padding:2px 2px 8px;margin-bottom:8px}.userMenuPanel button{width:100%;text-align:left;border-radius:var(--radius-control)}.menuBackdrop{position:fixed;inset:0;z-index:var(--z-backdrop)}.dowHeader{position:relative;background:var(--surface);border-bottom:1px solid var(--border);padding:6px 0}.dowRow{display:grid;grid-template-columns:var(--mocol) var(--wkcol) 1fr;align-items:center}.dowGutter{height:22px}.dowCells{display:grid;grid-template-columns:var(--day-grid-template);padding:0 8px;box-sizing:border-box}.dowCell{font-size:12px;color:var(--muted);font-weight:600;-webkit-user-select:none;user-select:none;text-align:left}body.desktop-compact .dowRow{grid-template-columns:var(--mocol) 1fr}body.desktop-compact .dowRow .dowGutter:nth-child(2){display:none}body.desktop-compact .dowRow .dowCells{grid-column:2}.mobileContext{display:none;position:static;height:auto;overflow:hidden;pointer-events:none;background:transparent;border-bottom:0;z-index:2}.mobileContext.active{display:block}.mobileContextInner{position:relative;width:auto;height:auto;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--out-bg);padding:5px 7px 6px;line-height:1.15;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px}.mobileContextYear{font-size:14px;font-weight:700;color:var(--text)}.mobileContextMonth{margin-top:2px;font-size:13px;font-weight:600;color:var(--text)}.mobileContextWeek{margin-top:2px;font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.desktopContext{display:none;position:fixed;top:var(--desktop-context-top, calc(var(--toolbar-h) + 12px));left:var(--desktop-context-left, 0px);width:var(--desktop-context-width, var(--wkcol));height:var(--desktop-context-h, 56px);box-sizing:border-box;padding:6px 2px 4px;border-right:1px solid var(--border);background:var(--out-bg);line-height:1;font-variant-numeric:tabular-nums;pointer-events:none;z-index:var(--z-context)}.desktopContext.active{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.desktopContextYear{font-size:11px;font-weight:700;color:var(--text)}.desktopContextMonth{font-size:11px;font-weight:600;color:var(--text)}.desktopContextWeek{font-size:10px;font-weight:600;color:var(--muted);letter-spacing:0}body:not(.mobile-layout) .desktopContext{padding:0;text-align:center}body.density-2 .title{font-size:17px}body.density-2 .dowCell{font-size:13px}body.mobile-layout .toolbar{padding:4px 0 5px;gap:6px}body.mobile-layout .buildBadge{display:none}body.mobile-layout .toolbarTop{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:0 6px;gap:6px}body.mobile-layout .toolbarLeft{width:auto;justify-content:flex-start;flex-wrap:nowrap;min-width:0;gap:6px}body.mobile-layout .toolbarRight{width:auto;min-width:0;justify-content:flex-end;gap:4px;row-gap:0;align-items:center;flex-wrap:nowrap}body.mobile-layout .toolbarRight .status{flex:0 0 auto;margin-top:0;justify-content:center;text-align:center}body.mobile-layout #statusText{display:none}body.mobile-layout .title{font-size:13px;line-height:1;gap:0;width:24px;min-width:24px;justify-content:center}body.mobile-layout .titleText{display:none}body.mobile-layout .titleIcon{width:18px;height:18px}body.mobile-layout .toolbarDesktopLabel{display:none}body.mobile-layout .toolbarMobileLabel{display:inline}body.mobile-layout .stickyChrome button{display:inline-flex;min-height:30px;box-sizing:border-box;align-items:center;justify-content:center;white-space:nowrap}body.mobile-layout .legend{width:100%;box-sizing:border-box;margin-top:4px;padding:0 6px;gap:4px;display:grid;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));align-items:stretch;overflow:visible}body.mobile-layout .legendItem{width:100%;min-height:28px;padding:2px 4px;gap:1px;border-width:1px;border-radius:4px;flex-direction:column}body.mobile-layout .legendLabel{font-size:10px;line-height:1}body.mobile-layout .legendMeta{font-size:8px;line-height:1;letter-spacing:0;border-left:0;padding-left:0;white-space:normal;text-align:center}body.mobile-layout .iconBtn{min-width:30px;padding:0 8px}body.mobile-layout .iconBtn svg{width:14px;height:14px}body.mobile-layout .userMenuPanel{right:0;left:auto;min-width:210px;max-width:min(240px,calc(100dvw - 18px))}body.mobile-layout .userMenu,body.mobile-layout #btnShareInbox,body.mobile-layout #btnSettings,body.mobile-layout #btnRefresh{display:none}body.mobile-layout .toolbarOverflow{display:inline-flex}body.mobile-layout .toolbarOverflowPanel{min-width:220px;max-width:min(240px,calc(100dvw - 18px))}body.mobile-layout .dowHeader{padding:4px 0 3px}body.mobile-layout .dowRow{grid-template-columns:1fr}body.mobile-layout .dowRow .dowGutter{display:none}body.mobile-layout .dowRow .dowCells{grid-column:1;padding:0 4px}body.mobile-layout .dowCell{font-size:11px}body.mobile-layout .mobileContext{flex:0 0 auto}body.mobile-layout .mobileContextInner{margin-left:0;min-width:126px;min-height:30px;padding:0 10px;gap:6px;flex-direction:row;align-items:center;justify-content:center;border-radius:var(--radius-panel);background:var(--surface-raised);box-sizing:border-box}body.mobile-layout .mobileContextYear,body.mobile-layout .mobileContextMonth,body.mobile-layout .mobileContextWeek{margin-top:0;line-height:1;white-space:nowrap}body.mobile-layout .mobileContextYear{font-size:12px}body.mobile-layout .mobileContextMonth{font-size:11px}body.mobile-layout .mobileContextWeek{font-size:10px}body.mobile-layout .mobileContextInnerCondensed{min-width:110px}#authGate{margin-top:12px;margin-left:auto;margin-right:auto;border:1px solid var(--border);border-radius:var(--radius-panel);padding:16px;background:var(--surface-raised);max-width:640px}#authGateTitle{font-size:16px;font-weight:600;margin-bottom:4px}#authGateText{color:var(--muted);font-size:13px;line-height:1.4}.authGateLoading{display:flex;align-items:center;gap:10px;margin-top:14px;color:var(--muted);font-size:13px}.authGateLoading .spinner{width:16px;height:16px}.authGateActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}body.mobile-layout #authGate{margin-top:8px;margin-left:6px;margin-right:6px;max-width:none;padding:14px}#weeks{margin-top:12px;border:1px solid var(--border);border-radius:var(--radius-panel);overflow:visible;position:relative}.weekRow.skeleton{pointer-events:none}.weekRow.skeleton .moLabel,.weekRow.skeleton .wkNum,.weekRow.skeleton .dayCell{background:var(--out-bg)}.weekRow.skeleton .wkBody{padding-top:0}.weekRow.skeleton .dayCell{cursor:default}.skeletonBlock{border-radius:999px;background:linear-gradient(90deg,#eef0f1 20%,#e2e5e7,#eef0f1 56%);background-size:220% 100%;animation:skeletonPulse 1.2s ease-in-out infinite}.skeletonTitle{width:44px;height:14px;margin:10px auto 0}.skeletonWeek{width:30px;height:12px;margin:18px auto 0}.skeletonDayHeader{width:18px;height:18px;border-radius:50%}.skeletonBar{width:100%;height:12px;margin-top:10px;border-radius:8px}.weeksLoading{overflow-anchor:none}.weekRow{display:grid;grid-template-columns:var(--mocol) var(--wkcol) 1fr;border-top:1px solid var(--border);background:var(--surface)}.weekRow:first-child{border-top:0}.moLabel{border-right:1px solid var(--border);background:var(--out-bg);color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:10px;font-size:12px;font-weight:600;letter-spacing:.3px;-webkit-user-select:none;user-select:none;white-space:pre-line}.moYear{display:block;font-size:14px;font-weight:700;color:var(--text);letter-spacing:0;line-height:1.1}.moMonth{display:block;margin-top:2px;font-size:12px;font-weight:600;color:var(--muted);line-height:1.1}.wkNum{border-right:1px solid var(--border);background:var(--out-bg);color:var(--muted);font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:12px;-webkit-user-select:none;user-select:none}.wkMonthLabel{display:none;font-size:12px;font-weight:700;color:var(--text);line-height:1.1;letter-spacing:.2px;text-align:center;white-space:pre-line}.wkWeekLabel{font-size:10px;font-weight:600;color:var(--muted);line-height:1}body:not(.mobile-layout):not(.desktop-compact) .weekRow .wkNum{align-self:stretch;padding:0;text-align:center}body:not(.mobile-layout):not(.desktop-compact) .weekRow .wkMonthLabel,body:not(.mobile-layout):not(.desktop-compact) .weekRow .wkWeekLabel{width:100%;text-align:center}body:not(.mobile-layout):not(.desktop-compact) .weekRow .wkWeekLabel{display:flex;flex:1 1 auto;align-items:center;justify-content:center;min-height:100%}body.desktop-compact .weekRow{grid-template-columns:var(--mocol) 1fr}body.desktop-compact .weekRow .moLabel{display:none}body.desktop-compact .weekRow .wkNum{grid-column:1;grid-row:1;display:flex;justify-content:center;align-items:center;padding:0}body.desktop-compact .weekRow .wkBody{grid-column:2;grid-row:1}body.desktop-compact .wkMonthLabel{display:block}.weekRow.currentWeek{background:var(--wk-hl)}.weekRow.currentWeek .moLabel{background:var(--wk-hl);color:var(--muted)}.weekRow.currentWeek .wkNum{background:var(--wk-hl-dark);color:#fff;font-weight:700;letter-spacing:.2px}.weekRow.currentWeek .wkNum .wkMonthLabel,.weekRow.currentWeek .wkNum .wkWeekLabel{color:inherit}.weekRow.currentWeek .dayCell,.weekRow.currentWeek .dayCell.weekend{background-color:var(--wk-hl)}.weekRow.currentWeek .dayCell:hover{background-color:#dfe8fb}body:not(.mobile-layout) .weekRow.currentWeek .wkNum{background:var(--wk-hl-dark-desktop);color:var(--today-badge-text)}body.mobile-layout .weekRow.activeRow{background:var(--wk-hl)}body.mobile-layout .weekRow.activeRow .dayCell,body.mobile-layout .weekRow.activeRow .dayCell.weekend{background-color:var(--wk-hl)}body:not(.mobile-layout) .dayCell.currentDay{background-color:var(--today-cell-hl)}body:not(.mobile-layout) .dayCell.currentDay.weekend,body:not(.mobile-layout) .dayCell.currentDay.holiday{background-color:var(--today-cell-hl)}body:not(.mobile-layout) .dayCell.currentDay .dayNum{background:var(--today-badge);color:var(--today-badge-text);font-weight:700;box-shadow:inset 0 0 0 1px #0b57d01a}body:not(.mobile-layout) .dayCell.currentDay:hover{background-color:#d2e3fc}.wkBody{position:relative;padding-top:0}.dayGrid{display:grid;grid-template-columns:var(--day-grid-template);border-bottom:1px solid var(--border);position:relative;touch-action:pan-y pinch-zoom}.hatchSvg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;overflow:visible}.dayCell{--cell-top-boundary-width: 0px;--cell-top-boundary-color: transparent;--cell-top-boundary-overlap: 0px;--cell-top-boundary-right-overlap: 0px;--cell-left-boundary-width: 0px;--cell-left-boundary-color: transparent;--cell-left-boundary-overlap: 0px;--cell-left-boundary-bottom-overlap: 0px;height:calc(var(--date-band-h) + (var(--week-lanes, 3) * var(--lane-h)) + ((var(--week-lanes, 3) - 1) * var(--lane-gap)) + var(--cell-bottom-pad));border-right:1px solid var(--border);padding:6px 8px;box-sizing:border-box;cursor:pointer;background:var(--surface);position:relative;display:flex;flex-direction:column;min-width:0;overflow:visible;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:pan-y pinch-zoom}.dayCell:last-child{border-right:0}.dayCell:hover{background-color:var(--hover)}.dayCell *{user-select:none;-webkit-user-select:none}.dayCell.weekend{background:var(--out-bg)}.dayCell.holiday{background:var(--surface-muted)}.dayCell.hatchMayJune{background-image:repeating-linear-gradient(45deg,rgba(242,201,76,.22) 0 var(--hatch-step),rgba(255,255,255,.12) var(--hatch-step) calc(var(--hatch-step)*2));background-position:var(--hatch-x,0px) var(--hatch-y,0px);background-origin:border-box;background-clip:border-box}.dayCell.hatchGreen{background-image:repeating-linear-gradient(45deg,rgba(52,168,83,.2) 0 var(--hatch-step),rgba(255,255,255,.1) var(--hatch-step) calc(var(--hatch-step)*2));background-position:var(--hatch-x,0px) var(--hatch-y,0px);background-origin:border-box;background-clip:border-box}.dayCell.hatchRed,.dayCell.hatchFallRed{background-image:repeating-linear-gradient(45deg,rgba(217,48,37,.2) 0 var(--hatch-step),rgba(255,255,255,.1) var(--hatch-step) calc(var(--hatch-step)*2));background-position:var(--hatch-x,0px) var(--hatch-y,0px);background-origin:border-box;background-clip:border-box}.dayCell.hatchMayJune.hatchGreen{background-image:repeating-linear-gradient(45deg,rgba(242,201,76,.22) 0 var(--hatch-step),rgba(52,168,83,.2) var(--hatch-step) calc(var(--hatch-step)*2));background-position:var(--hatch-x,0px) var(--hatch-y,0px);background-origin:border-box;background-clip:border-box}.dayCell.hatchMayJune.hatchRed{background-image:repeating-linear-gradient(45deg,rgba(242,201,76,.22) 0 var(--hatch-step),rgba(217,48,37,.2) var(--hatch-step) calc(var(--hatch-step)*2));background-position:var(--hatch-x,0px) var(--hatch-y,0px);background-origin:border-box;background-clip:border-box}.dayNum{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#ffffffeb;margin-top:-4px}.holidayName{margin-top:auto;font-size:10px;color:var(--muted);line-height:1.1;min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;-webkit-user-select:none;user-select:none;position:relative;z-index:2}.dayCell:before{content:"";position:absolute;left:calc(-1 * var(--cell-left-boundary-overlap));top:calc(-1 * var(--cell-top-boundary-overlap));right:0;bottom:0;pointer-events:none;z-index:3;background-image:linear-gradient(var(--cell-top-boundary-color),var(--cell-top-boundary-color)),linear-gradient(var(--cell-left-boundary-color),var(--cell-left-boundary-color));background-position:top left,top left;background-repeat:no-repeat;background-size:calc(100% + var(--cell-left-boundary-overlap) + var(--cell-top-boundary-right-overlap)) var(--cell-top-boundary-width),var(--cell-left-boundary-width) calc(100% + var(--cell-top-boundary-overlap) + var(--cell-left-boundary-bottom-overlap))}.dayCell.mbTop{--cell-top-boundary-width: 2px;--cell-top-boundary-color: var(--month-line);--cell-top-boundary-overlap: 1px;--cell-top-boundary-right-overlap: 1px}.dayCell.ybTop{--cell-top-boundary-width: 3px;--cell-top-boundary-color: var(--year-line);--cell-top-boundary-overlap: 1px;--cell-top-boundary-right-overlap: 1px}.dayCell.mbLeft{--cell-left-boundary-width: 2px;--cell-left-boundary-color: var(--month-line);--cell-left-boundary-overlap: 1px;--cell-left-boundary-bottom-overlap: 1px}.dayCell.ybLeft{--cell-left-boundary-width: 2px;--cell-left-boundary-color: var(--year-line);--cell-left-boundary-overlap: 1px;--cell-left-boundary-bottom-overlap: 1px}.dayCell.sel{background:var(--select-fill)!important;outline:2px solid var(--select-outline);outline-offset:-2px}.dayCell.sel.weekend,.dayCell.sel.holiday{background:var(--select-fill)!important}.dayCell.actionDisabled{cursor:not-allowed;background:var(--surface-subtle)}.dayCell.actionDisabled .dayNum{opacity:.58}.lanes{position:absolute;left:0;right:0;top:var(--date-band-h);padding:0 2px;pointer-events:none;z-index:2}.lane{display:grid;grid-template-columns:var(--day-grid-template);height:var(--lane-h);margin-bottom:var(--lane-gap)}body.density-1 .dayNum{font-size:11px;width:21px;height:21px}body.density-2 .wkNum,body.density-2 .moLabel{font-size:13px}body.density-2 .dayNum{font-size:14px;width:26px;height:26px}body.density-2 .holidayName{font-size:11px}body.mobile-layout .weekRow{grid-template-columns:minmax(0,1fr)}body.mobile-layout .weekRow .moLabel,body.mobile-layout .weekRow .wkNum{display:none}body.mobile-layout .weekRow .wkBody{grid-column:1;grid-row:1;min-width:0}body.mobile-layout .wkMonthLabel{display:block;font-size:11px;line-height:1}body.mobile-layout .wkWeekLabel{font-size:10px;line-height:1}body.mobile-layout.density-2 .dayNum{font-size:15px}.bar{pointer-events:auto;grid-row:1;border-radius:10px;font-size:12px;line-height:var(--lane-h);padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;-webkit-user-select:none;user-select:none;color:#fff;display:flex;align-items:center;gap:6px;position:relative}.bar:before{content:"";position:absolute;inset:-3px 0}.bar.lightText{color:#fff}.bar.darkText{color:var(--text)}.bar:hover{filter:brightness(.95)}.barIcon{flex:0 0 auto;width:16px;display:inline-flex;justify-content:center}.barText{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.density-1 .bar{font-size:11px;padding:0 7px;border-radius:9px}body.density-2 .bar{font-size:13px;padding:0 10px;border-radius:12px}body.mobile-layout.density-2 .bar{font-size:14px}#condensedView{margin-top:12px;display:none}#condensedView.active{display:block}.condensedGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}body:not(.mobile-layout) #condensedView.active{height:var(--condensed-panel-h, auto);box-sizing:border-box;overflow:hidden}body:not(.mobile-layout) #condensedView.active .condensedGrid{height:100%;align-items:stretch}.yearCol{border:1px solid var(--border);border-radius:8px;padding:8px;background:var(--surface-raised);min-height:0;overflow:hidden;box-sizing:border-box}body:not(.mobile-layout) #condensedView.active .yearCol{display:flex;flex-direction:column;height:100%}.yearCol.current{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.yearHead{font-size:13px;font-weight:700;margin-bottom:6px}.yearBody{min-height:0}body:not(.mobile-layout) #condensedView.active .yearBody{display:flex;flex:1;flex-direction:column;min-height:0;box-sizing:border-box;padding-bottom:8px}.miniWeek{display:grid;grid-template-columns:22px repeat(7,1fr);gap:0;align-items:center;min-height:8px}.miniMonth{font-size:11px;font-weight:700;color:var(--muted);line-height:1.1;text-align:right;padding-right:2px;-webkit-user-select:none;user-select:none}.miniDay{--mini-day-radius: 2px;--mini-day-border-width: 1px;--mini-day-hatch-stroke: 3px;--mini-day-hatch-half-stroke: calc(var(--mini-day-hatch-stroke) / 2);--mini-day-hatch-stroke-radius: max(0px, calc(var(--mini-day-radius) - var(--mini-day-hatch-half-stroke)));position:relative;height:6px;border-radius:var(--mini-day-radius);border:var(--mini-day-border-width) solid rgba(0,0,0,.06);background:#fff;background-attachment:fixed;margin:0 1px}.miniDay.hatched{border-color:transparent}.miniDay.clickable{cursor:pointer}.miniDay.clickable:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}body:not(.mobile-layout) #condensedView.active .miniWeek{flex:1 1 0;align-items:stretch}body:not(.mobile-layout) #condensedView.active .miniMonth{display:flex;align-items:center;justify-content:flex-end;font-size:var(--scaled-mini-month-font, 10px)}body:not(.mobile-layout) #condensedView.active .miniDay{height:auto;min-height:0;margin:1px}.miniDayFill{position:absolute;inset:0;border-radius:inherit;pointer-events:none}body:not(.mobile-layout) #condensedView.active .miniDayFill{min-height:0}.miniDayHatchOutline{position:absolute;display:block;inset:calc(-1 * var(--mini-day-border-width));width:calc(100% + (2 * var(--mini-day-border-width)));height:calc(100% + (2 * var(--mini-day-border-width)));border-radius:inherit;overflow:hidden;pointer-events:none;z-index:2;box-sizing:border-box}.miniDayHatchSvg{display:block;width:100%;height:100%}.miniDayHatchStroke{fill:none;x:var(--mini-day-hatch-half-stroke);y:var(--mini-day-hatch-half-stroke);width:calc(100% - var(--mini-day-hatch-stroke));height:calc(100% - var(--mini-day-hatch-stroke));rx:var(--mini-day-hatch-stroke-radius);ry:var(--mini-day-hatch-stroke-radius);stroke-width:var(--mini-day-hatch-stroke);stroke-linecap:butt;stroke-linejoin:round;vector-effect:non-scaling-stroke}.miniDayHatchInnerRing{display:none;fill:none;stroke:#fff;stroke-width:1px;x:calc(var(--mini-day-hatch-stroke) + .5px);y:calc(var(--mini-day-hatch-stroke) + .5px);width:calc(100% - 2 * var(--mini-day-hatch-stroke) - 1px);height:calc(100% - 2 * var(--mini-day-hatch-stroke) - 1px)}.miniDay.event .miniDayHatchInnerRing{display:block}.miniDay.event{background:transparent}.miniDay.mjWork{background:#d930258c;border-color:#d93025b3}.miniDay.ninaWork{background:#9333ea94;border-color:#9333eab8}.miniDay.mjTravel{background:#34a85394;border-color:#34a853b8}.miniDay.ninaTravel{background:#1a73e885;border-color:#1a73e8ad}.miniDay.visitor{background:#f2c94ca3;border-color:#f2c94ccc}.miniDay.blackout{background:#5f6368d6;border-color:#3c4043f5}.miniDay.weekend{background:var(--surface-muted);border-color:#e0e0e0}.miniDay.holiday{border-color:#5f636847}.miniDay.holiday .miniDayFill{background:#5f636829}.miniDay.currentDay{border-color:#d98b00;box-shadow:inset 0 0 0 2px #d98b00;z-index:1}.miniDay.out{opacity:0}body.mobile-layout .condensedGrid{grid-template-columns:1fr}@media(max-width:980px){.condensedGrid{grid-template-columns:1fr}}body.mobile-layout .miniDay{border:none;border-top:3px solid rgba(0,0,0,.1);border-radius:0}body.mobile-layout .miniDay.event{border-top-color:transparent}body.mobile-layout .miniDayFill{border:none;border-top:3px solid transparent;border-radius:0}body.mobile-layout .miniDay.weekend{border-top-color:#e0e0e0}body.mobile-layout .miniDay.holiday{border-top-color:#5f636847}body.mobile-layout .miniDay.currentDay{border-top-color:#d98b00;box-shadow:none}.installBanner{display:flex;align-items:center;gap:8px;margin:10px 0 0;padding:8px 10px;border:1px solid var(--info-border);border-radius:var(--radius-panel);background:var(--info-bg);color:var(--info-text);font-size:12px;line-height:1.35}.installBanner.update{border-color:var(--success-border);background:var(--success-bg);color:var(--success-text)}.installBannerText{flex:1}.installBannerAction{flex-shrink:0;padding:4px 10px;border:1px solid currentColor;border-radius:6px;background:transparent;color:inherit;font-size:12px;cursor:pointer;white-space:nowrap}.installBannerDismiss{flex-shrink:0;background:transparent;border:none;color:inherit;opacity:.6;font-size:16px;line-height:1;cursor:pointer;padding:0 2px}body.mobile-layout .installBanner{margin-top:8px;margin-left:6px;margin-right:6px;font-size:11px;padding:7px 8px}dialog{position:relative;border:1px solid var(--border);border-radius:var(--radius-dialog);padding:14px;width:min(420px,calc(100vw - 24px));max-height:calc(100dvh - 28px);overflow:auto;box-sizing:border-box;box-shadow:var(--shadow-dialog)}dialog::backdrop{background:#20212447}.dlgTitle{font-weight:600;margin-bottom:6px;padding-right:32px}.dlgCloseBtn{position:absolute;top:10px;right:10px;width:28px;height:28px;padding:0;border-radius:50%;border:1px solid transparent;background:transparent;cursor:pointer;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--muted, #80868b);flex-shrink:0}.dlgCloseBtn:hover{background:var(--border, #dadce0)}label{display:block;font-size:12px;margin:10px 0 4px;color:var(--muted)}input,textarea,select{width:100%;box-sizing:border-box;padding:8px;border:1px solid var(--border);border-radius:var(--radius-control);font-family:inherit;font-size:13px;background:var(--surface)}textarea{min-height:90px;resize:vertical}.row{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;align-items:center}.dlgActions,.settingsActions,.dialogActions{display:flex;gap:8px;align-items:center}.dialogActionsLeft{margin-right:auto}.dialogActionsRight{display:flex;gap:8px;justify-content:flex-end}.dialogActions button,.dlgActions button{white-space:nowrap}.dialogActionsRight button{min-width:96px}.dialogActionsRight button.primary{min-width:132px}.fieldError{margin-top:6px;font-size:12px;color:var(--danger);display:none}.fieldError.active{display:block}.inputInvalid{border-color:var(--danger)!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 12%,transparent)}.checkboxLabel{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text);margin:0}.checkboxLabel input[type=checkbox]{width:auto;margin:0}.colorLabel{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin:0}.colorLabel input[type=color]{width:40px;min-width:40px;padding:2px;height:30px;border-radius:8px}.fieldHelpRow{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}.fieldHelpRow label{margin:0}.fieldHelpBtn{padding:5px 9px;border-radius:999px;font-size:12px;line-height:1.2}.helpList{margin:8px 0 0;padding-left:18px}.helpList li{margin:4px 0}.helpSection{border:1px solid var(--border);border-radius:var(--radius-panel);padding:12px;background:var(--surface-raised);margin-top:10px}.helpSectionTitle{font-size:13px;font-weight:700;margin-bottom:4px}.shareInviteFields{display:grid;gap:10px;margin-top:8px}.shareInviteField{display:grid;gap:4px}.shareInviteField label{margin:0}#shareInviteMember{justify-self:flex-start}body.mobile-layout dialog{position:fixed;left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px);bottom:0;top:auto;transform:none;width:auto;max-width:none;max-height:calc(100dvh - max(0px,env(safe-area-inset-top)) - max(0px,env(safe-area-inset-bottom)));border-radius:18px 18px 0 0;border-bottom:0;padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px));margin:0;box-sizing:border-box;overflow-x:hidden;overflow-y:auto;box-shadow:0 -14px 36px #20212438}body.mobile-layout dialog::backdrop{background:#2021246b}body.mobile-layout label{margin:8px 0 4px;font-size:11px;min-width:0}body.mobile-layout input,body.mobile-layout textarea,body.mobile-layout select{padding:8px;font-size:16px;line-height:1.25;max-width:100%;min-width:0}body.mobile-layout textarea{min-height:72px}body.mobile-layout .row{margin-top:10px;gap:6px}body.mobile-layout dialog>form,body.mobile-layout dialog>.dialogContent{display:flex;flex-direction:column;width:100%;max-width:100%;min-width:0;box-sizing:border-box}body.mobile-layout .dlgActionsRight,body.mobile-layout .row{min-width:0;max-width:100%;box-sizing:border-box}body.mobile-layout .shareInviteFields{gap:8px;margin-top:6px}#eventViewDialog{width:min(340px,calc(100vw - 24px))}.eventViewTitle{font-size:15px;font-weight:700;line-height:1.25;margin:0 0 6px}.eventViewMeta{font-size:12px;color:var(--muted);line-height:1.35;margin:2px 0}.eventViewActions{justify-content:flex-end;margin-top:12px}.eventViewDesc{margin-top:10px;padding:8px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-code);font-size:12px;line-height:1.35;white-space:pre-wrap;word-break:break-word}.eventSourceList{display:grid;gap:8px;margin-top:10px}.eventSourceRow{display:grid;grid-template-columns:18px 1fr auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-raised)}.eventSourceSwatch{width:18px;height:18px;border:2px solid transparent;border-radius:5px;box-sizing:border-box}.eventSourceSwatchOutline{border-width:4px;background:#fff}.eventSourceBody{min-width:0}.eventSourceTitle{font-size:12px;font-weight:700;line-height:1.3}.eventSourceMeta{color:var(--muted);font-size:11px;line-height:1.3}.eventSourceEdit{min-width:0;padding:5px 8px}body.mobile-layout #eventViewDialog{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(340px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:min(52dvh,360px);border-radius:18px;border-bottom:1px solid var(--border);padding:9px;box-shadow:0 18px 40px #2021243d}body.mobile-layout #eventViewDialog .row{display:grid;grid-template-columns:1fr 1fr;gap:6px;justify-content:stretch!important}body.mobile-layout #eventViewDialog .row button{width:100%;min-width:0}body.mobile-layout #eventViewDialog .eventSourceRow{grid-template-columns:18px 1fr}body.mobile-layout #eventViewDialog .eventSourceEdit{grid-column:2;width:fit-content}body.mobile-layout #viewEdit{text-align:center;justify-content:center}body.mobile-layout .eventViewTitle{font-size:14px}body.mobile-layout .eventViewMeta{font-size:11px}body.mobile-layout .eventViewDesc{font-size:11px;margin-top:8px;padding:7px}#hatchSettingsDialog{width:min(760px,96vw)}#hsYear{max-width:140px}.settingsHint{font-size:12px;color:var(--muted);margin-bottom:8px;line-height:1.35}.settingsGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:12px}.settingsSection{border:1px solid var(--border);border-radius:var(--radius-control);padding:12px;background:var(--surface-code)}.settingsSectionTitle{font-size:12px;font-weight:600;margin-bottom:8px}.settingsDialogContent{display:flex;flex-direction:column;min-width:0}.settingsTabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 10px}.settingsTabBtn{border-radius:999px;padding:7px 12px;font-size:12px}.settingsTabBtn.active{background:var(--text-strong);color:var(--surface);border-color:var(--text-strong)}.settingsAccordion{border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface-code)}.settingsAccordionToggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:0;border-radius:var(--radius-panel);background:transparent;padding:10px 12px}.settingsAccordionLabelGroup{display:grid;gap:2px;min-width:0}.settingsAccordionLabel{font-size:12px;font-weight:700;color:var(--text)}.settingsAccordionMeta{font-size:11px;color:var(--muted);line-height:1.3}.settingsAccordionCaret{font-size:18px;line-height:1;color:var(--muted)}.settingsAccordionBody{padding:0 0 10px}.settingsAccordionBody>.settingsSection,.settingsAccordionBody>.settingsInlineHelp{margin:0 10px 10px}.settingsTabPanel{display:none}.settingsTabPanel.active{display:block}.settingsTabPanelSplit.active{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(220px,1fr);gap:14px;align-items:start}.settingsTabMain,.settingsTabAside{min-width:0}.settingsTabAside{display:grid;gap:14px;align-content:start}.settingsSummarySection{padding:10px 12px}.settingsSummaryList{display:grid;gap:8px;margin-top:8px}.settingsSummaryItem{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;color:var(--muted)}.settingsSummaryItem strong{color:var(--text);font-size:13px;text-align:right}.settingsLegendTitle{margin-top:10px}.settingsLegendGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}.settingsLegendGridPeople{margin-top:0}.settingsLegendField{display:grid;gap:4px;margin:0;min-width:0}.settingsColorFieldLabel{font-size:11px;color:var(--muted)}.settingsLegendInputRow{display:flex;align-items:center;gap:8px;width:100%;min-width:0}.settingsColorButton{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:34px;min-width:0;width:100%;max-width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface-raised);box-shadow:inset 0 1px #fff9;box-sizing:border-box;overflow:hidden}.settingsColorButton.disabled{opacity:.6}.settingsColorButton:focus-within{outline:2px solid var(--accent);outline-offset:2px}.settingsColorInput{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0}.settingsLegendInputRow code{font-size:12px;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settingsPeopleCards{display:grid;gap:10px;margin-top:10px}.settingsPersonCard{border:1px solid var(--border);border-radius:var(--radius-panel);padding:8px;background:var(--surface-raised)}.settingsPersonMeta{margin-bottom:6px;font-size:11px;color:var(--muted);letter-spacing:.02em}.settingsLegendPreview{display:grid;gap:6px;margin-top:10px}.settingsLegendPreviewItem{display:flex;align-items:center;gap:8px}.settingsLegendSwatch{width:18px;height:18px;border-radius:999px;border:1px solid rgba(0,0,0,.12);flex:0 0 auto}.settingsLegendSwatchLarge{width:20px;height:20px}.settingsInlineActions{justify-content:flex-start}.settingsActions{width:100%;margin-top:14px}.settingsActionsCompact{justify-content:flex-end}.settingsActionsSplit{justify-content:space-between;flex-wrap:nowrap}.settingsActionsLeft{display:flex;gap:8px}.settingsActionsRight{display:flex;gap:8px;flex-wrap:nowrap;justify-content:flex-end}.settingsActions button{white-space:nowrap}.settingsInlineHelp{border:1px solid var(--border);border-radius:var(--radius-panel);padding:10px 12px;background:var(--surface-code);font-size:12px;line-height:1.45;margin:12px 0}.settingsInlineHelp strong{display:block;margin-bottom:4px;font-size:12px}.settingsInlineHelp ol{margin:6px 0 0 18px;padding:0}.settingsInlineHelp li+li{margin-top:6px}.hatchControlRow{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:flex-start;margin:10px 0 2px}.hatchControlRow:has(.hatchColorLabel){grid-template-columns:minmax(120px,160px) minmax(0,1fr);align-items:center}.hatchControlRow:has(.hatchColorLabel) .settingsColorFieldLabel{display:none}.hatchColorLabel{font-size:13px;font-weight:600}.hatchControlMeta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.hatchControlMeta .settingsLegendField{width:100%}.settingsSubtle{font-size:12px;color:var(--muted);margin-top:4px;line-height:1.25}body.mobile-layout .settingsGrid,body.mobile-layout .settingsSection,body.mobile-layout .settingsActionsRight,body.mobile-layout .settingsTabMain,body.mobile-layout .settingsTabAside,body.mobile-layout .settingsLegendGrid,body.mobile-layout .settingsPeopleCards{min-width:0;max-width:100%;box-sizing:border-box}body.mobile-layout .settingsGrid,body.mobile-layout .settingsLegendGrid{grid-template-columns:1fr}body.mobile-layout .settingsSection{overflow:hidden;padding:10px}body.mobile-layout .settingsTabPanelSplit.active{grid-template-columns:1fr}body.mobile-layout #hatchSettingsDialog{max-height:calc(100dvh - 12px - env(safe-area-inset-bottom))}body.mobile-layout #settingsTabs{position:sticky;top:-12px;z-index:2;margin:10px -12px;padding:10px 12px 6px;background:linear-gradient(180deg,var(--surface) 0%,var(--surface) 100%);border-bottom:1px solid var(--border)}body.mobile-layout #hatchSettingsDialog .settingsHint{font-size:11px;margin-bottom:6px}body.mobile-layout #hatchSettingsDialog .settingsGrid{gap:12px}body.mobile-layout #hatchSettingsDialog .settingsSection{padding:6px}body.mobile-layout #hatchSettingsDialog .settingsSectionTitle{font-size:11px;margin-bottom:3px}body.mobile-layout #hsYear{max-width:none}body.mobile-layout #hatchSettingsDialog input[type=date]{width:100%;max-width:100%;min-width:0;display:block}body.mobile-layout .settingsTabs{gap:6px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}body.mobile-layout .settingsTabs::-webkit-scrollbar{display:none}body.mobile-layout .settingsTabBtn{flex:0 0 auto;min-width:max-content;justify-content:center}body.mobile-layout .settingsAccordion{margin-top:10px}body.mobile-layout .settingsAccordionBody{padding-bottom:0}body.mobile-layout .hatchControlRow,body.mobile-layout .hatchControlRow:has(.hatchColorLabel){grid-template-columns:1fr;align-items:flex-start}@media(max-width:980px){.settingsGrid,.settingsLegendGrid,.settingsTabPanelSplit.active{grid-template-columns:1fr}}.settingsWorkspace{height:calc(100dvh - var(--toolbar-h));margin:0 -16px -16px;padding:22px 48px 40px;background:var(--surface-subtle);box-sizing:border-box;overflow-x:hidden;overflow-y:auto}.settingsWorkspaceHeader{max-width:min(1760px,calc(100vw - 96px));margin:0 auto 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.settingsWorkspaceHeader h1{margin:0;font-size:22px;line-height:1.15}.settingsWorkspaceHeader p{margin:5px 0 0;color:var(--muted);font-size:13px}.settingsWorkspaceBody{max-width:min(1760px,calc(100vw - 96px));margin:0 auto;display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;align-items:start}.settingsWorkspaceNav{position:sticky;top:12px;display:grid;gap:6px}.settingsWorkspaceNav.settingsTabs{margin:0}.settingsWorkspaceNav .settingsTabBtn{justify-content:flex-start;border-radius:var(--radius-control)}.settingsWorkspace .settingsTabPanel.active{min-width:0}.settingsWorkspace .settingsActions{grid-column:2;position:sticky;bottom:0;z-index:2;margin-top:18px;padding:12px 0 0;background:linear-gradient(180deg,rgba(246,247,248,0) 0%,var(--surface-subtle) 34%)}body.settings-view{overflow:hidden}body.mobile-layout .settingsWorkspace{height:calc(100dvh - var(--toolbar-h) - env(safe-area-inset-top,0px));margin:0;padding:14px 6px calc(24px + env(safe-area-inset-bottom,0px));max-width:100%}body.mobile-layout .settingsWorkspaceHeader{padding:0 6px;align-items:center}body.mobile-layout .settingsWorkspaceHeader h1{font-size:18px}body.mobile-layout .settingsWorkspaceHeader p{display:none}body.mobile-layout .settingsWorkspaceBody{display:block;max-width:100%;min-width:0}body.mobile-layout .settingsWorkspaceNav{position:static;z-index:3;display:flex;overflow-x:auto;gap:6px;padding:8px 6px 10px;margin:0 -6px 10px;background:var(--surface-subtle);border-bottom:1px solid var(--border)}body.mobile-layout .settingsWorkspace .settingsActions{grid-column:auto;margin:14px -6px calc(-24px - env(safe-area-inset-bottom,0px));padding:10px 6px calc(10px + env(safe-area-inset-bottom,0px))}body.mobile-layout .settingsWorkspace *,body.mobile-layout .settingsWorkspace *:before,body.mobile-layout .settingsWorkspace *:after{max-width:100%;box-sizing:border-box}.authNotice{margin:10px 0 0;border:1px solid var(--border);border-radius:var(--radius-panel);padding:8px 10px;font-size:12px;line-height:1.35;background:var(--surface-code);color:var(--text)}.authNotice.info{border-color:var(--info-border);background:var(--info-bg);color:var(--info-text)}.authNotice.success{border-color:var(--success-border);background:var(--success-bg);color:var(--success-text)}.authNotice.error{border-color:var(--error-border);background:var(--error-bg);color:var(--error-text)}#toastContainer{position:fixed;top:12px;right:12px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;padding:10px 16px;border-radius:8px;font-size:14px;max-width:380px;box-shadow:0 2px 8px #0000002e;animation:toastIn .25s ease-out;cursor:pointer}.toast.error{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border)}.toast.success{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}.toast.info{background:var(--info-bg);color:var(--info-text);border:1px solid var(--info-border)}body.mobile-layout .authNotice{margin-top:8px;margin-left:6px;margin-right:6px;font-size:11px;padding:7px 8px}body.mobile-layout #toastContainer{top:calc(12px + env(safe-area-inset-top,0px));right:calc(12px + env(safe-area-inset-right,0px))}#root,#legacy-root{display:contents}:root{--surface: #ffffff;--surface-subtle: #f6f7f8;--surface-muted: #f1f3f4;--surface-raised: #ffffff;--surface-code: #fafafa;--border: #dadce0;--border-strong: #b8c0ca;--text-strong: #17191c;--text: #202124;--muted: #5f6368;--accent: #2563eb;--accent-soft: #dbeafe;--danger: #d93025;--danger-soft: #fce8e6;--focus-ring: #93c5fd;--info-bg: #eef3fd;--info-border: #d2e3fc;--info-text: #174ea6;--success-bg: #e6f4ea;--success-border: #b7dfc0;--success-text: #137333;--error-bg: #fce8e6;--error-border: #f6aea9;--error-text: #a50e0e;--radius-control: 8px;--radius-surface: 8px;--radius-panel: 10px;--radius-dialog: 12px;--shadow-dialog: 0 18px 48px rgba(32, 33, 36, .22);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--z-backdrop: 10;--z-context: 72;--z-sticky: 85;--z-pull: 90;--z-menu: 130;--z-toast: 10000;--t-fast: .16s ease;--t-std: .22s ease;--t-slow: .3s ease;--toolbar-h: 56px;--dow-h: 34px;--wkcol: 56px;--mocol: 90px;--mocol-mobile: 60px;--day-grid-template: repeat(7, 1fr);--date-band-h: 23px;--cell-bottom-pad: 8px;--lane-h: 20px;--lane-gap: 2px;--out-bg: #f8f9fa;--hover: #f1f3f4;--month-line: #1e8e3e;--year-line: #d93025;--wk-hl: #e8f0fe;--wk-hl-dark: #1a73e8;--wk-hl-dark-desktop: #4f8ef7;--today-cell-hl: #dce8ff;--today-badge: #8ab4f8;--today-badge-text: #0b57d0;--select-outline: #c7d2fe;--select-fill: #d0d3d8;--hatch-step: 8px}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);margin:0 16px 16px;background:var(--surface)}body.modalScrollLock{position:fixed;left:0;right:0;overflow:hidden;overscroll-behavior:none}button{min-height:34px;padding:7px 12px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);color:var(--text-strong);cursor:pointer;font-family:inherit;font-weight:500}button.primary{border-color:var(--text-strong);background:var(--text-strong);color:#fff}button.secondary{border-color:var(--border);background:var(--surface);color:var(--text-strong)}button.danger{border-color:var(--danger);background:#fff;color:var(--danger)}button:disabled{opacity:.65;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@keyframes skeletonPulse{0%{background-position:100% 50%}to{background-position:0 50%}}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}body.density-1{--mocol: 86px;--wkcol: 54px;--date-band-h: 19px;--lane-h: 19px;--lane-gap: 2px}body.density-2{--mocol: 96px;--wkcol: 60px;--date-band-h: 28px;--lane-h: 24px;--lane-gap: 3px}body.mobile-layout{--mocol: var(--mocol-mobile);--day-grid-template: 1.12fr 1.12fr 1.12fr 1.12fr 1.12fr .76fr .76fr;margin:10px 0}body.mobile-layout button{padding:6px 7px;border-radius:var(--radius-control);font-size:11px}button,.bar{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.dayCell{-webkit-tap-highlight-color:transparent}body.selectionGestureActive #weeks,body.selectionGestureActive #weeks *{user-select:none!important;-webkit-user-select:none!important;-webkit-touch-callout:none}button:active:not(:disabled){opacity:.72}.dayCell:active:not(.actionDisabled){filter:brightness(.92)}.bar:active{filter:brightness(.88)!important}body.mobile-layout{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.srOnly{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;white-space:nowrap}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--spinner-color, var(--accent));border-radius:50%;animation:spin .8s linear infinite}.spinner.onColor{--spinner-color: rgba(0, 0, 0, .7)}body.mobile-layout .stickyActions{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));align-items:center;gap:6px;position:sticky;bottom:calc(-12px - env(safe-area-inset-bottom,0px));margin:14px -12px calc(-12px - env(safe-area-inset-bottom,0px));padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,rgba(255,255,255,.94) 0%,var(--surface) 40%);border-top:1px solid var(--border)}body.mobile-layout .stickyActions button{width:100%;min-width:0}body.mobile-layout .stickyActions .dialogActionsLeft,body.mobile-layout .stickyActions .dialogActionsRight,body.mobile-layout .stickyActions .dlgActionsRight,body.mobile-layout .stickyActions .settingsActionsLeft,body.mobile-layout .stickyActions .settingsActionsRight{display:contents!important}
