/* Campus A: shared mobile shell, typography and study surfaces. */
@font-face { font-family:Manrope; font-style:normal; font-weight:200 800; font-display:swap; src:url('/assets/campus/manrope.ttf') format('truetype'); }
html:has(body.beta) { background:#f1f4f9; scroll-padding-block:20px 100px; }
body.beta { --ink:#101936; --muted:#66738e; --blue:#2449f5; --page:#fff; --surface:#f4f6fa; --line:#e8edf5; --radius:16px; margin:0; color:var(--ink); background:#f1f4f9; font:14px/1.55 Manrope,sans-serif; -webkit-font-smoothing:antialiased; -webkit-tap-highlight-color:transparent; }
.beta *,.beta *::before,.beta *::after { box-sizing:border-box; }
.beta [hidden] { display:none !important; }
.beta ::selection { background:#dae3ff; color:#101936; }
.beta :is(button,input,select,textarea) { font:inherit; max-width:100%; }
.beta :is(input,textarea) { caret-color:var(--blue); }
.beta button { min-height:44px; border:0; color:inherit; background:none; cursor:pointer; touch-action:manipulation; }
.beta :is(button,input,select,textarea):disabled { opacity:.5; cursor:default; }
.beta :is(button,a,input,select,textarea,summary):focus-visible { outline:3px solid #8098ff; outline-offset:3px; }
.beta :is(h1,h2,h3,p) { margin:0; }
.beta h2 { font-size:20px; line-height:1.3; letter-spacing:-.5px; font-weight:800; }
.beta h3 { font-size:16px; line-height:1.4; }
.beta a { color:var(--blue); text-underline-offset:3px; }
.beta .ui-icon { width:21px; height:21px; stroke:currentColor; stroke-width:1.7; fill:none; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.beta #beta-app { width:100%; max-width:520px; min-height:100dvh; margin:auto; padding:max(12px,env(safe-area-inset-top)) 16px calc(90px + env(safe-area-inset-bottom)); overflow-wrap:anywhere; background:var(--page); }
.beta :is(.study-layout,.study-main) { min-width:0; }
.beta .study-top { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; margin-bottom:12px; }
.beta .study-brand { display:flex; align-items:center; gap:13px; padding:0; text-align:left; }
.beta .study-wordmark { font-size:21px; line-height:1; font-weight:800; letter-spacing:-.9px; }
.beta .study-institution { color:#4c5b78; font-size:13px; padding-left:13px; border-left:1px solid #c7cfdd; line-height:14px; }
.beta .study-top-actions { display:flex; align-items:center; gap:4px; }
.beta .shell-search { width:40px; display:grid; place-items:center; }
.beta #study-avatar { width:35px; min-height:35px; border-radius:50%; background:#edf2ff; color:var(--blue); font-size:11px; font-weight:800; }
.beta .study-heading { display:flex; align-items:center; gap:12px; margin:4px 0 20px; }
.beta .study-heading > div { flex:1; min-width:0; display:flex; flex-direction:column; }
.beta .study-heading h1 { order:0; font-size:27px; font-weight:800; line-height:1.25; letter-spacing:-.9px; }
.beta .study-heading h1[tabindex="-1"]:focus { outline:none; }
.beta .study-eyebrow { order:1; color:var(--muted); font-size:12px; font-weight:400; margin-top:5px; }
.beta .study-eyebrow:empty { display:none; }
.beta .icon-button { width:44px; height:44px; padding:10px; flex-shrink:0; display:grid; place-items:center; border-radius:12px; background:var(--surface); color:#526887; }
.beta .section-line { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.beta .quiet-pill { display:inline-flex; font-size:11px; color:#51627e; background:var(--surface); padding:4px 9px; border-radius:6px; }
.beta .quiet-text { color:var(--muted); font-size:12px; line-height:1.65; }
.beta .study-empty { background:var(--surface); padding:24px 20px; border-radius:var(--radius); margin:12px 0; }
.beta .study-empty h3 { font-size:16px; font-weight:750; margin-bottom:7px; }
.beta .study-empty p { color:var(--muted); font-size:13px; line-height:1.65; }
.beta .study-empty button { margin-top:16px; }
.beta .data-timestamp { font-size:12px; color:var(--muted); margin-top:20px; }
.beta .study-footer { font-size:11px; color:var(--muted); text-align:center; margin-top:28px; }
.beta .study-nav { position:fixed; z-index:20; left:50%; bottom:0; transform:translateX(-50%); width:min(100%,520px); display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); padding:5px 10px calc(6px + env(safe-area-inset-bottom)); background:#fff; border-top:1px solid var(--line); }
.beta .study-nav button { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-height:55px; min-width:0; padding:5px 0; color:#54627c; font-size:10px; font-weight:500; white-space:nowrap; overflow-wrap:normal; }
.beta .study-nav button > svg { width:21px; height:21px; }
.beta .study-nav button.active { color:var(--blue); font-weight:800; }
.beta .study-nav button.active::before { content:""; position:absolute; width:20px; height:2px; background:var(--blue); top:-6px; border-radius:2px; }
.beta .study-nav button.active > svg { stroke-width:2.2; }
/* A quiet, source-backed home summary is shared with the campus home. */
.beta .campus-study-summary { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:9px; margin:0 0 14px; }
.beta .campus-study-summary button { display:flex; gap:10px; align-items:flex-start; min-width:0; min-height:75px; padding:12px 10px; text-align:left; border-radius:14px; background:var(--surface); }
.beta .campus-study-summary button > .ui-icon { width:20px; height:20px; color:var(--blue); margin-top:3px; }
.beta .campus-study-summary button > span { min-width:0; display:flex; flex-direction:column; gap:2px; }
.beta .campus-study-summary small { font-size:11px; color:#566681; }
.beta .campus-study-summary strong { font-size:13px; font-weight:800; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.beta .campus-study-summary button > span > span { font-size:11px; color:var(--muted); }
.beta .home-grid { display:grid; grid-template-columns:90px minmax(0,1fr); gap:10px; margin-bottom:24px; }
.beta .beta-next-class { grid-column:1/-1; display:flex; gap:14px; padding:18px; border-radius:16px; background:#edf2ff; text-align:left; color:#203f91; }
.beta .next-time-column { display:flex; flex-direction:column; gap:4px; min-width:66px; flex-shrink:0; }
.beta .next-time-column strong { font-size:27px; line-height:1.2; font-weight:800; font-variant-numeric:tabular-nums; }
.beta .next-time-column :is(small,span) { font-size:10px; }
.beta .next-content { flex:1; min-width:0; border-left:1px solid #cfd9f8; padding-left:14px; }
.beta .beta-next-kicker { display:block; font-size:11px; margin-bottom:5px; }
.beta .beta-next-title { display:block; font-size:15px; font-weight:800; line-height:1.4; }
.beta .beta-next-meta { display:block; font-size:11px; margin-top:7px; }
.beta .beta-next-class > svg { width:12px; }
.beta .calendar-card { display:flex; flex-direction:column; align-items:center; gap:2px; text-align:center; padding:14px; background:var(--surface); border-radius:16px; }
.beta .calendar-card > span:first-child { font-size:11px; color:var(--muted); }
.beta .calendar-card > strong { font-size:32px; font-weight:800; }
.beta .calendar-card small { font-size:10px; }
.beta .results-card { min-width:0; display:flex; flex-direction:column; gap:6px; align-items:flex-start; padding:16px; border-radius:16px; background:#fff4e4; text-align:left; }
.beta .results-card > span:first-child { display:flex; justify-content:space-between; width:100%; font-size:11px; color:#755b37; }
.beta .results-card .ui-icon { width:13px; }
.beta .results-card > strong,.beta .result-title { font-size:15px; line-height:1.4; }
.beta .results-card > small,.beta .result-subject,.beta .results-card > span:last-child { font-size:11px; }
.beta .wall-section > .section-line { margin-bottom:14px; }
/* Timetable: real times on a continuous axis, one soft surface per class. */
.beta .week-control { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0 0 12px; padding:0 3px; border-radius:12px; background:var(--surface); }
.beta .week-control button { width:44px; height:44px; flex-shrink:0; font-size:24px; color:#4b607e; }
.beta .week-control > span { font-size:13px; text-align:center; font-weight:750; }
.beta .day-strip { position:relative; display:flex; gap:6px; overflow-x:auto; max-width:100%; padding:2px 0 8px; margin-bottom:16px; scroll-snap-type:x proximity; overscroll-behavior-x:contain; touch-action:pan-x pan-y; scrollbar-width:none; }
.beta .day-strip::-webkit-scrollbar { display:none; }
.beta .day-strip button { flex:0 0 calc((100% - 36px)/7); min-width:44px; display:flex; flex-direction:column; align-items:center; gap:3px; min-height:74px; padding:9px 3px 7px; border-radius:12px; background:var(--surface); color:#596a86; scroll-snap-align:center; font-variant-numeric:tabular-nums; }
.beta .day-strip button > span { font-size:11px; }
.beta .day-strip button > strong { color:var(--ink); font-size:18px; line-height:1.2; font-weight:750; }
.beta .day-strip button > small { display:none; }
.beta .day-strip button[aria-pressed=true] { background:var(--blue); color:#fff; }
.beta .day-strip button[aria-pressed=true] > strong { color:#fff; }
.beta .day-strip button.is-today:not([aria-pressed=true]) { box-shadow:inset 0 0 0 1px #a4b5ff; }
.beta .day-strip i { display:block; width:3px; height:3px; margin-top:2px; border-radius:50%; background:transparent; }
.beta .day-strip i.loaded { background:currentColor; }
.beta .day-label { margin-bottom:14px; }
.beta .day-label h2 { text-transform:capitalize; font-size:21px; }
.beta .lesson-timeline { display:grid; gap:15px; }
.beta .lesson-row { display:grid; grid-template-columns:48px minmax(0,1fr); align-items:start; gap:15px; }
.beta .lesson-time { position:relative; display:flex; flex-direction:column; gap:4px; padding-top:12px; font-variant-numeric:tabular-nums; }
.beta .lesson-time::after { content:""; position:absolute; right:-10px; top:20px; width:5px; height:5px; border-radius:50%; background:#5a78ff; }
.beta .lesson-time strong { font-size:13px; font-weight:750; }
.beta .lesson-time span { font-size:12px; color:var(--muted); }
.beta .lesson-body { position:relative; display:flex; flex-direction:column; width:100%; min-width:0; padding:14px; background:#edf4ff; border-radius:16px; text-align:left; }
.beta .lesson-body.amber { background:#fff5e5; }
.beta .lesson-body.mint { background:#eaf8f2; }
.beta .lesson-kind { display:inline-flex; color:#4865a5; font-size:12px; line-height:1.5; font-weight:500; margin:4px 0 9px; }
.beta .lesson-body .lesson-kind { order:1; }
.beta .lesson-body.amber .lesson-kind { color:#866230; }
.beta .lesson-body.mint .lesson-kind { color:#357760; }
.beta .lesson-title { order:0; display:block; padding-right:8px; font-size:16px; line-height:1.4; font-weight:800; }
.beta .lesson-place { order:2; display:block; font-size:12px; color:#455c81; }
.beta .lesson-teacher,.beta .lesson-body > small { order:3; display:block; font-size:12px; line-height:1.5; color:#64728a; margin-top:4px; }
.beta .lesson-body > .ui-icon { position:absolute; width:12px; height:12px; right:12px; bottom:17px; color:#647698; }
.beta .lesson-detail { padding:20px; }
.beta .lesson-detail-header > p { margin:5px 0 8px; color:var(--muted); font-size:12px; }
.beta .lesson-detail-header h1 { font-size:27px; font-weight:800; line-height:1.25; letter-spacing:-.8px; text-wrap:balance; }
.beta .lesson-detail-header h1:focus { outline:none; }
.beta .lesson-detail-time { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:22px 0 18px; padding:16px 0; border-block:1px solid var(--line); font-variant-numeric:tabular-nums; }
.beta .lesson-detail-time > span:first-child { display:flex; align-items:center; gap:9px; }
.beta .lesson-detail-time .ui-icon { color:var(--blue); width:21px; }
.beta .lesson-detail-time small { display:block; color:var(--muted); font-size:10px; }
.beta .lesson-detail-time strong { display:block; font-size:24px; font-weight:750; line-height:1.4; }
.beta .lesson-duration { font-size:10px; white-space:nowrap; color:var(--muted); }
.beta .lesson-detail-label { display:block; color:var(--muted); font-size:11px; margin-bottom:5px; }
.beta .lesson-location { padding:16px; background:#edf3ff; border-radius:12px; }
.beta .lesson-location > strong { display:block; font-size:20px; font-weight:750; line-height:1.4; }
.beta .lesson-teacher-card { padding:20px 0 4px; }
.beta .lesson-teacher-card > strong { font-size:14px; font-weight:650; }
.beta .lesson-extra { padding-top:17px; margin-top:17px; border-top:1px solid var(--line); }
.beta .lesson-extra > p { font-size:13px; line-height:1.65; color:#465b79; }
.beta .lesson-source-note { font-size:10px; color:var(--muted); margin-top:24px; }
/* Grades keep source results, full work titles and neutral missing values. */
.beta .grade-controls { margin-bottom:14px; }
.beta .semester-control { display:block; min-width:0; }
.beta .semester-control > span { display:block; font-size:11px; color:var(--muted); margin-bottom:5px; }
.beta .semester-control select { width:100%; min-width:0; min-height:48px; padding:11px 12px; border:0; border-radius:12px; background:var(--surface); color:var(--ink); font-size:14px; font-weight:650; }
.beta .grade-summary { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 10px; padding:0 1px 8px; color:var(--muted); font-size:12px; }
.beta .grade-summary strong { color:#435776; font-weight:650; }
.beta .grade-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:2px 0 8px; color:var(--muted); font-size:11px; }
.beta .grade-toolbar .text-button { font-size:11px; }
.beta .course-list { display:grid; gap:12px; }
.beta .grade { min-width:0; padding:0; border:0; border-radius:16px; background:transparent; }
.beta .course-item { padding:0; margin:0; border:0; }
.beta .course-item > summary { display:flex; align-items:flex-start; gap:10px; min-height:76px; padding:15px 16px; border-radius:14px; background:var(--surface); cursor:pointer; list-style:none; }
.beta .course-item > summary::-webkit-details-marker { display:none; }
.beta .course-label { flex:1; min-width:0; }
.beta .course-label strong { display:block; font-size:15px; font-weight:800; line-height:1.4; letter-spacing:-.35px; }
.beta .course-label small { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 7px; color:var(--muted); font-size:12px; font-weight:400; margin-top:5px; }
.beta .course-final { width:50px; flex-shrink:0; display:flex; flex-direction:column; align-items:center; gap:4px; font-size:11px; color:var(--muted); text-align:center; }
.beta .course-final small { font-size:11px; }
.beta .course-final .mark-badge { max-width:50px; font-size:11px; }
.beta .course-item > summary > svg { width:12px; height:12px; color:#637597; margin-top:7px; transform:rotate(90deg); }
.beta .course-item[open] > summary > svg { transform:rotate(-90deg); }
.beta .mark-badge { display:inline-flex; justify-content:center; align-items:center; min-width:30px; min-height:30px; max-width:100%; padding:4px 7px; border-radius:9px; font-size:14px; line-height:1.4; font-weight:750; font-variant-numeric:tabular-nums; white-space:normal; overflow-wrap:anywhere; text-align:center; background:#f1f4f8; color:#52627d; }
.beta .mark-excellent { color:#087658; background:#def8ee; }
.beta .mark-good { color:#254cc8; background:#e7efff; }
.beta .mark-pass { color:#895c0d; background:#fff1d4; }
.beta .mark-fail { color:#b43642; background:#ffe9ee; }
.beta .mark-neutral { color:#65718a; background:#f1f4f8; font-weight:500; font-size:10px; }
.beta .course-detail { padding:8px 15px 2px; border:1px solid var(--line); border-top:0; border-radius:0 0 14px 14px; background:#fff; }
.beta .course-totals { margin:4px 0 10px; padding:4px 0; }
.beta .course-totals:empty { display:none; }
.beta .course-totals > span { display:flex; justify-content:space-between; gap:12px; padding:4px 0; font-size:11px; color:#61718a; }
.beta .course-totals strong { color:#354c6f; text-align:right; font-weight:650; }
.beta .km-columns { display:none; }
.beta .task-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:12px; padding:13px 0; border-top:1px solid var(--line); }
.beta .task-work { min-width:0; }
.beta .task-work strong { display:block; font-size:13px; line-height:1.55; font-weight:550; }
.beta .task-work :is(small,p) { display:block; font-size:11px; line-height:1.5; color:var(--muted); margin-top:5px; }
.beta .task-row > .mark-badge { justify-self:end; max-width:76px; }
/* Private academic identity is one document, shared with its full detail page. */
.beta .profile-sheet { padding:16px; border:1px solid var(--line); border-radius:16px; margin:0 0 20px; background:#fff; }
.beta .study-passport-top { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; }
.beta .study-passport-top .passport-label { font-size:17px; color:var(--ink); font-weight:800; letter-spacing:-.4px; }
.beta .study-group-tag { color:#3154ba; font-size:10px; font-weight:650; padding:4px 7px; background:#edf2ff; border-radius:6px; }
.beta .profile-sheet > h3 { font-size:14px; font-weight:700; line-height:1.45; margin-bottom:10px; }
.beta :is(.person-fields,.detail-fields) { display:block; padding:0; margin:0; }
.beta :is(.person-fields,.detail-fields) > div { display:grid; grid-template-columns:minmax(70px,.7fr) minmax(0,1.3fr); gap:12px; padding:9px 0; border-bottom:1px solid var(--line); }
.beta :is(.person-fields,.detail-fields) > div:last-child { border:0; }
.beta :is(.person-fields,.detail-fields) dt { font-size:12px; color:var(--muted); line-height:1.5; }
.beta :is(.person-fields,.detail-fields) dd { margin:0; color:#354865; font-size:13px; line-height:1.5; }
.beta .passport-link { display:flex; justify-content:space-between; align-items:center; gap:12px; width:100%; min-height:44px; margin-top:5px; color:var(--blue); font-size:12px; font-weight:650; padding:8px 0 0; text-align:left; }
.beta .passport-link svg { width:13px; }
.beta #beta-profile-metrics { margin-top:7px; }
.beta #beta-profile-metrics > summary { min-height:44px; padding:10px 0; cursor:pointer; color:var(--blue); font-size:12px; }
.beta .study-person { display:flex; gap:14px; align-items:center; margin:18px 0 24px; }
.beta .person-avatar { display:grid; place-items:center; width:64px; height:64px; flex-shrink:0; border-radius:50%; background:#e9efff; color:#4264ba; font-size:22px; font-weight:750; }
.beta .study-person h2 { font-size:20px; }
.beta .study-person p { color:var(--muted); font-size:12px; margin-top:5px; }
.beta .profile-settings { border-top:1px solid var(--line); margin:20px 0 8px; }
.beta .profile-settings > summary { min-height:52px; padding:15px 0; font-size:13px; font-weight:650; cursor:pointer; }
.beta .profile-updates { margin:8px 0 24px; }
.beta .profile-updates h2 { font-size:16px; }
.beta .update-row { display:flex; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--line); }
.beta .update-row:last-child { border:0; }
.beta .update-row > span { color:var(--blue); }
.beta .update-row > div { flex:1; min-width:0; }
.beta .update-row strong { display:block; font-size:13px; font-weight:650; }
.beta .update-row small { display:block; font-size:10px; color:var(--muted); margin-top:4px; }
.beta .privacy-note h2 { font-size:15px; margin-bottom:8px; }
.beta .privacy-note p { color:var(--muted); font-size:12px; line-height:1.65; }
.beta .study-session { border-top:1px solid var(--line); }
.beta .study-session > summary { display:flex; align-items:center; justify-content:space-between; min-height:52px; padding:14px 0; list-style:none; cursor:pointer; font-size:13px; font-weight:650; }
.beta .study-session > summary::-webkit-details-marker { display:none; }
.beta .study-session > summary::after { content:'+'; font-size:20px; color:var(--muted); font-weight:400; }
.beta .study-session[open] > summary::after { content:'−'; }
/* Every nested page uses the same surfaces and reading rhythm. */
.beta .subroute-back { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; color:var(--ui-text,var(--ink)); background:var(--ui-soft,#f2f4f8); border:1px solid var(--ui-border,#e4e7ed); border-radius:14px; font-size:13px; font-weight:600; padding:0 16px; margin-bottom:16px; transition:background .15s ease,border-color .15s ease; }
.beta .subroute-back:hover { background:var(--ui-accent-soft,#edf0ff); border-color:var(--ui-muted,#788399); }
.beta .subroute-back:focus-visible { outline:2px solid var(--ui-accent,#2949ed); outline-offset:3px; }
.beta :is(.detail-sheet,.resource-card) { background:#fff; padding:18px; border:1px solid var(--line); border-radius:16px; margin-bottom:20px; }
.beta :is(.detail-sheet,.resource-card) h2 { font-size:19px; margin-bottom:12px; }
.beta :is(.detail-sheet,.resource-card) > p { font-size:13px; color:var(--muted); line-height:1.7; margin-bottom:14px; }
.beta .detail-sheet > .quiet-text { margin-top:16px; }
.beta .useful-intro { padding:20px; background:#edf2ff; border-radius:16px; margin-bottom:20px; }
.beta .useful-intro p { font-size:13px; color:#526688; margin-top:9px; }
.beta :is(.useful-list,.directory-list) { border:1px solid var(--line); padding:0 14px; border-radius:16px; margin-bottom:20px; }
.beta .useful-list > :is(button,a),.beta .directory-entry { display:flex; align-items:center; gap:12px; width:100%; min-height:74px; padding:14px 0; text-decoration:none; color:var(--ink); text-align:left; border-bottom:1px solid var(--line); }
.beta .useful-list > :last-child,.beta .directory-entry:last-child { border:0; }
.beta .useful-list > :is(button,a) > span:first-child,.beta .directory-entry > span:first-child { display:grid; place-items:center; flex-shrink:0; width:36px; height:36px; color:var(--blue); background:#edf2ff; border-radius:10px; }
.beta .useful-list > :is(button,a) > :nth-child(2),.beta .directory-entry-copy { flex:1; min-width:0; }
.beta .useful-list strong,.beta .directory-entry-copy strong { display:block; font-size:14px; font-weight:700; line-height:1.4; }
.beta .useful-list small,.beta .directory-entry-copy small { display:block; color:var(--muted); font-size:11px; line-height:1.5; margin-top:4px; }
.beta .directory-count { display:block; margin-top:5px; color:#4264a5; font-size:10px; }
.beta .directory-entry > .ui-icon { width:12px; color:#6c7e9b; }
.beta .directory-section-title { font-size:17px; margin:24px 0 10px; }
.beta .directory-note { color:var(--muted); font-size:11px; line-height:1.65; margin:12px 0 20px; }
.beta .directory-source-link { display:inline-flex; min-height:44px; align-items:center; gap:8px; font-size:12px; margin-bottom:12px; }
.beta .directory-description { font-size:14px; line-height:1.65; }
.beta .directory-source-date { color:var(--muted); font-size:11px; margin:16px 0 8px; }
/* Login, connection and recovery preserve the existing controls. */
.beta .beta-card { padding:22px 18px; margin:0 0 16px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.beta .beta-card h1 { font-size:28px; line-height:1.25; letter-spacing:-.8px; margin-bottom:16px; }
.beta .beta-card h2 { font-size:21px; margin-bottom:12px; }
.beta .beta-card h3 { font-size:17px; margin:24px 0 12px; }
.beta .beta-card p { font-size:13px; color:var(--muted); margin:8px 0 16px; }
.beta .beta-eyebrow { font-size:12px !important; color:var(--blue) !important; margin:0 0 18px !important; }
.beta .beta-entry { margin-top:24px; }
.beta .beta-entry label { display:block; font-size:12px; font-weight:650; margin:18px 0 8px; }
.beta .beta-entry input:not([type=checkbox]) { width:100%; min-height:50px; padding:12px; border:1px solid #d4ddeb; border-radius:12px; font-size:16px; color:var(--ink); background:#fff; }
.beta .beta-card button,.beta .study-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:11px 16px; border-radius:12px; background:var(--blue); color:#fff; font-size:13px; font-weight:650; line-height:1.5; text-decoration:none; }
.beta .beta-entry form > button { width:100%; margin-top:18px; }
.beta .beta-card .beta-secondary,.beta .study-button.secondary { color:#405674; background:var(--surface); }
.beta .beta-card .beta-danger { color:#ac3b42; background:#fff0f1; }
.beta .beta-card details > summary { min-height:44px; padding:12px 0; cursor:pointer; font-size:13px; color:var(--blue); }
.beta #beta-methods { display:grid; gap:8px; }
.beta #beta-methods button { width:100%; }
.beta #beta-challenge { margin:24px 0 0; padding:0; border:0; border-radius:0; }
.beta #beta-code-options { margin-top:16px; }
.beta :is(.beta-message,.study-notice,.resource-error) { margin:12px 0 18px; padding:13px 15px; border:1px solid #dbe6f6; border-radius:12px; background:#edf4ff; color:#355578; font-size:12px; line-height:1.65; overflow-wrap:anywhere; }
.beta .resource-error p { margin-top:6px; }
.beta .beta-message[data-tone=error],.beta .study-notice.error,.beta .resource-error { background:#fff5ed; border-color:#efd8c6; color:#7a4b29; }
.beta .study-notice.success { background:#eef9f2; color:#32624a; }
.beta .text-button { min-height:44px; padding:8px 0; color:var(--blue); font-size:12px; font-weight:650; }
.beta .beta-account > .beta-card { border:0; border-top:1px solid var(--line); padding:20px 0; margin:0; border-radius:0; }
.beta .beta-check { display:flex; align-items:flex-start; gap:12px; font-size:12px; line-height:1.65; color:var(--muted); margin:16px 0; }
.beta .beta-check input { width:20px; height:20px; flex-shrink:0; margin:2px 0 0; accent-color:var(--blue); }
.beta #beta-forget-confirm { margin-top:14px; }
.beta #study-reload { margin-bottom:16px; }
.beta .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.beta .is-loading svg { animation:beta-spin 1s linear infinite; }
@keyframes beta-spin { to { transform:rotate(360deg); } }
.beta-bars-panel { max-width:520px; margin:16px auto; padding:0 16px; }
.beta-bars-panel > summary { min-height:48px; display:flex; align-items:center; cursor:pointer; color:var(--blue,#2449f5); font-weight:650; }
.beta-bars-panel .beta-entry { margin:8px 0 20px; }
.study-connection { display:grid; gap:8px; margin:0 0 20px; padding:15px; border-radius:12px; background:#edf2ff; color:#344c79; font-size:13px; }
.study-connection .text-button { justify-self:start; }
.beta > .beta-message[role=note]:not([data-local-note]) { max-width:520px; margin:0 auto; border:0; border-radius:0; background:#f1f4f9; padding:5px 16px; font-size:9px; line-height:1.4; color:#66718a; }
@media(max-width:359px) {
 .beta #beta-app { padding-inline:12px; }
 .beta .study-heading h1 { font-size:25px; }
 .beta .study-nav { padding-inline:5px; }
 .beta .study-nav button { font-size:9px; }
 .beta .campus-study-summary button { padding:10px 8px; gap:7px; }
 .beta .campus-study-summary strong { font-size:12px; }
 .beta .home-study-day > .ui-icon { display:none; }
 .beta .course-item > summary { padding:13px; }
 .beta .course-label strong { font-size:14px; }
 .beta .course-final { width:45px; }
 .beta .lesson-row { gap:12px; grid-template-columns:43px minmax(0,1fr); }
 .beta .lesson-body { padding:13px; }
 .beta .lesson-title { font-size:15px; }
 .beta .lesson-detail-time strong { font-size:21px; }
 .beta .lesson-detail-time > span:first-child > svg { display:none; }
 .beta .lesson-detail-header h1 { font-size:24px; }
}
@media(hover:hover) { .beta button:hover:not(:disabled) { filter:brightness(.97); } }
@media(prefers-reduced-motion:reduce) { .beta * { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
.beta .grade-search { display:flex; align-items:center; gap:9px; min-height:44px; border-bottom:1px solid var(--line); margin:0 0 15px; padding:0 2px 8px; color:#687d9c; }
.beta .grade-search svg { width:18px; height:18px; }
.beta .grade-search input { min-width:0; width:100%; border:0; background:transparent; color:var(--ink); font-size:16px; padding:5px 0; }
.beta .grade-search input::placeholder { color:var(--muted); }

.beta .study-nav .active[data-tab=today] > svg,.beta .study-nav .active[data-tab=profile] > svg,.beta .study-nav .active[data-tab=useful] > svg { fill:var(--blue); }
.beta .study-nav .active[data-tab=schedule] > svg { fill:var(--blue); stroke:#fff; }
.beta .study-nav .active[data-tab=grades] > svg { stroke-width:3; }

.beta .course-count { white-space:nowrap; }
.beta .course-count::before { content:"·"; margin-right:7px; }
.beta .course-item[open] > summary { border-radius:14px 14px 0 0; }
.beta .lesson-meta { order:2; display:flex; flex-wrap:wrap; gap:5px 14px; align-items:flex-start; min-width:0; }
.beta .lesson-meta .lesson-place,.beta .lesson-meta .lesson-teacher { display:inline-flex; align-items:flex-start; gap:5px; margin:0; min-width:0; max-width:100%; line-height:1.5; }
.beta .lesson-meta .lesson-teacher { flex:1 1 145px; }
.beta .lesson-meta .ui-icon { width:14px; height:14px; margin-top:2px; }
.beta .lesson-meta > span > span { min-width:0; }
.beta-preview-note { overflow-wrap:anywhere; }
