.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}.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)}.viewSegments{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface-muted)}.viewSegments .viewSegment{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:3px 10px;border:0;border-radius:calc(var(--radius-control) - 2px);background:transparent;color:var(--muted);white-space:nowrap}.viewSegments>.viewSegment[aria-pressed=true],.viewSegments>.viewYearGroup[data-active=true]{background:var(--surface);color:var(--text-strong);box-shadow:var(--shadow-segment)}.viewYearGroup{display:inline-flex;align-items:stretch;border-radius:calc(var(--radius-control) - 2px)}.viewYearGroup[data-active=true] .viewSegment{color:var(--text-strong)}.viewSegments .viewYearGroup .viewSegment:first-child{padding-right:6px;border-top-right-radius:0;border-bottom-right-radius:0}.viewSegments .viewSegment.viewCaretButton{padding:3px 7px 3px 5px;border-left:1px solid var(--border);border-top-left-radius:0;border-bottom-left-radius:0}.viewSegments .viewSegment.viewCaretButton[aria-expanded=true]{background:var(--surface-muted)}.viewYearLabel{display:inline-grid;justify-items:center}.viewYearLabel>span{grid-area:1 / 1}.viewYearLabel>.viewYearLabelGhost{visibility:hidden}.viewCaret{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.viewMenuPanel{min-width:170px}.toolbarOverflow .viewMenuPanel button.menuItem{justify-content:space-between;align-items:baseline;gap:var(--space-3)}.viewMenuPanel .menuItem small{color:var(--muted);font-weight:400}.toolbarOverflow .menuPanel button.menuItem[aria-checked=true]{border-color:var(--accent-soft);background:var(--accent-soft);font-weight:600}.yearNav{display:inline-flex;align-items:center;gap:4px}.yearNavLabel{min-width:42px;text-align:center;font-size:14px;font-weight:600;color:var(--text-strong);font-variant-numeric:tabular-nums}.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}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 .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 .viewCaret{width:12px;height:12px}body.mobile-layout .viewSegments .viewSegment{min-height:24px;padding:2px 7px}body.mobile-layout .viewSegments .viewSegment.viewCaretButton{padding:2px 5px 2px 4px}body.mobile-layout .yearNav{gap:2px}body.mobile-layout .yearNav .iconBtn{min-width:24px;padding:0 6px}body.mobile-layout .yearNavLabel{min-width:32px;font-size:13px}body.mobile-layout .menuPanel{min-width:220px;max-width:min(240px,calc(100dvw - 18px))}body.mobile-layout .viewMenuPanel{min-width:160px}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}#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;padding-bottom:var(--space-4)}.condensedGrid{display:grid;grid-template-columns:repeat(var(--year-cols, 3),minmax(0,1fr));grid-template-rows:auto repeat(12,auto);column-gap:var(--space-3)}.yearCol{grid-row:1 / span 13;display:grid;grid-template-rows:subgrid;min-width:0;border:1px solid var(--border);border-radius:var(--radius-surface);padding:var(--space-2) var(--space-2) 6px;background:var(--surface-raised)}.yearCol.current{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.yearHead{display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin:0 0 2px;font-size:13px;font-weight:700}.yearHead small{font-size:10.5px;font-weight:500;color:var(--muted);white-space:nowrap}.monthBlock{--cell-w: 30px;--cell-h: calc(13px + 8px * var(--slot-rows, 1));display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:6px;padding-block:6px;border-top:1px solid var(--yv-rule);min-width:0}.yearHead+.monthBlock{border-top:0}.monthHead{display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:2px;font-size:10.5px;font-weight:700;line-height:13px}.monthHome{font-size:9.5px;font-weight:600;color:var(--yv-home)}.monthWeekdays,.monthGrid{display:grid;grid-template-columns:repeat(7,var(--cell-w));gap:1px}.monthWeekdays{font-size:7.5px;font-weight:700;line-height:9px;color:var(--yv-weekday);text-align:center}.miniDay{position:relative;display:block;height:var(--cell-h);border-radius:2px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--yv-cell-line);cursor:default}.miniDay[role=button]{cursor:pointer}.miniDay.out{visibility:hidden}.miniDay.weekend{background:var(--yv-weekend)}.miniDay.holiday{background:var(--yv-holiday)}.miniDayNum{position:absolute;z-index:1;left:1px;top:1px;padding:0 1px;border-radius:2px;font-size:8px;line-height:9px;color:var(--yv-date);font-variant-numeric:tabular-nums}.miniDay.holiday .miniDayNum{color:var(--text);font-weight:700}.miniDay.currentDay{box-shadow:inset 0 0 0 2px var(--yv-today);z-index:1}.miniDay.currentDay .miniDayNum{color:var(--yv-today);font-weight:800}.miniDaySlots{position:absolute;left:2px;right:2px;bottom:3px;height:calc(8px * var(--slot-rows, 1) - 1px * (var(--slot-rows, 1) - 1));display:grid;grid-template-columns:repeat(var(--slot-cols, 3),minmax(0,1fr));gap:1px}.miniDaySlot{border-radius:1px}.miniDayOther{position:absolute;right:2px;top:3px;width:5px;height:5px;border-radius:50%}.miniDayGuests{position:absolute;left:2px;right:2px;bottom:0;height:2px;border-radius:1px}.miniDay.blackout:before{content:"";position:absolute;inset:0;border-radius:inherit;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--blackout-ink) 70%,transparent) 0 1.2px,transparent 1.2px 3.5px);pointer-events:none}.miniDay.blackout .miniDayNum{background:var(--surface)}.miniDayPeriod{position:absolute;left:0;right:0;top:0;height:2px;display:flex;border-radius:2px 2px 0 0;overflow:hidden}.miniDayPeriod i{flex:1}.miniDay.clickable:hover{filter:brightness(.95)}.miniDay:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px;z-index:2}.monthList{display:grid;align-content:start;min-width:0;margin:0;padding:25px 0 0;list-style:none;font-size:9.5px;line-height:12px}.monthList li{min-width:0}.monthLine{display:block;width:100%;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left;color:var(--text)}button.monthLine{min-height:0;padding:0;border:0;border-radius:2px;background:none;font:inherit;font-weight:400}button.monthLine:hover{background:var(--hover)}.monthLine b{font-weight:700}.monthLine em{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums}.monthLine.period{color:var(--muted)}.monthLine.home{color:var(--yv-home)}body.mobile-layout #condensedView{margin-top:var(--space-2)}body.mobile-layout .monthBlock{--cell-w: 28px;--cell-h: calc(16px + 8px * var(--slot-rows, 1))}body.mobile-layout .monthList{font-size:9px;line-height:11.5px}body.mobile-layout button.monthLine{padding:0;border-radius:2px;font-size:9px}.yearLoadStatus{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-5);color:var(--muted)}.yearRefreshing{position:fixed;left:50%;bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-3);transform:translate(-50%);border:1px solid var(--border);border-radius:999px;background:var(--surface-raised);box-shadow:var(--shadow-segment);color:var(--muted);font-size:12px}.yearRefreshing .spinner{width:12px;height:12px;border-width:2px}#plannerView{margin-top:12px;padding-bottom:var(--space-4)}.plannerGrid{display:grid;grid-template-columns:52px minmax(0,1fr);row-gap:3px}.plannerNums,.plannerCells{display:grid;grid-template-columns:repeat(31,minmax(0,1fr));gap:1px}.plannerNums{font-size:9.5px;font-weight:600;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}.plannerMonthLabel{display:flex;flex-direction:column;padding-top:2px;font-size:11.5px;font-weight:700;line-height:1.15}.plannerMonthLabel small{font-size:9.5px;font-weight:500;color:var(--yv-home)}.plannerTrack{position:relative;height:var(--planner-track-h, 58px)}.plannerCells{position:absolute;inset:0}.plannerCell{border-radius:2px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--yv-cell-line);padding-top:4px;font-size:8.5px;line-height:9px;text-align:center;color:var(--yv-weekday);cursor:pointer}.plannerCell.weekend{background:var(--yv-weekend)}.plannerCell.holiday{background:var(--yv-holiday);color:var(--text)}.plannerCell.void{background:transparent;box-shadow:none;cursor:default}.plannerCell.currentDay{box-shadow:inset 0 0 0 2px var(--yv-today);color:var(--yv-today);font-weight:700}.plannerCell:focus-visible{outline:2px solid var(--focus-ring);outline-offset:0;position:relative;z-index:2}.plannerBar,.plannerPeriod{position:absolute;pointer-events:none}.plannerBar{z-index:1;box-sizing:border-box;display:flex;align-items:center;overflow:hidden;padding-left:3px;border-radius:3px;font-size:9.5px;font-weight:600;line-height:1;white-space:nowrap}.plannerBar.contBefore{border-top-left-radius:0;border-bottom-left-radius:0}.plannerBar.contAfter{border-top-right-radius:0;border-bottom-right-radius:0}.plannerPeriod{z-index:1;height:3px;border-radius:1px}.plannerKey{margin:var(--space-2) 0 0;font-size:10.5px;color:var(--muted)}body.mobile-layout #plannerView{margin-top:var(--space-2)}body.mobile-layout .plannerGrid{grid-template-columns:28px minmax(0,1fr);row-gap:2px}body.mobile-layout .plannerNums{font-size:7px}body.mobile-layout .plannerNums span:nth-child(2n){visibility:hidden}body.mobile-layout .plannerMonthLabel{padding-top:4px;font-size:9.5px}body.mobile-layout .plannerCell{border-radius:1px}body.mobile-layout .plannerPeriod{height:2px}#monthsView{margin-top:12px;padding-bottom:var(--space-4)}.monthCards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 16px}.monthCard{min-width:0;padding:var(--space-2) var(--space-2) 6px;border:1px solid var(--border);border-radius:var(--radius-surface);background:var(--surface-raised)}.monthCardHead{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-1);margin:0 0 var(--space-1);font-size:12.5px;font-weight:700}.monthCardHead small{font-size:9.5px;font-weight:500;color:var(--yv-home);white-space:nowrap}.monthCardWeekdays,.monthCardDays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.monthCardWeekdays{margin-bottom:1px;font-size:8.5px;font-weight:600;color:var(--muted);text-align:center}.monthCardWeek{position:relative;height:var(--card-week-h, 37px)}.monthCardDays{position:absolute;inset:0}.monthCardDay{position:relative;padding-top:2px;font-size:9.5px;line-height:14px;text-align:center;color:var(--text);cursor:pointer}.monthCardDay.weekend{background:var(--yv-weekend);color:var(--muted)}.monthCardDay.out{background:transparent;cursor:default}.monthCardNum{display:inline-block;min-width:14px;border-radius:7px;font-variant-numeric:tabular-nums}.monthCardDay.holiday .monthCardNum{background:var(--yv-holiday);color:var(--text)}.monthCardDay.currentDay .monthCardNum{background:var(--yv-today);color:var(--surface);font-weight:700}.monthCardDay:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px;z-index:2}.monthCardPeriod{position:absolute;top:0;left:0;right:0;height:2px;display:flex}.monthCardPeriod i{flex:1}.monthCardBar{position:absolute;z-index:1;border-radius:2px;pointer-events:none}.monthCardBar.contBefore{border-top-left-radius:0;border-bottom-left-radius:0}.monthCardBar.contAfter{border-top-right-radius:0;border-bottom-right-radius:0}.monthCardsKey{margin:var(--space-2) 0 0;font-size:10.5px;color:var(--muted)}body.mobile-layout #monthsView{margin-top:var(--space-2)}body.mobile-layout .monthCards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 8px}body.mobile-layout .monthCard{padding:6px var(--space-1) var(--space-1);border-radius:7px}body.mobile-layout .monthCardHead{font-size:11px}body.mobile-layout .monthCardDay{padding-top:2px;font-size:8.5px;line-height:11px}body.mobile-layout .monthCardNum{min-width:12px;border-radius:6px}#ringView{margin-top:12px;padding-bottom:var(--space-4)}.ringLayout{display:grid;grid-template-columns:minmax(0,600px) minmax(0,1fr);gap:var(--space-5);align-items:start}.ringSvg{display:block;width:100%;height:auto;cursor:pointer;touch-action:manipulation;font-family:inherit}.ringWrap{position:relative;min-width:0}.ringTip{position:absolute;top:0;left:0;z-index:2;display:grid;gap:var(--space-1);width:max-content;max-width:260px;padding:var(--space-2) 10px;border:1px solid var(--border);border-radius:var(--radius-panel);background:var(--surface-raised);box-shadow:var(--shadow-popover);font-size:12px;pointer-events:none}.ringTipDate{font-weight:700;color:var(--text-strong)}.ringTipItem{display:grid;grid-template-columns:10px minmax(0,1fr);column-gap:var(--space-2);align-items:center}.ringTipItem i{width:10px;height:10px;border-radius:3px}.ringTipItem span{overflow-wrap:anywhere}.ringTipItem em{grid-column:2;font-style:normal;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.ringTrack{fill:var(--surface-muted)}.ringWeekend{fill:var(--yv-cell-line);pointer-events:none}.ringMonth{fill:var(--surface-subtle)}.ringMonth.alt{fill:var(--yv-rule)}.ringMonthRule{stroke:var(--surface);stroke-width:2}.ringMonthLabel{fill:var(--muted);font-size:19px;font-weight:600;text-anchor:middle;dominant-baseline:middle}.ringHoliday{fill:var(--yv-date)}.ringPeriod{opacity:.75}.ringHover{fill:none;stroke:var(--text-strong);stroke-width:2;pointer-events:none}.ringToday line{stroke:var(--yv-today);stroke-width:4;stroke-linecap:round}.ringToday circle{fill:var(--yv-today)}.ringLabel{fill:var(--text);font-weight:700;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.ringYear,.ringDate,.ringStat{text-anchor:middle;pointer-events:none}.ringYear{fill:var(--text-strong);font-size:64px;font-weight:700}.ringDate{fill:var(--yv-today);font-size:20px;font-weight:600}.ringStat{fill:var(--text);font-size:18px}.ringStat.home{fill:var(--yv-home)}.ringAgendaWrap{min-width:0}.ringAgendaHead{margin:0 0 var(--space-1);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.ringAgenda{display:grid;gap:2px;max-height:600px;margin:0;padding:0 var(--space-1) 0 0;overflow:auto;list-style:none;font-size:11.5px}.ringAgenda h4{margin:var(--space-2) 0 2px;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.ringAgendaItem{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:var(--space-2);align-items:center;width:100%;min-height:0;padding:2px 0;border:0;border-radius:2px;background:none;font:inherit;font-weight:400;text-align:left}.ringAgendaItem:hover{background:var(--hover)}.ringAgendaItem i{width:10px;height:10px;border-radius:3px}.ringAgendaItem span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ringAgendaItem em{font-style:normal;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}.ringAgendaItem.past{opacity:.45}.ringAgendaNow{position:relative;margin:var(--space-1) 0;border-top:2px solid var(--yv-today)}.ringAgendaNow span{position:absolute;top:-9px;right:0;padding-left:var(--space-1);background:var(--surface);color:var(--yv-today);font-size:9.5px;font-weight:700}body.mobile-layout #ringView{margin-top:var(--space-2)}body.mobile-layout .ringLayout{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}body.mobile-layout .ringAgenda{max-height:none;overflow:visible}body.mobile-layout button.ringAgendaItem{padding:4px 0;font-size:12px}.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}.dayStepper{display:flex;justify-content:space-between;gap:var(--space-2);margin:var(--space-2) 0 var(--space-1)}.dayStepper button[aria-disabled=true]{opacity:.65;cursor:not-allowed}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);--shadow-segment: 0 1px 2px rgba(32, 33, 36, .16);--shadow-popover: 0 8px 22px rgba(0, 0, 0, .16);--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;--yv-today: #d98b00;--yv-weekend: #eceef1;--yv-holiday: #d9dcdf;--yv-cell-line: rgba(0, 0, 0, .06);--yv-rule: #eceef1;--yv-date: #80868b;--yv-weekday: #9aa0a6;--yv-home: #1e8e3e}html{overflow-y:scroll}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:0 0 10px}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-top:env(safe-area-inset-top,0px);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}
