:root{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;line-height:1.4;--bg: #f6f7fb;--text: #111;--muted: rgba(0, 0, 0, .65);--surface: #ffffff;--surface2: #fafafe;--border: #e6e7ef;--border2: #d9dbe7;--shadow: 0 2px 4px rgba(0, 0, 0, .196);--pagePad: 18px;--headerPadTop: 18px;--headerPadBottom: 10px;--headerPadX: 18px;--tabGap: 8px;--tabPadY: 8px;--tabPadX: 10px;--radiusSm: 10px;--radiusMd: 12px;--radiusLg: 14px;--cardPad: 14px;--listGap: 16px;--blockGap: 12px;--fontBase: 15px;--fontSm: 13px;--fontH2: 18px;--fontH3: 14px;--badge-danger-bg: rgba(200, 40, 40, .18);--badge-danger-border: rgba(200, 40, 40, .3);--badge-danger-text: rgba(200, 40, 40, .95);--badge-danger-bg-strong: rgba(216, 19, 19, .92);--badge-danger-border-strong: rgba(255, 120, 120, .85);--badge-danger-text-strong: #ffffff;--interactive-hover-opacity: .85;--interactive-active-scale: .98;--interactive-focus-ring: 0 0 0 3px color-mix(in srgb, var(--text), transparent 78%)}html[data-theme=midnight]{--bg: #0b1020;--text: #eef0f7;--muted: rgba(238, 240, 247, .7);--surface: #121a33;--surface2: #0e1630;--border: rgba(238, 240, 247, .12);--border2: rgba(238, 240, 247, .18);--shadow: 0 6px 18px rgba(0, 0, 0, .35);--datePickerIconFilter: invert(1)}html[data-theme=ocean]{--bg: #eef6ff;--text: #0a1b33;--muted: rgba(10, 27, 51, .66);--surface: #ffffff;--surface2: #f4faff;--border: #d9e7ff;--border2: #bcd6ff;--shadow: 0 1px 2px rgba(10, 27, 51, .06)}html[data-theme=forest]{--bg: #0d110cf2;--text: #dbe2c9;--muted: rgba(163, 179, 153, .7);--surface: #1b2418;--surface2: #242f20;--border: #2d3a28;--border2: #4e6145;--shadow: 0 4px 12px rgba(0, 0, 0, .6);--datePickerIconFilter: invert(1)}html[data-theme=cyber]{--bg: #0c190c;--text: #11ff00;--muted: rgba(38, 255, 0, .776);--surface: #060d06;--surface2: #19880023;--border: #9ecb9e;--border2: #a9ffa9;--shadow: 0 1px 2px rgba(11, 42, 26, .06);--datePickerIconFilter: invert(1)}html[data-theme=rose]{--bg: #fff1f4;--text: #2a0b12;--muted: rgba(42, 11, 18, .62);--surface: #ffffff;--surface2: #fff7f9;--border: #ffd3dc;--border2: #ffb7c6;--shadow: 0 1px 2px rgba(42, 11, 18, .06)}html[data-theme=contrast]{--bg: #000000;--text: #ffffff;--muted: rgba(255, 255, 255, .78);--surface: #111111;--surface2: #0a0a0a;--border: rgba(255, 255, 255, .22);--border2: rgba(255, 255, 255, .32);--shadow: 0 8px 24px rgba(0, 0, 0, .5);--datePickerIconFilter: invert(1)}html[data-theme=frog]{--bg: #5d8b50;--text: #0a3713;--muted: #535d36;--surface: #ecffdc;--surface2: #e7fee2;--border: #0abe2e;--border2: #089424;--shadow: 0 5px 10px #112e06b3}html[data-theme=midnight] .toggleTrack.off,html[data-theme=contrast] .toggleTrack.off,html[data-theme=forest] .toggleTrack.off{background:#ff505047}html[data-theme=midnight] .toggleTrack.on,html[data-theme=contrast] .toggleTrack.on,html[data-theme=forest] .toggleTrack.on{background:#50ffa038}html[data-theme=midnight] .toggleTrack.mixed,html[data-theme=contrast] .toggleTrack.mixed,html[data-theme=forest] .toggleTrack.mixed{background:#ffc85040}[data-theme=midnight],[data-theme=forest],[data-theme=cyber],[data-theme=contrast]{--badge-danger-bg: var(--badge-danger-bg-strong);--badge-danger-border: var(--badge-danger-border-strong);--badge-danger-text: var(--badge-danger-text-strong)}.plannerFadeColorTop{background:linear-gradient(to bottom,var(--surface),rgba(255,255,255,0))}.plannerFadeColorBot{background:linear-gradient(to top,var(--surface),rgba(255,255,255,0))}html[data-density=compact]{--pagePad: 12px;--headerPadTop: 14px;--headerPadBottom: 8px;--headerPadX: 14px;--tabGap: 6px;--tabPadY: 6px;--tabPadX: 8px;--radiusSm: 9px;--radiusMd: 11px;--radiusLg: 12px;--cardPad: 12px;--fontBase: 13px;--fontSm: 12px;--fontH2: 17px;--fontH3: 13px;--listGap: 8px;--blockGap: 8px}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-size:var(--fontBase)}button,input,select,textarea{font:inherit;color:inherit}ul,ol{list-style:none;margin:0;padding-left:0}.app{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.header{padding:var(--headerPadTop) var(--headerPadX) var(--headerPadBottom);background:var(--surface);border-bottom:1px solid var(--border);color:var(--text);transition:padding .16s ease,box-shadow .16s ease}.stickyHeader{position:sticky;top:0;z-index:90}.brand{max-height:72px;opacity:1;transform:translateY(0);overflow:hidden;transition:max-height .16s ease,opacity .14s ease,transform .16s ease,margin .16s ease}.headerCompact{padding-top:8px;padding-bottom:8px;box-shadow:var(--shadow)}.headerCompact .brand{max-height:0;opacity:0;transform:translateY(-6px);margin:0;pointer-events:none}.tabs{transition:margin-top .16s ease}.headerCompact .tabs{margin-top:0}.brandTitle{font-size:calc(var(--fontBase) + 3px);font-weight:700}.brandSub{font-size:var(--fontSm);color:var(--muted);margin-top:2px}.tabs{display:flex;gap:var(--tabGap);margin-top:12px;flex-wrap:wrap}.tab{border:1px solid var(--border2);background:var(--surface);padding:var(--tabPadY) var(--tabPadX);border-radius:var(--radiusSm);cursor:pointer;font-weight:600;color:inherit;transition:opacity .12s ease,background .12s ease}.tab:hover{opacity:.85;background:var(--surface2)}.tab.active{border-color:var(--text)}.tab.active:hover{opacity:1;background:var(--surface)}.tab:focus-visible,.btn:focus-visible,.iconBtn:focus-visible,.settingsNavItem:focus-visible,.themeChoice:focus-visible,.segmentedBtn:focus-visible,.toggle:focus-visible,.effortGearBtn:focus-visible,.effortCloseBtn:focus-visible,.effortStepBtn:focus-visible,.expandableSummary:focus-visible{outline:none;box-shadow:var(--interactive-focus-ring)}.main{padding:var(--pagePad);max-width:980px;width:100%;margin:0 auto}.mainWide{max-width:1200px}.footer{padding:12px var(--pagePad);border-top:1px solid var(--border);background:var(--surface)}.h2{font-size:var(--fontH2);font-weight:800}.h3{font-size:var(--fontH3);font-weight:800;margin-bottom:6px}.muted{color:var(--muted);font-size:var(--fontSm)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.stack{display:grid;gap:var(--blockGap)}.row{display:flex;gap:14px}.rowWrap{display:flex;flex-wrap:wrap;gap:10px}.card{height:100%;border:1px solid var(--border);border-radius:var(--radiusLg);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.cardBody{height:100%;padding:var(--cardPad)}.btn{display:inline-flex;padding:8px 10px;border-radius:var(--radiusSm);border:1px solid var(--border2);background:var(--surface2);text-decoration:none;color:var(--text);font-weight:700;cursor:pointer;transition:opacity .12s ease}.btn:hover{opacity:var(--interactive-hover-opacity)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:disabled:hover{opacity:.55}.select,input[type=number],input[type=text],input[type=date],textarea{padding:8px 10px;border-radius:var(--radiusSm);border:1px solid var(--border2);background:var(--surface2);color:var(--text);font:inherit}input[type=date]::-webkit-calendar-picker-indicator{filter:var(--datePickerIconFilter, none);cursor:pointer}input[type=date]::-webkit-datetime-edit{color:var(--text)}.capacityValue{display:inline-flex;align-items:baseline;gap:6px}.capacityNumber{display:inline-block;width:4ch;min-width:3ch;text-align:right;font-variant-numeric:tabular-nums}.capacityUnit{white-space:nowrap}input[type=range]{appearance:none;height:28px;background:transparent}input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:color-mix(in srgb,var(--surface2),var(--surface) 20%);border:1px solid var(--border2)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:999px;background:var(--text);border:2px solid var(--surface);margin-top:-4px}input[type=range]::-moz-range-track{height:8px;border-radius:999px;background:color-mix(in srgb,var(--surface2),var(--surface) 20%);border:1px solid var(--border2)}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:999px;background:var(--text);border:2px solid var(--surface)}input[type=range]:focus{outline:none}input[type=range]:focus::-webkit-slider-runnable-track{box-shadow:0 0 0 4px #50a0ff14}.select{appearance:none;-webkit-appearance:none;cursor:pointer}.select:hover{cursor:pointer}.select:disabled{cursor:not-allowed;opacity:.6}.iconBtn{display:inline-flex;align-items:center;justify-content:center;height:36px;width:36px;border-radius:var(--radiusSm);border:1px solid var(--border2);background:var(--surface2);color:var(--text);cursor:pointer;transition:opacity .12s ease}.iconBtn:hover{opacity:var(--interactive-hover-opacity)}.iconBtn:active{transform:scale(var(--interactive-active-scale))}.btnDanger{border-color:#c8282859;background:#c8282814}.settingsFloating{position:fixed;top:10px;right:14px;z-index:100000;background:var(--surface);box-shadow:var(--shadow)}html[data-density=compact] .settingsFloating{top:10px;right:10px}details>summary{list-style:none!important}details>summary::-webkit-details-marker{display:none!important}details>summary::marker{content:""!important}.expandableSummary{cursor:pointer;transition:opacity .12s ease}.expandableSummary:hover{opacity:.92}.expandableSummary .row{align-items:center!important}.expandableSummary .mono{line-height:1}.expandableTitle{font-weight:800;line-height:1.2}.expandableSubtitle{margin-top:2px;font-size:var(--fontSm);color:var(--muted);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.expandableRight{flex-shrink:0}details.expandable>.cardBody{display:grid;gap:var(--blockGap)}details.expandable>.cardBody,.listItem>details>.cardBody,.listItem>.expandable>.cardBody,.expandable .cardBody{height:auto;overflow:visible}.modalOverlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;padding:18px;z-index:3000}.modalPanel{width:min(980px,100%);background:var(--surface);border:1px solid var(--border);border-radius:var(--radiusLg);box-shadow:var(--shadow);overflow:hidden;min-height:60vh;height:68vh;max-height:calc(100vh - 36px);display:flex;flex-direction:column}.modalHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px;border-bottom:1px solid var(--border);background:var(--surface2)}.modalBody{display:grid;grid-template-columns:220px 1fr;flex:1;min-height:0;overflow:hidden}.settingsNav{border-right:1px solid var(--border);background:var(--surface2);padding:10px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;min-height:0}.settingsNavItem{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border-radius:var(--radiusMd);border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;font-weight:800}.settingsNavItem:hover{background:var(--surface);border-color:var(--border)}.settingsNavItem.active{background:var(--surface);border-color:var(--border2)}.settingsNavItem:disabled{opacity:.55;cursor:not-allowed}.pill{font-size:11px;padding:3px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text)}.settingsContent{padding:0 14px 14px;overflow-x:hidden;overflow-y:auto;min-height:0;height:100%}.settingsContent .card{overflow:visible}.settingsContent .cardBody{height:auto}.settingsSectionHeader{position:sticky;top:0;z-index:3;background:var(--surface);border-bottom:1px solid var(--border);padding:6px 0 8px;margin:0 0 12px}.settingsSectionHeader .h3{margin-bottom:4px}.settingsSectionHeader .muted{margin:0}.settingsGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.themeChoice{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radiusMd);border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;transition:opacity .12s ease,border-color .12s ease}.themeChoice:hover{opacity:var(--interactive-hover-opacity)}.themeChoice.active{border-color:var(--text)}.themeChoice.active:hover{opacity:1}.themeSwatch{width:44px;height:32px;border-radius:10px;border:1px solid rgba(0,0,0,.594);flex:0 0 auto}.themeSwatch-classic{background:linear-gradient(135deg,#fff,#f6f7fb)}.themeSwatch-midnight{background:linear-gradient(135deg,#121a33,#0b1020);border-color:#eef0f733}.themeSwatch-ocean{background:linear-gradient(135deg,#fff,#eef6ff)}.themeSwatch-forest{background:linear-gradient(135deg,#678560f2,#242f20);border-color:#0e320d80}.themeSwatch-rose{background:linear-gradient(135deg,#fff,#fff1f4)}.themeSwatch-contrast{background:linear-gradient(135deg,#111,#000);border-color:#ffffff40}.themeSwatch-frog{background:linear-gradient(135deg,#a6e2a9cd,#135714c3)}.themeSwatch-cyber{background:linear-gradient(135deg,#00ff1a7e,#060606);border-color:#459d45}.themeChoiceTitle{font-weight:900}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:10px}.segmentedBtn{padding:12px;border-radius:var(--radiusMd);border:1px solid var(--border);background:var(--surface2);cursor:pointer;text-align:left;transition:opacity .12s ease,border-color .12s ease}.segmentedBtn:hover{opacity:var(--interactive-hover-opacity)}.segmentedBtn.active{border-color:var(--text)}.segmentedBtn.active:hover{opacity:1}.segmentedTitle{font-weight:900}.segmentedDesc{font-size:var(--fontSm);color:var(--muted);margin-top:2px}@media(max-width:760px){.modalBody{grid-template-columns:1fr}.settingsNav{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}.settingsGrid,.segmented{grid-template-columns:1fr}}.list{display:grid;gap:var(--listGap);margin:0;padding:0}.listItem{border:1px solid var(--border);border-radius:var(--radiusLg);background:var(--surface);box-shadow:var(--shadow);overflow:visible}.listItem.dangerItem{border-color:#c8282859;background:#c828280f}.listItem>.expandable,.listItem>details{border:none;border-radius:0;box-shadow:none;background:transparent}.listItem>.expandable .expandableSummary,.listItem>details>summary{padding:var(--cardPad)}.listItem .expandableSummary .row{max-width:100%;overflow:hidden}.listItem>.expandable .expandableBody,.listItem>.expandable .expandableContent,.listItem>details>.cardBody{padding:0 var(--cardPad) var(--cardPad)}.listItem .cardBody{padding:0 var(--cardPad) var(--cardPad)}.preserveWhitespace{white-space:pre-wrap;word-break:break-word}.toggleRow{display:inline-flex;align-items:center;gap:10px}.toggle{display:inline-flex;align-items:center;justify-content:center;height:34px;width:46px;border:1px solid var(--border2);background:var(--surface);border-radius:999px;cursor:pointer;padding:0;transition:opacity .12s ease}.toggle:hover{opacity:var(--interactive-hover-opacity)}.toggle:active{transform:scale(var(--interactive-active-scale))}.toggleTrack{position:relative;width:32px;height:18px;border-radius:999px;transition:background .12s ease}.toggleTrack.off{background:#c82828bf}.toggleTrack.on{background:#14a04659}.toggleTrack.mixed{background:#a0782873}.toggleThumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:999px;background:var(--surface);border:1px solid var(--border);transition:transform .12s ease}.toggleThumb.on{transform:translate(14px)}.toggleThumb.off{transform:translate(0)}.toggleThumb.mixed{transform:translate(7px)}.dangerText{color:#c83c3c;font-weight:800}.dangerMuted{color:#c83c3cd9}.badge{display:inline-flex;align-items:center;padding:1px 8px;border-radius:999px;font-weight:800;font-size:12px;border:2px solid var(--border2);background:var(--surface2);color:var(--text)}.badgeSuccess{border-color:#14a04659;background:#14a0462e;color:#148c3c}.badgeWarn{border-color:#dca02873;background:#dca02838;color:#aa7814}.badgeNeutral{border-color:var(--border2);background:var(--surface2);color:var(--text)}.badgeDanger{background:var(--badge-danger-bg);border-color:var(--badge-danger-border);color:var(--badge-danger-text)}.dangerItem .badgeDanger{background:var(--badge-danger-bg-strong);border-color:var(--badge-danger-border-strong);color:var(--badge-danger-text-strong)}.dangerItem{position:relative;overflow:hidden;border:1px solid rgba(255,80,80,.55);background:#ffffff05;box-shadow:0 0 0 1px #ff50501f,0 6px 10px #0000002e}.dangerItem.isFocused{box-shadow:0 0 0 2px #ff6e6e59,0 14px 32px #00000038}.dangerItem:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:#ff3c3cd9;box-shadow:0 0 18px #ff3c3c59}.dangerItem .assignmentRow{padding-left:8px}.dangerItem .assignmentName{text-shadow:0 0 6px rgba(255,80,80,.35)}.dangerItem .assignmentDetails .preserveWhitespace{color:inherit}.listItem.isFocused{outline:2px solid rgba(255,200,0,.9);box-shadow:0 0 0 6px #ffc8002e}.gradeHiddenPill{display:inline-block;padding:4px 10px;border-radius:999px;border:1px dashed var(--border2);background:var(--surface2);color:var(--muted);font-style:italic}.assignmentRow{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;width:100%}.assignmentMain{flex:1 1 auto;min-width:0;padding:var(--cardPad);display:grid;gap:var(--blockGap)}.assignmentTop{display:grid;gap:6px}.assignmentTitleRow{display:flex;align-items:baseline;justify-content:space-between;gap:14px}.assignmentTitleRowLeft{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:10px;min-width:0}.assignmentName{font-weight:900;font-size:calc(var(--fontBase) + 4px);line-height:1.15}.assignmentPts{margin-left:4px}.assignmentControls{margin-top:var(--blockGap)}.assignmentDetails{margin-top:var(--blockGap);width:100%}.assignmentActions{flex:0 0 auto;padding:var(--cardPad);display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:210px;padding-top:calc(var(--cardPad) + 2px)}.assignmentDueRight{white-space:nowrap;text-align:right}.assignmentDetails details.expandable{border:2px solid var(--border);border-radius:var(--radiusMd);background:var(--surface2);overflow:hidden}.assignmentDetails details.expandable>summary.cardBody.expandableSummary{background:var(--surface2);padding:12px 14px;display:block;border-bottom:1px solid var(--border)}.assignmentDetails details.expandable:not([open])>summary.cardBody.expandableSummary{border-bottom-color:transparent}.assignmentDetails details.expandable>.cardBody.expandableBody{background:var(--surface2);padding:10px 14px 14px}.assignmentDetails .expandableSummary .row{display:flex;align-items:center;gap:10px}.assignmentDetails details[open] .expandableSubtitle{display:none}.assignmentDetails details.expandable>.cardBody,.assignmentDetails details>.cardBody,.assignmentDetails .expandable .cardBody,.assignmentDetails .expandableBody,.assignmentDetails .expandableContent{padding:0 14px 14px}.upcomingPanel{border:1px solid rgba(0,0,0,.08);border-radius:14px;background:color-mix(in srgb,var(--surface),rgba(187,187,187,.617) 10%);overflow:hidden}.upcomingPanelHeader{padding:14px 16px 10px;border-bottom:1px solid rgba(0,0,0,.06);background:var(--surface)}.upcomingPanelTitle{display:flex;align-items:baseline;gap:10px;font-weight:700;font-size:18px}.upcomingPanelCount{font-size:13px;padding:2px 8px;border-radius:999px;border:2px solid rgba(136,136,136,.325);opacity:.85}.upcomingPanelSub{margin-top:4px}.upcomingPanelBody{padding:12px 12px 6px}.upcomingPanelBody .list{margin:0;padding:0}.upcomingPanelBody .listItem{border-radius:12px}.upcomingPanelFooter{padding:10px 16px 14px;border-top:1px solid rgba(0,0,0,.06)}.effortWidget{position:relative;display:grid;gap:0px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radiusMd);background:var(--surface2)}.effortTopRow{display:flex;align-items:center;justify-content:space-between;gap:10px}.effortNumbers{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.effortPill{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;border-radius:999px;border:1px solid var(--border2);background:color-mix(in srgb,var(--surface),var(--surface2) 55%);font-weight:800;font-size:var(--fontSm)}.effortDone{font-size:var(--fontSm);font-weight:900;padding:3px 8px;border-radius:999px;border:1px solid rgba(20,160,70,.35);background:#14a0462e;color:#148c3c}.effortGearBtn{height:34px;width:34px;border-radius:var(--radiusSm);border:1px solid var(--border2);background:var(--surface2);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-weight:600;transition:opacity .12s ease}.effortGearBtn:hover{opacity:var(--interactive-hover-opacity)}.effortGearBtn:active{transform:scale(var(--interactive-active-scale))}.effortBarWrap{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.effortBarTrack{height:12px;border-radius:999px;border:1px solid var(--border2);background:color-mix(in srgb,var(--surface),var(--surface2) 70%);overflow:hidden}.effortBarFill{height:100%;border-radius:999px;width:0%;transition:width .18s ease}.effortBarFill.isRed{background:#dc3c3ce6}.effortBarFill.isYellow{background:#ebb43cf2}.effortBarFill.isYellowGreen{background:#8cc846f2}.effortBarFill.isGreen{background:#1eb45af2}.effortBarMeta{min-width:40px;text-align:right}.effortPopover{border:1px solid var(--border);border-radius:var(--radiusLg);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.effortPopoverHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;border-bottom:1px solid var(--border);background:var(--surface2)}.effortCloseBtn{height:30px;width:30px;border-radius:var(--radiusSm);border:1px solid var(--border2);background:var(--surface2);color:var(--text);cursor:pointer;font-weight:900;display:inline-flex;align-items:center;justify-content:center;line-height:1;transition:opacity .12s ease}.effortCloseBtn:hover{opacity:var(--interactive-hover-opacity)}.effortCloseBtn:active{transform:scale(var(--interactive-active-scale))}.effortPopoverBody{padding:12px;display:grid;gap:12px}.effortFieldLabel{font-weight:900;margin-bottom:6px}.effortFieldRow{display:flex;gap:10px;align-items:center}.effortInput{width:100%;max-width:160px;padding:8px 10px;border-radius:10px;border:1px solid var(--border2);background:var(--surface)}.effortDivider{height:1px;background:var(--border)}.effortCheckboxRow{display:inline-flex;align-items:center;gap:10px;font-weight:800}.effortCheckboxRow input[type=checkbox]{width:16px;height:16px}.effortCta{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;border:1px dashed var(--border2);background:color-mix(in srgb,var(--surface),var(--surface2) 60%);color:var(--text);font-weight:900;cursor:pointer;transition:opacity .12s ease}.effortCta:hover{opacity:.85}.effortStepper{display:inline-flex;gap:6px;align-items:center}.effortStepBtn{height:34px;width:34px;border-radius:var(--radiusSm);border:1px solid var(--border2);background:var(--surface2);color:var(--text);cursor:pointer;font-weight:900;display:inline-flex;align-items:center;justify-content:center;transition:opacity .12s ease}.effortStepBtn:hover{opacity:var(--interactive-hover-opacity)}.effortStepBtn:active{transform:scale(var(--interactive-active-scale))}.effortPopoverAnchored{position:absolute;top:0;left:calc(100% + 10px);width:380px;max-width:min(380px,92vw);z-index:50}@media(max-width:820px){.effortPopoverAnchored{top:calc(100% + 10px);left:0;width:min(420px,92vw)}}.effortActionsRow{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.effortLinkBtn{border:none;background:transparent;color:var(--text);text-decoration:underline;cursor:pointer;font-weight:800;padding:0;justify-self:start;opacity:.85}.effortLinkBtn:hover{opacity:1}.effortInlineSet{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.effortInlineSet .effortInput{width:120px}.effortInput[type=number]::-webkit-outer-spin-button,.effortInput[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.effortInput[type=number]{-moz-appearance:textfield;appearance:textfield}.plannerCard{display:flex;min-height:0;border-radius:var(--radiusLg);overflow:hidden}.plannerBar{width:5px;flex-shrink:0}.plannerBar-original{background:#50a0ffb3}.plannerBar-split{background:#ebaa1ed9}.plannerBar-missing{background:#dc3232d9}.plannerBar-submitted{background:#1eb45ad9}.plannerBar-todo{background:#7850dcbf}.plannerContent{flex:1;min-width:0;overflow:hidden}.plannerUndatedItem{list-style:none}.plannerUndatedContent{padding:12px}.plannerUndatedTopRow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.plannerUndatedMain{min-width:0}.plannerUndatedTitle{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fontBase);font-weight:800;white-space:normal;text-overflow:clip}.plannerUndatedBadge{font-size:11px}.plannerUndatedMeta,.plannerUndatedNotes{margin-top:6px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plannerUndatedAction{align-self:start;min-width:88px;justify-content:center}.plannerUndatedEffort{margin-top:10px}@media(max-width:720px){.plannerUndatedTopRow{grid-template-columns:1fr}.plannerUndatedAction{width:100%}}.plannerTitle{font-size:var(--fontSm);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plannerDayList .card{height:auto;max-height:none;overflow:visible}.plannerDayListShell{position:relative;overflow:hidden;flex:1 1 auto;min-height:0}.plannerDayList{scrollbar-gutter:stable;isolation:isolate;scrollbar-width:thin}.plannerDayList::-webkit-scrollbar{width:10px}.plannerDayList::-webkit-scrollbar-track{background:transparent}.plannerDayList::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text),transparent 75%);border-radius:999px;border:3px solid transparent;background-clip:content-box}.plannerScrollBtn{border-radius:999px;border:1px solid var(--border2);background:color-mix(in srgb,var(--surface),transparent 25%);box-shadow:var(--shadow);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;opacity:.65;transition:opacity .12s ease,transform .12s ease;touch-action:manipulation}.plannerScrollBtn:hover{opacity:1}.plannerScrollBtn:active{transform:scale(.98)}.plannerScrollBtn svg{display:block}.plannerScrollBtn.hidden{display:none}.plannerGrid{align-items:start;align-content:start}.plannerGrid>.card{align-self:start}.plannerDayCard .cardBody{display:flex;flex-direction:column;min-height:0}.plannerDayEmpty{flex:1 1 auto;min-height:0}.plannerDayCardToday{border:2px solid rgba(80,160,255,.55);box-shadow:0 0 0 4px #50a0ff1f}.plannerDayHeader{border-radius:12px;padding:6px 8px}.plannerDayHeaderToday{background:#50a0ff14}.authContainer{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--pagePad);background:var(--bg)}.authPanel{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radiusMd);padding:32px;box-shadow:var(--shadow)}.authTitle{font-size:var(--fontH2);font-weight:600;color:var(--text);margin:0}.authTitleRow{display:flex;align-items:center;gap:8px;margin-bottom:8px}.authTitleRow .authTitle{margin-bottom:0}.authSubtitle{font-size:var(--fontSm);color:var(--muted);margin-bottom:24px}.authProjectBlurb{margin:-12px 0 20px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radiusSm);background:color-mix(in srgb,var(--surface2),var(--surface) 45%);color:var(--muted);font-size:var(--fontSm);line-height:1.55}.authForm{display:flex;flex-direction:column;gap:var(--blockGap)}.authField{display:flex;flex-direction:column;gap:4px}.authField label{font-size:var(--fontSm);font-weight:500;color:var(--text)}.authLabelRow{display:flex;align-items:center;gap:8px}.authInput,.authTextarea{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radiusSm);background:var(--surface2);color:var(--text);font-size:var(--fontBase);font-family:inherit;transition:border-color .2s}.authInputRow{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radiusSm);background:var(--surface2);transition:border-color .2s}.authInputRow:focus-within{border-color:#50a0ff99;background:var(--surface)}.authInput.authInputWithButton{border:none;background:transparent;flex:1}.authInput.authInputWithButton:focus{border:none;background:transparent}.authInputButton{border:none;border-left:1px solid var(--border);background:transparent;color:var(--muted);padding:8px 12px;cursor:pointer;font-size:var(--fontSm);font-weight:600;line-height:1}.authInputButton:hover:not(:disabled){color:var(--text)}.authInputButton:disabled{opacity:.6;cursor:not-allowed}.authInput:focus,.authTextarea:focus{outline:none;border-color:#50a0ff99;background:var(--surface)}.authTextarea{resize:vertical;min-height:100px;font-family:monospace}.authButton{padding:10px 16px;border:none;border-radius:var(--radiusSm);background:#50a0ffd9;color:#fff;font-size:var(--fontBase);font-weight:600;cursor:pointer;transition:background .2s}.authButton:hover:not(:disabled){background:#50a0ff}.authButton:disabled{opacity:.6;cursor:not-allowed}.authButtonDanger{background:#c82828bf}.authButtonDanger:hover:not(:disabled){background:#c82828f2}.authButtonSecondary{background:var(--surface2);color:var(--text);border:1px solid var(--border)}.authButtonSecondary:hover:not(:disabled){background:var(--surface);border-color:var(--border2)}.authError{padding:10px 12px;border-radius:var(--radiusSm);background:var(--badge-danger-bg);color:var(--badge-danger-text);border:1px solid var(--badge-danger-border);font-size:var(--fontSm)}.authSuccess{padding:10px 12px;border-radius:var(--radiusSm);background:#28c8282e;color:#28c828f2;border:1px solid rgba(40,200,40,.3);font-size:var(--fontSm)}.authHint{font-size:var(--fontSm);color:var(--muted);margin:4px 0 0}.authLink{color:#50a0ffd9;text-decoration:none;cursor:pointer;transition:color .2s}.authLink:hover{color:#50a0ff;text-decoration:underline}.authFooter{text-align:center;font-size:var(--fontSm);color:var(--muted);margin-top:16px}.authFooter a{color:#50a0ffd9;text-decoration:none;transition:color .2s}.authFooter a:hover{color:#50a0ff;text-decoration:underline}.authInstructions{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radiusSm);padding:12px;font-size:var(--fontSm);color:var(--text);line-height:1.6}.authInstructions ol{margin:0;padding-left:22px;list-style:decimal}.authInstructions li{margin:4px 0}.authInstructions code{background:var(--surface);padding:2px 4px;border-radius:3px;font-family:monospace;font-size:.9em}.authWarning{margin:10px 0 0;padding:10px 12px;border-radius:var(--radiusSm);border:1px solid rgba(228,178,44,.45);background:#e4b22c1f;color:color-mix(in srgb,var(--text),#6c4b00 25%);font-size:var(--fontSm)}.authInfoBubble{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:999px;border:1px solid transparent;font-size:12px;font-weight:800;line-height:1;padding:0;cursor:help}.authInfoBubble:focus-visible{outline:none;box-shadow:var(--interactive-focus-ring)}.authInfoBubbleAlert{background:#f7d24f;border-color:#d2ad31;color:#3d2b00}.authInfoBubbleInfo{background:color-mix(in srgb,var(--accent, #4f8ef7) 18%,var(--surface2));border-color:color-mix(in srgb,var(--accent, #4f8ef7) 50%,var(--border2));color:var(--accent, #4f8ef7)}.authInfoBubbleNeutral{background:color-mix(in srgb,var(--surface2),var(--surface) 30%);border-color:var(--border2);color:var(--muted)}.authInfoTooltip{position:absolute;top:50%;left:calc(100% + 10px);right:auto;width:min(320px,72vw);padding:10px 12px;border-radius:var(--radiusSm);border:1px solid var(--border2);background:var(--surface);color:var(--text);font-size:var(--fontSm);line-height:1.45;text-align:left;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translate(-4px,-50%);transition:opacity .16s ease,transform .16s ease,visibility .16s ease;z-index:10;pointer-events:none}.authInfoBubble:hover .authInfoTooltip,.authInfoBubble:focus-within .authInfoTooltip,.authInfoBubble:focus .authInfoTooltip{opacity:1;visibility:visible;transform:translateY(-50%)}.authInfoTooltipBelow{top:calc(100% + 8px);left:50%;right:auto;transform:translate(-50%,-4px)}.authInfoBubble:hover .authInfoTooltipBelow,.authInfoBubble:focus-within .authInfoTooltipBelow,.authInfoBubble:focus .authInfoTooltipBelow{transform:translate(-50%)}@media(max-width:520px){.authTitleRow{align-items:flex-start}.authInfoTooltip{top:calc(100% + 10px);left:0;width:min(300px,80vw);transform:translateY(-4px)}.authInfoBubble:hover .authInfoTooltip,.authInfoBubble:focus-within .authInfoTooltip,.authInfoBubble:focus .authInfoTooltip{transform:translateY(0)}}
