.semester-form{display:grid;gap:20px;margin:24px 0}.semester-form label{display:grid;gap:9px;font-weight:650;font-size:14px}.semester-form input:not([type=checkbox]),.semester-form select{font:inherit;font-size:16px;width:100%;min-width:0;box-sizing:border-box;min-height:48px;border-radius:12px;border:1px solid color-mix(in srgb,currentColor 22%,transparent);background:color-mix(in srgb,currentColor 3%,transparent);color:inherit;padding:11px 12px}.semester-form select option{background:#fff;color:#242331}.semester-form input:focus,.semester-form select:focus{outline:2px solid #879ddc;outline-offset:2px}.semester-form input[readonly]{opacity:.8}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.semester-form .manual-dates{display:flex;align-items:center;font-weight:400;font-size:13px;margin-bottom:16px}.manual-dates input{width:20px;height:20px;accent-color:#6b56a2}#calendarSource{font-size:13px;color:inherit;text-underline-offset:4px}#semesterList{display:grid;gap:8px;margin-top:22px}#semesterList button{text-align:right;font:inherit;color:inherit}#accountStatus{line-height:1.8;overflow-wrap:anywhere}#googleLogin{width:100%;font-size:16px;min-height:50px}#semesterDates{border-top:1px solid #8883;padding-top:8px}.header-actions .tag{max-width:130px;white-space:normal;font-size:11px}.semester-form [hidden]{display:none!important}@media(max-width:400px){.date-fields{grid-template-columns:1fr}.header-actions .tag{display:none}}

/* Field-sized menus, shared by all themes and independent of OS pickers. */
.semester-form>label[for]{margin-bottom:-12px}
.semester-picker{position:relative;min-width:0}
.semester-picker.is-open{z-index:30}
.semester-select{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;border:1px solid color-mix(in srgb,currentColor 22%,transparent);border-radius:12px;padding:11px 12px;background:color-mix(in srgb,currentColor 3%,transparent);color:inherit;font:inherit;font-size:16px;text-align:start;cursor:pointer}
.semester-select::after{content:'';width:7px;height:7px;border-inline-end:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:0 3px 4px;flex:none}
.semester-select[aria-expanded=true]::after{transform:rotate(225deg);margin-bottom:-4px}
.semester-options{position:absolute;top:calc(100% + 6px);inset-inline:0;width:100%;max-height:min(240px,35dvh);overflow-y:auto;overscroll-behavior:contain;background:var(--surface,#fff);color:var(--ink,#24212b);border:1px solid var(--line,#ded3ea);border-radius:12px;padding:5px;box-shadow:0 12px 28px #0003;text-align:start;font-size:15px;font-weight:400;z-index:40}
.semester-option{padding:12px 10px;min-height:46px;border-radius:8px;cursor:pointer;overflow-wrap:anywhere;line-height:1.5}
.semester-option[aria-selected=true]{font-weight:750;background:var(--soft,#eee6f5);color:var(--softink,#694d85)}
.semester-option.is-active{outline:2px solid var(--accent,#879ddc);outline-offset:-2px;background:var(--soft,#eee6f5);color:var(--softink,#694d85)}
.semester-no-results{padding:12px 10px;line-height:1.7;font-size:13px}
@media(hover:hover){.semester-option:hover{background:var(--soft,#eee6f5);color:var(--softink,#694d85)}}

/* Keep first-run login and semester setup focused until a workspace is ready. */
:root[data-onboarding="true"] .top,
:root[data-onboarding="true"] .foot{display:none!important}
:root[data-onboarding="true"] .wrap{padding-top:max(24px,env(safe-area-inset-top))}
:root[data-onboarding="true"] .app-page{margin-top:0}

.account-continue{display:none;text-decoration:none;margin-inline-start:8px;margin-top:12px}
#signOut:not([hidden])+.account-continue{display:inline-flex;align-items:center}

/* Screen-level back control, clear of the iPhone safe area. */
.app-page>.setup-back{position:fixed;top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));z-index:60;display:inline-flex;align-items:center;justify-content:center;gap:6px;direction:ltr;min-height:44px;min-width:76px;margin:0;padding:8px 12px;border:1px solid var(--line,#ded3ea);border-radius:12px;background:var(--surface,#fff);color:var(--ink,#536c9c);font-size:14px;box-shadow:0 2px 10px #0000000a}
:root:has(.app-page:not([hidden])>.setup-back) .wrap{padding-top:calc(68px + env(safe-area-inset-top))!important}
