.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;overflow:visible}.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}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin:0;padding:0;list-style:none}.toolbarTop:has(.legend){flex-wrap:wrap}.toolbarTop .legend{flex:1 1 0;flex-wrap:nowrap}.toolbarTop:has(.legend) .toolbarRight{flex:0 0 auto;flex-wrap:nowrap}.toolbarTop.legendBelow .legend{order:3;flex-basis:100%;flex-wrap:wrap}.legendChip{display:inline-flex;flex:0 0 auto;align-items:stretch;height:22px;border-radius:11px;overflow:hidden;font-size:11px;font-weight:700;line-height:1;white-space:nowrap;-webkit-user-select:none;user-select:none}.legendName,.legendSeg{display:inline-flex;align-items:center;color:var(--legend-text-light);text-shadow:0 1px 2px rgba(0,0,0,.45)}.legendName{padding:0 7px;background:var(--legend-name-bg);text-shadow:none}.legendSeg{gap:4px;padding:0 6px}.legendSegDark{color:var(--text);text-shadow:none}.legendChipSolo .legendSeg{padding:0 9px 0 7px}.legendEmoji{font-size:12px;text-shadow:none}.status{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}body:not(.mobile-layout) .toolbar>.status{position:absolute;top:100%;right:0;z-index:1;margin-top:4px;padding:2px 8px;border-radius:var(--radius-control);background:var(--surface);white-space:nowrap}.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}.toolbarOverflow{position:relative;display:inline-flex}.menuPanel{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:flex;flex-direction:column;gap:6px}.menuEmail{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:2px}.toolbarOverflow .menuPanel button.menuItem{display:flex;justify-content:flex-start;width:100%;margin:0;text-align:left;border-radius:var(--radius-control)}.menuVersion{display:flex;align-items:center;gap:6px;margin-top:2px;padding:8px 2px 2px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;overflow-wrap:anywhere}.menuVersion svg{flex:0 0 auto;width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.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(--wktab-w) minmax(0,1fr);align-items:center}.dowGutter{height:22px}.dowMonth{display:flex;align-items:baseline;gap:6px;height:18px;padding:0 8px 4px calc(var(--wktab-w) + 8px);color:var(--text);font-size:13px;font-weight:700;line-height:18px;white-space:nowrap}.dowMonthYear{color:var(--muted);font-size:11px;font-weight:500}.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}.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)}.mobileContextWeek{margin-top:2px;font-size:12px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}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 .toolbarTop{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 .toolbarTop.legendBelow{row-gap:5px}body.mobile-layout .legendChip{font-size:10px}body.mobile-layout .legendName{padding:0 5px}body.mobile-layout .legendSeg{gap:3px;padding:0 4px}body.mobile-layout .legendChipSolo .legendSeg{padding:0 6px 0 5px}body.mobile-layout .legendEmoji{font-size:11px}body.mobile-layout .iconBtn{min-width:30px;padding:0 8px}body.mobile-layout .iconBtn svg{width:14px;height:14px}body.mobile-layout .menuPanel{min-width:220px;max-width:min(240px,calc(100dvw - 18px))}body.mobile-layout .dowHeader{padding:4px 0 3px}body.mobile-layout .dowRow .dowCells{padding:0 4px}body.mobile-layout .dowMonth{padding-left:calc(var(--wktab-w) + 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 .mobileContextWeek{margin-top:0;line-height:1;white-space:nowrap}body.mobile-layout .mobileContextYear{font-size:12px}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}.weeksLoading{overflow-anchor:none}.weekRow{display:grid;grid-template-columns:var(--wktab-w) minmax(0,1fr);border-top:1px solid var(--border);background:var(--surface)}.weekRow:first-child{border-top:0}.wkTab{display:flex;align-items:center;justify-content:center;border-right:1px solid var(--border);background:var(--surface);-webkit-user-select:none;user-select:none}.wkTabLabel{writing-mode:vertical-rl;transform:rotate(180deg);padding:5px 1px;border-radius:4px;box-shadow:0 0 0 1px var(--border);background:var(--surface);color:var(--muted);font-size:9px;font-weight:600;line-height:1;letter-spacing:.3px;font-variant-numeric:tabular-nums;white-space:nowrap}.weekRow.currentWeek .wkTabLabel{background:var(--wk-tab-current-bg);box-shadow:none;color:var(--wk-tab-current-text)}.weekRow .dayCell.currentDay{background-color:var(--today-cell-hl)}.weekRow .dayCell.currentDay .dayNum{background:var(--today-badge);color:var(--today-badge-text);font-weight:700;box-shadow:inset 0 0 0 1px var(--today-badge-ring)}.weekRow .dayCell.currentDay:hover{background-color:var(--today-cell-hover)}.dayHead{display:flex;align-items:center;gap:4px;min-width:0}.dayMonth{margin-top:-4px;font-size:10px;font-weight:700;line-height:1;color:var(--month-line);white-space:nowrap;pointer-events:none}.dayMonth.dayMonthYearStart{color:var(--year-line)}body.mobile-layout .dayMonth{font-size:9px}.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 .dayNum{font-size:14px;width:26px;height:26px}body.density-2 .holidayName{font-size:11px}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}#condensedView.active{height:var(--condensed-panel-h, auto);box-sizing:border-box;overflow:hidden}#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}#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}#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}#condensedView.active .miniWeek{flex:1 1 0;align-items:stretch}#condensedView.active .miniMonth{display:flex;align-items:center;justify-content:flex-end;font-size:var(--scaled-mini-month-font, 10px)}#condensedView.active .miniDay{height:auto;min-height:0;margin:1px}body.mobile-layout #condensedView.active .miniDay{margin:0 1px}.miniDayFill{position:absolute;inset:0;border-radius:inherit;pointer-events:none}#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:rgb(var(--palette-red-rgb) / .55);border-color:rgb(var(--palette-red-rgb) / .7)}.miniDay.ninaWork{background:#9333ea94;border-color:#9333eab8}.miniDay.mjTravel{background:rgb(var(--palette-green-rgb) / .58);border-color:rgb(var(--palette-green-rgb) / .72)}.miniDay.ninaTravel{background:rgb(var(--palette-blue-rgb) / .52);border-color:rgb(var(--palette-blue-rgb) / .68)}.miniDay.visitor{background:rgb(var(--palette-yellow-rgb) / .64);border-color:rgb(var(--palette-yellow-rgb) / .8)}.miniDay.blackout{background:rgb(var(--palette-grey-rgb) / .84);border-color:#3c4043f5}.miniDay.weekend{background:var(--surface-muted);border-color:#e0e0e0}.miniDay.holiday{border-color:rgb(var(--palette-grey-rgb) / .28)}.miniDay.holiday .miniDayFill{background:rgb(var(--palette-grey-rgb) / .16)}.miniDay.currentDay{border-color:#d98b00;box-shadow:inset 0 0 0 2px #d98b00;z-index:1}.miniDay.currentDay.event:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 2px #d98b00;pointer-events:none;z-index:3}.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-radius:0}body.mobile-layout .miniDayHatchOutline{--mini-day-hatch-stroke-radius: 0px;inset:-3px 0 auto;width:100%;height:calc(100% + 3px)}body.mobile-layout .miniDay.clickable:focus-visible{outline-offset:-2px}body.mobile-layout .miniDay.weekend{border-top-color:#e0e0e0}body.mobile-layout .miniDay.holiday{border-top-color:rgb(var(--palette-grey-rgb) / .28)}body.mobile-layout .miniDay.currentDay{border-top-color:#d98b00;box-shadow:none}body.mobile-layout .miniDay.currentDay.event:after{inset:-3px 0 auto;height:3px;box-shadow:none;background:#d98b00}.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}.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)}body.mobile-layout .authNotice{margin-top:8px;margin-left:6px;margin-right:6px;font-size:11px;padding:7px 8px}.authNotice.sourceErrorNotice{position:fixed;left:50%;bottom:var(--space-4);transform:translate(-50%);width:min(720px,calc(100% - 2 * var(--space-4)));margin:0;z-index:var(--z-menu);display:flex;flex-direction:column;gap:var(--space-1);box-shadow:var(--shadow-dialog)}.sourceErrorNoticeActions{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-1)}.sourceErrorNoticeAction{padding:2px 8px;font-size:inherit;border:1px solid var(--error-border);border-radius:var(--radius-panel);background:transparent;color:var(--error-text);cursor:pointer}body.mobile-layout .authNotice.sourceErrorNotice{bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));width:calc(100% - 2 * var(--space-3));margin:0}dialog{position:fixed;inset:0;margin:auto;height:fit-content;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}body:not(.mobile-layout) #shareDialog .dialogActions,body:not(.mobile-layout) #setupDialog .dialogActions{margin-top:var(--space-3)}.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 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));max-height:none;overflow:visible}.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{padding:9px}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}body.mobile-layout #eventViewDialog .eventViewActions.stickyActions{position:static;margin:12px 0 0;padding:0;background:none;border-top:0}#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 #hsYear{max-width:none}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(--settings-top, 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.settings-view{margin-bottom:0}body.mobile-layout .settingsWorkspace{height:calc(100dvh - var(--settings-top, calc(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}body.mobile-layout .settingsWorkspace .settingsWorkspaceNav{max-width:none}#errorFallback{box-sizing:border-box;width:calc(100% - 32px);margin:12px auto 0;border:1px solid var(--border);border-radius:var(--radius-panel);padding:16px;background:var(--surface-raised);max-width:640px}.errorFallbackTitle{font-size:16px;font-weight:600;margin-bottom:4px}.errorFallbackText{color:var(--muted);font-size:13px;line-height:1.4}.errorFallbackActions{display:flex;gap:10px;margin-top:14px}.errorFallbackBuild{margin-top:14px;color:var(--muted);font-size:11px}#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;--palette-blue-rgb: 26 115 232;--palette-green-rgb: 52 168 83;--palette-yellow-rgb: 242 201 76;--palette-grey-rgb: 95 99 104;--palette-red-rgb: 217 48 37;--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-sticky: 85;--z-pull: 90;--z-menu: 130;--t-fast: .16s ease;--t-std: .22s ease;--t-slow: .3s ease;--toolbar-h: 56px;--dow-h: 34px;--wktab-w: 16px;--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;--today-cell-hl: #dce8ff;--today-badge: #8ab4f8;--today-badge-text: #0b57d0;--today-badge-ring: rgba(11, 87, 208, .1);--today-cell-hover: #d2e3fc;--legend-name-bg: #3c4043;--legend-text-light: #ffffff;--wk-tab-current-bg: #1a73e8;--wk-tab-current-text: #ffffff;--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}body.density-1{--date-band-h: 19px;--lane-h: 19px;--lane-gap: 2px}body.density-2{--date-band-h: 28px;--lane-h: 24px;--lane-gap: 3px}body.mobile-layout{--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}
