:root{--ds-color-bg: #efedec;--ds-color-surface: #ffffff;--ds-color-surface-sunken: #f9f8f7;--ds-color-surface-hover: rgba(34, 34, 34, .06);--ds-color-surface-selected: #e6e3e1;--ds-color-inverse: #222222;--ds-color-inverse-hover: #3d3a39;--ds-color-ink: #222222;--ds-color-ink-soft: #4f4a48;--ds-color-ink-faint: #66615e;--ds-color-ink-placeholder: #75706d;--ds-color-ink-disabled: #8a8583;--ds-color-disabled-bg: #d6d2d0;--ds-color-on-inverse: #ffffff;--ds-color-on-inverse-soft: #c9c3c1;--ds-color-line: #dfdad9;--ds-color-line-strong: #c9c3c1;--ds-color-line-input: #8f8986;--ds-color-line-ink: #222222;--ds-color-danger: #b3261e;--ds-color-danger-bg: #fbeae8;--ds-color-warn: #8a5a00;--ds-color-warn-bg: #fbf3df;--ds-color-warn-line: #e2c27a;--ds-color-ok: #2f7a4f;--ds-color-ok-bg: #e8f3ec;--ds-color-info: #2f5f9e;--ds-color-info-bg: #eaf0f8;--ds-color-focus: #222222;--ds-font-ja: "Zen Kaku Gothic New", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;--ds-font-en: "Inter", "Zen Kaku Gothic New", "Hiragino Sans", sans-serif;--ds-font-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", Consolas, monospace;--ds-space-1: 4px;--ds-space-2: 8px;--ds-space-3: 12px;--ds-space-4: 16px;--ds-space-6: 24px;--ds-radius-xs: 2px;--ds-radius-sm: 4px;--ds-radius-md: 8px;--ds-radius-lg: 16px;--ds-radius-pill: 999px;--ds-shadow-0: none;--ds-shadow-2: 0 0 1px rgba(34, 34, 34, .16), 0 6px 16px -6px rgba(34, 34, 34, .16);--ds-shadow-3: 0 0 1px rgba(34, 34, 34, .16), 0 24px 48px -16px rgba(34, 34, 34, .28);--ds-border: 1px solid var(--ds-color-line);--ds-border-strong: 1px solid var(--ds-color-line-strong);--ds-border-input: 1px solid var(--ds-color-line-input);--ds-focus-ring: 2px solid var(--ds-color-focus);--ds-focus-offset: 3px;--ds-control-h-sm: 32px;--ds-ease: cubic-bezier(.4, .4, 0, 1);--ds-dur-fast: .12s;--ds-dur: .2s}@media(pointer:coarse){:root{--ds-control-h-sm: 44px}}:root{color-scheme:light;--bg: var(--ds-color-bg);--panel-bg: var(--ds-color-surface);--border: var(--ds-color-line);--text: var(--ds-color-ink);--text-muted: var(--ds-color-ink-faint);--accent: var(--ds-color-inverse);--accent-weak: var(--ds-color-surface-selected);--busy: var(--ds-color-disabled-bg);--busy-text: var(--ds-color-ink-soft);--warn-bg: var(--ds-color-warn-bg);--warn-border: var(--ds-color-warn-line);--ok-bg: var(--ds-color-ok-bg);--ok-border: var(--ds-color-ok);--shadow-1: var(--ds-shadow-0);--shadow-2: var(--ds-shadow-2);--shadow-3: var(--ds-shadow-3);--ease: var(--ds-ease);--dur-fast: var(--ds-dur-fast);--dur: var(--ds-dur)}*{box-sizing:border-box}body{margin:0;font-family:var(--ds-font-ja);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;overflow-x:hidden}.layout{max-width:1280px;margin:0 auto;padding:24px}.layout--study{--sap-nav: #232f3e;--sap-nav-ink: #ffffff;--sap-nav-ink-soft: #d5dbdb;--sap-aws-orange: #ff9900;--sap-accent: #0972d3;--sap-accent-strong: #033160;--sap-accent-ink: #ffffff;--sap-accent-weak: #f0f7fd;--sap-bg: #f2f3f3;--sap-surface: #ffffff;--sap-surface-2: #f7f8f8;--sap-ink: #16191f;--sap-ink-soft: #414d5c;--sap-ink-faint: #687078;--sap-border: #d5dbdb;--sap-dot: rgba(35, 47, 62, .07);--sap-overdue: #d91515;--sap-overdue-bg: #fff7f7;--sap-today: #8d6605;--sap-today-bg: #fffbea;--sap-upcoming: #037f0c;--sap-upcoming-bg: #f2fcf3;max-width:none;width:100%;min-height:100vh;padding:0 0 80px;color:var(--sap-ink);background:radial-gradient(var(--sap-dot) 1px,transparent 1px) 0 0 / 22px 22px,var(--sap-bg);font-family:var(--ds-font-ja);line-height:1.6}@media(prefers-color-scheme:dark){.layout--study{--sap-nav: #0f1b2a;--sap-nav-ink: #e9ebed;--sap-nav-ink-soft: #97a3b0;--sap-aws-orange: #ff9900;--sap-accent: #42b4ff;--sap-accent-strong: #89bdee;--sap-accent-ink: #0f1b2a;--sap-accent-weak: #1a2a3a;--sap-bg: #0f1b2a;--sap-surface: #192534;--sap-surface-2: #232f3e;--sap-ink: #e9ebed;--sap-ink-soft: #b4bfc9;--sap-ink-faint: #7d8998;--sap-border: #414d5c;--sap-dot: rgba(66, 180, 255, .1);--sap-overdue: #ff7a7a;--sap-overdue-bg: #3b1a1a;--sap-today: #f0a73b;--sap-today-bg: #33280f;--sap-upcoming: #4cc26b;--sap-upcoming-bg: #12301b;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4), inset 0 1px 0 rgba(255, 255, 255, .03);--shadow-2: 0 2px 6px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .04);--shadow-3: 0 8px 28px -8px rgba(0, 0, 0, .6), inset 0 1px 0 rgba(255, 255, 255, .06)}}.layout--calendar,.layout--todo,.layout--jobhunt,.layout--courses{color-scheme:light;--bg: #efedec;--panel-bg: #ffffff;--border: #dfdad9;--text: #222222;--text-muted: #66615e;--accent: #222222;--accent-weak: #e6e3e1;--busy: #d6d2d0;--busy-text: #4f4a48;--warn-bg: #fbf3df;--warn-border: #e2c27a;--ok-bg: #e8f3ec;--ok-border: #2f7a4f;--sap-nav: #222222;--sap-nav-ink: #ffffff;--sap-nav-ink-soft: #c9c3c1;--sap-aws-orange: #2c2f3c;--sap-accent: #222222;--sap-accent-strong: #000000;--sap-accent-ink: #ffffff;--sap-accent-weak: #e6e3e1;--sap-bg: #efedec;--sap-surface: #ffffff;--sap-surface-2: #f9f8f7;--sap-ink: #222222;--sap-ink-soft: #4f4a48;--sap-ink-faint: #66615e;--sap-border: #dfdad9;--sap-dot: transparent;--sap-overdue: #b3261e;--sap-overdue-bg: #fbeae8;--sap-today: #8a5a00;--sap-today-bg: #fbf3df;--sap-upcoming: #2f7a4f;--sap-upcoming-bg: #e8f3ec;--shadow-1: none;--shadow-2: var(--ds-shadow-2);--shadow-3: var(--ds-shadow-3);background:var(--bg)}.layout--study:has(.sap-portal--toeic){--sap-nav: #0b1f4a;--sap-nav-ink: #ffffff;--sap-nav-ink-soft: #c5d0e0;--sap-aws-orange: #c9a227;--sap-accent: #1a4f9c;--sap-accent-strong: #0b1f4a;--sap-accent-ink: #ffffff;--sap-accent-weak: #eef3fa;--sap-bg: #f4f1ea;--sap-surface: #fffcf7;--sap-surface-2: #f7f3ea;--sap-ink: #1a2233;--sap-ink-soft: #4a5568;--sap-ink-faint: #6b778c;--sap-border: #d9d2c5;--sap-dot: rgba(11, 31, 74, .07);background:radial-gradient(var(--sap-dot) 1px,transparent 1px) 0 0 / 22px 22px,var(--sap-bg)}@media(prefers-color-scheme:dark){.layout--study:has(.sap-portal--toeic){--sap-nav: #071433;--sap-nav-ink: #f4f1ea;--sap-nav-ink-soft: #9aa8c2;--sap-aws-orange: #d4b45a;--sap-accent: #7aa2e0;--sap-accent-strong: #d4b45a;--sap-accent-ink: #071433;--sap-accent-weak: #152448;--sap-bg: #0c1528;--sap-surface: #142038;--sap-surface-2: #1b2a46;--sap-ink: #eef2f8;--sap-ink-soft: #b7c2d6;--sap-ink-faint: #8090ab;--sap-border: #2c3c5a;--sap-dot: rgba(201, 162, 39, .12)}}.toeic-mark{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.toeic-mark-name{font-family:Georgia,Times New Roman,serif;font-size:1.35rem;font-weight:700;letter-spacing:.08em;color:var(--sap-nav);background:var(--sap-aws-orange);padding:2px 10px 1px;line-height:1.2}.layout--study:has(.sap-portal--toeic) .toeic-mark-name{color:#0b1f4a}.toeic-mark-sub{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sap-ink-soft);font-weight:600}.sap-portal--toeic .sap-top h1{letter-spacing:0}.sap-portal--toeic .sap-stat,.sap-portal--toeic .sap-exam-starter,.sap-portal--toeic .sap-add-form{border-radius:var(--ds-radius-md)}.toeic-web-form{border-color:var(--sap-aws-orange);border-top-width:3px}.layout--study .app-header--study{max-width:none;margin:0 0 20px;padding:0;background:var(--sap-nav);border-bottom:1px solid var(--sap-aws-orange);position:relative;z-index:50}.layout--study .app-header--study .tab-bar{max-width:1400px;margin:0 auto;padding:0 20px}.hub-back{display:inline-flex;align-items:center;justify-content:center;gap:4px;flex:0 0 auto;min-height:var(--ds-control-h-sm);color:var(--sap-nav-ink-soft);text-decoration:none;font-size:12px;padding:0 4px 0 0;white-space:nowrap}.hub-back:hover{color:var(--sap-nav-ink)}.layout--study .tab-button{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;color:var(--sap-nav-ink-soft)}.layout--study .tab-button:hover:not(.is-active){background:#ffffff14;color:var(--sap-nav-ink)}.layout--study .tab-button.is-active{background:#ffffff29;color:var(--sap-nav-ink);box-shadow:inset 0 -2px #fff}.sap-wrap{max-width:1040px;margin:0 auto;padding:12px 20px 0}.env-banner{margin:-24px -24px 20px;padding:8px 16px;background:var(--warn-bg);border-bottom:1px solid var(--warn-border);color:#7a4b00;font-size:13px;font-weight:600;text-align:center}.app-header h1{font-size:20px;margin:0 0 4px}.app-header p{margin:0 0 12px;color:var(--text-muted);font-size:13px;line-height:1.6}.community-switcher{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px 24px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.community-switcher-row{display:flex;flex-direction:column;gap:6px}.community-chips{display:flex;gap:8px}.community-viewer{display:flex;flex-direction:column;gap:6px;font-size:13px}.community-viewer select{min-width:140px}.community-hint{margin:0;font-size:12px;color:var(--text-muted);line-height:1.5;max-width:28em}.legend{display:flex;flex-wrap:wrap;gap:12px 16px;font-size:12px;color:var(--text-muted)}.main{display:grid;grid-template-columns:340px 1fr;gap:20px;align-items:start}.panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:20px;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}.field-group h2{font-size:13px;font-weight:600;color:var(--text-muted);margin:0 0 10px;text-transform:uppercase;letter-spacing:.04em}.field-group{padding-bottom:16px;border-bottom:1px solid var(--border)}.field-group:last-child{border-bottom:none;padding-bottom:0}.field{display:flex;flex-direction:column;gap:4px;font-size:13px;margin-bottom:10px}.field-label{color:var(--text-muted);font-size:12px}input,select{font:inherit;padding:6px 8px;border:var(--ds-border-input);border-radius:var(--ds-radius-sm);background:#fff;color:var(--text)}input::placeholder,textarea::placeholder{color:var(--ds-color-ink-placeholder)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--ds-color-ink-soft)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ds-color-ink);box-shadow:0 0 0 1px var(--ds-color-ink)}input:disabled,select:disabled,textarea:disabled{background:var(--ds-color-surface-sunken);border-color:var(--ds-color-line);color:var(--ds-color-ink-disabled);cursor:not-allowed}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row-tight{display:flex;align-items:center;gap:6px;margin-bottom:6px}.row-sep{color:var(--text-muted);font-size:12px}.busy-row{flex-wrap:wrap}.busy-row select{flex:1.4;min-width:0}.busy-row select.busy-calendar{flex:1 1 100%;min-width:12rem}.busy-row input[type=time]{flex:1;min-width:0}.busy-label-input{flex:1.6;min-width:0}.busy-sync{color:var(--text-muted);font-size:12px}.icon-button{border:none;background:transparent;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;padding:4px 6px;border-radius:6px}.icon-button:hover{background:#f1f1f3;color:var(--text)}.add-button{border:1px dashed var(--border);background:transparent;color:var(--accent);font-size:12px;padding:6px 10px;border-radius:6px;cursor:pointer;width:100%}.add-button:hover{background:var(--accent-weak)}.weekday-row{display:flex;gap:4px}.weekday-chip{flex:1;border:1px solid var(--border);background:#fff;color:var(--text-muted);border-radius:6px;padding:6px 0;font-size:12px;cursor:pointer}.weekday-chip.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.result{display:flex;flex-direction:column;gap:12px;min-width:0}.legend-item{display:flex;align-items:center;gap:6px}.legend-swatch{width:12px;height:12px;border-radius:3px;display:inline-block}.legend-busy{background:var(--busy)}.legend-slot{background:var(--accent)}.week-grid{display:grid;grid-template-columns:48px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.week-grid.is-fill{height:100%;min-height:0}.week-grid-corner{grid-column:1;grid-row:1;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--sap-surface-2, #fafafb)}.week-grid-headers{grid-column:2;grid-row:1;display:grid;min-width:0}.time-axis{grid-column:1;grid-row:2;position:relative;border-right:1px solid var(--border);min-height:0}.time-axis-label{position:absolute;transform:translateY(-50%);font-size:10px;color:var(--text-muted);right:8px}.day-columns{grid-column:2;grid-row:2;display:grid;min-width:0;min-height:0}.week-grid.is-fill .day-columns,.week-grid.is-fill .time-axis{height:100%}.day-column{border-right:1px solid var(--border);min-width:0;min-height:0}.week-grid.is-fill .day-column{height:100%}.day-column:last-child{border-right:none}.day-header{display:flex;flex-direction:column;align-items:center;gap:0;font-size:12px;padding:8px 0 6px;border:0;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:var(--sap-surface-2, #fafafb);color:inherit;font-family:inherit;width:100%;appearance:none;cursor:default}button.day-header{cursor:pointer}.week-grid-headers .day-header:last-child{border-right:none}.day-header-weekday{color:var(--text-muted);font-size:11px}.day-header-date{font-weight:700}.day-header.is-today{background:var(--sap-today-bg, #fffbea);color:var(--sap-today, #8d6605)}.day-header-todos{margin-top:2px;min-width:16px;height:16px;padding:0 5px;border-radius:999px;background:var(--sap-accent-weak, #f0f7fd);color:var(--sap-accent, #0972d3);font-size:10px;font-weight:700;line-height:16px}.day-header-places{display:flex;flex-direction:column;gap:2px;width:100%;padding:2px 4px 0;min-width:0}.day-header-place{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:700;line-height:1.3;padding:1px 4px;border-radius:3px;background:#e4f4f1;color:#0d7377}.day-header-place.is-more{background:transparent;color:var(--text-muted);font-weight:600}.day-column.is-today{background:color-mix(in srgb,var(--sap-today-bg, #fffbea) 55%,transparent)}.day-body{position:relative;overflow:hidden}.day-body.is-placeable{cursor:cell}.week-grid.is-fill .day-body{height:100%}.now-line{position:absolute;left:0;right:0;height:2px;background:var(--sap-overdue, #d91515);z-index:3;pointer-events:none}.now-line:before{content:"";position:absolute;left:0;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--sap-overdue, #d91515)}.hour-line{position:absolute;left:0;right:0;border-top:1px solid #f0f0f2;pointer-events:none}.block{position:absolute;left:2px;right:2px;border-radius:4px;font-size:10px;padding:2px 4px;overflow:hidden;line-height:1.3;cursor:default}.block-busy{background:var(--busy);color:var(--busy-text)}.block-busy.is-editable{cursor:pointer}.block-open{position:absolute;inset:0;z-index:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.block-open:focus-visible{outline:2px solid currentColor;outline-offset:-2px}.block-busy .block-title,.block-busy .block-actual{position:relative;z-index:1;pointer-events:none}.block-busy.is-done{opacity:.6;filter:saturate(.4)}.block-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-actual{display:flex;align-items:center;gap:3px;margin-top:1px;overflow:hidden;font-size:.92em;line-height:1.25;white-space:nowrap;font-variant-numeric:tabular-nums}.block-delay{flex-shrink:0;padding:0 3px;border-radius:3px;background:var(--sap-overdue, #d91515);color:#fff;font-weight:700}.block-planned{text-decoration:line-through;opacity:.75}.block-actual-time{font-weight:700}.block-actual-btn{position:absolute;top:1px;right:2px;z-index:2;padding:0 6px;border:1px solid currentColor;border-radius:999px;background:color-mix(in srgb,currentColor 8%,transparent);color:inherit;font:inherit;font-size:.88em;font-weight:700;line-height:1.5;white-space:nowrap;cursor:pointer}.block-busy:has(.block-actual-btn) .block-title{padding-right:34px}.block-actual-btn:hover{box-shadow:0 0 0 1px currentColor inset}.block-slot{background:var(--accent);color:#fff;box-shadow:0 0 0 1px #fff inset}.block-slot.is-ai{background:var(--sap-upcoming, #037f0c)}.block-slot.is-todo{background:#5c4fc9;color:#fff;z-index:1}.block-slot.is-wake{background:#c9782a;color:#fff;z-index:1;min-height:18px}.block.is-conflict{background:var(--sap-overdue-bg, #fff7f7);color:var(--sap-overdue, #d91515);box-shadow:0 0 0 1px var(--sap-overdue, #d91515) inset;font-weight:700;z-index:2}.block-slot.is-conflict{background:var(--sap-overdue, #d91515);color:#fff}.month-grid{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;overflow:hidden}.month-grid-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));flex-shrink:0;border-bottom:1px solid var(--border);background:var(--sap-surface-2, #fafafb)}.month-grid-weekday{padding:8px 4px;text-align:center;font-size:11px;color:var(--text-muted);font-weight:600}.month-grid-body{flex:1;min-height:0;display:grid}.month-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-height:0;border-bottom:1px solid var(--border)}.month-week:last-child{border-bottom:none}.month-cell{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:0;min-height:0;overflow:hidden;padding:4px 6px 6px;border:0;border-right:1px solid var(--border);background:var(--panel-bg);color:inherit;font-family:inherit;text-align:left;appearance:none;cursor:pointer}.month-cell:last-child{border-right:none}.month-cell.is-outside{background:var(--sap-surface-2, #fafafb);color:var(--text-muted)}.month-cell.is-today{background:var(--sap-today-bg, #fffbea)}.month-cell.is-conflict{box-shadow:inset 3px 0 0 var(--sap-overdue, #d91515)}.month-cell-num{font-size:12px;font-weight:700;line-height:1.2}.month-cell-chips{container-type:inline-size;display:flex;flex-direction:column;gap:2px;min-height:0;overflow:hidden}.month-chip{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.3;padding:1px 4px;border-radius:3px}.month-chip.is-busy{background:var(--busy);color:var(--busy-text)}.month-chip.is-slot{background:var(--accent);color:#fff}.month-chip.is-conflict{background:var(--sap-overdue-bg, #fff7f7);color:var(--sap-overdue, #d91515);font-weight:700}.month-chip.is-todo{background:var(--sap-accent-weak, #f0f7fd);color:var(--sap-accent, #0972d3)}.month-chip.is-wake{background:#fff4e5;color:#9a4d00;font-weight:700}.month-chip.is-place{background:#e4f4f1;color:#0d7377;font-weight:700}@container (max-width: 58px){.month-chip-lead{display:none}}.month-chip.is-more{color:var(--text-muted);padding-left:4px}.explanation{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.summary{font-size:14px;font-weight:600;padding:8px 12px;border-radius:8px;margin-bottom:8px}.summary.is-full{background:var(--ok-bg);border:1px solid var(--ok-border)}.summary.is-short{background:var(--warn-bg);border:1px solid var(--warn-border)}.blocker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.blocker{font-size:12px;padding:8px 10px;border:1px solid var(--border);border-radius:8px}.blocker-head{display:flex;justify-content:space-between;font-weight:600;margin-bottom:2px}.blocker-lost{color:var(--text-muted);font-weight:400}.blocker-detail{color:var(--text-muted)}.blocker-hint{margin-top:4px;color:var(--accent)}.chat-section{margin-top:20px;width:100%}.chat-panel{display:grid;grid-template-columns:1fr 1fr;gap:20px;width:100%}@media(max-width:900px){.chat-panel:not(.is-dock){grid-template-columns:1fr}}.chat-panel.is-dock{display:flex;flex-direction:column;height:100%;min-height:0;gap:0;flex:1}.chat-panel.is-dock .chat-panel-left{flex:1;min-height:0;border:0;border-radius:0;padding:12px;background:var(--sap-surface, var(--panel-bg))}.chat-panel.is-dock .chat-transcript{max-height:none;min-height:0}.chat-panel-left{display:flex;flex-direction:column;background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;padding:16px;min-width:0}.chat-panel-left h2{font-size:14px;margin:0 0 10px}.chat-panel-right{display:flex;flex-direction:column;gap:12px;min-width:0}.chat-transcript{flex:1;min-height:360px;max-height:560px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px;margin-bottom:10px}.chat-empty{color:var(--text-muted);font-size:13px;padding:12px}.chat-bubble{max-width:85%;padding:8px 12px;border-radius:10px;font-size:13px;line-height:1.6;white-space:pre-wrap}.chat-bubble-user{align-self:flex-end;background:var(--accent);color:#fff}.chat-bubble-assistant{align-self:flex-start;background:#f1f1f4;color:var(--text)}.chat-typing{align-self:flex-start;font-size:12px;color:var(--text-muted)}.tool-trace{align-self:stretch;border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:11px}.tool-trace-call{background:#f7f7fb}.tool-trace-result{background:#fbfbfd}.tool-trace-result.is-error{background:#fff0f0;border-color:#e08a8a}.tool-trace-head{color:var(--text-muted);margin-bottom:4px;font-weight:600}.tool-trace pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--text);max-height:200px;overflow-y:auto}.ask-user-card{align-self:stretch;background:var(--accent-weak);border:1px solid var(--accent);border-radius:8px;padding:10px 12px;font-size:13px}.ask-user-question{margin-bottom:8px}.ask-user-options{display:flex;flex-wrap:wrap;gap:6px}.ask-user-options button{border:1px solid var(--accent);background:#fff;color:var(--accent);border-radius:999px;padding:4px 12px;font-size:12px;cursor:pointer}.ask-user-options button:hover{background:var(--accent);color:#fff}.usage-trace{align-self:center;font-size:10px;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.notice{font-size:12px;padding:8px 12px;border-radius:8px;margin-bottom:10px}.notice-info{background:#eef4ff;border:1px solid #a9c4f5}.notice-warn{background:var(--warn-bg);border:1px solid var(--warn-border)}.notice-error{background:#fdecec;border:1px solid #e08a8a}.chat-input-row{display:flex;gap:8px}.google-connect-link{display:inline-block;font-size:13px}.calendar-select-list{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.calendar-select-item{display:flex;align-items:center;gap:6px;font-size:13px}.calendar-color-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;flex:none}.chat-input-row input{flex:1 1 auto;min-width:0}.chat-input-row button{border:none;background:var(--accent);color:#fff;border-radius:var(--ds-radius-sm);padding:0 16px;min-height:var(--ds-control-h-sm);font-size:13px;font-weight:700;white-space:nowrap;flex:0 0 auto;cursor:pointer}.chat-input-row button:disabled{background:var(--ds-color-disabled-bg);color:var(--ds-color-ink-disabled);cursor:not-allowed}.patch-card{align-self:stretch;background:#fff;border:1px solid var(--accent);border-radius:10px;padding:10px 12px;font-size:12px}.patch-card-intent{color:var(--text-muted);font-size:11px;margin-bottom:2px}.patch-card-summary{font-weight:600;margin-bottom:8px}.patch-op-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.patch-op{border-top:1px solid var(--border);padding-top:6px}.patch-op-head{display:flex;align-items:center;gap:6px;margin-bottom:2px}.patch-op-badge{background:var(--accent);color:#fff;font-size:10px;padding:1px 6px;border-radius:999px}.patch-op-title{font-weight:600}.patch-op-time{color:var(--text-muted);font-size:11px}.patch-op-time.is-error{color:#c0392b}.patch-op-reason{color:var(--text-muted);font-size:11px;margin-top:2px}.tab-bar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:var(--ds-space-2);margin-top:0;position:relative}.tab-bar-main{display:flex;flex-wrap:nowrap;align-items:center;gap:var(--ds-space-1);min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-snap-type:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;padding:6px;scroll-padding-inline:32px}.tab-bar-main::-webkit-scrollbar{display:none}.tab-bar-main[data-overflow=end]{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 24px),transparent)}.tab-bar-main[data-overflow=start]{-webkit-mask-image:linear-gradient(to right,transparent,#000 24px);mask-image:linear-gradient(to right,transparent,#000 24px)}.tab-bar-main[data-overflow=both]{-webkit-mask-image:linear-gradient(to right,transparent,#000 24px,#000 calc(100% - 24px),transparent);mask-image:linear-gradient(to right,transparent,#000 24px,#000 calc(100% - 24px),transparent)}.tab-button{position:relative;flex:0 0 auto;height:32px;padding:0 var(--ds-space-3);border:var(--ds-border);background:var(--panel-bg);border-radius:var(--ds-radius-sm);font-family:inherit;font-size:13px;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;scroll-snap-align:start;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.tab-button.is-active{background:var(--accent);border-color:var(--accent);color:#fff}@media(pointer:coarse){.tab-button:after{content:"";position:absolute;inset:-6px 0}}.study-plan-page{display:flex;flex-direction:column;gap:16px}.study-plan-card{background:var(--sap-surface, var(--panel-bg));border:1px solid var(--sap-border, var(--border));border-radius:14px;padding:18px 20px;box-shadow:var(--shadow-1)}.study-plan-archive{margin-top:18px}.study-plan-archive .study-plan-card{margin-top:12px}.study-plan-card h2{font-size:15px;text-transform:none;letter-spacing:0;color:var(--sap-ink, var(--text))}.study-plan-calendar-badge{margin-left:8px;font-size:12px;font-weight:400;color:var(--sap-ink-soft, var(--text-muted))}.study-plan-progress-bar{height:8px;background:var(--sap-surface-2, var(--border));border-radius:99px;overflow:hidden;margin:8px 0}.study-plan-progress-fill{height:100%;background:var(--sap-accent, var(--accent))}.study-plan-gantt{display:flex;gap:2px;flex-wrap:wrap;margin:8px 0 12px}.study-plan-gantt-cell{width:8px;height:16px;border-radius:2px;background:var(--sap-surface-2, var(--border))}.study-plan-gantt-planned{background:var(--sap-today, #c98a2c)}.study-plan-gantt-done{background:var(--sap-upcoming, #2f8f5b)}.study-plan-preview{margin-top:8px}.study-plan-preview-list{font-size:12px;color:var(--sap-ink-soft, var(--text-muted));margin:6px 0;padding-left:18px}.study-plan-session-list{font-size:13px;margin:8px 0;padding-left:0;list-style:none}.study-plan-session-list li{display:flex;align-items:center;gap:6px;padding:2px 0}.study-plan-delete-button{margin-top:10px;color:var(--sap-overdue, #c0392b);background:none;border:1px solid var(--sap-overdue, #e08a8a)}.sap-portal{display:flex;flex-direction:column;color:var(--sap-ink)}.sap-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:22px}.sap-top h1{font-size:1.65rem;margin:0 0 8px;font-weight:700;text-wrap:balance;text-transform:none;letter-spacing:-.015em;line-height:1.35;color:var(--sap-ink)}.sap-top p{color:var(--sap-ink-soft);font-size:.88rem;margin:0;max-width:56ch;line-height:1.75}.sap-exam-date{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:.85rem;color:var(--sap-ink-soft)}.sap-exam-date input[type=date]{font:inherit;padding:2px 6px;border:1px solid var(--sap-border);border-radius:6px}.sap-today-badge{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.78rem;color:var(--sap-ink-soft);border:1px solid var(--sap-border);border-radius:99px;padding:6px 14px;background:var(--sap-surface);white-space:nowrap}.sap-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:22px}.sap-stat{background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow-1)}.sap-stat-num{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:1.9rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.15}.sap-stat-unit{font-size:.9rem;color:var(--sap-ink-faint);margin-left:2px}.sap-stat-lbl{font-size:.72rem;color:var(--sap-ink-faint);margin-top:4px;letter-spacing:.06em}.sap-stat.is-overdue .sap-stat-num{color:var(--sap-overdue)}.sap-stat.is-today .sap-stat-num{color:var(--sap-today)}.sap-curve{margin:0 0 24px;padding:18px 20px 10px;background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:14px;box-shadow:var(--shadow-1)}.sap-curve svg{max-width:100%;height:auto;display:block;margin:0 auto}.sap-curve figcaption{font-size:.82rem;color:var(--sap-ink-soft);text-align:center;margin-top:8px;padding-top:10px;border-top:1px dashed var(--sap-border)}.sap-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.sap-archive{margin:-4px 0 16px;padding:8px 12px 4px;border:1px dashed var(--sap-border);border-radius:12px;background:var(--sap-bg)}.sap-archive summary{cursor:pointer;font-size:.8rem;color:var(--sap-ink-soft);list-style:none}.sap-archive summary::-webkit-details-marker{display:none}.sap-archive summary:before{content:"▸ "}.sap-archive[open] summary:before{content:"▾ "}.sap-archive .sap-filter-row{margin:10px 0 6px}.sap-filter-btn.is-archive{font-weight:400}.sap-archive-date{display:block;font-size:.68rem;opacity:.75;margin-top:2px}.sap-ended-banner{font-size:.84rem;line-height:1.45;color:var(--sap-ink-soft);background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:10px;padding:10px 12px;margin-bottom:14px}.sap-filter-btn{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.76rem;letter-spacing:.02em;border:1px solid var(--sap-border);background:var(--sap-surface);color:var(--sap-ink-soft);border-radius:99px;padding:7px 14px;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.sap-filter-btn:hover{border-color:var(--sap-accent);color:var(--sap-accent);box-shadow:var(--shadow-1)}.sap-filter-btn.is-active{background:var(--sap-accent);border-color:var(--sap-accent);color:var(--sap-accent-ink);box-shadow:var(--shadow-2)}.sap-view-row{gap:4px;border-bottom:1px solid var(--sap-border);margin-bottom:16px}.sap-view-btn{display:inline-flex;align-items:center;gap:8px;font-family:inherit;font-size:.92rem;font-weight:700;color:var(--sap-ink-faint);background:none;border:none;border-bottom:3px solid transparent;border-radius:0;padding:8px 14px;margin-bottom:-1px;cursor:pointer;transition:color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.sap-view-btn:hover{color:var(--sap-accent)}.sap-view-btn.is-active{color:var(--sap-accent-strong);border-bottom-color:var(--sap-accent)}.sap-view-count{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.72rem;font-weight:600;color:var(--sap-ink-soft);background:var(--sap-surface-2);border:1px solid var(--sap-border);border-radius:99px;padding:1px 8px}.sap-view-btn.is-active .sap-view-count{color:var(--sap-accent-ink);background:var(--sap-accent);border-color:var(--sap-accent)}.sap-exam-starter{background:var(--sap-surface);border:1px solid var(--sap-accent);border-top-width:3px;border-radius:14px;padding:16px 18px 14px;margin-bottom:18px;box-shadow:var(--shadow-2)}.sap-exam-head{margin:0 0 6px;font-size:1rem;font-weight:700;color:var(--sap-ink)}.sap-exam-paper{border:0;margin:12px 0 0;padding:0}.sap-exam-paper legend{font-size:.82rem;font-weight:700;color:var(--sap-ink)}.sap-exam-paper-options{display:flex;flex-wrap:wrap;gap:8px}.sap-exam-paper-options label{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--sap-border);border-radius:999px;padding:6px 12px;background:var(--sap-surface-2);cursor:pointer}.sap-exam-paper-options label.is-on{border-color:var(--sap-accent);color:var(--sap-accent-strong)}.sap-exam-presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:14px 0 12px}.sap-exam-preset{display:flex;flex-direction:column;gap:2px;text-align:left;font-family:inherit;background:var(--sap-surface-2);border:1px solid var(--sap-border);border-radius:12px;padding:12px 14px;cursor:pointer;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.sap-exam-preset:hover:not(:disabled){border-color:var(--sap-accent);box-shadow:var(--shadow-2);transform:translateY(-1px)}.sap-exam-preset:disabled{opacity:.55;cursor:wait}.sap-exam-preset.is-hard{border-left:3px solid var(--sap-aws-orange)}.sap-exam-preset-label{font-size:.95rem;font-weight:700;color:var(--sap-ink)}.sap-exam-preset-count{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.74rem;color:var(--sap-accent-strong)}.sap-exam-preset-detail{font-size:.76rem;color:var(--sap-ink-soft);line-height:1.5}.sap-exam-custom{margin-top:10px;border-top:1px dashed var(--sap-border);padding-top:10px}.sap-exam-custom summary{cursor:pointer;font-size:.82rem;color:var(--sap-ink-soft)}.sap-exam-custom summary:hover{color:var(--sap-accent)}.sap-item-list{display:flex;flex-direction:column;gap:12px;margin-bottom:22px}.sap-card{position:relative;background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:14px;padding:16px 18px 16px 22px;overflow:hidden;cursor:pointer;box-shadow:var(--shadow-1);transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}.sap-card:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.sap-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--sap-border);transition:width var(--dur) var(--ease)}.sap-card:hover:before,.sap-card.is-selected:before{width:6px}.sap-card--overdue:before{background:var(--sap-overdue)}.sap-card--today:before{background:var(--sap-aws-orange)}.sap-card--upcoming:before{background:var(--sap-upcoming)}.sap-card.is-selected{border-color:var(--sap-accent);box-shadow:0 0 0 1px var(--sap-accent),var(--shadow-3)}.sap-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}.sap-card-main{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.sap-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sap-item-title{font-weight:700;font-size:1rem;overflow-wrap:anywhere}.sap-tag{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.66rem;letter-spacing:.03em;padding:3px 8px;border-radius:99px;border:1px solid var(--sap-border);color:var(--sap-ink-soft);background:var(--sap-surface-2);white-space:nowrap}.sap-tag-chapter{color:var(--sap-accent-strong);border-color:var(--sap-accent)}.sap-tag-pinpoint{color:var(--sap-ink-faint)}.sap-item-note{font-size:.85rem;color:var(--sap-ink-soft);max-width:64ch;margin:0}.sap-item-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:2px}.sap-link-btn{font-size:.74rem;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;text-decoration:none;border:1px solid var(--sap-border);border-radius:8px;padding:5px 10px;color:var(--sap-ink-soft);background:var(--sap-surface-2);cursor:pointer;transition:border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.sap-link-btn:hover:not(:disabled){border-color:var(--sap-accent);color:var(--sap-accent);background:var(--sap-surface);box-shadow:var(--shadow-1)}.sap-link-btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.sap-link-btn:disabled{opacity:.5;cursor:default}.sap-danger-btn{margin-left:auto;color:#b4402f}.sap-danger-btn:hover:not(:disabled){border-color:#b4402f;color:#b4402f}.sap-card-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:0}.sap-next{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.82rem;text-align:right}.sap-next-date{font-weight:700}.sap-status{display:block;font-size:.7rem;margin-top:1px}.sap-status--overdue{color:var(--sap-overdue)}.sap-status--today{color:var(--sap-today)}.sap-status--upcoming{color:var(--sap-upcoming)}.sap-status--done{color:var(--sap-done, #1a7f37);font-weight:700}.sap-stage-dots{display:flex;gap:4px}.sap-stage-dots span{width:7px;height:7px;border-radius:50%;background:var(--sap-border)}.sap-stage-dots span.is-filled{background:var(--sap-accent)}.sap-rate-row{display:flex;gap:6px}.sap-rate-btn{font-size:.72rem;border:1px solid var(--sap-border);background:var(--sap-surface-2);color:var(--sap-ink-soft);border-radius:8px;padding:6px 9px;cursor:pointer;font-family:inherit}.sap-rate-btn:hover:not(:disabled){border-color:var(--sap-accent);color:var(--sap-accent)}.sap-rate-btn--forgot:hover:not(:disabled){border-color:var(--sap-overdue);color:var(--sap-overdue)}.sap-rate-btn--ok:hover:not(:disabled){border-color:var(--sap-today);color:var(--sap-today)}.sap-rate-btn--perfect:hover:not(:disabled){border-color:var(--sap-upcoming);color:var(--sap-upcoming)}.sap-card-extra{margin-top:14px;padding-top:14px;border-top:1px dashed var(--sap-border);cursor:default}.sap-frame{width:100%;min-height:640px;border:1px solid var(--sap-border);border-radius:10px;margin:10px 0;background:var(--sap-surface)}.sap-frame-overlay{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;background:var(--sap-bg)}.sap-frame-overlay-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));border-bottom:1px solid var(--sap-border);background:var(--sap-surface);font-weight:700}.sap-frame-bar-actions{display:flex;align-items:center;gap:8px}.sap-frame-body{position:relative;flex:1;min-height:0;display:flex}.sap-frame-full{flex:1;min-height:0;margin:0;border:0;border-radius:0}.sap-notepad{flex:0 0 min(340px,38vw);width:min(340px,38vw);max-height:none;align-self:stretch;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:0;border-left:1px solid var(--sap-border);border-radius:0;background:var(--sap-surface)}.sap-notepad-input{width:100%;box-sizing:border-box;resize:vertical;padding:8px 10px;border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-bg);color:var(--sap-ink);font:inherit;font-size:13px;line-height:1.6}.sap-notepad-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sap-tag-note{border-color:var(--sap-today);background:var(--sap-today-bg);color:var(--sap-today)}.sap-notepad-answers{border-top:1px solid var(--sap-border);padding-top:10px}.sap-notepad-answers-head{margin:0 0 6px;font-size:.85rem}.sap-notepad-answers .sap-a-fig svg{max-height:220px}.sap-frame-bar-note{font-size:.74rem;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-weight:400;color:var(--sap-ink-faint)}.sap-backfill{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;padding:10px 14px;border:1px solid var(--sap-accent);border-left-width:4px;border-radius:10px;background:var(--sap-surface);font-size:13px}.sap-backfill .sap-reanswer{margin-top:0}.sap-note-carry{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;padding:8px 12px;border:1px solid var(--sap-today);border-radius:10px;background:var(--sap-today-bg);font-size:13px}.sap-note-carry .sap-reanswer{margin-top:0}.sap-feedback{margin:0 0 12px;padding:10px 12px;background:var(--sap-upcoming-bg);border:1px solid var(--sap-upcoming);border-radius:10px;font-size:13px}.sap-feedback-pending{background:var(--sap-today-bg);border-color:var(--sap-today)}.sap-feedback-label{font-size:11px;color:var(--sap-ink-soft);margin-bottom:4px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.sap-coverage{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:space-between;margin:0 0 14px;padding:12px 14px;border:1px solid var(--sap-today);border-radius:12px;background:var(--sap-today-bg);font-size:13px}.sap-coverage.is-overdue{border-color:var(--sap-overdue);background:var(--sap-overdue-bg)}.sap-coverage-text{flex:1 1 20em;min-width:0}.sap-coverage-text p{margin:0 0 6px}.sap-coverage-text p:last-child{margin-bottom:0}.sap-history{margin:20px 0;padding:12px 14px;border:1px solid var(--sap-border);border-radius:12px;background:var(--sap-surface)}.sap-history-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--sap-ink-soft);margin-bottom:6px}.sap-history-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sap-history-legend .lg-bar,.sap-history-legend .lg-line,.sap-history-legend .lg-dot{display:inline-block;margin-left:8px}.sap-history-legend .lg-bar{width:10px;height:10px;border-radius:2px;background:var(--sap-accent);opacity:.35}.sap-history-legend .lg-line{width:14px;height:2px;background:var(--sap-upcoming)}.sap-history-legend .lg-dot{width:8px;height:8px;border-radius:99px;background:var(--sap-accent)}.sap-history svg{width:100%;height:auto;display:block;color:var(--sap-ink)}.sap-mastery{margin:0 0 12px;padding:10px 12px;border:1px solid var(--sap-border);border-radius:10px;font-size:13px}.sap-mastery-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline}.sap-mastery-label{font-size:11px;color:var(--sap-ink-soft);font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.sap-mastery-bar{height:6px;margin:8px 0;border-radius:99px;background:var(--sap-border);overflow:hidden}.sap-mastery-fill{height:100%;background:var(--sap-accent)}.sap-mastery-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.sap-mastery-list li{display:grid;grid-template-columns:44px 1fr;gap:4px 8px;font-size:12px;padding-top:6px;border-top:1px solid var(--sap-border)}.sap-mastery-list li.is-due .sap-mastery-when{color:var(--sap-overdue);font-weight:700}.sap-mastery-when{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;color:var(--sap-ink-soft)}.sap-mastery-text{overflow-wrap:anywhere}.sap-mastery-meta{grid-column:2;font-size:11px;color:var(--sap-ink-soft)}.sap-mastery-more{grid-template-columns:1fr;color:var(--sap-ink-soft)}.sap-details{margin-top:10px}.sap-details summary{cursor:pointer;font-size:.86rem;font-weight:700;color:var(--sap-accent-strong)}.sap-hint{font-size:.82rem;color:var(--sap-ink-soft);margin:8px 0 10px}.sap-field{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--sap-ink-soft);margin:8px 0}.sap-field input,.sap-field textarea,.sap-add-form input,.sap-add-form select,.sap-add-form textarea,.sap-exam-custom input,.sap-exam-custom select,.sap-inline-form input,.sap-inline-form select{font:inherit;font-size:.86rem;padding:8px 10px;border-radius:8px;border:1px solid var(--sap-border);background:var(--sap-bg);color:var(--sap-ink)}.sap-subhead{font-size:.9rem;margin:16px 0 8px}.sap-qa{list-style:none;margin:0 0 10px;padding:0}.sap-qa li{padding:8px 0;border-bottom:1px solid var(--sap-border)}.sap-q{font-size:13px;font-weight:600}.sap-a{font-size:13px;margin-top:4px}.sap-a-text{white-space:pre-wrap}.sap-a-fig{margin:8px 0 12px;padding:12px;background:var(--sap-surface-2);border:1px solid var(--sap-border);border-radius:12px}.sap-a-fig svg{display:block;width:100%;height:auto;max-height:420px;color:var(--sap-accent-strong)}.sap-reanswer{appearance:none;margin-top:6px;padding:0;border:none;background:none;color:var(--sap-accent-strong);font-size:12px;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.sap-reanswer:disabled{opacity:.5;cursor:wait}.sap-add-form{background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:14px;padding:14px 18px;margin-bottom:16px;box-shadow:var(--shadow-1);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}.sap-add-form:hover{box-shadow:var(--shadow-2)}.sap-add-form[open]{border-color:var(--sap-accent);box-shadow:var(--shadow-2)}.sap-add-form summary{cursor:pointer;font-weight:700;font-size:.9rem;list-style:none;padding:2px 0;transition:color var(--dur-fast) var(--ease)}.sap-add-form summary:hover{color:var(--sap-accent-strong)}.sap-add-form[open] summary{margin-bottom:6px}.sap-add-form summary::-webkit-details-marker{display:none}.sap-add-form summary:before{content:"+";display:inline-block;width:1em;color:var(--sap-accent-strong);transition:transform var(--dur) var(--ease)}.sap-add-form[open] summary:before{transform:rotate(45deg)}.sap-add-form[open] summary:before{content:"− "}.sap-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.sap-form-grid label,.sap-inline-form label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--sap-ink-soft)}.sap-full{grid-column:1 / -1}.sap-inline-form{margin-bottom:18px}.sap-welcome{background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:14px;padding:28px clamp(18px,4vw,36px);margin-bottom:18px;box-shadow:var(--shadow-1)}.sap-welcome h2{margin:0 0 10px;font-size:1.25rem;font-weight:700;color:var(--sap-ink)}.sap-welcome>p{margin:0 0 20px;max-width:56ch;font-size:.9rem;line-height:1.8;color:var(--sap-ink-soft)}.sap-welcome-steps{list-style:none;counter-reset:sap-step;margin:0;padding:0;display:grid;gap:12px}.sap-welcome-steps li{counter-increment:sap-step;display:grid;grid-template-columns:28px 1fr;column-gap:12px;align-items:start}.sap-welcome-steps li:before{content:counter(sap-step);grid-row:span 2;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--sap-border);font-size:.8rem;font-weight:700;color:var(--sap-ink-soft)}.sap-welcome-steps+.sap-submit{margin-top:24px}.sap-welcome-steps strong{font-size:.92rem;color:var(--sap-ink)}.sap-welcome-steps span{font-size:.82rem;line-height:1.6;color:var(--sap-ink-soft)}.sap-create-form{background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:14px;padding:14px 18px;box-shadow:var(--shadow-1)}.sap-create-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.sap-create-head h2{margin:0;font-size:1rem}.sap-submit{appearance:none;border:none;background:var(--sap-accent);color:var(--sap-accent-ink);font-weight:600;font-size:.86rem;padding:9px 18px;border-radius:9px;cursor:pointer;font-family:inherit;margin-top:10px}.sap-submit:hover:not(:disabled){filter:brightness(1.06)}.sap-submit:disabled{opacity:.55;cursor:default}.sap-del{font-size:.68rem;color:var(--sap-ink-faint);background:none;border:none;cursor:pointer;text-decoration:underline;padding:0;font-family:inherit}.sap-del:hover{color:var(--sap-overdue)}.sap-error{position:sticky;top:8px;z-index:20;margin:0 0 12px;padding:10px 12px;background:var(--sap-overdue-bg);border:1px solid var(--sap-overdue);border-radius:10px;color:var(--sap-overdue);font-size:.86rem}.sap-empty{text-align:center;color:var(--sap-ink-soft);font-size:.88rem;padding:30px 0}.sap-extra-actions{margin:8px 0 12px;flex-wrap:wrap}.sap-extra-tactic{font-size:.74rem;border:1px solid var(--sap-border);border-radius:8px;padding:4px 8px;color:var(--sap-ink-soft);background:var(--sap-surface-2);max-width:100%}.study-review-calendar{margin:12px 0 4px}.study-review-calendar h3{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:.95rem}.study-review-note{font-size:13px;color:var(--sap-ink-soft, var(--text-muted));margin:6px 0 10px}.login-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}.login-card{display:flex;flex-direction:column;gap:12px;width:100%;max-width:360px;padding:28px;background:var(--panel-bg);border:1px solid var(--border);border-radius:12px}.login-card h1{margin:0;font-size:20px}.login-card p{margin:0;font-size:13px;color:var(--text-muted)}.login-hub{margin:16px 0 0;text-align:center}.login-hub a{color:var(--text-muted);font-size:13px}.account-panel{margin-left:0;font-size:13px;justify-self:end;flex:0 0 auto}.account-panel:not([open])>.account-panel-body{display:none!important}.account-panel summary{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 var(--ds-space-3);cursor:pointer;list-style:none;border:1px solid var(--border);border-radius:var(--ds-radius-sm);background:var(--panel-bg);font-weight:700;white-space:nowrap;flex:0 0 auto}.account-panel .account-icon{display:none;flex:0 0 auto}.account-panel summary::-webkit-details-marker{display:none}.layout--study .account-panel summary{border-color:var(--sap-border);background:var(--sap-surface);color:var(--sap-ink-soft)}.account-panel-body{position:fixed;top:52px;right:max(12px,env(safe-area-inset-right));z-index:80;margin-top:0;width:min(400px,calc(100vw - 24px));max-height:calc(100dvh - 70px);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:14px;background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #1322261f}.layout--study .account-panel-body{background:var(--sap-surface);border-color:var(--sap-border);color:var(--sap-ink)}.layout--study .account-panel summary{background:#ffffff14;border-color:#ffffff2e;color:var(--sap-nav-ink);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.layout--study .account-panel summary:hover{background:#ffffff29}.account-hint{font-size:12px;color:var(--text-muted);margin:0 0 10px}.layout--study .account-hint{color:var(--sap-ink-soft)}.account-list{list-style:none;margin:0 0 10px;padding:0}.account-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}.account-list button,.account-logout{appearance:none;border:none;background:none;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;padding:0}.layout--study .account-list button,.layout--study .account-logout{color:var(--sap-accent-strong)}.account-add{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.account-add select,.account-add input{width:100%;font:inherit}.account-actions{display:flex;gap:10px;flex-shrink:0}.account-logout{margin-top:10px}.weekly-review-settings{margin:0 0 14px;padding:10px 12px 12px;border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:8px}.layout--study .weekly-review-settings{border-color:var(--sap-border)}.weekly-review-settings legend{font-size:12px;font-weight:700;padding:0 4px}.board-labels-settings{margin:0 0 14px;padding:10px 12px 12px;border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:8px}.layout--study .board-labels-settings{border-color:var(--sap-border)}.board-labels-settings legend{font-size:12px;font-weight:700;padding:0 4px}.board-labels-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.board-labels-grid label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--text-muted)}.board-labels-grid input{font:inherit;font-size:14px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel-bg);color:var(--text);min-height:36px}.weekly-review-enable{display:flex;align-items:flex-start;gap:8px;font-size:13px;line-height:1.4}.weekly-review-when{display:flex;gap:8px}.weekly-review-when label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--text-muted);flex:1}.weekly-review-when select,.weekly-review-when input[type=time],.time-select select{font:inherit;font-size:16px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel-bg);min-height:40px}.time-select{display:flex;align-items:center;gap:6px}.time-select select{flex:1;min-width:0}.wake-day-list{display:flex;flex-direction:column;gap:6px}.wake-day-row{display:flex;align-items:center;gap:10px}.wake-day-row>span{width:1.5em;flex-shrink:0;font-size:13px;font-weight:700}.wake-day-row>span.wake-day-label{width:auto;min-width:4.5em}.wake-override{display:flex;flex-direction:column;gap:6px;margin-top:8px}.wake-override input[type=date],.wake-day-row .time-select{flex:1;min-width:0}.weekly-review-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin:0 16px 12px;padding:10px 14px;background:#eef4ff;border:1px solid #a9c4f5;border-radius:10px;color:var(--sap-ink, #132226);flex-shrink:0}.weekly-review-banner p{margin:0;font-size:14px;font-weight:700}.weekly-review-banner-actions{display:flex;gap:8px}.weekly-review-dismiss{background:transparent}.layout--calendar .weekly-review-banner,.layout--todo .weekly-review-banner,.layout--jobhunt .weekly-review-banner{margin:8px 16px}.layout--study button:focus-visible,.layout--study a:focus-visible,.layout--study summary:focus-visible,.layout--study input:focus-visible,.layout--study select:focus-visible,.layout--study textarea:focus-visible{outline:2px solid var(--sap-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){.layout--study *,.layout--study *:before,.layout--study *:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}.sap-card:hover{transform:none}}@media(min-width:721px){.sap-frame-overlay{inset:16px;border-radius:12px;border:1px solid var(--sap-border);box-shadow:0 16px 48px #13222647}.sap-frame-full{border-radius:0 0 12px 12px}}.layout--jobhunt{min-height:100dvh;height:100dvh;padding-bottom:0;overflow:hidden;display:flex;flex-direction:column}.layout--jobhunt .app-header--study{margin-bottom:0;flex-shrink:0}.layout--jobhunt .env-banner{flex-shrink:0;margin:0}.layout--calendar,.layout--todo{min-height:100dvh;height:100dvh;max-width:none;padding:0;overflow:hidden;display:flex;flex-direction:column}.layout--todo .app-header--study,.layout--todo .env-banner,.layout--calendar .app-header--study{margin-bottom:0;flex-shrink:0}.layout--calendar .env-banner{flex-shrink:0;margin:0}.cal-app{flex:1;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);position:relative}.cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:8px 16px;border-bottom:1px solid var(--sap-border);background:var(--sap-surface);flex-shrink:0;grid-row:1;grid-column:1}.cal-week-nav{display:flex;align-items:center;gap:6px}.cal-week-title{margin:0;font-size:16px;font-weight:700;min-width:11em;text-align:center}.cal-icon-btn{width:var(--ds-control-h-sm);height:var(--ds-control-h-sm);flex:0 0 auto;border:1px solid var(--sap-border);border-radius:var(--ds-radius-sm);background:var(--sap-surface);color:var(--sap-ink);font-size:18px;line-height:1;cursor:pointer}.cal-chip{min-height:var(--ds-control-h-sm);padding:0 12px;border:1px solid var(--sap-border);border-radius:var(--ds-radius-sm);background:var(--sap-surface);color:var(--sap-ink-soft);font-family:inherit;font-size:13px;font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;white-space:nowrap}.cal-chip.is-active{background:var(--ds-color-inverse);color:var(--ds-color-on-inverse);border-color:var(--ds-color-inverse)}.cal-chip.is-active .cal-chip-time{color:var(--ds-color-on-inverse-soft)}.cal-status{cursor:default}.cal-status.is-active{background:var(--sap-surface);color:var(--sap-ink);border-color:var(--sap-border)}.cal-status-mark{font-size:13px;font-weight:700}.cal-status-mark.is-full{color:var(--sap-upcoming)}.cal-status-mark.is-short{color:var(--sap-today)}.cal-status-detail{font-size:11px;color:var(--sap-ink-faint)}.cal-toolbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.cal-primary{display:inline-flex;align-items:center;min-height:var(--ds-control-h-sm);padding:0 12px;border-radius:var(--ds-radius-sm);background:var(--sap-accent);color:var(--sap-accent-ink);text-decoration:none;font-size:13px;font-weight:700;white-space:nowrap;flex:0 0 auto}.cal-google-state{font-size:12px;color:var(--sap-ink-faint)}.cal-workspace{flex:1;min-height:0;display:flex;overflow:hidden;grid-row:2;grid-column:1;position:relative}.cal-view-toggle{display:flex;gap:4px}.cal-chip-warn{color:var(--sap-overdue, #b3261e);border-color:var(--sap-overdue, #b3261e);background:var(--sap-overdue-bg, #fbeae8);cursor:default}.cal-chip-time{font-size:11px;font-weight:600;color:var(--sap-ink-faint)}.cal-grid-wrap{flex:1;min-width:0;min-height:0;overflow:hidden;padding:8px 12px 12px;display:flex;flex-direction:column;gap:8px}.cal-workspace.has-chat .cal-grid-wrap{padding-right:8px}.cal-conflict{flex-shrink:0;padding:8px 12px;border-radius:10px;background:var(--sap-overdue-bg, #fff7f7);border:1px solid #f5c2c2;color:var(--sap-overdue, #d91515);font-size:13px;font-weight:600}.cal-error{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:1px solid var(--sap-overdue, #d91515);background:var(--panel-bg);color:var(--sap-overdue, #d91515);font-size:13px;font-weight:600}.cal-error:before{content:"!";flex-shrink:0;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--sap-overdue, #d91515);color:#fff;font-size:11px;line-height:1}.cal-toggle{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid var(--sap-border);border-radius:10px;background:var(--sap-surface-2);font-size:13px;line-height:1.5;cursor:pointer}.cal-toggle input{margin-top:2px;flex-shrink:0}.cal-toggle input:disabled{cursor:not-allowed}.cal-toggle-note{display:block;margin-top:2px;color:var(--sap-ink-faint);font-size:12px}.delay-habit{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 10px;padding:8px 10px;border:1px solid var(--sap-border);border-left:3px solid var(--sap-today, #a06414);border-radius:8px;background:var(--sap-today-bg, #fff8ec);font-size:12px;line-height:1.5}.delay-habit-text{min-width:0}.delay-habit-samples,.estimate-habit-samples{margin-left:6px;color:var(--sap-ink-faint);font-size:11px}.estimate-habit{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:8px 10px;border:1px solid var(--sap-border);border-left:3px solid var(--sap-accent);border-radius:8px;background:var(--sap-accent-weak);font-size:12px;line-height:1.5}.cal-grid-wrap .week-grid.is-fill,.cal-grid-wrap .month-grid{flex:1;min-height:0}.cal-chat{flex:0 0 min(320px,32vw);width:min(320px,32vw);min-height:0;border-left:1px solid var(--sap-border);background:var(--sap-surface);display:flex;flex-direction:column;position:relative;z-index:12;overflow:hidden}.cal-chat .chat-panel.is-dock{min-height:0;overflow:hidden}.cal-chat .chat-input-row{flex-shrink:0}.cal-chat-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px 0;flex-shrink:0}.cal-chat-head h2{margin:0;font-size:13px;letter-spacing:.12em;color:var(--sap-ink-soft)}.cal-sheet-backdrop{display:none}@media(max-width:1200px){.cal-status-detail,.cal-google-state{display:none}.cal-week-title{min-width:0}.cal-chat{flex-basis:min(280px,30vw);width:min(280px,30vw)}.todo-rail{flex-basis:260px;width:260px;min-width:220px}}.cal-hint{margin:0 0 12px;font-size:13px;color:var(--sap-ink-soft);line-height:1.6}.cal-more-fields{margin:12px 0}.cal-more-fields summary{cursor:pointer;font-size:13px;color:var(--sap-ink-soft)}.cal-drawer-root{grid-row:2;grid-column:1;position:relative;z-index:20;display:flex;justify-content:flex-end;min-height:0}.cal-drawer-root.is-closed,.cal-drawer-root[hidden]{display:none!important}.cal-backdrop{position:absolute;inset:0;border:0;background:#13222647;cursor:pointer}.cal-drawer{position:relative;width:min(420px,100%);height:100%;overflow:auto;background:var(--sap-surface);border-left:1px solid var(--sap-border);display:flex;flex-direction:column}.cal-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--sap-border);flex-shrink:0}.cal-drawer-head h2{margin:0;font-size:16px}.cal-drawer-body{padding:14px 16px 24px;overflow:auto}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.jh-app{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;width:100%;max-width:none;padding:0;isolation:isolate}.jh-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:10px 16px;border-bottom:1px solid var(--sap-border);background:var(--sap-surface);flex-shrink:0}.jh-toolbar-views{display:flex;flex-wrap:wrap;gap:4px;padding:3px;border-radius:10px;background:var(--sap-surface-2)}.jh-view-tab{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;white-space:nowrap;min-height:32px;padding:4px 12px;border:none;border-radius:var(--ds-radius-sm);background:transparent;color:var(--sap-ink-soft);font-weight:600;font-size:13px}.jh-view-tab.is-active{background:var(--sap-surface);color:var(--sap-ink);box-shadow:var(--shadow-1)}.jh-view-tab.is-overdue .jh-view-count{background:var(--sap-overdue);color:#fff}.jh-view-count{min-width:1.4em;padding:0 6px;border-radius:999px;background:var(--sap-surface-2);font-size:11px;font-variant-numeric:tabular-nums}.jh-search{flex:1;min-width:160px;max-width:320px;margin:0}.jh-search input{width:100%}.jh-toolbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.jh-more,.jh-add-more{position:relative}.jh-more>summary,.jh-add-more>summary,.jh-more-fields>summary{cursor:pointer;list-style:none;font-size:13px;color:var(--sap-ink-soft)}.jh-more>summary{padding:6px 10px;border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface)}.jh-more>summary::-webkit-details-marker,.jh-add-more>summary::-webkit-details-marker,.jh-more-fields>summary::-webkit-details-marker{display:none}.jh-more:not([open])>.jh-more-menu,.jh-add-more:not([open])>.jh-more-menu{display:none!important}.jh-more-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:40;min-width:180px;padding:6px;display:flex;flex-direction:column;gap:2px;background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:10px;box-shadow:var(--shadow-2)}.jh-more-menu button,.jh-more-menu .jh-empty-hint{text-align:left;padding:8px 10px;border:none;background:none;border-radius:6px}.jh-more-menu button:hover{background:var(--sap-surface-2)}.jh-add-more{margin-left:auto;align-self:center}.jh-add-more .jh-more-menu{right:0}.jh-more-fields{margin-top:12px}.jh-more-fields>summary{margin-bottom:8px}.jh-cred-compact{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-size:13px}.jh-cred-compact button{font:inherit;font-size:12px;padding:4px 8px;border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface);cursor:pointer}.jh-toolbar-actions button,.jh-toolbar-actions a,.jh-task-actions button,.jh-task-actions a,.jh-drawer-actions button,.jh-drawer-actions a,.jh-table-actions button,.jh-table-actions a,.jh-password-row button,.jh-child-actions button,.jh-child>button{font:inherit;font-size:13px;padding:6px 10px;border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface);color:var(--sap-ink);text-decoration:none;cursor:pointer;line-height:1.3}.jh-toolbar-actions .jh-card-open,.jh-card-actions .jh-card-open,.jh-card-actions button{font:inherit;font-size:12px;padding:4px 8px;border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface);color:var(--sap-ink);text-decoration:none;cursor:pointer;line-height:1.3}.jh-toolbar-actions .jh-more-menu button{border:none;background:none;border-radius:6px;padding:8px 10px;text-align:left}.jh-app textarea{font:inherit;padding:8px 10px;border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface);color:var(--sap-ink);width:100%}.jh-cal-badge{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--sap-surface-2);font-size:12px;color:var(--sap-ink-soft)}.jh-filterbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 16px;border-bottom:1px solid var(--sap-border);background:var(--sap-surface);flex-shrink:0}.jh-filter{position:relative}.jh-filter>summary{list-style:none;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--sap-border);border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;background:var(--sap-surface-2)}.jh-filter>summary::-webkit-details-marker{display:none}.jh-filter.is-on>summary{border-color:var(--sap-accent);color:var(--sap-accent)}.jh-filter>summary span{min-width:1.25em;padding:0 5px;border-radius:999px;background:var(--sap-accent);color:var(--sap-accent-ink);font-size:11px;text-align:center}.jh-filter:not([open])>.jh-filter-menu{display:none}.jh-filter-menu{position:absolute;z-index:8;top:calc(100% + 4px);left:0;min-width:180px;max-height:240px;overflow:auto;padding:8px;background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:10px;box-shadow:var(--shadow-2, 0 8px 20px rgba(19, 34, 38, .12));display:flex;flex-direction:column;gap:4px}.jh-filter-menu label{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 6px;border-radius:6px}.jh-filter-menu label:hover{background:var(--sap-surface-2)}.jh-check,.jh-group{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;margin:0}.jh-group select{font-size:12px}.jh-error{margin:0;padding:8px 16px;background:var(--sap-overdue-bg);color:var(--sap-overdue);flex-shrink:0}.jh-workspace{flex:1;min-height:0;overflow:auto;padding:12px 16px 20px}.jh-workspace.is-board{overflow:hidden;padding-bottom:12px;display:flex;flex-direction:column}.jh-workspace.is-calendar{padding:8px 12px 12px}.jh-empty{max-width:420px;margin:48px auto;text-align:center;color:var(--sap-ink-soft)}.jh-empty p{margin:0 0 6px}.jh-empty-hint{margin:0 0 10px;font-size:13px;color:var(--sap-ink-faint)}.jh-today{display:flex;flex-direction:column;gap:8px;max-width:860px}.jh-task{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px 14px;border:1px solid var(--sap-border);border-radius:12px;background:var(--sap-surface);box-shadow:var(--shadow-1)}.jh-task.is-today{background:var(--sap-today-bg);border-color:var(--sap-today)}.jh-task.is-overdue{background:var(--sap-overdue-bg);border-color:var(--sap-overdue)}.jh-task-body{flex:1;min-width:140px}.jh-task-body p{margin:2px 0 0;font-size:13px;color:var(--sap-ink-soft)}.jh-task-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.jh-linkish{border:none;background:none;display:inline-flex;align-items:center;min-height:var(--ds-control-h-sm);padding:0;color:var(--sap-ink);font-weight:700;font-size:15px;cursor:pointer;text-align:left}.jh-linkish:hover{color:var(--sap-accent)}.jh-board-wrap{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0}.jh-board-meta{display:flex;justify-content:flex-end;flex-shrink:0}.jh-text-btn{border:none;background:none;color:var(--sap-ink-soft);font-size:12px;min-height:var(--ds-control-h-sm);padding:0 var(--ds-space-2);border-radius:var(--ds-radius-sm);white-space:nowrap}.jh-board{display:flex;gap:10px;flex:1;min-height:0;overflow-x:auto;overflow-y:hidden;align-items:stretch;padding-bottom:4px}.jh-column{flex:1 1 240px;min-width:220px;max-width:320px;background:var(--sap-surface-2);border:1px solid var(--sap-border);border-radius:12px;padding:8px;display:flex;flex-direction:column;min-height:0}.jh-column.is-empty{flex:0 0 52px;min-width:52px;max-width:52px;padding:8px 4px}.jh-column.is-drop{border-color:var(--sap-accent);background:var(--sap-accent-weak)}.jh-column header{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:700;margin-bottom:8px;color:var(--sap-ink-soft);flex-shrink:0}.jh-column.is-empty header{writing-mode:vertical-rl;text-orientation:mixed;margin:0 auto;height:100%;justify-content:flex-start;gap:10px}.jh-column-cards{flex:1;min-height:0;overflow-y:auto;padding-right:2px}.jh-column.is-empty .jh-column-cards{display:none}.jh-card{display:flex;flex-direction:column;align-items:stretch;gap:6px;width:100%;margin:0 0 8px;padding:10px;text-align:left;background:var(--sap-surface);border:1px solid var(--sap-border);border-left:3px solid var(--sap-border);border-radius:8px;cursor:grab;box-shadow:var(--shadow-1)}.jh-card.is-today{border-left-color:var(--sap-today);background:var(--sap-today-bg)}.jh-card.is-overdue{border-left-color:var(--sap-overdue);background:var(--sap-overdue-bg)}.jh-card.is-selected{border-color:var(--sap-accent);box-shadow:0 0 0 1px var(--sap-accent)}.jh-card-meta{display:flex;flex-wrap:wrap;gap:4px}.jh-badge{display:inline-block;padding:1px 6px;border-radius:999px;background:var(--sap-surface-2);border:1px solid var(--sap-border);font-size:10px;font-weight:700;color:var(--sap-ink)}.jh-badge.is-archive{background:var(--sap-surface-2);color:var(--sap-ink-faint);border-color:var(--sap-border)}.jh-card.is-archived{opacity:.78}.jh-name-cell{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.jh-card .jh-badge{color:var(--sap-ink)}.jh-card-main{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:none;background:none;padding:0;text-align:left;cursor:pointer;min-width:0}.jh-card strong{font-size:13px;overflow-wrap:anywhere;word-break:break-word}.jh-card span,.jh-muted{font-size:11px;color:var(--sap-ink-soft)}.jh-card-actions{display:flex;flex-wrap:nowrap;gap:6px}.jh-card-open{flex:1 1 0;min-width:0;font-size:12px;padding:4px 8px;text-align:center;white-space:nowrap}.jh-table-stack{display:flex;flex-direction:column;gap:16px}.jh-group-title{display:flex;align-items:baseline;gap:8px;margin:0 0 8px;font-size:13px;font-weight:700}.jh-group-title span{font-size:12px;font-weight:600;color:var(--sap-ink-soft)}.jh-table-wrap{overflow:auto;background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:12px}.jh-table{width:100%;min-width:1080px;border-collapse:collapse}.jh-table thead th{position:sticky;top:0;background:var(--sap-surface-2);z-index:2;white-space:nowrap;font-size:12px;color:var(--sap-ink-faint)}.jh-table th:first-child,.jh-table td:first-child{position:sticky;left:0;z-index:1;background:var(--sap-surface);box-shadow:1px 0 0 var(--sap-border)}.jh-table thead th:first-child{z-index:3;background:var(--sap-surface-2)}.jh-sort{border:none;background:none;padding:0;font:inherit;font-weight:700;color:inherit;cursor:pointer}.jh-sort.is-active{color:var(--sap-accent)}.jh-cell-input{width:100%;min-width:120px;font:inherit;font-size:13px}.jh-cal{display:flex;flex-direction:column;gap:8px;min-height:0}.jh-cal-nav{display:flex;align-items:center;gap:8px}.jh-cal-nav h2{margin:0;font-size:1rem;min-width:7.5em}.jh-cal-weekdays,.jh-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.jh-cal-weekdays{font-size:11px;font-weight:700;color:var(--sap-ink-soft);text-align:center}.jh-cal-grid{border:1px solid var(--sap-border);border-radius:12px;overflow:hidden;background:var(--sap-surface)}.jh-cal-day{min-height:92px;padding:6px;border-right:1px solid var(--sap-border);border-bottom:1px solid var(--sap-border);background:var(--sap-surface)}.jh-cal-day.is-out{background:var(--sap-surface-2);color:var(--sap-ink-faint)}.jh-cal-day.is-today{background:var(--sap-today-bg)}.jh-cal-num{display:block;font-size:12px;font-weight:700;margin-bottom:4px}.jh-cal-day ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.jh-cal-chip{display:block;width:100%;border:none;border-radius:6px;padding:2px 5px;font-size:11px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.jh-cal-chip.is-deadline{background:#e8f1fb;color:#1d4f7a}.jh-cal-chip.is-check{background:#eef6e8;color:#3b5a1f}.jh-cal-chip.is-overdue{background:#fdecea;color:#9b2c2c}.jh-overview{display:flex;flex-direction:column;gap:12px}.jh-child-open{border:none;background:none;padding:0;text-align:left;flex:1;min-width:0;cursor:pointer}.jh-child-open p{margin:2px 0 0;font-size:12px;color:var(--sap-ink-soft)}.jh-table th,.jh-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--sap-border);font-size:13px;vertical-align:middle}.jh-table tbody tr{cursor:pointer}.jh-table tbody tr:hover>td{background:#f2f1f0}.jh-table tbody tr.is-selected>td{background:var(--ds-color-surface-selected)}.jh-table tbody tr.is-selected>td:first-child{box-shadow:inset 3px 0 0 var(--ds-color-ink),1px 0 0 var(--sap-border)}.jh-table-actions{display:flex;gap:var(--ds-space-1);align-items:center;justify-content:flex-end;white-space:nowrap}.jh-table td{white-space:nowrap}.jh-table td:first-child{white-space:normal;min-width:140px;word-break:auto-phrase}.jh-table-actions a{display:inline-flex;align-items:center;min-height:var(--ds-control-h-sm)}.jh-backdrop{position:absolute;inset:0;border:none;padding:0;background:#13222647;z-index:20}.jh-drawer{position:absolute;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--sap-surface);border-left:1px solid var(--sap-border);box-shadow:var(--shadow-3);z-index:21;display:flex;flex-direction:column;overflow:hidden}.jh-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px 8px;flex-shrink:0}.jh-drawer-head h2{margin:0 0 8px;font-size:1.15rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.jh-icon-btn{border:none;background:var(--sap-surface-2);width:32px;height:32px;border-radius:8px;font-size:20px;line-height:1;flex-shrink:0}.jh-drawer-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 12px}.jh-cred{margin:0 16px 12px;padding:12px;border:1px solid var(--sap-border);border-radius:12px;background:var(--sap-surface-2);display:flex;flex-direction:column;gap:8px}.jh-cred h3{margin:0;font-size:12px;font-weight:700;color:var(--sap-ink-soft)}.jh-cred-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.jh-drawer-tabs{display:flex;gap:2px;padding:0 12px;border-bottom:1px solid var(--sap-border);overflow-x:auto;flex-shrink:0}.jh-drawer-tabs button{border:none;background:none;padding:8px 10px;font-size:13px;font-weight:600;color:var(--sap-ink-soft);border-bottom:2px solid transparent;white-space:nowrap;display:inline-flex;gap:6px}.jh-drawer-tabs button.is-active{color:var(--sap-ink);border-bottom-color:var(--sap-accent)}.jh-drawer-tabs button span{font-size:11px;color:var(--sap-ink-faint)}.jh-drawer-body{flex:1;overflow:auto;padding:14px 16px 24px}.jh-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.jh-span-2{grid-column:1 / -1}.jh-password-row{display:flex;gap:6px;align-items:center}.jh-password-row input{flex:1;min-width:0}.jh-copied{color:var(--sap-upcoming)}.jh-csv{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:13px}.jh-child{display:flex;flex-direction:column;gap:8px}.jh-child h3{margin:0;font-size:14px}.jh-child ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.jh-child li{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--sap-border)}.jh-child li p{margin:2px 0 0;font-size:12px;color:var(--sap-ink-soft)}.jh-child-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;flex:1;min-width:0}.jh-child-actions{grid-column:1 / -1;display:flex;gap:8px;margin-top:8px}.jh-primary,.jh-toolbar-actions .jh-primary,.jh-task-actions .jh-primary,.jh-drawer-actions .jh-primary,.jh-child-actions .jh-primary{background:var(--sap-accent);color:var(--sap-accent-ink);border-color:var(--sap-accent)}.jh-danger{align-self:flex-start;color:var(--sap-overdue);border-color:var(--sap-overdue)}.jh-drawer-actions .jh-danger{margin-left:auto}.jh-modal-root{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:16px}.jh-modal{position:relative;z-index:31;width:min(560px,100%);max-height:min(90vh,720px);overflow:auto;background:var(--sap-surface);border-radius:14px;padding:8px 16px 16px;box-shadow:var(--shadow-3)}.jh-backdrop.is-modal{z-index:30}@media(min-width:900px){.jh-backdrop:not(.is-modal){display:none}.jh-app.has-drawer{display:grid;grid-template-columns:minmax(0,1fr) min(420px,40vw);grid-template-rows:auto auto auto minmax(0,1fr)}.jh-app.has-drawer>.jh-toolbar{grid-column:1 / -1;grid-row:1}.jh-app.has-drawer>.jh-filterbar{grid-column:1 / -1;grid-row:2}.jh-app.has-drawer>.jh-error{grid-column:1 / -1;grid-row:3}.jh-app.has-drawer>.jh-workspace{grid-column:1;grid-row:4;min-width:0}.jh-app.has-drawer>.jh-drawer{position:relative;inset:auto;grid-column:2;grid-row:4;width:auto;height:auto;min-height:0;box-shadow:none}.jh-app.has-drawer>.jh-modal-root{grid-column:1 / -1;grid-row:1 / -1}}@media(max-width:720px){.layout--jobhunt,.layout--calendar,.layout--todo{height:100dvh;padding:0;overflow:hidden}.cal-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"nav views" "actions actions";align-items:center;gap:6px;padding:6px 8px;overflow:visible}.cal-week-nav{grid-area:nav;min-width:0;gap:4px}.cal-week-title{min-width:0;font-size:13px;flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-view-toggle{grid-area:views}.cal-status,.cal-status-detail,.cal-google-state,.cal-toolbar-actions .cal-chip-warn{display:none}.cal-toolbar-actions{grid-area:actions;display:flex;flex-wrap:wrap;margin-left:0;width:auto;flex:none;gap:6px}.cal-toolbar-actions .cal-chip{padding:0 10px}.cal-chip-time,.cal-toolbar-actions .cal-primary{display:none}.cal-grid-wrap{overflow:auto;-webkit-overflow-scrolling:touch;padding:4px 6px 8px}.layout--calendar .week-grid{grid-template-columns:36px minmax(0,1fr);border-radius:10px}.layout--calendar .time-axis-label{right:3px;font-size:9px}.layout--calendar .day-header{padding:4px 0 3px}.layout--calendar .day-header-weekday{font-size:10px}.layout--calendar .block{left:1px;right:1px;padding:1px 2px;font-size:9px}.week-grid:not(.is-day) .block-actual-btn{display:none}.week-grid:not(.is-day) .block-busy:has(.block-actual-btn) .block-title{padding-right:0}.week-grid.is-fill:not(.is-day){min-width:0}.cal-workspace.has-todo,.cal-workspace.has-chat{position:relative}.cal-sheet-backdrop{display:block;position:absolute;inset:0;z-index:11;border:0;background:#13222647;cursor:pointer}.todo-rail,.cal-chat,.cal-drawer{border-radius:16px 16px 0 0;padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:contain}.todo-rail:before,.cal-chat:before,.cal-drawer:before{content:"";display:block;width:36px;height:4px;margin:8px auto 0;border-radius:999px;background:var(--sap-border);flex-shrink:0}.todo-rail{position:absolute;z-index:12;inset:auto 0 0;flex:none;width:auto;min-width:0;max-width:none;height:min(78dvh,640px);border-right:0;border-top:1px solid var(--sap-border);box-shadow:0 -8px 24px #1322262e}.cal-chat{position:absolute;z-index:12;inset:auto 0 0;flex:none;width:auto;height:min(58dvh,480px);border-left:0;border-top:1px solid var(--sap-border);box-shadow:0 -8px 24px #1322262e}.cal-drawer-root{align-items:flex-end;justify-content:stretch}.cal-drawer{width:100%;height:min(82dvh,680px);max-height:100%;border-left:0;border-top:1px solid var(--sap-border);box-shadow:0 -8px 24px #1322262e}.place-todo-root{padding:0;align-items:end}.place-todo-dialog{width:100%;max-height:min(92dvh,720px);border-radius:16px 16px 0 0;border-left:0;border-right:0;border-bottom:0}.jh-toolbar{padding:8px 12px}.jh-toolbar-views{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-width:100%}.jh-toolbar-views::-webkit-scrollbar{display:none}.jh-filterbar{padding:8px 12px}.jh-search{max-width:none;width:100%;flex-basis:100%}.jh-cal-day{min-height:72px;padding:4px}.jh-toolbar-actions{margin-left:0}.jh-cred-row,.jh-form-grid,.jh-child-form{grid-template-columns:1fr}.jh-drawer{width:100%}.jh-drawer-actions .jh-danger{margin-left:0}.jh-task-actions a,.jh-task-actions button{min-height:44px}.jh-board{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding:0 12px 8px}.jh-column:not(.is-empty){flex:0 0 min(280px,82vw);min-width:min(280px,82vw);max-width:none;scroll-snap-align:start}.sap-notepad{position:absolute;flex:none;right:0;left:0;bottom:0;width:auto;max-height:55%;border-radius:12px 12px 0 0;border:1px solid var(--sap-border);border-left:1px solid var(--sap-border);padding-bottom:max(12px,env(safe-area-inset-bottom));box-shadow:0 -8px 24px #1322262e}.layout:not(.layout--study){padding:12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.layout--jobhunt,.layout--calendar,.layout--todo{padding:0;height:100dvh;overflow:hidden}.layout--study:not(.layout--calendar):not(.layout--todo):not(.layout--jobhunt){padding-bottom:max(24px,env(safe-area-inset-bottom))}.sap-wrap{padding-left:12px;padding-right:12px}.layout--study .app-header--study{padding:env(safe-area-inset-top) 0 0}.layout--study .env-banner{margin:0}.main{grid-template-columns:1fr}.panel{position:static;max-height:none}.row{grid-template-columns:1fr}.week-grid:not(.is-fill){overflow-x:auto}.sap-top{flex-direction:column;align-items:flex-start;gap:8px}.sap-top h1{font-size:1.15rem;line-height:1.35;overflow-wrap:anywhere}.sap-top p{font-size:13px}.sap-stats{grid-template-columns:1fr 1fr}.sap-filter-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.sap-filter-btn,.sap-link-btn,.sap-rate-btn{min-height:44px;white-space:nowrap}.sap-archive-date{display:inline;margin-left:6px;margin-top:0}.sap-card{overflow:visible;padding:14px 12px 14px 16px}.sap-card-top{flex-direction:column}.sap-card-main{width:100%}.sap-card-side{align-items:flex-start;width:100%}.sap-next{text-align:left}.sap-item-links,.sap-rate-row{width:100%}.sap-form-grid{grid-template-columns:1fr}.account-panel-body{position:fixed;top:max(48px,env(safe-area-inset-top) + 44px);left:12px;right:12px;width:auto;max-height:calc(100dvh - 60px - env(safe-area-inset-bottom,0px));overflow-y:auto}.login-card{max-width:none;padding:20px 16px}.login-card h1{font-size:1.2rem}.login-card input,.login-card button{min-height:44px;font-size:16px}input,select,textarea,.sap-submit{font-size:16px}.sap-curve{padding:12px;overflow-x:auto;-webkit-overflow-scrolling:touch}.sap-curve svg{width:760px;max-width:none}.sap-curve figcaption{font-size:12px;text-align:left}body:has(.sap-frame-overlay){overflow:hidden}}.tab-count{display:inline-grid;place-items:center;flex:0 0 auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--sap-aws-orange, #ff9900);color:#16191f;font-family:var(--ds-font-en);font-size:10px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}.layout--study .tab-button.is-active .tab-count{background:#fff;color:var(--sap-nav)}.layout--calendar .tab-count,.layout--todo .tab-count,.layout--jobhunt .tab-count,.layout--courses .tab-count{background:#fff;color:#222}.todo-app{flex:1;min-height:0;display:flex;flex-direction:column;max-width:720px;width:100%;margin:0 auto;padding:8px 16px 24px}.todo-toolbar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:8px 4px 4px;flex-shrink:0}.todo-toolbar h1{margin:0;font-size:20px;font-weight:700;letter-spacing:.04em}.todo-toolbar p{margin:0;color:var(--sap-ink-faint);font-size:12px}.todo-tag-bar{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:0 4px 8px}.todo-tag{display:inline-flex;align-items:center;gap:2px;border:0;cursor:pointer;font:inherit;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;color:var(--todo-tag-color, var(--sap-accent));background:color-mix(in srgb,var(--todo-tag-color, var(--sap-accent)) 12%,var(--sap-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--todo-tag-color, var(--sap-accent)) 40%,transparent)}.todo-tag.is-active{background:var(--todo-tag-color, var(--sap-accent));color:#fff;box-shadow:none}.todo-tag.is-active .todo-tag-x{color:#fff}.todo-tag-x{display:inline-grid;place-items:center;width:1em;line-height:1;opacity:0}.todo-tag:hover .todo-tag-x,.todo-tag:focus-within .todo-tag-x{opacity:.55}.todo-tag-x:hover{opacity:1}.todo-tag-input{min-width:7em;width:8em;border:0;background:var(--sap-surface-2);color:inherit;font:inherit;font-size:12px;padding:4px 8px;border-radius:999px;outline:none}.todo-tag-input.is-mini{min-width:5em;width:6em;padding:2px 8px;font-size:11px}.todo-error{margin:0 0 8px;padding:8px 12px;border-radius:10px;background:var(--sap-overdue-bg);color:var(--sap-overdue);font-size:13px}.todo-rail{flex:0 0 300px;width:300px;min-width:260px;max-width:360px;min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--sap-border);background:var(--sap-surface);overflow:hidden}.todo-rail-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 0;flex-shrink:0}.todo-rail-actions{display:flex;align-items:center;gap:2px}.todo-rail-head h2{margin:0;font-size:13px;letter-spacing:.12em;color:var(--sap-ink-soft)}.todo-rail .todo-board{flex:1;min-height:0;overflow:hidden;padding:8px 12px}.todo-board{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:auto}.todo-sections{display:flex;flex-direction:column;gap:14px;min-height:0}.todo-board.is-rail .todo-sections{flex:1;overflow:auto}.todo-section.is-dock{flex:0 1 auto;max-height:36%;min-height:44px;overflow:auto;margin-top:auto;padding-top:8px;border-top:1px dashed var(--sap-border)}.todo-section.is-dock .todo-section-head h2,.todo-section.is-dock .todo-section-head span{font-size:10px;font-weight:600;letter-spacing:.16em;color:var(--sap-ink-faint)}.todo-section.is-dock .todo-empty{padding:4px 6px;border-style:dotted;font-size:11px}.todo-section.is-dock .todo-row.is-compact .todo-check{width:22px;height:22px;font-size:11px}.todo-section.is-dock .todo-row.is-compact .todo-title,.todo-section.is-dock .todo-row.is-compact .todo-title-input{font-size:13px;padding:3px 4px}.todo-capture{position:sticky;top:0;z-index:2;display:grid;gap:6px;padding:10px 12px 8px;background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:12px;box-shadow:var(--shadow-1)}.todo-capture-input{width:100%;border:0;background:transparent;color:var(--sap-ink);font:inherit;font-size:16px;outline:none}.todo-capture-presets{display:flex;flex-wrap:wrap;gap:4px}.todo-chip,.todo-mini,.todo-text-btn,.todo-done-toggle{border:0;background:transparent;color:var(--sap-ink-soft);font:inherit;font-size:12px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:999px}.todo-chip{background:var(--sap-surface-2)}.todo-chip.is-active{background:var(--sap-accent);color:var(--sap-accent-ink, #fff)}.todo-chip.is-assigned{cursor:default;background:var(--sap-surface-2)}.todo-chip.is-assigned.is-complete{background:var(--ok-bg);color:#1b5e20}.todo-row.is-assigned .todo-title{color:var(--sap-ink)}.todo-capture-preview{margin:0;min-height:1.2em;font-size:12px;color:transparent}.todo-capture-preview.is-on{color:var(--sap-ink-faint)}.todo-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:4px}.todo-section-head h2{margin:0;font-size:12px;letter-spacing:.14em;color:var(--sap-ink-faint);font-weight:700}.todo-section-head span{font-size:11px;color:var(--sap-ink-faint)}.todo-section.is-overdue .todo-section-head h2{color:var(--sap-overdue)}.todo-empty{margin:0;padding:10px 8px;border:1px dashed var(--sap-border);border-radius:10px;color:var(--sap-ink-faint);font-size:12px}.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.todo-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;grid-template-areas:"check title due" "check tools tools";align-items:center;column-gap:4px;padding:2px 4px;border-radius:10px;transition:background var(--dur-fast) var(--ease),opacity var(--dur) var(--ease)}.todo-row.has-split{grid-template-areas:"check title due" "check split split" "check tools tools"}.todo-row.has-subtasks{grid-template-areas:"check title due" "check subtasks subtasks" "check tools tools"}.todo-row.has-split.has-subtasks{grid-template-areas:"check title due" "check split split" "check subtasks subtasks" "check tools tools"}.todo-row:hover,.todo-row:focus-within{background:var(--sap-surface-2)}.todo-row.is-dragging{opacity:.4}.todo-check{grid-area:check;width:28px;height:28px;border:1.5px solid var(--sap-border);border-radius:50%;background:var(--sap-surface);color:var(--sap-accent);cursor:pointer;display:grid;place-items:center;font-size:13px;font-weight:700;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.todo-check:hover{border-color:var(--sap-accent);transform:scale(1.06)}.todo-check.is-on{background:var(--sap-accent);border-color:var(--sap-accent);color:var(--sap-accent-ink, #fff)}.todo-title-block{grid-area:title;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px}.todo-title,.todo-title-input{min-width:0;flex:1 1 8em;text-align:left;border:0;background:transparent;color:inherit;font:inherit;font-size:15px;padding:6px 4px;cursor:text}.todo-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-title-input{outline:none}.todo-board.is-rail .todo-row{grid-template-columns:32px minmax(0,1fr);grid-template-areas:"check title" ". due" ". tools";align-items:start}.todo-board.is-rail .todo-row.has-split{grid-template-areas:"check title" ". due" ". split" ". tools"}.todo-board.is-rail .todo-row.has-subtasks{grid-template-areas:"check title" ". due" ". subtasks" ". tools"}.todo-board.is-rail .todo-row.has-split.has-subtasks{grid-template-areas:"check title" ". due" ". split" ". subtasks" ". tools"}.todo-board.is-rail .todo-title-block{flex-direction:column;align-items:stretch}.todo-board.is-rail .todo-title,.todo-board.is-rail .todo-title-input{display:block;flex:1 1 auto;width:100%;height:auto;white-space:normal;overflow:visible;text-overflow:unset;line-height:1.35;overflow-wrap:anywhere}.todo-board.is-rail .todo-due{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;white-space:normal;width:100%;min-width:0;padding:0 4px 4px 0}.todo-board.is-rail .todo-window{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);width:100%;min-width:0}.todo-board.is-rail .todo-window .todo-window-label{grid-column:1 / -1}.todo-board.is-rail .todo-time{width:100%;min-width:0;max-width:100%}.todo-row-tags{display:inline-flex;flex-wrap:wrap;gap:4px}.todo-due{grid-area:due;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:4px 6px;font-size:11px;color:var(--sap-ink-faint);white-space:nowrap;padding-right:4px}.todo-row-tools{grid-area:tools;display:flex;flex-wrap:wrap;gap:2px;max-height:0;overflow:hidden;opacity:0;transition:max-height var(--dur) var(--ease),opacity var(--dur-fast) var(--ease)}.todo-row:hover .todo-row-tools,.todo-row:focus-within .todo-row-tools{max-height:200px;opacity:1}.todo-window,.todo-capture-window{display:inline-flex;align-items:center;gap:4px}.todo-window-label{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--sap-ink-faint);white-space:nowrap}.todo-time{border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface-2);color:inherit;font:inherit;font-size:12px;padding:2px 4px;min-height:28px}.todo-estimate{width:4.8em}.todo-estimate-hint{font-size:11px;font-weight:600;color:var(--sap-ink-faint)}.todo-split{grid-area:split;display:grid;gap:6px;padding:2px 4px 8px;min-width:0}.todo-split-toolbar{display:flex;align-items:center;gap:4px}.todo-split-label,.todo-split-count{font-size:11px;font-weight:700;color:var(--sap-ink-faint)}.todo-split-track{position:relative;height:28px;border-radius:999px;background:var(--sap-surface-2);box-shadow:inset 0 0 0 1px var(--sap-border)}.todo-split-segs{display:flex;height:100%;border-radius:999px;overflow:hidden}.todo-split-seg{display:grid;place-items:center;min-width:0;overflow:hidden;background:color-mix(in srgb,#5c4fc9 78%,#fff);color:#fff;font-size:10px;font-weight:700;pointer-events:none}.todo-split-seg:first-child{border-radius:999px 0 0 999px}.todo-split-seg:last-child{border-radius:0 999px 999px 0}.todo-split-seg:only-child{border-radius:999px}.todo-split-seg.is-alt{background:color-mix(in srgb,#5c4fc9 55%,#9aa7ff)}.todo-split-pin{position:absolute;top:50%;width:16px;height:28px;margin:0;padding:0;border:0;background:transparent;transform:translate(-50%,-50%);cursor:ew-resize;z-index:1}.todo-split-pin:before{content:"";position:absolute;left:50%;top:-4px;width:12px;height:12px;border-radius:50%;background:var(--sap-surface);box-shadow:0 0 0 2px #5c4fc9;transform:translate(-50%)}.todo-split-pin:after{content:"";position:absolute;left:50%;top:8px;width:2px;height:16px;background:#5c4fc9;transform:translate(-50%)}.todo-split-pin.is-end{cursor:default}.todo-split-pin.is-end:before{display:none}.todo-subtasks{grid-area:subtasks;display:grid;gap:4px;padding:2px 4px 8px;min-width:0}.todo-subtask-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.todo-subtask{display:grid;grid-template-columns:22px minmax(0,1fr) 4.2em auto;align-items:center;gap:4px}.todo-check.is-sub{grid-area:auto;width:20px;height:20px;font-size:10px}.todo-subtask-title{min-width:0;width:100%;border:0;background:transparent;color:inherit;font:inherit;font-size:13px;padding:4px 2px;outline:none}.todo-subtask.is-done .todo-subtask-title{color:var(--sap-ink-faint);text-decoration:line-through}.todo-estimate.is-sub{width:4.2em;min-height:24px;padding:1px 4px;font-size:11px}.place-todo-parts{display:flex;flex-wrap:wrap;gap:4px}.place-todo-root{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px}.place-todo-backdrop{position:absolute;inset:0;border:0;background:#13222666;cursor:pointer}.place-todo-dialog{position:relative;width:min(420px,100%);max-height:min(88vh,640px);display:flex;flex-direction:column;background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:16px;box-shadow:var(--shadow-3)}.place-todo-head,.place-todo-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;flex-shrink:0}.place-todo-head{border-bottom:1px solid var(--sap-border)}.place-todo-head h2{margin:0;font-size:16px}.place-todo-body{padding:12px 16px;overflow:auto;display:grid;gap:10px}.place-todo-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:220px;overflow:auto}.place-todo-item{width:100%;display:grid;gap:2px;text-align:left;border:1px solid var(--sap-border);background:var(--sap-surface-2);color:inherit;font:inherit;border-radius:10px;padding:8px 10px;cursor:pointer}.place-todo-item.is-active{border-color:var(--sap-accent);background:var(--sap-accent-weak)}.place-todo-item-title{font-weight:600;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.place-todo-item-meta{font-size:12px;color:var(--sap-ink-faint)}.place-todo-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.place-todo-fields .field{margin-bottom:0}.place-todo-preview{margin:0;font-size:13px;font-weight:600;color:var(--sap-ink-soft)}.place-todo-foot{border-top:1px solid var(--sap-border);justify-content:flex-end}.place-todo-foot .cal-primary{border:0;cursor:pointer;font:inherit}.place-todo-foot .cal-primary:disabled{opacity:.45;cursor:not-allowed}.place-todo-dialog.is-narrow{width:min(340px,100%)}.event-actual-plan{margin:0;display:flex;align-items:baseline;gap:8px;min-width:0}.event-actual-plan-time{flex-shrink:0;font-weight:700;font-variant-numeric:tabular-nums}.event-actual-plan-label{color:var(--sap-ink-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-actual-delay{margin:0;font-size:13px;font-weight:700;color:var(--sap-overdue)}.event-actual-details{list-style:none;margin:0;padding:8px 10px;display:grid;gap:4px;border-radius:8px;background:var(--sap-surface-2);font-size:12px;line-height:1.5}.event-actual-details li{display:flex;gap:8px;min-width:0}.event-actual-details li>:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}.event-actual-detail-label{flex-shrink:0;width:2.5em;color:var(--sap-ink-faint)}.event-actual-fields{display:grid;gap:8px}.event-actual-fields .field{margin-bottom:0}.event-actual-input{display:flex;align-items:center;gap:6px}.event-actual-input input{flex:1;min-width:0}.quick-event-when{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:8px}.quick-event-when .field{margin-bottom:0}.quick-event-when input{width:100%;min-width:0}.quick-event-links{display:flex;flex-wrap:wrap;gap:4px;margin-left:-8px}.quick-event-links a.todo-text-btn{text-decoration:none}.quick-event-delete.is-confirm,.quick-event-delete:hover{background:var(--sap-overdue-bg);color:var(--sap-overdue)}.places-capture{gap:10px}.places-field{display:grid;gap:4px;font-size:11px;font-weight:700;letter-spacing:.08em;color:var(--sap-ink-faint)}.places-want,.place-want{width:100%;resize:vertical;border:0;background:var(--sap-surface-2);color:inherit;font:inherit;font-size:14px;line-height:1.45;padding:8px 10px;border-radius:8px;outline:none}.places-add{justify-self:start;border:0;cursor:pointer;font:inherit;font-size:13px;font-weight:700;padding:8px 14px;border-radius:999px;background:var(--sap-accent);color:var(--sap-accent-ink, #fff)}.places-add:disabled{opacity:.4;cursor:default}.places-list{margin-top:12px;gap:8px}.places-archive{margin-top:16px}.place-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;grid-template-areas:"check name remove" "check want want" "check meta meta";gap:6px 8px;padding:10px 12px;border:1px solid var(--sap-border);border-radius:12px;background:var(--sap-surface)}.place-row .todo-check{grid-area:check;align-self:start;opacity:1;max-height:none}.place-name{grid-area:name;min-width:0;border:0;background:transparent;color:inherit;font:inherit;font-size:16px;font-weight:700;outline:none}.place-want{grid-area:want}.place-meta{grid-area:meta;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.place-date-field{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--sap-ink-faint)}.place-date{border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface-2);color:inherit;font:inherit;font-size:12px;padding:2px 6px;min-height:28px}.place-date-hint{font-size:12px;color:var(--sap-ink-faint)}.place-row .todo-mini{grid-area:remove;justify-self:end;opacity:1;max-height:none}.place-row.is-done .place-name{color:var(--sap-ink-faint);text-decoration:line-through}.todo-mini:hover,.todo-text-btn:hover,.todo-done-toggle:hover{background:var(--sap-accent-weak);color:var(--sap-accent)}.todo-mini.is-danger:hover{background:var(--sap-overdue-bg);color:var(--sap-overdue)}.todo-row.is-done .todo-title{color:var(--sap-ink-faint);text-decoration:line-through}@media(prefers-reduced-motion:reduce){.todo-check,.todo-row,.todo-row-tools{transition:none}}@media(hover:none){.todo-row-tools{max-height:none;opacity:1}.todo-tag-x{opacity:.55}}@media(max-width:720px){.todo-rail{position:absolute;z-index:12;inset:auto 0 0;flex:none;width:auto;min-width:0;max-width:none;height:min(78dvh,640px);border-right:0;border-top:1px solid var(--sap-border);border-radius:16px 16px 0 0;box-shadow:0 -8px 24px #1322262e}.todo-app{max-width:none;padding:8px 12px calc(16px + env(safe-area-inset-bottom))}.todo-toolbar{flex-direction:column;align-items:flex-start;gap:4px}.todo-toolbar p{font-size:11px;line-height:1.45}.todo-tag,.todo-chip{min-height:36px}.todo-board .todo-row,.todo-board .todo-row.has-split,.todo-board .todo-row.has-subtasks,.todo-board .todo-row.has-split.has-subtasks{grid-template-columns:32px minmax(0,1fr);align-items:start}.todo-board .todo-row{grid-template-areas:"check title" ". due" ". tools"}.todo-board .todo-row.has-split{grid-template-areas:"check title" ". due" ". split" ". tools"}.todo-board .todo-row.has-subtasks{grid-template-areas:"check title" ". due" ". subtasks" ". tools"}.todo-board .todo-row.has-split.has-subtasks{grid-template-areas:"check title" ". due" ". split" ". subtasks" ". tools"}.todo-due{justify-content:flex-start;white-space:normal;padding-right:0}.todo-window,.todo-capture-window{flex-wrap:wrap;width:100%}.cal-chat{position:absolute;inset:auto 0 0;width:auto;height:min(58dvh,480px);border-left:0;border-top:1px solid var(--sap-border);border-radius:16px 16px 0 0;box-shadow:0 -8px 24px #1322262e}.cal-drawer-root{align-items:flex-end;justify-content:stretch}.cal-drawer{width:100%;height:min(82dvh,680px);max-height:100%;border-left:0;border-top:1px solid var(--sap-border);border-radius:16px 16px 0 0;box-shadow:0 -8px 24px #1322262e}.place-todo-root{padding:0;align-items:end;place-items:end center}.place-todo-dialog{width:100%;max-height:min(92dvh,720px);border-radius:16px 16px 0 0;border-left:0;border-right:0;border-bottom:0}.place-row{grid-template-columns:28px minmax(0,1fr);grid-template-areas:"check name" "check want" "check meta" "check remove"}.place-row .todo-mini{justify-self:start}}.span-strip{flex:0 1 auto;min-height:0;max-height:34%;overflow:auto;border:1px solid var(--sap-border);border-radius:12px;background:var(--sap-surface);padding:8px 10px}.span-strip-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.span-strip-head p{margin:0;color:var(--sap-ink-faint);font-size:12px}.span-strip-toggle{flex-shrink:0;white-space:nowrap;border:0;background:transparent;color:var(--sap-ink);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:36px}.span-add,.span-child-add{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.span-add input,.span-child-add input,.span-add button,.span-child-add button{min-height:36px;border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface);color:var(--sap-ink);padding:4px 8px}.span-add input[type=text],.span-add input:not([type]),.span-child-add input{flex:1;min-width:8em}.span-list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.span-card{border:1px solid var(--sap-border);border-radius:10px;padding:8px;background:var(--sap-surface-2)}.span-card.is-overdue{border-color:var(--sap-overdue)}.span-card-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px}.span-children{list-style:none;margin:6px 0 0;padding:0}.span-children li{display:flex;align-items:center;gap:8px;min-height:40px}.todo-mini.is-active{background:var(--sap-accent-weak);color:var(--sap-accent-strong);border-color:var(--sap-accent)}@media(hover:none){.todo-board:not(.is-rail) .todo-check{width:36px;height:36px}.todo-board:not(.is-rail) .todo-mini{min-height:40px;padding:6px 10px}}.course-panel{max-width:1080px;margin:0 auto;padding:20px 16px 40px}.course-panel-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}.course-panel-head h1{margin:0;font-size:1.4rem}.course-panel-head .sap-hint{margin:2px 0 0}.course-error,.course-notice{border-radius:8px;padding:8px 12px;font-size:.86rem;margin:10px 0}.course-error{background:var(--sap-overdue-bg);color:var(--sap-overdue);border:1px solid var(--sap-overdue)}.course-notice{background:var(--sap-upcoming-bg);color:var(--sap-upcoming);border:1px solid var(--sap-upcoming)}.course-card,.course-timetable-wrap{background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:12px;box-shadow:var(--shadow-1);padding:14px 16px;margin:14px 0}.course-card h2{margin:0 0 6px;font-size:1.1rem;display:flex;align-items:center;gap:8px}.course-today{margin:0 0 10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.9rem}.course-today-chip{appearance:none;border:1px solid var(--sap-accent);background:var(--sap-accent-weak);color:var(--sap-accent-strong);border-radius:999px;padding:2px 10px;font:inherit;font-size:.84rem;cursor:pointer}.course-timetable-scroll{overflow-x:auto}.course-timetable{width:100%;min-width:560px;border-collapse:collapse;table-layout:fixed;font-size:.82rem}.course-timetable th,.course-timetable td{border:1px solid var(--sap-border);padding:4px;vertical-align:top}.course-timetable thead th{background:var(--sap-surface-2);font-weight:600}.course-timetable tbody th{width:52px;background:var(--sap-surface-2);color:var(--sap-ink-soft);font-weight:600}.course-timetable .is-today{background:var(--sap-accent-weak)}.course-cell{appearance:none;display:block;width:100%;text-align:left;border:1px solid var(--sap-border);border-left:3px solid var(--sap-accent);background:var(--sap-surface);color:var(--sap-ink);border-radius:6px;padding:3px 6px;margin:2px 0;font:inherit;cursor:pointer}.course-cell.is-selected{border-color:var(--sap-accent);box-shadow:0 0 0 1px var(--sap-accent)}.course-cell-title{display:block;font-weight:600;overflow-wrap:anywhere}.course-cell-room{display:block;color:var(--sap-ink-faint);font-size:.74rem}.course-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0}.course-tab{appearance:none;border:1px solid var(--sap-border);background:var(--sap-surface);color:var(--sap-ink);border-radius:999px;padding:4px 14px;font:inherit;font-size:.86rem;cursor:pointer}.course-tab.is-active{background:var(--sap-accent);border-color:var(--sap-accent);color:var(--sap-accent-ink)}.course-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}.course-material-form{grid-template-columns:90px 170px minmax(0,1fr)}.course-field{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:var(--sap-ink-soft);min-width:0}.course-field--wide{grid-column:1 / -1}.course-field input:not([type=checkbox]):not([type=file]),.course-field select,.course-field textarea,.course-slot-row select,.course-slot-row input,.course-request input{font:inherit;font-size:.9rem;color:var(--sap-ink);background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:8px;padding:6px 8px;min-width:0}.course-slots{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.course-slot-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.course-form-actions{grid-column:1 / -1;display:flex;align-items:center;gap:10px}.course-form-actions .sap-submit{margin-top:0}.course-file-list{list-style:none;padding:0;margin:6px 0 0;font-size:.84rem;color:var(--sap-ink)}.course-file-list li{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.course-file-list li>span{font-size:.72rem;border:1px solid var(--sap-border);border-radius:4px;padding:0 4px}.course-detail-head,.course-material-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}.course-material-head-actions{display:flex;gap:6px;flex-wrap:wrap}.course-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;font-size:.8rem;color:var(--sap-ink-faint)}.course-note{margin:6px 0 0;font-size:.86rem;white-space:pre-wrap}.course-badge{font-size:.72rem;font-weight:600;border-radius:999px;padding:0 8px;background:var(--sap-surface-2);color:var(--sap-ink-soft);border:1px solid var(--sap-border)}.course-danger{color:var(--sap-overdue)}.course-add-material{margin:14px 0;border:1px dashed var(--sap-border);border-radius:10px;padding:8px 12px}.course-add-material>summary{cursor:pointer;font-weight:600;margin-bottom:4px}.course-add-material[open]>summary{margin-bottom:10px}.course-materials{display:flex;flex-direction:column;gap:12px}.course-material{border:1px solid var(--sap-border);border-radius:10px;padding:12px 14px;background:var(--sap-surface-2)}.course-material h4{margin:0 0 2px;font-size:1rem}.course-material-text{white-space:pre-wrap;font-family:inherit;font-size:.84rem;max-height:240px;overflow:auto;background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:8px;padding:8px 10px;margin:8px 0}.course-outputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.course-output{background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column}.course-output.has-output{border-color:var(--sap-accent)}.course-output-head{display:flex;justify-content:space-between;align-items:baseline;gap:6px}.course-output-count{font-size:.76rem;color:var(--sap-ink-faint)}.course-output .sap-hint{margin:2px 0 8px;font-size:.76rem}.course-output-actions{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:6px}.course-output-actions .sap-submit{margin-top:0;padding:6px 14px}.course-request{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:.78rem;color:var(--sap-ink-soft)}.course-request input{flex:1}.course-archived ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px}@media(max-width:720px){.course-panel{padding:14px 12px 32px}.course-form,.course-material-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.course-outputs{grid-template-columns:minmax(0,1fr)}.course-request{flex-direction:column;align-items:stretch}}.course-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.course-head-actions .sap-submit{margin-top:0}.course-source{margin:6px 0 0}.course-calendar-choices{display:flex;flex-wrap:wrap;gap:6px}.course-pdf-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:8px}.course-pdf-actions .sap-hint{margin:0;font-size:.74rem}.pdf-workbench-body{flex:1;min-height:0;display:flex}.pdf-pages{flex:1;min-width:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;align-items:center;gap:14px;background:var(--sap-surface-2)}.pdf-page{position:relative;flex:0 0 auto;background:#fff;box-shadow:var(--shadow-2);outline:2px solid transparent;cursor:pointer}.pdf-page.is-focused{outline-color:var(--sap-accent)}.pdf-page canvas{display:block}.pdf-page-marks{position:absolute;inset:0;pointer-events:none}.pdf-page-no{position:absolute;right:6px;bottom:4px;font-size:.7rem;color:#687078;background:#ffffffd9;padding:0 4px;border-radius:4px}.pdf-mark{position:absolute;pointer-events:auto}.pdf-mark--highlight{background:#ffdd336b;mix-blend-mode:multiply}.pdf-mark--correction{background:linear-gradient(transparent 44%,#d91515 44%,#d91515 58%,transparent 58%)}.pdf-mark--note{width:18px;height:18px;margin-left:2px;transform:translateY(-40%);border-radius:50% 50% 50% 0;background:#f0a500;color:#fff;font-size:.68rem;font-weight:700;line-height:18px;text-align:center}.pdf-fix{position:absolute;transform:translateY(-105%);pointer-events:auto;font-size:.72rem;font-weight:700;color:#d91515;background:#ffffffeb;border:1px solid #d91515;border-radius:4px;padding:0 4px;white-space:nowrap}.pdf-mark.is-proposed,.pdf-fix.is-proposed{outline:2px dashed #0972d3;outline-offset:1px;opacity:.85}.pdf-mark.is-estimate{outline:1px dotted #687078}.pdf-chat{flex:0 0 min(400px,42vw);width:min(400px,42vw);display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--sap-border);background:var(--sap-surface)}.pdf-chat-log{flex:1;min-height:0;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}.pdf-chat-empty{font-size:.84rem;color:var(--sap-ink-soft)}.pdf-chat-empty ul{padding-left:18px;margin:6px 0 0}.pdf-msg{max-width:92%;border-radius:12px;padding:8px 12px;font-size:.86rem;white-space:pre-wrap}.pdf-msg p{margin:0}.pdf-msg--user{align-self:flex-end;background:var(--sap-accent);color:var(--sap-accent-ink)}.pdf-msg--assistant{align-self:flex-start;background:var(--sap-surface-2);border:1px solid var(--sap-border)}.pdf-proposal{margin-top:8px;border-top:1px dashed var(--sap-border);padding-top:6px;white-space:normal}.pdf-proposal ul{margin:0;padding-left:16px}.pdf-proposal.is-dismissed ul{opacity:.55;text-decoration:line-through}.pdf-proposal-jump{appearance:none;border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.pdf-proposal-jump:hover{text-decoration:underline}.pdf-proposal-problem{color:var(--sap-today);font-size:.8rem;margin:4px 0 0}.pdf-proposal-actions{display:flex;align-items:center;gap:8px;margin-top:6px}.pdf-proposal-actions .sap-submit{margin-top:0;padding:5px 14px}.pdf-chat-form{border-top:1px solid var(--sap-border);padding:8px 14px 10px;display:flex;flex-direction:column;gap:6px}.pdf-chat-form .sap-hint{margin:0;font-size:.74rem}.pdf-chat-form textarea{font:inherit;font-size:.88rem;color:var(--sap-ink);background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:8px;padding:6px 8px;resize:vertical}.pdf-chat-form .sap-submit{margin-top:0;align-self:flex-end}.pdf-note-list{border-top:1px solid var(--sap-border);padding:6px 14px 10px;max-height:30vh;overflow-y:auto;font-size:.82rem}.pdf-note-list summary{cursor:pointer;font-weight:600}.pdf-note-list ol{padding-left:18px;margin:6px 0 0}.pdf-note-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;margin:4px 0}.pdf-kind{font-size:.68rem;border-radius:4px;padding:0 4px;margin-right:4px;color:#fff}.pdf-kind--note{background:#f0a500}.pdf-kind--highlight{background:#b08d00}.pdf-kind--correction{background:#d91515}@media(max-width:720px){.pdf-workbench-body{flex-direction:column}.pdf-pages{flex:0 0 52%}.pdf-chat{flex:1;width:auto;border-left:0;border-top:1px solid var(--sap-border)}}.wr-panel{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.wr-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.wr-list-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:12px 14px;border:1px solid var(--sap-border);border-radius:12px;background:var(--sap-surface);color:var(--sap-ink);font:inherit;text-align:left;cursor:pointer}.wr-list-row:hover{border-color:var(--sap-accent)}.wr-kind{font-size:.72rem;font-weight:600;color:var(--sap-accent-strong);background:var(--sap-accent-weak);border-radius:999px;padding:2px 8px;white-space:nowrap}.wr-list-title{overflow-wrap:anywhere}.wr-list-meta{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--sap-ink-faint);white-space:nowrap}.wr-grade{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:6px;font-weight:700;font-size:.8rem;margin-left:6px;color:var(--sap-ink);background:var(--sap-surface-2);border:1px solid var(--sap-border)}.wr-grade.is-A{color:var(--sap-upcoming);background:var(--sap-upcoming-bg);border-color:var(--sap-upcoming)}.wr-grade.is-B{color:var(--sap-today);background:var(--sap-today-bg);border-color:var(--sap-today)}.wr-grade.is-C,.wr-grade.is-D{color:var(--sap-overdue);background:var(--sap-overdue-bg);border-color:var(--sap-overdue)}.wr-pending{margin-left:6px;font-size:.75rem;color:var(--sap-today)}.wr-task{background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:14px;padding:14px 18px 18px;box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:12px}.wr-task-head{display:flex;align-items:center;gap:12px}.wr-task-head h2{flex:1;min-width:0;margin:0;font-size:1rem;overflow-wrap:anywhere}.wr-scenario{margin:0;padding:12px 14px;background:var(--sap-surface-2);border-radius:10px;white-space:pre-wrap;line-height:1.75;font-size:.9rem}.wr-timer{align-self:flex-end;font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--sap-ink-faint)}.wr-timer.is-over{color:var(--sap-overdue);font-weight:600}.wr-part{display:flex;flex-direction:column;gap:6px}.wr-part-prompt{font-size:.88rem;line-height:1.6}.wr-part textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--sap-border);border-radius:10px;background:var(--sap-surface);color:var(--sap-ink);font:inherit;font-size:.9rem;line-height:1.7;resize:vertical}.wr-part textarea:focus{outline:2px solid var(--sap-accent);outline-offset:1px}.wr-count{align-self:flex-end;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--sap-ink-faint)}.wr-count.is-ok{color:var(--sap-upcoming)}.wr-count.is-short{color:var(--sap-today)}.wr-count.is-over{color:var(--sap-overdue);font-weight:600}.wr-attempt{border-top:1px solid var(--sap-border);padding-top:10px}.wr-attempt summary{cursor:pointer;font-weight:600;font-size:.9rem}.wr-overall{margin:10px 0;padding:10px 12px;border-radius:10px;background:var(--sap-accent-weak);font-size:.88rem}.wr-overall p{margin:0 0 4px}.wr-feedback{margin-top:12px;font-size:.86rem;line-height:1.65}.wr-feedback h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-size:.9rem}.wr-feedback p{margin:0 0 6px}.wr-score{font-size:.78rem;font-weight:600;color:var(--sap-accent-strong)}.wr-answer{padding:8px 10px;border-left:3px solid var(--sap-border);background:var(--sap-surface-2);white-space:pre-wrap}.wr-good,.wr-fix{margin:0 0 6px;padding-left:1.2em}.wr-good li::marker{color:var(--sap-upcoming)}.wr-fix li::marker{color:var(--sap-overdue)}.wr-rewrite,.wr-model{color:var(--sap-ink-soft)}@media(max-width:720px){.wr-task{padding:12px}.wr-list-row{grid-template-columns:minmax(0,1fr) auto}.wr-kind{grid-column:1 / -1;justify-self:start}}.sap-past-summary{margin:4px 0 0;font-size:.78rem;color:var(--sap-ink-soft)}.sap-past-paper{margin-top:12px;padding-top:8px;border-top:1px solid var(--sap-border)}.sap-past-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.sap-past-form label{display:flex;flex-direction:column;gap:4px;font-size:.78rem;color:var(--sap-ink-soft)}.sap-past-form input,.sap-past-form select{font:inherit;font-size:.86rem;padding:6px 8px;border-radius:8px;border:1px solid var(--sap-border);background:var(--sap-bg);color:var(--sap-ink)}.sap-past-form input[type=number]{width:5.5rem}.sap-past-topic{flex:1 1 220px}.sap-past-topic input{width:100%}.sap-past-list{list-style:none;margin:8px 0 0;padding:0}.sap-past-list li{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 4px;border-bottom:1px solid var(--sap-border);font-size:.86rem}.sap-past-list li.is-hit{background:var(--sap-surface)}.sap-past-id{font-weight:700}.sap-past-outcome--wrong{color:var(--sap-overdue)}.sap-past-outcome--unsure{color:var(--sap-upcoming)}.sap-past-topic-text{color:var(--sap-ink-soft)}.sap-past-list a,.sap-past-paper a{color:var(--sap-accent-strong)}.sap-past-actions{margin-left:auto;display:inline-flex;flex-shrink:0;align-items:center;gap:8px}.sap-view-row .sap-past-actions{margin-bottom:-1px}.sap-past-modal-root{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:24px}.sap-past-modal-backdrop{position:absolute;inset:0;border:0;background:#14181c73}.sap-past-modal{position:relative;z-index:1;width:min(920px,100%);max-height:min(86vh,820px);overflow:auto;background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:12px;padding:16px 18px 20px;box-shadow:0 16px 40px #14181c2e}.sap-past-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sap-past-modal-head h2{margin:0;font-size:1.05rem}.sap-past-bulk-rows{list-style:none;margin:12px 0;padding:0;display:grid;gap:8px}.sap-past-bulk-rows li{display:grid;grid-template-columns:1.4fr .7fr .9fr .9fr;gap:8px;align-items:end}.sap-past-bulk-rows label{display:grid;gap:4px;font-size:.75rem;color:var(--sap-ink-soft)}.sap-past-bulk-rows input,.sap-past-bulk-rows select,.sap-past-bulk-result select{font:inherit;font-size:.85rem;border:1px solid var(--sap-border);border-radius:8px;padding:6px 8px;color:var(--sap-ink);background:var(--sap-surface);width:100%}.sap-past-bulk-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;align-items:center}.sap-past-board-row{display:flex;align-items:flex-start;gap:10px}.sap-past-check{flex-shrink:0;padding-top:2px}.sap-past-check input{width:1rem;height:1rem;margin:0}.sap-past-row-body{display:flex;flex-wrap:wrap;gap:8px;align-items:center;flex:1;min-width:0}.sap-past-summary-list li{align-items:flex-start}.sap-past-summary-entry{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.sap-past-bulk-result{margin-top:16px}.sap-exam-group+.sap-exam-group{margin-top:18px}.sap-exam-group-head{margin:0 0 8px;font-size:.95rem}.sap-extra-focus{flex:1 1 200px;min-width:0;font:inherit;font-size:.78rem;border:1px solid var(--sap-border);border-radius:8px;padding:5px 10px;color:var(--sap-ink);background:var(--sap-surface)}.sap-card-foot{display:flex;justify-content:flex-end;margin-top:10px}.deck-plan,.book-shelf{display:flex;flex-direction:column;gap:14px;margin:12px 0 24px}.deck-plan h2,.deck-plan h3,.book-shelf h3{margin:0 0 6px;font-size:1rem}.deck-exams{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.deck-exam{background:var(--sap-surface);border:1px solid var(--sap-border);border-left:4px solid var(--sap-accent);border-radius:10px;padding:10px 14px;box-shadow:var(--shadow-1)}.deck-exam.is-near{border-left-color:var(--sap-today)}.deck-exam.is-today{border-left-color:var(--sap-overdue)}.deck-exam.is-done{opacity:.6;border-left-color:var(--sap-border)}.deck-exam-label{font-weight:700}.deck-exam-count{font-size:1.4rem;font-weight:700;color:var(--sap-accent-strong)}.deck-exam-when,.deck-exam-scope{font-size:.8rem;color:var(--sap-ink-soft)}.deck-week,.deck-milestones,.deck-weeks-all,.deck-plan-import,.deck-plan-preview,.book-card,.book-add,.book-learned{background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:12px;padding:12px 16px}.deck-week-bars{display:flex;flex-direction:column;gap:6px}.deck-week-bar,.book-progress{display:grid;grid-template-columns:4em 1fr auto;align-items:center;gap:8px;font-size:.85rem}.book-progress{grid-template-columns:1fr auto}.deck-week-track,.book-progress-track{height:8px;border-radius:999px;background:var(--sap-surface-2);border:1px solid var(--sap-border);overflow:hidden}.deck-week-fill,.book-progress-fill{display:block;height:100%;background:var(--sap-accent)}.deck-milestones ul,.deck-plan-milestones{list-style:none;padding:0;margin:0 0 6px;font-size:.86rem}.deck-milestones li label,.deck-plan-milestones li label{display:flex;align-items:flex-start;gap:6px;padding:3px 0}.deck-milestones li.is-done span,.deck-plan-milestones li.is-done span{color:var(--sap-ink-faint);text-decoration:line-through}.deck-ms-head{margin:8px 0 2px;font-size:.78rem;font-weight:700;color:var(--sap-ink-soft)}.deck-ms-head.is-overdue{color:var(--sap-overdue)}.deck-ms-when{flex:0 0 auto;min-width:6.5em;color:var(--sap-ink-soft)}.deck-ms-exam,.book-exam,.book-ch-item{flex:0 0 auto;font-size:.72rem;border:1px solid var(--sap-border);border-radius:999px;padding:0 7px;color:var(--sap-ink-soft)}.deck-plan-table{width:100%;border-collapse:collapse;font-size:.82rem;margin:6px 0}.deck-plan-table th,.deck-plan-table td{border-bottom:1px solid var(--sap-border);padding:4px 6px;text-align:left;vertical-align:top}.budget-editor{margin:10px 0 14px;display:flex;flex-direction:column;gap:8px}.budget-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.budget-summary{font-size:.8rem;color:var(--sap-ink-faint)}.budget-table-wrap{max-width:100%;overflow-x:auto}.deck-plan-table tr.is-current td{background:var(--sap-accent-weak)}.deck-plan-table tr.is-past td{color:var(--sap-ink-faint)}.deck-plan-table tr.is-total td{font-weight:700}.deck-plan-table input{font:inherit;font-size:.82rem}.deck-plan-import textarea{width:100%;font:inherit;font-size:.85rem;border:1px solid var(--sap-border);border-radius:8px;padding:8px;background:var(--sap-surface);color:var(--sap-ink)}.deck-plan-issue{color:var(--sap-today);font-size:.82rem;margin:2px 0}.deck-plan-scope{display:flex;flex-direction:column;gap:4px;margin:8px 0}.deck-plan-scope-row{display:flex;justify-content:space-between;gap:8px;font-size:.85rem}.deck-plan-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.deck-plan-actions .sap-submit{margin-top:0}.study-plan-phased{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.study-plan-phased p{margin:0}.study-plan-tracks{margin:6px 0;padding-left:18px;font-size:.85rem}.book-add>summary{cursor:pointer;font-weight:700}.book-source-tabs{display:flex;gap:6px;margin:10px 0 8px}.book-source input[type=url]{width:100%;font:inherit;padding:6px 8px;border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface);color:var(--sap-ink)}.book-images{list-style:none;padding:0;font-size:.84rem}.book-proposal-head{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.book-proposal-head label,.book-ch-field{display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:var(--sap-ink-soft)}.book-proposal-head input,.book-proposal-row input,.book-proposal-row select,.book-ch-field input,.book-ch-field select,.book-ch-field textarea{font:inherit;font-size:.85rem;padding:4px 6px;border:1px solid var(--sap-border);border-radius:6px;background:var(--sap-surface);color:var(--sap-ink)}.book-proposal-list{padding-left:18px;margin:6px 0}.book-proposal-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0}.book-ch-no{width:6em}.book-ch-title{flex:1;min-width:12em}.book-ch-sections{font-size:.76rem;color:var(--sap-ink-faint);margin:2px 0 4px}.book-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.book-card-head h3{margin:0}.book-meta{display:flex;flex-wrap:wrap;gap:4px 10px;margin:2px 0 8px;font-size:.8rem;color:var(--sap-ink-soft)}.book-chapters{list-style:none;padding:0;margin:8px 0 0}.book-ch{border-top:1px solid var(--sap-border);padding:6px 0}.book-ch-main{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.book-ch-toggle{appearance:none;border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;flex:1 1 16em}.book-ch.is-done .book-ch-toggle{color:var(--sap-ink-soft)}.book-ch-no-label{font-weight:700;margin-right:4px}.book-ch-page{font-size:.75rem;color:var(--sap-ink-faint)}.book-ch-status{display:inline-flex;border:1px solid var(--sap-border);border-radius:8px;overflow:hidden}.book-status-btn{appearance:none;border:0;background:var(--sap-surface);color:var(--sap-ink-soft);font:inherit;font-size:.75rem;padding:3px 9px;cursor:pointer}.book-status-btn.is-active{background:var(--sap-accent);color:var(--sap-accent-ink)}.book-ch-quiz{display:inline-flex;gap:4px}.book-ch-detail{display:flex;flex-wrap:wrap;gap:8px 14px;margin:6px 0 2px 1.5em}.book-ch-detail .book-ch-field:last-of-type{flex:1 1 100%}.book-cover{display:inline-block;font-size:.75rem;border-radius:6px;padding:1px 7px;margin:1px 4px 1px 0;border:1px solid var(--sap-border);color:var(--sap-ink-soft)}.book-cover.is-done{background:var(--sap-upcoming-bg);border-color:var(--sap-upcoming);color:var(--sap-upcoming)}.book-cover.is-doing{background:var(--sap-today-bg);border-color:var(--sap-today);color:var(--sap-today)}.book-timeline{list-style:none;padding:0;margin:0;font-size:.84rem}.book-timeline li{display:flex;flex-wrap:wrap;gap:2px 10px;padding:4px 0;border-top:1px solid var(--sap-border)}.book-timeline-date{font-weight:700;min-width:6em}.book-timeline-entry{color:var(--sap-ink-soft)}@media(max-width:899px){.layout--study .app-header--study .tab-bar{max-width:none;padding:0 max(8px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left))}.tab-long{display:none}.hub-back{width:var(--ds-control-h-sm);height:var(--ds-control-h-sm);padding:0;font-size:16px}.hub-back-label,.account-who,.account-panel .account-label{display:none}.account-panel .account-icon{display:block}.account-panel summary{justify-content:center;width:var(--ds-control-h-sm);padding:0}}.month-cell-num[aria-current=date],.day-header-date[aria-current=date],.jh-cal-num[aria-current=date]{display:block;width:fit-content;min-width:1.2em;padding:0 4px;border-radius:999px;background:var(--ds-color-inverse);color:var(--ds-color-on-inverse);font-family:var(--ds-font-en);font-variant-numeric:tabular-nums;line-height:inherit;text-align:center}.jh-card.is-selected{background:var(--ds-color-surface-selected);border-color:var(--ds-color-line-ink);box-shadow:inset 0 0 0 2px var(--ds-color-ink)}button,textarea{font-family:inherit}.cal-status{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;min-height:var(--ds-control-h-sm);padding:0 12px;border:1px solid var(--sap-border);border-radius:var(--ds-radius-sm);background:var(--sap-surface);color:var(--sap-ink);font-family:inherit;font-size:13px;line-height:1;white-space:nowrap}@media(min-width:721px)and (max-width:899px){.cal-chat{position:absolute;top:0;right:0;bottom:0;flex-basis:auto;width:min(360px,100%);box-shadow:var(--ds-shadow-2)}}.sap-link-btn,.sap-rate-btn,.sap-filter-btn,.add-button,.weekday-chip,.jh-toolbar-actions button,.jh-toolbar-actions a,.jh-task-actions button,.jh-task-actions a,.jh-drawer-actions button,.jh-drawer-actions a,.jh-table-actions button,.jh-table-actions a,.jh-password-row button,.jh-child-actions button,.jh-child>button,.jh-toolbar-actions .jh-card-open,.jh-card-actions .jh-card-open,.jh-card-actions button,.jh-more>summary,.jh-filter>summary,.jh-cred-compact button,.layout--study button:not([class]){display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;min-height:var(--ds-control-h-sm);padding:0 var(--ds-space-3);border:1px solid var(--sap-border, var(--border));border-radius:var(--ds-radius-sm);background:var(--sap-surface, var(--panel-bg));color:var(--sap-ink-soft, var(--text));font-family:inherit;font-size:13px;font-weight:700;line-height:1.2;letter-spacing:0;text-decoration:none;white-space:nowrap;cursor:pointer}.sap-link-btn:disabled,.sap-rate-btn:disabled,.sap-filter-btn:disabled,.layout--study button:not([class]):disabled,.cal-chip:disabled,.jh-toolbar-actions button:disabled{background:var(--ds-color-surface);border-color:var(--ds-color-line);color:var(--ds-color-ink-disabled);opacity:1;cursor:not-allowed}.sap-link-btn:hover:not(:disabled),.sap-rate-btn:hover:not(:disabled),.sap-filter-btn:hover:not(.is-active),.add-button:hover,.weekday-chip:hover{border-color:var(--ds-color-line-strong);color:var(--sap-ink, var(--text));box-shadow:none}.sap-filter-btn.is-active,.weekday-chip.is-active,.weekday-chip[aria-pressed=true]{background:var(--sap-accent, var(--accent));border-color:var(--sap-accent, var(--accent));color:var(--sap-accent-ink, #fff);box-shadow:none}.sap-filter-btn .sap-archive-date{display:inline;margin:0;font-weight:400;opacity:1}.sap-filter-row{align-items:center}.sap-submit,.jh-primary,.jh-toolbar-actions .jh-primary,.jh-task-actions .jh-primary,.jh-drawer-actions .jh-primary,.jh-child-actions .jh-primary{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:var(--ds-control-h-sm);padding:0 var(--ds-space-3);border:1px solid var(--sap-accent, var(--accent));border-radius:var(--ds-radius-sm);background:var(--sap-accent, var(--accent));color:var(--sap-accent-ink, #fff);font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap}.sap-submit:hover:not(:disabled),.jh-primary:hover:not(:disabled){filter:none;background:var(--ds-color-inverse-hover);border-color:var(--ds-color-inverse-hover)}.sap-submit:disabled,.jh-primary:disabled{background:var(--ds-color-disabled-bg);border-color:var(--ds-color-disabled-bg);color:var(--ds-color-ink-disabled);opacity:1;cursor:not-allowed}.sap-danger-btn,.jh-danger,.jh-drawer-actions .jh-danger,.sap-del{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:var(--ds-control-h-sm);padding:0 var(--ds-space-3);border:1px solid var(--ds-color-danger);border-radius:var(--ds-radius-sm);background:var(--ds-color-surface);color:var(--ds-color-danger);font-family:inherit;font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap;cursor:pointer}.sap-danger-btn:hover:not(:disabled),.jh-danger:hover:not(:disabled),.sap-del:hover:not(:disabled){background:var(--ds-color-danger-bg);border-color:var(--ds-color-danger);color:var(--ds-color-danger)}.sap-reanswer,.jh-text-btn,.jh-linkish,.jh-child-open{display:inline-flex;align-items:center;flex:0 0 auto;min-height:var(--ds-control-h-sm);margin:0;padding:0 var(--ds-space-2);border-radius:var(--ds-radius-sm);white-space:nowrap}.sap-reanswer{text-underline-offset:4px}.sap-reanswer:disabled{opacity:1;color:var(--ds-color-ink-disabled);text-decoration:none;cursor:not-allowed}.icon-button,.jh-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--ds-control-h-sm);height:var(--ds-control-h-sm);padding:0;border:none;border-radius:var(--ds-radius-sm);background:transparent;color:var(--ds-color-ink-soft);font-size:16px;line-height:1;cursor:pointer}.icon-button:hover:not(:disabled),.jh-icon-btn:hover:not(:disabled){background:var(--ds-color-surface-hover);color:var(--ds-color-ink)}.icon-button:disabled{color:var(--ds-color-ink-disabled);cursor:not-allowed}.jh-icon-btn{background:var(--sap-surface-2)}.add-button{width:100%;border-style:dashed;background:transparent;color:var(--sap-accent, var(--accent))}.weekday-chip{flex:1 1 0;padding:0}.sap-view-row{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:var(--ds-space-1);padding-bottom:0;border-bottom:none}.sap-view-row::-webkit-scrollbar{display:none}.sap-view-btn{flex:0 0 auto;min-height:var(--ds-control-h-sm);padding:0 var(--ds-space-3);margin:0;border:1px solid var(--sap-border);border-radius:var(--ds-radius-sm);background:var(--sap-surface);color:var(--sap-ink-soft);font-size:13px;line-height:1.2;white-space:nowrap}.sap-view-btn:hover:not(.is-active){border-color:var(--ds-color-line-strong);color:var(--sap-ink)}.sap-view-btn.is-active{background:var(--sap-accent);border-color:var(--sap-accent);color:var(--sap-accent-ink)}.sap-view-count{flex:0 0 auto;font-family:var(--ds-font-en);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.4;padding:0 6px;border-radius:999px;color:var(--sap-ink-soft)}.sap-view-btn.is-active .sap-view-count{color:var(--sap-accent);background:var(--sap-accent-ink);border-color:var(--sap-accent-ink)}.jh-toolbar-views{padding:0;gap:var(--ds-space-1);background:transparent}.jh-view-tab{min-height:var(--ds-control-h-sm);padding:0 var(--ds-space-3);border:1px solid var(--sap-border);background:var(--sap-surface);font-weight:700}.jh-view-tab:hover:not(.is-active){border-color:var(--ds-color-line-strong)}.jh-view-tab.is-active{background:var(--ds-color-inverse);border-color:var(--ds-color-inverse);color:var(--ds-color-on-inverse);box-shadow:none}.jh-view-count{flex:0 0 auto;font-family:var(--ds-font-en);font-weight:700;line-height:1.4;color:var(--ds-color-ink-soft);background:var(--ds-color-surface-sunken);border:1px solid var(--ds-color-line)}.jh-view-tab.is-active .jh-view-count{background:#fff;color:#222;border-color:#fff}.jh-view-tab.is-overdue .jh-view-count{background:var(--sap-overdue);border-color:var(--sap-overdue);color:#fff}.sap-field input:not([type=checkbox]):not([type=radio]),.sap-field select,.sap-add-form input:not([type=checkbox]):not([type=radio]),.sap-add-form select,.sap-exam-custom input:not([type=checkbox]):not([type=radio]),.sap-exam-custom select,.sap-inline-form input:not([type=checkbox]):not([type=radio]),.sap-inline-form select,.field input:not([type=checkbox]):not([type=radio]),.field select,.jh-form-grid input:not([type=checkbox]):not([type=radio]),.jh-form-grid select,.jh-search input,.jh-filter-menu select,.jh-group select{width:100%;min-width:0;min-height:var(--ds-control-h-sm);padding:0 var(--ds-space-2);border:var(--ds-border-input);border-radius:var(--ds-radius-sm);background:var(--ds-color-surface);color:var(--sap-ink, var(--text));font-family:inherit;font-size:13px;line-height:1.4}.sap-field textarea,.sap-add-form textarea,.jh-app textarea{min-height:72px;padding:6px var(--ds-space-2);border:var(--ds-border-input);border-radius:var(--ds-radius-sm);background:var(--ds-color-surface);font-family:inherit;font-size:13px;line-height:1.6}.sap-form-grid label,.sap-inline-form label,.field-label{font-size:12px;color:var(--sap-ink-faint, var(--text-muted))}.sap-form-grid{gap:var(--ds-space-3);align-items:end}.sap-form-grid label,.sap-inline-form label{gap:var(--ds-space-1)}.jh-table input.jh-cell-input,.jh-table select,.deck-plan-table input,.deck-plan-table select{min-height:28px;width:100%;min-width:0;padding:0 var(--ds-space-2)}.jh-table select{font-size:13px;min-width:max-content}.jh-table input.jh-cell-input{min-width:120px}@media(pointer:coarse){.sap-field input:not([type=checkbox]):not([type=radio]),.sap-field select,.sap-add-form input:not([type=checkbox]):not([type=radio]),.sap-add-form select,.sap-inline-form input:not([type=checkbox]):not([type=radio]),.sap-inline-form select,.field input:not([type=checkbox]):not([type=radio]),.field select,.jh-search input,.sap-field textarea,.sap-add-form textarea,.jh-app textarea{font-size:16px}}:where(button,a,summary):focus-visible{outline:var(--ds-focus-ring);outline-offset:var(--ds-focus-offset)}@media(prefers-reduced-motion:reduce){button,a,summary{transition:none}}.todo-capture-preview:not(.is-on){height:0;min-height:0;overflow:hidden}.todo-capture:has(.todo-capture-preview:not(.is-on)){row-gap:6px}.todo-capture:focus-within{border-color:var(--ds-color-ink);box-shadow:0 0 0 1px var(--ds-color-ink)}.todo-capture-input:focus,.todo-tag-input:focus,.todo-title-input:focus,.todo-subtask-title:focus,.place-name:focus{border-color:inherit;box-shadow:0 1px 0 0 var(--ds-color-ink)}.todo-capture-input:focus{box-shadow:none}.sap-add-form>summary,.sap-archive>summary,.sap-card details>summary{display:flex;align-items:center;min-height:var(--ds-control-h-sm)}.todo-chip,.todo-mini,.todo-text-btn,.todo-done-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:var(--ds-control-h-sm);white-space:nowrap}.todo-tag-input{min-height:var(--ds-control-h-sm)}.jh-card-main{min-height:var(--ds-control-h-sm);justify-content:center}.google-connect-link{display:inline-flex;align-items:center;min-height:var(--ds-control-h-sm)}details>summary{min-height:var(--ds-control-h-sm);display:flex;align-items:center;cursor:pointer}.todo-time{min-height:var(--ds-control-h-sm)}.jh-group,.jh-check{white-space:nowrap}.jh-table th,.jh-table td{min-width:120px}.jh-table th:first-child,.jh-table td:first-child{min-width:180px}.sap-ipa-papers{margin-top:12px}.sap-ipa-papers-mode{margin-bottom:12px}.sap-ipa-papers-controls{display:flex;flex-wrap:wrap;gap:12px 20px;margin-bottom:12px}.sap-ipa-papers-controls label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--sap-ink-soft)}.sap-ipa-papers-split{display:flex;flex-direction:column;gap:16px}.sap-ipa-papers-split>.sap-ipa-q-grid{order:-1;position:sticky;top:0;z-index:3;background:var(--sap-bg);padding:8px 0}@media(min-width:960px){.sap-ipa-papers-split-unit{flex-direction:row;align-items:flex-start}}.sap-ipa-papers-split-unit .sap-ipa-unit-list{flex:0 0 280px;max-height:75vh;overflow:auto}.sap-ipa-papers-split-unit .sap-ipa-unit-viewer{flex:1 1 auto;min-width:0}.sap-ipa-dojo-summary{margin-bottom:16px;padding:12px 14px;border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface)}.sap-ipa-dojo-summary-head{margin:0 0 8px;font-size:.95rem}.sap-ipa-dojo-summary-head:not(:first-child){margin-top:14px}.sap-ipa-dojo-accuracy,.sap-ipa-dojo-suggest{list-style:none;margin:0;padding:0}.sap-ipa-dojo-accuracy li,.sap-ipa-dojo-suggest li{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:baseline;padding:4px 0;font-size:.88rem}.sap-ipa-dojo-accuracy-unit{font-weight:600;min-width:8em}.sap-ipa-dojo-suggest-reason{color:var(--sap-ink-soft)}.sap-ipa-dojo-year-accuracy li{flex-direction:column;align-items:stretch;gap:4px}.sap-ipa-dojo-year-accuracy-main{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:baseline;min-width:0}.sap-ipa-dojo-year-accuracy-sub{display:flex;flex-direction:column;gap:4px;min-width:0;width:100%}.sap-ipa-dojo-year-progress{font-size:.82rem;color:var(--sap-ink-soft)}.sap-ipa-dojo-year-bar-track{width:100%;max-width:100%;height:5px;border-radius:3px;background:var(--sap-border);overflow:hidden}.sap-ipa-dojo-year-bar-fill{height:100%;border-radius:3px;background:var(--sap-accent, #3b6ea5)}.sap-ipa-dojo-year-accuracy-total{margin-top:6px;padding-top:8px;border-top:1px solid var(--sap-border)}.sap-ipa-dojo-year-wrong{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;min-width:0;max-width:100%;font-size:.82rem}.sap-ipa-dojo-year-wrong-label{color:var(--sap-ink-soft);flex-shrink:0}.sap-ipa-dojo-year-wrong-nums{display:flex;flex-wrap:wrap;gap:2px 8px;min-width:0}.sap-ipa-dojo-year-wrong-copy{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:8px 0 4px;max-width:100%}.sap-ipa-dojo-year-wrong-copy-notice{font-size:.82rem;color:var(--sap-ink-soft)}.sap-ipa-dojo-year-wrong-copy-fallback{width:100%;max-width:100%;box-sizing:border-box;font:inherit;font-size:.82rem}.sap-ipa-booklet-preview{width:100%;max-width:100%}.sap-ipa-booklet-preview-warn{margin:0 0 6px;font-size:.82rem;color:var(--sap-ink-soft)}.sap-ipa-booklet-preview-pages{width:100%;max-height:min(70vh,720px);overflow:auto;scrollbar-gutter:stable;border:1px solid var(--sap-border, #d8dee9);border-radius:6px;background:#fff}.sap-ipa-booklet-preview-canvas{display:block;width:100%;height:auto}.sap-ipa-dojo-question{display:flex;flex-direction:column;gap:10px}.sap-ipa-dojo-q-head{margin:0;font-size:1.05rem}.sap-ipa-dojo-note{margin:0;font-size:.85rem;color:var(--sap-ink-soft)}.sap-ipa-dojo-links{margin:0;font-size:.82rem}.sap-ipa-dojo-links a{color:var(--sap-accent)}.sap-ipa-dojo-choices{display:grid;grid-template-columns:repeat(4,minmax(3rem,1fr));gap:8px;max-width:240px}.sap-ipa-dojo-choice-btn{appearance:none;border:2px solid var(--sap-border);background:var(--sap-surface-2);color:var(--sap-ink);font:inherit;font-size:.95rem;font-weight:700;padding:4px 0;min-height:var(--ds-control-h-sm);border-radius:8px;cursor:pointer}.sap-ipa-dojo-choice-btn.is-active{border-color:var(--sap-accent);background:var(--sap-accent-weak)}.sap-ipa-dojo-choice-btn:disabled{opacity:.55;cursor:not-allowed}.sap-ipa-dojo-choice-btn.is-correct{border-color:#1f7a4d;background:#e7f6ee;opacity:1}.sap-ipa-dojo-choice-btn.is-wrong{border-color:#b42318;background:#fdecea;opacity:1}.sap-ipa-dojo-explain{margin-top:12px;padding:12px 14px;border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface)}.sap-ipa-dojo-explain-head{margin:0 0 8px;font-size:1rem;font-weight:700}.sap-ipa-dojo-explain-official{margin:0 0 10px;font-size:.9rem;color:var(--sap-ink-soft)}.sap-ipa-dojo-explain-ai{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--sap-border)}.sap-ipa-dojo-explain-ai-head{margin:0 0 6px;font-size:.95rem;font-weight:700;color:var(--sap-ink)}.sap-ipa-dojo-explain-ai-text{margin:0 0 8px;font-size:.9rem;color:var(--sap-ink);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.sap-ipa-dojo-explain-ai-note{margin:0 0 10px;font-size:.78rem;color:var(--sap-ink-soft)}.sap-ipa-dojo-explain .sap-ipa-dojo-recorded{gap:8px}.sap-ipa-dojo-result{margin:10px 0 8px;font-weight:700}.sap-ipa-dojo-result.is-correct{color:#1f7a4d}.sap-ipa-dojo-result.is-wrong{color:#b42318}.sap-ipa-dojo-grade{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.sap-ipa-dojo-grade-label{font-size:.9rem;color:var(--sap-ink-soft)}.sap-ipa-dojo-recorded{margin:0;font-size:.95rem;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.sap-ipa-dojo-mock-score{font-weight:700}.sap-ipa-mock-nav{margin-top:14px}.sap-ipa-q-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(3.2rem,1fr));gap:6px}.sap-ipa-q-btn{appearance:none;border:1px solid var(--sap-border);background:var(--sap-surface);color:var(--sap-ink);font:inherit;font-size:.8rem;padding:6px 4px;min-height:var(--ds-control-h-sm);border-radius:6px;cursor:pointer}.sap-ipa-q-btn.is-active{border-color:var(--sap-accent);background:var(--sap-accent-weak);font-weight:700}.sap-ipa-q-hint{margin:10px 0 0;font-size:.85rem;color:var(--sap-ink-soft)}.sap-ipa-unit-group{margin-bottom:14px}.sap-ipa-unit-head{margin:0 0 6px;font-size:.92rem}.sap-ipa-unit-items{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px}.sap-ipa-unit-view-head{margin:0 0 8px;font-size:1rem}.sap-ipa-mock-start{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:flex-end}.sap-ipa-pm-split{display:flex;flex-direction:column;gap:16px;align-items:stretch}@media(min-width:801px){.sap-ipa-pm-split{flex-direction:row;align-items:flex-start}.sap-ipa-pm-sheet{flex:1 1 55%;min-width:0;position:sticky;top:8px;max-height:calc(100vh - 16px);overflow:auto;scrollbar-gutter:stable}.sap-ipa-pm-answer{flex:1 1 45%;min-width:0}}@media(max-width:800px){.sap-ipa-pm-sheet .sap-ipa-booklet-preview-pages{max-height:45vh;max-height:45svh}.sap-ipa-dojo-year-wrong,.sap-ipa-dojo-year-wrong-nums{overflow-x:hidden}}.sap-ipa-pm-part{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.sap-ipa-pm-part-head{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;font-size:.92rem}.sap-ipa-pm-part-head label{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--sap-ink-soft)}.sap-ipa-pm-part-head input[type=number]{width:5rem;font:inherit}.sap-ipa-pm-part textarea{width:100%;font:inherit;padding:8px;border:1px solid var(--sap-border);border-radius:6px;resize:vertical;box-sizing:border-box}.sap-ipa-pm-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:8px}.sap-ipa-pm-saved{margin:0;font-size:.9rem;color:var(--sap-ink-soft)}.sap-ipa-mock-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:10px;font-size:.9rem}.sap-ipa-mock-answers{margin-top:16px;display:flex;flex-direction:column;gap:10px}.sap-ipa-mock-q{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:8px 0;border-top:1px solid var(--sap-border)}.sap-ipa-mock-q-label{font-weight:700;min-width:3em}.sap-ipa-mock-choices{display:flex;flex-wrap:wrap;gap:10px 16px}.sap-ipa-mock-choice{display:inline-flex;align-items:center;gap:4px;font-size:.9rem}.sap-ipa-mock-touch{display:inline-flex;align-items:center;gap:6px;font-size:.9rem}.budget-table{width:100%;border-collapse:collapse;font-size:.8rem}.budget-table th,.budget-table td{padding:6px 8px;border-bottom:1px solid var(--sap-border);text-align:left;vertical-align:top}.budget-table th{font-weight:600;color:var(--sap-ink-soft);white-space:nowrap}.budget-table tr.is-short .budget-num{color:var(--sap-overdue);font-weight:600}.budget-num{white-space:nowrap;font-variant-numeric:tabular-nums}.budget-theme{font-size:.72rem;color:var(--sap-ink-faint)}.budget-part{display:inline-block;margin:0 6px 4px 0;padding:1px 8px;border-radius:999px;background:var(--sap-surface-2);border:1px solid var(--sap-border);font-size:.74rem;white-space:nowrap}.budget-part.is-weekend{border-color:var(--sap-accent);color:var(--sap-accent-strong)}.budget-limits{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.budget-limit-row{display:flex;gap:6px}.field .budget-limit-row input[type=number],.budget-limit-row input[type=number]{width:5em;flex:none}.field .budget-limit-row input[type=text],.budget-limit-row input[type=text]{flex:1;min-width:0}.budget-import textarea{width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem}.sap-ipa-dojo-choice-btn.is-correct,.sap-ipa-dojo-choice-btn.is-wrong{color:#16191f}@media(prefers-color-scheme:dark){.sap-ipa-dojo-result.is-correct{color:#6ee7a8}.sap-ipa-dojo-result.is-wrong{color:#ff9b91}}.sap-ipa-pm-verdict{font-weight:700;padding:0 8px;border-radius:10px;border:1px solid currentColor}.sap-ipa-pm-verdict.is-correct{color:#1a7f37}.sap-ipa-pm-verdict.is-partial{color:#9a6700}.sap-ipa-pm-verdict.is-wrong{color:#cf222e}.sap-ipa-pm-verdict.is-blank{color:#6e7781}.sap-ipa-pm-comment{margin:0;font-size:.9em;opacity:.85}.todo-app{padding:16px 16px 48px}.todo-app .todo-toolbar{padding:8px 4px 16px;row-gap:4px;flex-wrap:wrap}.todo-app .span-strip{margin-bottom:16px;flex:0 0 auto}.todo-app .todo-tag-bar{gap:8px;padding:0 4px 16px}.todo-app .todo-board:not(.is-rail){gap:28px}.todo-app .todo-board:not(.is-rail) .todo-sections{gap:28px}.todo-app .todo-capture{gap:12px;padding:16px 18px 14px}.todo-app .todo-capture-presets{gap:8px}.todo-app .todo-capture .todo-chip{padding:6px 12px}.todo-app .todo-capture-window{gap:8px;flex-wrap:wrap}.todo-app .todo-board:not(.is-rail) .todo-section-head{margin-bottom:10px;padding:0 4px}.todo-app .todo-board:not(.is-rail) .todo-list{gap:6px}.todo-app .todo-board:not(.is-rail) .todo-row{padding:8px;row-gap:4px;column-gap:10px}.todo-app .todo-board:not(.is-rail) .todo-row-tools{gap:8px}.todo-app .todo-board:not(.is-rail) .todo-row:hover .todo-row-tools,.todo-app .todo-board:not(.is-rail) .todo-row:focus-within .todo-row-tools{margin-top:6px}.todo-app .todo-board:not(.is-rail) .todo-empty{padding:14px}@media(max-width:600px){.todo-app{padding:12px 12px 40px}.todo-app .todo-capture{padding:14px 14px 12px}.todo-app .todo-board:not(.is-rail),.todo-app .todo-board:not(.is-rail) .todo-sections{gap:24px}}.sap-ipa-booklet-preview--dojo .sap-ipa-booklet-preview-frame{position:relative}.sap-ipa-booklet-preview--dojo .sap-ipa-booklet-preview-pages{min-height:12rem;transition:opacity .15s ease}.sap-ipa-booklet-preview--dojo .sap-ipa-booklet-preview-pages.is-loading{opacity:.35}.sap-ipa-booklet-preview--dojo .sap-ipa-booklet-preview-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;pointer-events:none}.sap-ipa-booklet-preview--dojo .sap-ipa-booklet-preview-canvas,.sap-ipa-dojo-question--am2 .sap-ipa-dojo-explain{animation:sap-ipa-fade-in .18s ease-out}@keyframes sap-ipa-fade-in{0%{opacity:0}to{opacity:1}}.sap-ipa-dojo-question--am2 .sap-ipa-dojo-q-head:focus,.sap-ipa-dojo-question--am2 .sap-ipa-dojo-q-head:focus-visible{outline:none}.sap-ipa-dojo-nav{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sap-ipa-dojo-nav-hint{font-size:.78rem;color:var(--sap-ink-soft)}@media(prefers-reduced-motion:reduce){.sap-ipa-booklet-preview--dojo .sap-ipa-booklet-preview-pages{transition:none}.sap-ipa-booklet-preview--dojo .sap-ipa-booklet-preview-canvas,.sap-ipa-dojo-question--am2 .sap-ipa-dojo-explain{animation:none}}.event-work-panel{flex:0 1 auto;min-height:0;max-height:40%;overflow:auto;border:1px solid var(--sap-border);border-radius:12px;background:var(--sap-surface);padding:8px 10px;display:flex;flex-direction:column;gap:6px}.event-work-title-head{margin:0;font-size:.85rem;color:var(--sap-ink-soft)}.event-work-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.event-work-row{border:1px solid var(--sap-border);border-radius:8px;background:var(--sap-surface-2);padding:6px 8px}.event-work-row.is-past{border-color:var(--sap-overdue)}.event-work-row-head{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;color:var(--sap-ink)}.event-work-row-head:focus-visible,.event-work-add:focus-visible,.event-work-btn:focus-visible{outline:2px solid var(--sap-accent);outline-offset:2px}.event-work-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-work-when{grid-column:1 / -1;font-size:.78rem;color:var(--sap-ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-work-bar{grid-column:1 / -1;display:block;height:8px;border-radius:4px;background:var(--sap-border);overflow:hidden}.event-work-bar-fill{display:block;height:100%;background:var(--sap-accent)}.event-work-row.is-done .event-work-bar-fill{background:var(--sap-upcoming)}.event-work-row.is-past .event-work-bar-fill{background:var(--sap-overdue)}.event-work-count{font-size:.82rem;color:var(--sap-ink)}.event-work-status{grid-column:1 / -1;font-size:.85rem;font-weight:700}.event-work-status.is-short{color:var(--sap-today);background:var(--sap-today-bg);border-radius:6px;padding:1px 6px;justify-self:start}.event-work-status.is-past{color:var(--sap-overdue);background:var(--sap-overdue-bg);border-radius:6px;padding:1px 6px;justify-self:start}.event-work-status.is-done{color:var(--sap-upcoming)}.event-work-late{margin:4px 0 0;font-size:.78rem;color:var(--sap-ink-soft)}.event-work-detail{margin-top:8px;padding-top:8px;border-top:1px solid var(--sap-border);display:flex;flex-direction:column;gap:8px}.event-work-subhead{margin:0;font-size:.82rem;color:var(--sap-ink-soft)}.event-work-blocks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.event-work-block{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.85rem}.event-work-block.is-late{color:var(--sap-ink-faint)}.event-work-late-tag{font-style:normal;font-size:.75rem}.event-work-form{display:flex;flex-direction:column;gap:6px}.event-work-fields{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.event-work-field{display:flex;flex-direction:column;gap:2px;font-size:.78rem;color:var(--sap-ink-soft);min-width:0}.event-work-field select,.event-work-field input{font:inherit;font-size:.9rem;color:var(--sap-ink);background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:6px;padding:4px 6px;max-width:100%;min-width:0}.event-work-actions{display:flex;flex-wrap:wrap;gap:8px}.event-work-btn,.event-work-add{font:inherit;font-size:.85rem;cursor:pointer;color:var(--sap-ink);background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:6px;padding:4px 10px;min-height:32px}.event-work-btn.is-primary{background:var(--sap-accent);border-color:var(--sap-accent);color:var(--sap-accent-ink)}.event-work-btn.is-danger{color:var(--sap-overdue);border-color:var(--sap-overdue)}.event-work-btn:disabled{opacity:.6;cursor:default}.event-work-add{align-self:flex-start;color:var(--sap-accent);border-style:dashed}.event-work-hint,.event-work-empty{margin:0;font-size:.8rem;color:var(--sap-ink-soft)}.event-work-error{margin:0;font-size:.82rem;color:var(--sap-overdue)}.event-work-link{font:inherit;background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer}.block-slot.event-work-slot{background:#0d7377;color:#fff;z-index:1;border:1px dashed #fff}.block-slot.event-work-slot.is-faded{opacity:.45}.month-chip.is-event-work{background:#e4f4f1;color:#0d6a6e;border:1px dashed currentColor}.month-chip.is-event-work.is-faded{opacity:.55}@media(prefers-color-scheme:dark){.month-chip.is-event-work{background:#12393b;color:#9fe3dd}}@media(min-width:721px){.event-work-row-head{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(90px,140px) auto}.event-work-name,.event-work-when{grid-column:auto}.event-work-when{grid-column:2}.event-work-bar{grid-column:3;grid-row:1}.event-work-count{grid-column:4;grid-row:1}.event-work-status{grid-column:1 / -1}}.event-work-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px}.event-work-head .event-work-add{margin-left:auto}.todo-app.places-app{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
