:root{color-scheme:light;--ion-font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--text-2xs: 11px;--text-xs: 12px;--text-sm: 14px;--text-base: 15px;--text-md: 17px;--text-lg: 20px;--text-xl: 26px;--text-2xl: 34px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--ion-color-primary: #285c46;--ion-color-primary-rgb: 40, 92, 70;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #234f3d;--ion-color-primary-tint: #3e6c59;--ion-color-secondary: #a4542e;--ion-color-secondary-rgb: 164, 84, 46;--ion-color-secondary-contrast: #ffffff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #904a28;--ion-color-secondary-tint: #ad6543;--ion-color-tertiary: #6b6650;--ion-color-tertiary-rgb: 107, 102, 80;--ion-color-tertiary-contrast: #ffffff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #5e5a46;--ion-color-tertiary-tint: #7a7562;--ion-color-success: #2b7455;--ion-color-success-rgb: 43, 116, 85;--ion-color-success-contrast: #ffffff;--ion-color-success-contrast-rgb: 255, 255, 255;--ion-color-success-shade: #26664b;--ion-color-success-tint: #408266;--ion-color-warning: #a4542e;--ion-color-warning-rgb: 164, 84, 46;--ion-color-warning-contrast: #ffffff;--ion-color-warning-contrast-rgb: 255, 255, 255;--ion-color-warning-shade: #904a28;--ion-color-warning-tint: #ad6543;--ion-color-danger: #b33e46;--ion-color-danger-rgb: 179, 62, 70;--ion-color-danger-contrast: #ffffff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #9e373e;--ion-color-danger-tint: #bb5159;--ion-color-medium: #646e65;--ion-color-medium-rgb: 100, 110, 101;--ion-color-medium-contrast: #ffffff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #586159;--ion-color-medium-tint: #747d74;--ion-background-color: #fcfcfa;--ion-background-color-rgb: 252, 252, 250;--ion-text-color: #262e28;--ion-text-color-rgb: 38, 46, 40;--ion-item-background: #ffffff;--surface: #ffffff;--surface-raised: #ffffff;--surface-soft: #f0f3ed;--line: #e6eae3;--text-muted: #646e65;--text-subtle: #697269;--hairline: rgba(38, 46, 40, .08);--hairline-strong: rgba(38, 46, 40, .16);--fill: #f0f3ed;--tint-primary: #edf3e9;--tint-primary-strong: #dfeadb;--tint-warning: #fff2e7;--tint-success: #eaf5ef;--tint-danger: #fdf0f0;--jade-50: #edf3e9;--jade-100: #dce8da;--jade-200: #b8cdb5;--jade-500: #3d7a58;--jade-600: #285c46;--jade-700: #244f3f;--jade-800: #1a3a2e;--subject-chinese: #a4542e;--subject-math: #3a659d;--subject-english: #73618f;--subject-physics: #2e6a7c;--subject-chemistry: #96611e;--subject-biology: #2b7455;--subject-default: #285c46;--radius-xs: 8px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(38, 46, 40, .035);--shadow-raised: 0 1px 4px rgba(38, 46, 40, .09);--shadow-md: 0 4px 20px rgba(38, 46, 40, .08);--shadow-lg: 0 12px 48px rgba(38, 46, 40, .16);--shadow-primary: none;--ease-out: cubic-bezier(.22, .61, .36, 1);--ease-spring: cubic-bezier(.2, .7, .2, 1);--dur-fast: .13s;--dur: .18s;--dur-slow: .24s;--grid-motif: none;--gradient-banner: #285c46;--gradient-parent-banner: #354e40;--gradient-brand-mark: var(--ion-color-primary)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--ion-color-primary: #add5b7;--ion-color-primary-rgb: 173, 213, 183;--ion-color-primary-contrast: #1a3020;--ion-color-primary-contrast-rgb: 26, 48, 32;--ion-color-primary-shade: #98bba1;--ion-color-primary-tint: #b5d9be;--ion-color-secondary: #efb38b;--ion-color-secondary-rgb: 239, 179, 139;--ion-color-secondary-contrast: #352318;--ion-color-secondary-contrast-rgb: 53, 35, 24;--ion-color-secondary-shade: #d29e7a;--ion-color-secondary-tint: #f1bb97;--ion-color-tertiary: #d0c9aa;--ion-color-tertiary-rgb: 208, 201, 170;--ion-color-tertiary-contrast: #2d2b20;--ion-color-tertiary-contrast-rgb: 45, 43, 32;--ion-color-tertiary-shade: #b7b196;--ion-color-tertiary-tint: #d5ceb3;--ion-color-success: #9cd7b7;--ion-color-success-rgb: 156, 215, 183;--ion-color-success-contrast: #1d3226;--ion-color-success-contrast-rgb: 29, 50, 38;--ion-color-success-shade: #89bda1;--ion-color-success-tint: #a6dbbe;--ion-color-warning: #efb38b;--ion-color-warning-rgb: 239, 179, 139;--ion-color-warning-contrast: #352318;--ion-color-warning-contrast-rgb: 53, 35, 24;--ion-color-warning-shade: #d29e7a;--ion-color-warning-tint: #f1bb97;--ion-color-danger: #f4a8ae;--ion-color-danger-rgb: 244, 168, 174;--ion-color-danger-contrast: #422b34;--ion-color-danger-contrast-rgb: 66, 43, 52;--ion-color-danger-shade: #d79499;--ion-color-danger-tint: #f5b1b6;--ion-color-medium: #b2bcb2;--ion-color-medium-rgb: 178, 188, 178;--ion-color-medium-contrast: #222823;--ion-color-medium-contrast-rgb: 34, 40, 35;--ion-color-medium-shade: #9da59d;--ion-color-medium-tint: #bac3ba;--ion-background-color: #181c19;--ion-background-color-rgb: 24, 28, 25;--ion-text-color: #eef2ec;--ion-text-color-rgb: 238, 242, 236;--ion-item-background: #222823;--surface: #222823;--surface-raised: #2b352c;--surface-soft: #2b352c;--line: #384239;--text-muted: #b2bcb2;--text-subtle: #a4afa4;--hairline: rgba(238, 242, 236, .1);--hairline-strong: rgba(238, 242, 236, .19);--fill: #2b352c;--tint-primary: #2d3e30;--tint-primary-strong: #3b5140;--tint-warning: #3c2c25;--tint-success: #253b33;--tint-danger: #422b34;--jade-50: #2d3e30;--jade-100: #354939;--jade-200: #58715c;--jade-500: #9ac8a7;--jade-600: #add5b7;--jade-700: #bddfc4;--jade-800: #d7e9d6;--subject-chinese: #efb38b;--subject-math: #a2bfea;--subject-english: #c8b6e2;--subject-physics: #8ec6d4;--subject-chemistry: #e5c080;--subject-biology: #9cd7b7;--subject-default: #add5b7;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .15);--shadow-raised: 0 1px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 20px rgba(0, 0, 0, .25);--shadow-lg: 0 12px 48px rgba(0, 0, 0, .4);--gradient-banner: #254332;--gradient-parent-banner: #2b4031}}@media(prefers-contrast:more){:root{--text-muted: #465347;--text-subtle: #465347;--line: #8c998c}}@media(prefers-contrast:more)and (prefers-color-scheme:dark){:root{--text-muted: #d4dfd3;--text-subtle: #d4dfd3;--line: #9cae9c}}*{box-sizing:border-box;letter-spacing:0}body{margin:0;background:var(--ion-background-color);color:var(--ion-text-color);font-size:var(--text-sm);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility}button,ion-button,ion-item,ion-segment-button{min-height:44px}.metric strong,.message-summary strong,.result-hero strong,.exam-clock strong,.score-ring strong,.session-summary strong,.timeline-item time,.progress-line strong{font-feature-settings:"tnum" 1,"zero" 1;font-variant-numeric:tabular-nums slashed-zero}ion-card{margin:0;border:1px solid var(--hairline);border-radius:var(--radius-md);box-shadow:none;background:var(--surface);transition:border-color var(--dur) var(--ease-out),transform var(--dur-fast) var(--ease-out)}ion-card[button]:hover{border-color:color-mix(in srgb,var(--ion-color-primary) 22%,var(--hairline))}ion-card[button]:active{transform:scale(.995);transition-duration:90ms}ion-button{--border-radius: var(--radius-sm);--padding-start: 18px;--padding-end: 18px;--box-shadow: none;min-height:46px;font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;letter-spacing:0;text-transform:none;transition:transform var(--dur-fast) var(--ease-spring),filter var(--dur-fast) ease,box-shadow var(--dur) var(--ease-out)}ion-button:active{transform:scale(.97)}ion-button.button-solid:not(.ion-color-secondary):not(.ion-color-tertiary):not(.ion-color-success):not(.ion-color-warning):not(.ion-color-danger):not(.ion-color-medium):not(.ion-color-dark):not(.ion-color-light):hover{filter:brightness(.96)}ion-button[size=large]{min-height:52px;font-size:var(--text-base)}ion-button.button-outline{--border-width: 1.5px}ion-card-title,ion-card-subtitle,ion-label h2,ion-label h3,ion-label p,.page-description,.answer-content,.suggestion-row span,.resource-state span{overflow-wrap:anywhere;white-space:normal}.min-width-zero{min-width:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}ion-list[inset]{margin:0;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}ion-header.page-header ion-toolbar{--opacity: 1;--background: color-mix(in srgb, var(--ion-background-color) 82%, transparent);--min-height: 52px;--padding-start: 20px;--padding-end: 12px}ion-header.page-header ion-toolbar:first-of-type{padding-top:calc(var(--ion-safe-area-top, 0px) + 6px);padding-bottom:6px}ion-header:after{display:none}.ios .bottom-navigation,.ios .login-panel,.md .bottom-navigation{backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.md ion-header ion-toolbar{backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.page-heading{min-width:0}.page-title,.page-subtitle{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-title{margin:0;color:var(--ion-text-color);font-family:var(--font-display);font-size:var(--text-lg);line-height:26px;font-weight:700;letter-spacing:-.024em}.page-subtitle{margin-top:1px;color:var(--text-muted);font-size:var(--text-2xs);line-height:15px;font-weight:550;letter-spacing:.01em}.page-back,.page-action{display:grid;place-items:center;flex:0 0 auto;height:44px;padding:0;border:0;background:none}.page-back{width:44px;margin:0 4px 0 -10px}.page-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto;margin-left:8px}.page-chip{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 12px 0 10px;border-radius:var(--radius-sm);color:var(--ion-color-primary);background:var(--tint-primary);font-family:var(--font-display);font-size:var(--text-xs);font-weight:600;letter-spacing:-.006em;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.page-chip ion-icon{flex:0 0 auto;font-size:16px}.page-back .page-chip{justify-content:center;width:34px;padding:0;border-radius:var(--radius-full);color:var(--ion-text-color);background:var(--fill)}.page-back .page-chip ion-icon{font-size:19px}.page-back:active .page-chip,.page-action:active .page-chip{transform:scale(.94)}.page-action-active .page-chip{color:var(--ion-color-primary-contrast);background:var(--ion-color-primary);box-shadow:0 2px 6px -2px color-mix(in srgb,var(--ion-color-primary) 55%,transparent)}.page-action:disabled .page-chip{color:var(--text-subtle);background:var(--fill)}.page-back:focus-visible,.page-action:focus-visible{outline:none}.page-back:focus-visible .page-chip,.page-action:focus-visible .page-chip{outline:2px solid var(--ion-color-primary);outline-offset:2px}.page-content{--background: var(--ion-background-color)}.content-shell{width:min(100%,1080px);min-height:100%;margin:0 auto;padding:18px max(20px,env(safe-area-inset-right)) calc(104px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));animation:shell-in var(--dur-slow) var(--ease-out) both}@keyframes shell-in{0%{opacity:0;transform:translateY(6px)}}.route-loading,.resource-state{display:grid;place-items:center;align-content:center;gap:8px;min-height:240px;padding:28px;color:var(--text-muted);text-align:center}.resource-state>strong{color:var(--ion-text-color);font-family:var(--font-display);font-size:var(--text-base);font-weight:650;letter-spacing:-.01em}.resource-state>span{max-width:30ch;font-size:var(--text-xs);line-height:1.6}.resource-state>ion-button{margin-top:6px}.route-loading{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;color:var(--text-muted);font-size:var(--text-sm);background:var(--ion-background-color);background:color-mix(in srgb,var(--ion-background-color) 72%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .24s ease}@keyframes fade-in{0%{opacity:0}}.resource-state>ion-icon{display:grid;place-items:center;width:56px;height:56px;margin-bottom:4px;border-radius:var(--radius-full);color:var(--ion-color-primary);background:var(--tint-primary);font-size:26px}.resource-error>ion-icon{color:var(--ion-color-danger);background:color-mix(in srgb,var(--ion-color-danger) 11%,transparent)}.resource-error>span,.action-feedback-error{color:var(--ion-color-danger)}.pagination-error{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--ion-color-danger);font-size:var(--text-xs)}.contract-unavailable{min-height:180px;margin-top:16px;border:1px dashed var(--hairline-strong);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-soft) 40%,var(--surface))}.inline-empty{min-height:88px;padding:30px 18px;border:1px dashed var(--hairline-strong);border-radius:var(--radius-md);color:var(--text-muted);background:color-mix(in srgb,var(--surface-soft) 32%,var(--surface));font-size:var(--text-xs);text-align:center}.action-feedback{display:flex;align-items:center;gap:10px;min-height:46px;margin:12px 0;padding:11px 15px;border:1px solid color-mix(in srgb,var(--ion-color-success) 26%,transparent);border-radius:var(--radius-sm);color:var(--ion-color-success-shade);background:color-mix(in srgb,var(--ion-color-success) 9%,var(--surface));font-size:var(--text-xs)}.offline-notice{display:flex;align-items:center;gap:10px;min-height:42px;margin:0 0 14px;padding:10px 15px;border:1px solid color-mix(in srgb,var(--ion-color-warning) 30%,transparent);border-radius:var(--radius-sm);color:var(--ion-color-warning);background:color-mix(in srgb,var(--ion-color-warning) 10%,var(--surface));font-size:var(--text-xs)}.offline-notice ion-icon{flex:0 0 auto;font-size:18px}.action-feedback ion-spinner,.action-feedback ion-icon{flex:0 0 auto;font-size:20px}.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:24px 0 10px}.section-title h2{min-width:0;margin:0;font-family:var(--font-display);font-size:var(--text-md);line-height:24px;font-weight:650;letter-spacing:-.016em}.section-title span{flex:0 0 auto;color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap}.metric-grid,.live-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metric-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{--tone: var(--ion-color-medium);position:relative;min-width:0;min-height:96px;padding:13px 15px 14px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.metric-primary{--tone: var(--ion-color-primary)}.metric-success{--tone: var(--ion-color-success)}.metric-warning{--tone: var(--ion-color-warning)}.metric-danger{--tone: var(--ion-color-danger)}.metric-label{display:inline-block;max-width:100%;padding:3px 9px;border-radius:var(--radius-full);overflow:hidden;color:color-mix(in srgb,var(--tone) 84%,var(--ion-text-color));background:color-mix(in srgb,var(--tone) 13%,transparent);font-size:var(--text-2xs);font-weight:600;letter-spacing:.02em;text-overflow:ellipsis;white-space:nowrap}.metric small{display:block;overflow:hidden;color:var(--text-muted);font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap}.metric strong{display:block;margin:10px 0 4px;font-family:var(--font-display);font-size:var(--text-xl);line-height:28px;font-weight:700;letter-spacing:-.026em}.metric-warning strong{color:var(--ion-color-warning)}.metric-danger strong{color:var(--ion-color-danger)}.card-list{display:grid;gap:14px;margin-top:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}.form-grid>ion-textarea,.form-grid>ion-input[aria-label*=说明]{grid-column:1 / -1}.inline-form{margin-top:14px;padding:16px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-soft) 45%,var(--surface))}.inline-form .form-grid{margin-bottom:4px}.paper-builder,.attachment-form,.result-panel,.result-hero{border-color:color-mix(in srgb,var(--ion-color-primary) 18%,var(--hairline))}.paper-summary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}.paper-summary strong{min-width:0;overflow-wrap:anywhere}.paper-summary span{color:var(--text-muted);font-size:var(--text-xs);text-align:right}.danger-text{color:var(--ion-color-danger);font-size:var(--text-xs)}.card-heading-row,.card-action-line,.button-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.live-whiteboard{margin:12px 0 18px;overflow:hidden;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-sm)}.live-whiteboard-toolbar{display:flex;min-height:48px;align-items:center;flex-wrap:wrap;gap:8px;padding:4px 10px;border-bottom:1px solid color-mix(in srgb,var(--line) 85%,transparent);color:var(--text-muted);background:var(--surface)}.live-whiteboard-toolbar label{display:flex;min-width:0;align-items:center;gap:6px;font-size:var(--text-xs)}.live-whiteboard-toolbar .width-control{flex:1 1 120px;min-width:0}.live-whiteboard-toolbar input[type=color]{width:32px;height:32px;padding:2px;border:1px solid color-mix(in srgb,var(--line) 85%,transparent);border-radius:var(--radius-xs);background:#fff}.live-whiteboard-toolbar input[type=range]{width:min(120px,26vw)}.live-whiteboard canvas{display:block;width:100%;aspect-ratio:16 / 9;background:#fff}.live-whiteboard canvas.editable{cursor:crosshair;touch-action:none}.button-row-wrap{flex-wrap:wrap}.primary-actions{margin:16px 0 0}.primary-actions ion-button{flex:1 1 150px}.card-heading-row ion-card-title{min-width:0;font-size:var(--text-md)}.card-action-line{margin-top:12px;color:var(--text-muted);font-size:var(--text-xs)}.button-row{flex-wrap:wrap;justify-content:flex-end;margin-top:12px}.primary-course-card{border-color:color-mix(in srgb,var(--ion-color-primary) 28%,transparent);background:radial-gradient(90% 130% at 4% 0%,color-mix(in srgb,var(--ion-color-primary) 10%,transparent),transparent 60%),var(--surface)}.task-list ion-icon{padding:8px;border-radius:var(--radius-xs);color:var(--ion-color-primary);background:var(--tint-primary)}.alert-band,.suggestion-row{display:flex;align-items:center;gap:13px;min-height:74px;padding:15px 16px;border:1px solid color-mix(in srgb,var(--ion-color-warning) 30%,transparent);border-radius:var(--radius-md);background:color-mix(in srgb,var(--ion-color-warning) 9%,var(--surface))}.suggestion-row{border-color:color-mix(in srgb,var(--ion-color-primary) 26%,transparent);background:color-mix(in srgb,var(--ion-color-primary) 7%,var(--surface))}.suggestion-row>ion-icon{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;padding:10px;border-radius:13px;color:var(--ion-color-primary);background:var(--tint-primary-strong)}.suggestion-row span{flex:1;min-width:0;font-size:var(--text-xs);line-height:1.65}.score-change-up{color:var(--ion-color-success);font-weight:600}.score-change-down{color:var(--ion-color-danger);font-weight:600}.alert-band.compact{margin:14px 0}.alert-band>ion-icon{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;padding:10px;border-radius:13px;color:var(--ion-color-warning);background:color-mix(in srgb,var(--ion-color-warning) 15%,transparent)}.alert-band>div{flex:1;min-width:0}.alert-band strong,.alert-band span{display:block}.alert-band strong{font-family:var(--font-display);font-size:var(--text-sm);font-weight:650;letter-spacing:-.012em}.alert-band span{margin-top:4px;color:var(--text-muted);font-size:var(--text-xs);line-height:1.55}.date-input,.form-control,.profile-edit-row{margin:14px 0;border:1px solid var(--hairline);border-radius:var(--radius-sm);background:var(--surface)}.date-input,.form-control{--padding-start: 12px;--inner-padding-end: 12px}.profile-edit-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:10px 12px}.profile-edit-row ion-input{min-width:0}.profile-edit-row:focus-within{border-color:color-mix(in srgb,var(--ion-color-primary) 45%,transparent)}.date-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;margin:14px 0 20px;padding:3px;border-radius:var(--radius-sm);background:var(--fill)}.date-strip button{min-height:38px;border:0;border-radius:var(--radius-xs);color:var(--text-muted);background:transparent;font-size:var(--text-xs);font-weight:500;transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),transform var(--dur-fast) var(--ease-spring)}.date-strip button:active{transform:scale(.96)}.date-strip button.selected{color:var(--ion-color-primary);background:var(--surface);box-shadow:var(--shadow-raised),inset 0 0 0 1px color-mix(in srgb,var(--ion-color-primary) 20%,transparent);font-weight:650}.timeline{position:relative;display:grid;gap:12px}.timeline:before{content:"";position:absolute;top:16px;bottom:16px;left:40px;width:1px;background:repeating-linear-gradient(180deg,var(--hairline-strong) 0 4px,transparent 4px 10px);pointer-events:none}.timeline-item{--status: var(--ion-color-primary);position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:96px;padding:15px 16px 15px 22px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.timeline-item:before{content:"";position:absolute;top:15px;bottom:15px;left:9px;width:3px;border-radius:var(--radius-full);background:var(--status)}.timeline-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.timeline-item.status-offline{--status: var(--ion-color-secondary)}.timeline-item.status-warning{--status: var(--ion-color-warning)}.timeline-item time{align-self:start;font-family:var(--font-display);font-size:var(--text-base);font-weight:700;letter-spacing:-.02em}.timeline-item h3{margin:4px 0 3px;font-family:var(--font-display);font-size:var(--text-base);font-weight:650;letter-spacing:-.012em}.timeline-item p{margin:0;color:var(--text-muted);font-size:var(--text-xs)}.eyebrow{display:inline-block;margin-bottom:7px;padding:3px 9px;border-radius:var(--radius-full);color:var(--ion-color-primary);background:var(--tint-primary-strong);font-size:var(--text-2xs);font-weight:600;letter-spacing:.06em}.welcome-banner .eyebrow{color:#fffffff0;background:#ffffff2e;box-shadow:inset 0 0 0 1px #ffffff38}.session-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--hairline);box-shadow:var(--shadow-sm);overflow:hidden}.session-summary div{padding:16px 13px;background:var(--surface)}.session-summary span,.session-summary strong{display:block}.session-summary span{color:var(--text-muted);font-size:var(--text-2xs)}.session-summary strong{margin-top:6px;font-family:var(--font-display);font-size:var(--text-base);font-weight:650;letter-spacing:-.014em}.action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.avatar,.profile-avatar{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:50%;color:#fff;background:var(--gradient-brand-mark);box-shadow:inset 0 1px #ffffff42;font-family:var(--font-display);font-size:var(--text-sm);font-weight:650}.avatar-large{width:48px;height:48px;font-size:var(--text-md)}.live-stage{position:relative;display:grid;min-height:230px;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);background:radial-gradient(120% 100% at 50% 0%,rgba(120,200,195,.14),transparent 62%),linear-gradient(168deg,#1b242c,#10171d);box-shadow:var(--shadow-md);overflow:hidden}.live-stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--grid-motif);opacity:.55;pointer-events:none}.live-stage.is-live{border-color:color-mix(in srgb,var(--ion-color-danger) 50%,transparent)}.live-stage.is-live:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ion-color-danger) 42%,transparent);pointer-events:none}@media(prefers-reduced-motion:no-preference){.live-stage.is-live:after{animation:live-pulse 2.6s var(--ease-out) infinite}}@keyframes live-pulse{0%,to{opacity:.3}50%{opacity:1}}.camera-preview{position:relative;display:grid;place-items:center;align-content:center;gap:14px;padding:26px 20px;color:#eaf2f4;font-size:var(--text-sm);text-align:center}.camera-preview ion-icon{width:62px;height:62px;padding:16px;border:1px solid rgba(255,255,255,.16);border-radius:20px;background:#ffffff12}.camera-preview span{max-width:22em;font-weight:600;letter-spacing:-.01em}.live-stage ion-badge.ion-color{position:absolute;top:12px;left:12px;color:#f2f7f8;background:#0a101594;box-shadow:inset 0 0 0 1px #fff3;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.live-stats{margin:14px 0}.live-control-list{margin-top:14px!important}.progress-line{margin:14px 0}.progress-line>div:first-child{display:flex;justify-content:space-between;gap:10px;color:var(--text-muted);font-size:var(--text-xs)}.progress-line>div:first-child strong{color:var(--ion-text-color);font-weight:650}.progress-track{height:7px;margin-top:9px;border-radius:var(--radius-full);background:var(--fill);box-shadow:inset 0 1px 1px #0e20270f;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--ion-color-primary-shade),var(--ion-color-primary-tint));transition:width var(--dur-slow) var(--ease-out)}.welcome-banner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:164px;margin-bottom:16px;padding:24px 26px;border-radius:var(--radius-lg);color:#fff;background:var(--gradient-banner);box-shadow:0 16px 36px -14px #04504a99;overflow:hidden}.welcome-banner:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;background:var(--grid-motif);-webkit-mask-image:linear-gradient(202deg,rgba(0,0,0,.95),transparent 70%);mask-image:linear-gradient(202deg,rgba(0,0,0,.95),transparent 70%);pointer-events:none}.welcome-banner>div{position:relative;min-width:0}.welcome-banner h1{margin:8px 0 6px;font-family:var(--font-display);font-size:var(--text-xl);line-height:1.16;font-weight:700;letter-spacing:-.026em;text-wrap:balance}.welcome-banner p{margin:0;color:#ffffffd1;font-size:var(--text-xs)}.welcome-banner>ion-icon{position:relative;display:grid;flex:0 0 auto;place-items:center;width:68px;height:68px;padding:19px;border:1px solid rgba(255,255,255,.26);border-radius:22px;color:#fff;background:#ffffff26;box-shadow:inset 0 1px #ffffff52;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.parent-banner{background:var(--gradient-parent-banner);box-shadow:0 16px 36px -14px #17233c9e}.attachment-form{margin-top:14px}.result-panel{margin-top:16px}.teacher-comment{position:relative;margin-top:14px;padding:14px 16px 14px 18px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--ion-color-secondary) 8%,var(--surface))}.teacher-comment:before{content:"";position:absolute;top:14px;bottom:14px;left:7px;width:3px;border-radius:var(--radius-full);background:var(--ion-color-secondary)}.teacher-comment p{margin:6px 0 0;color:var(--text-muted);font-size:var(--text-xs);line-height:1.65}.result-hero{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:138px;margin-bottom:16px;padding:22px 24px;border:1px solid color-mix(in srgb,var(--ion-color-success) 24%,transparent);border-radius:var(--radius-lg);background:radial-gradient(85% 130% at 6% 0%,color-mix(in srgb,var(--ion-color-success) 13%,transparent),transparent 62%),var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}.result-hero>span{color:var(--text-muted);font-size:var(--text-xs)}.result-hero strong{font-family:var(--font-display);font-size:44px;line-height:1;font-weight:700;letter-spacing:-.03em}.question-navigation{display:flex;gap:8px;margin:14px 0;padding-bottom:3px;overflow-x:auto;scrollbar-width:none}.question-navigation::-webkit-scrollbar{display:none}.question-navigation button{flex:0 0 44px;min-height:44px;border:1px solid var(--hairline);border-radius:50%;color:var(--text-muted);background:var(--surface);font-size:var(--text-xs);font-weight:650;font-variant-numeric:tabular-nums;transition:transform var(--dur-fast) var(--ease-spring),background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.question-navigation button:active{transform:scale(.92)}.question-navigation button.answered{border-color:var(--ion-color-primary);color:var(--ion-color-primary)}.question-navigation button.current{border-color:transparent;color:var(--ion-color-primary-contrast);background:var(--ion-color-primary)}.message-summary{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:baseline;gap:9px;margin:0 0 14px;padding:17px 19px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:radial-gradient(70% 130% at 4% 0%,var(--tint-primary),transparent 58%),var(--surface);box-shadow:var(--shadow-sm)}.message-summary strong{color:var(--ion-color-primary);font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.026em}.message-summary span{color:var(--text-muted);font-size:var(--text-xs)}.message-summary span:last-child{text-align:right}.message-safety-label{display:inline-block;margin-right:6px;padding:2px 7px;border-radius:7px;color:var(--ion-color-danger);background:color-mix(in srgb,var(--ion-color-danger) 13%,var(--surface));font-size:var(--text-2xs);font-weight:700}.course-cover{--cover: var(--subject-default);display:grid;place-items:center;width:50px;height:50px;margin-bottom:12px;border-radius:15px;color:var(--cover);background:color-mix(in srgb,var(--cover) 14%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cover) 24%,transparent)}.course-cover.cover-coral,.course-cover.subject-chinese{--cover: var(--subject-chinese)}.course-cover.subject-math{--cover: var(--subject-math)}.course-cover.subject-english{--cover: var(--subject-english)}.course-cover.subject-physics{--cover: var(--subject-physics)}.course-cover.subject-chemistry{--cover: var(--subject-chemistry)}.course-cover.subject-biology{--cover: var(--subject-biology)}.course-cover ion-icon{font-size:24px}.exam-clock,.child-switcher,.report-score{display:flex;align-items:center;gap:15px;min-height:84px;padding:15px 17px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface)}.exam-clock{border-color:color-mix(in srgb,var(--ion-color-danger) 24%,transparent);background:color-mix(in srgb,var(--ion-color-danger) 6%,var(--surface))}.exam-clock>ion-icon{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;padding:11px;border-radius:14px;color:var(--ion-color-danger);background:color-mix(in srgb,var(--ion-color-danger) 14%,transparent)}.exam-clock div{flex:1;min-width:0}.exam-clock span,.exam-clock strong{display:block}.exam-clock span{color:var(--text-muted);font-size:var(--text-xs)}.exam-clock strong{margin-top:4px;font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.024em}.question-type{color:var(--ion-color-primary);font-weight:700}.answer-list ion-item{margin:8px 0;border:1px solid var(--hairline);border-radius:var(--radius-sm)}.exam-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.question-list,.grading-list{display:grid;gap:14px;margin:16px 0}.question-item,.grading-item{min-width:0;padding:17px 19px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm)}.question-item h2,.grading-item h3{min-width:0;margin:0;overflow-wrap:anywhere;font-family:var(--font-display);font-size:var(--text-md);font-weight:650;line-height:1.55;letter-spacing:-.012em}.answer-options{display:grid;gap:8px;margin-top:14px}.answer-options button,.filter-segment button{min-width:0;min-height:46px;padding:12px 15px;border:1px solid var(--hairline);border-radius:var(--radius-sm);color:var(--ion-text-color);background:var(--surface);font-size:var(--text-sm);overflow-wrap:anywhere;text-align:left;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out),color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),transform var(--dur-fast) var(--ease-spring)}.answer-options button:active,.filter-segment button:active{transform:scale(.98)}.answer-options button.selected,.filter-segment button.selected{border-color:color-mix(in srgb,var(--ion-color-primary) 52%,transparent);color:var(--ion-color-primary);background:var(--tint-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ion-color-primary) 12%,transparent);font-weight:650}.grading-fields{display:grid;grid-template-columns:minmax(100px,.3fr) minmax(0,1fr);gap:10px;margin-top:12px}.grading-fields ion-input{min-width:0;border:1px solid var(--hairline);border-radius:var(--radius-sm);--padding-start: 10px;--padding-end: 10px}.child-switcher>div:nth-child(2){flex:1;min-width:0}.child-switcher span,.child-switcher strong{display:block}.child-switcher span{color:var(--text-muted);font-size:var(--text-xs)}.child-switcher .avatar-large{font-size:var(--text-md)}.child-switcher ion-select{flex:0 0 auto;max-width:45%;min-height:36px;padding:0 12px;border:1px solid color-mix(in srgb,var(--ion-color-primary) 30%,transparent);border-radius:var(--radius-full);color:var(--ion-color-primary);font-size:var(--text-xs);font-weight:650;background:var(--tint-primary)}.child-switcher ion-select::part(placeholder),.child-switcher ion-select::part(text){color:var(--ion-color-primary)}.score-ring{--ring-value: 100;position:relative;display:grid;place-items:center;flex:0 0 auto;width:106px;height:106px;border-radius:50%}.score-ring:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:conic-gradient(from -90deg,var(--ion-color-success) calc(var(--ring-value) * 1%),var(--fill) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(50% - 9px),#000 calc(50% - 8.5px));mask:radial-gradient(farthest-side,transparent calc(50% - 9px),#000 calc(50% - 8.5px))}.score-ring strong,.score-ring span{position:relative;display:block;text-align:center}.score-ring strong{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.026em}.score-ring span{margin-top:2px;color:var(--text-muted);font-size:var(--text-2xs)}.message-list ion-item{min-height:84px}.message-list ion-label{min-width:0;cursor:pointer}.message-unread::part(native){background:color-mix(in srgb,var(--ion-color-primary) 8%,var(--surface))}.message-icon{display:grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:13px;color:var(--ion-color-primary);background:var(--tint-primary-strong)}.message-icon ion-icon{font-size:20px}.message-meta{display:grid;justify-items:end;gap:6px;max-width:88px;color:var(--text-muted);font-size:var(--text-2xs)}.filter-segment{display:flex;gap:7px;margin-bottom:14px;padding-bottom:2px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.filter-segment::-webkit-scrollbar{display:none}.filter-segment button{flex:0 0 auto;min-height:36px;padding:0 14px;border-radius:var(--radius-full);font-size:var(--text-xs);text-align:center}.identity{display:flex;align-items:center;gap:14px;margin:2px 0 22px}.identity-text{flex:1;min-width:0}.identity-text h2{margin:0 0 4px;overflow:hidden;font-family:var(--font-display);font-size:var(--text-xl);line-height:30px;font-weight:700;letter-spacing:-.026em;text-overflow:ellipsis;white-space:nowrap}.identity-text p{margin:0;color:var(--text-muted);font-size:var(--text-xs)}.profile-avatar{width:56px;height:56px;font-size:var(--text-md)}.group-action{margin-top:12px}.brand-mark{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border-radius:14px;color:#fff;background:var(--gradient-brand-mark);box-shadow:var(--shadow-primary),inset 0 1px #ffffff47;font-family:var(--font-display);font-size:var(--text-md);font-weight:600}.shortcut-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));padding:6px 2px;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface)}.shortcut-grid button{display:grid;place-items:center;gap:7px;min-height:78px;padding:12px 4px;border:0;border-radius:var(--radius-sm);color:var(--ion-text-color);background:none;transition:background var(--dur-fast) var(--ease-out)}.shortcut-grid button:active{background:var(--fill)}.shortcut-grid button:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:-2px}.shortcut-icon{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius-full);color:var(--ion-color-primary);background:var(--tint-primary);font-size:20px}.shortcut-label{font-size:var(--text-xs);font-weight:550;letter-spacing:-.006em}.shortcut-badge{position:absolute;top:-5px;right:-7px}.bottom-unread-count,.shortcut-badge{display:inline-grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:var(--radius-full);color:var(--ion-color-danger-contrast);background:var(--ion-color-danger);box-shadow:0 0 0 2px var(--surface);font-size:var(--text-2xs);font-weight:700;font-variant-numeric:tabular-nums}.bottom-unread-count{position:absolute;top:3px;right:calc(50% - 20px)}.app-main{position:relative;width:100%;min-width:0;min-height:100%}.bottom-navigation{position:fixed;z-index:20;right:0;bottom:0;left:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);height:calc(62px + env(safe-area-inset-bottom));padding:7px 8px env(safe-area-inset-bottom);border-top:1px solid var(--hairline);background:var(--surface);background:color-mix(in srgb,var(--surface) 84%,transparent);box-shadow:0 -8px 24px -18px #0e202766;backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px)}.bottom-navigation button{position:relative;display:grid;place-items:center;align-content:center;gap:4px;border:0;border-radius:var(--radius-sm);color:var(--text-muted);background:transparent;transition:color var(--dur) var(--ease-out)}.bottom-navigation button:before{content:"";position:absolute;z-index:-1;top:1px;right:5px;bottom:1px;left:5px;border-radius:var(--radius-sm);background:var(--tint-primary);opacity:0;transform:scale(.9);transition:opacity var(--dur) var(--ease-out),transform var(--dur) var(--ease-spring)}.bottom-navigation button:after{content:"";position:absolute;top:0;width:16px;height:2.5px;border-radius:var(--radius-full);background:var(--ion-color-primary);transform:scaleX(0);transition:transform var(--dur) var(--ease-spring)}.bottom-navigation button.active{color:var(--ion-color-primary)}.bottom-navigation button.active:before{opacity:1;transform:scale(1)}.bottom-navigation button.active:after{transform:scaleX(1)}.bottom-navigation ion-icon{font-size:23px;transition:transform var(--dur) var(--ease-spring)}.bottom-navigation button.active ion-icon{transform:translateY(-1px) scale(1.06)}.bottom-navigation span{font-size:var(--text-2xs);font-weight:500}.bottom-navigation button.active span{font-weight:650}.login-content{--background: radial-gradient(72% 46% at 10% 2%, color-mix(in srgb, var(--ion-color-primary) 17%, transparent), transparent 66%), radial-gradient(60% 42% at 98% 98%, color-mix(in srgb, var(--ion-color-tertiary) 14%, transparent), transparent 62%), linear-gradient(180deg, #f9fbfb 0%, #e9f1ef 100%)}.login-layout{display:grid;align-content:center;gap:30px;width:min(100% - 32px,460px);min-height:100%;margin:auto;padding:calc(30px + env(safe-area-inset-top)) 0 calc(30px + env(safe-area-inset-bottom));animation:rise-in .48s var(--ease-out)}.login-brand{display:flex;align-items:center;gap:16px}.brand-mark-large{width:66px;height:66px;font-size:var(--text-xl);border-radius:20px}.login-brand h1{margin:0;color:var(--ion-text-color);font-family:var(--font-display);font-size:clamp(28px,8vw,34px);font-weight:700;letter-spacing:-.028em}.login-brand p{margin:6px 0 0;color:var(--text-muted);font-size:var(--text-xs)}.login-panel{padding:22px 22px 18px;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:var(--shadow-lg),inset 0 1px #fff9}.login-fields{margin:18px 0;border:1px solid var(--hairline);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.login-panel ion-button+ion-button{margin-top:2px}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}}ion-badge{--padding-top: 4px;--padding-bottom: 4px;--padding-start: 9px;--padding-end: 9px;--background: var(--fill);--color: var(--text-muted);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:650;letter-spacing:.01em}ion-badge.ion-color{color:color-mix(in srgb,var(--ion-color-base) 72%,var(--ion-text-color));background:color-mix(in srgb,var(--ion-color-base) 14%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ion-color-base) 26%,transparent)}:focus-visible{outline:2px solid color-mix(in srgb,var(--ion-color-primary) 70%,transparent);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:color-mix(in srgb,var(--text-muted) 32%,transparent) padding-box}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}@media(prefers-color-scheme:dark){.login-content{--background: radial-gradient(72% 46% at 10% 2%, color-mix(in srgb, var(--ion-color-primary) 16%, transparent), transparent 66%), radial-gradient(60% 42% at 98% 98%, color-mix(in srgb, var(--ion-color-tertiary) 12%, transparent), transparent 62%), linear-gradient(180deg, #0d1b21 0%, #081114 100%)}.login-panel{background:color-mix(in srgb,var(--surface) 84%,transparent);box-shadow:var(--shadow-lg),inset 0 1px #ffffff0d}}.ion-page-invisible,.ion-page-hidden{display:none!important}ion-segment{--background: var(--fill);margin:2px 0 16px;padding:3px;border-radius:var(--radius-full);box-shadow:inset 0 0 0 1px var(--hairline)}ion-segment-button{--color: var(--text-muted);--color-checked: var(--ion-color-primary);--indicator-color: var(--surface);--indicator-height: 100%;--indicator-box-shadow: var(--shadow-raised);--border-radius: var(--radius-full);min-height:36px;font-family:var(--font-display);font-size:var(--text-sm);font-weight:650;letter-spacing:-.006em;text-transform:none}ion-segment-button::part(indicator){top:0}ion-segment-button::part(indicator-background){border-radius:var(--radius-full)}ion-card-header{padding:18px 20px 6px}ion-card-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:650;letter-spacing:-.016em}ion-card-subtitle{margin-top:4px;color:var(--text-muted);font-size:var(--text-xs);font-weight:500;letter-spacing:0;text-transform:none}ion-card-content{padding:6px 20px 18px}ion-list[inset] ion-item{--min-height: 54px;--padding-start: 16px;--inner-padding-end: 12px;--border-color: var(--hairline)}ion-list[inset] ion-item>ion-icon[slot=start]:not(.ion-color){margin-inline-end:12px;color:var(--text-subtle);font-size:19px}ion-list[inset] ion-item>ion-icon[slot=end]:not(.ion-color){color:var(--text-subtle);font-size:17px}ion-list[inset] ion-item ion-label h3{margin:0 0 3px;font-family:var(--font-display);font-size:var(--text-base);font-weight:650;letter-spacing:-.012em}ion-list[inset] ion-item ion-label p{margin:0;color:var(--text-muted);font-size:var(--text-xs);line-height:1.55}ion-note{color:var(--text-muted);font-size:var(--text-xs);font-weight:550}.date-input:focus-within,.form-control:focus-within{border-color:color-mix(in srgb,var(--ion-color-primary) 45%,transparent)}.metric-grid,.live-stats{gap:12px}.section-title{margin:22px 0 10px}@media(min-width:768px){.card-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:992px){.bottom-navigation{padding-right:max(8px,calc((100% - 620px)/2));padding-left:max(8px,calc((100% - 620px)/2))}}@media(max-width:600px){.content-shell{padding:14px max(14px,env(safe-area-inset-right)) calc(96px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}ion-header.page-header ion-toolbar{--padding-start: 14px;--padding-end: 8px}.form-grid{grid-template-columns:1fr}.form-grid>ion-textarea,.form-grid>ion-input[aria-label*=说明]{grid-column:auto}.metric-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{min-height:94px;padding:12px 13px 13px}.metric strong{margin:8px 0 3px;font-size:var(--text-lg);line-height:24px}.timeline-item{grid-template-columns:50px minmax(0,1fr)}.timeline-item ion-badge{grid-column:2;justify-self:start}.card-heading-row{align-items:flex-start}.card-heading-row ion-badge{flex:0 0 auto;max-width:42%;white-space:normal;text-align:center}.session-summary{grid-template-columns:1fr}.session-summary div{display:flex;align-items:center;justify-content:space-between}.welcome-banner{min-height:148px;padding:20px}.welcome-banner h1{font-size:var(--text-lg)}.welcome-banner>ion-icon{width:56px;height:56px;padding:15px;border-radius:18px}.grading-fields{grid-template-columns:1fr}.message-list ion-item::part(native){align-items:flex-start}.message-meta{max-width:76px}.bottom-navigation{padding-right:2px;padding-left:2px}.bottom-navigation span{font-size:10px}.message-summary{grid-template-columns:auto auto}.message-summary span:last-child{grid-column:1 / -1;text-align:left}.paper-summary{align-items:flex-start;flex-direction:column;gap:4px}.paper-summary span{text-align:left}.result-hero{min-height:118px;padding:18px 20px}.result-hero strong{font-size:36px}}@media(max-width:380px){.metric{min-height:84px;padding:10px 10px 11px}.metric strong{margin:6px 0 2px;font-size:var(--text-md);line-height:22px}.metric-label{padding:2px 7px;font-size:10px}.metric small{font-size:10px}.metric-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}.page-title{font-size:var(--text-md);line-height:23px}.shortcut-grid{grid-template-columns:repeat(auto-fit,minmax(66px,1fr))}.shortcut-grid button{min-height:74px;padding:10px 2px}.score-ring{width:92px;height:92px}.score-ring strong{font-size:24px}.identity-text h2{font-size:var(--text-lg);line-height:26px}.profile-avatar{width:48px;height:48px;font-size:var(--text-sm)}.page-actions{gap:4px}.page-chip{gap:4px;height:32px;padding:0 10px 0 8px;font-size:12px}.page-chip ion-icon{font-size:15px}.profile-edit-row{grid-template-columns:1fr}.profile-edit-row ion-button{width:100%}}.app-workspace{height:100%;min-width:0}.app-main{height:100%}.workspace-sidebar{display:none}.workspace-mark{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:12px;color:var(--ion-color-primary-contrast);background:var(--ion-color-primary)}.workspace-mark svg{width:30px;height:30px}.workspace-brand{display:flex;align-items:center;gap:12px;color:var(--ion-text-color);text-decoration:none}.workspace-brand strong{display:block;font-size:21px;letter-spacing:.04em}.workspace-brand small{display:block;margin-top:5px;font-size:10px;color:var(--text-muted)}.page-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%;min-height:56px;padding:4px 0}.page-heading{flex:1 1 120px}.page-title{font-size:22px;font-weight:600;letter-spacing:-.025em;line-height:1.4}.page-subtitle{font-size:12px;font-weight:400;line-height:1.6;white-space:normal;margin-top:4px}.page-actions{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}ion-header.page-header ion-toolbar{--background: var(--surface);--padding-start: 24px;--padding-end: 24px;border-bottom:1px solid var(--hairline)}ion-header.page-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0px);padding-bottom:0}.content-shell{padding:24px 28px calc(94px + env(safe-area-inset-bottom));animation:none}.page-back{margin-left:-8px}.page-chip{height:38px;border:1px solid transparent;border-radius:12px;font-weight:500}.page-action .page-chip{color:var(--ion-color-primary);background:var(--fill);border-color:transparent}.page-action-active .page-chip{color:var(--ion-color-primary-contrast);background:var(--ion-color-primary);border-color:transparent}.route-loading{position:absolute;z-index:2;background:var(--ion-background-color);backdrop-filter:none;-webkit-backdrop-filter:none}.route-error{height:100%}.primary-button{min-height:44px;padding:10px 20px;border:0;border-radius:10px;color:var(--ion-color-primary-contrast);background:var(--ion-color-primary);font-weight:600}.icon-button{display:inline-grid;place-items:center;width:44px;min-height:44px;padding:0;border:0;border-radius:12px;color:var(--text-muted);background:var(--fill)}.icon-button ion-icon{font-size:22px}.workspace-quick-access{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px;max-width:560px;margin:24px 0 0}.workspace-quick-access a{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;color:var(--text-muted);text-decoration:none;background:transparent;transition:background var(--dur-fast),color var(--dur-fast)}.quick-access-icon{display:grid;flex:0 0 auto;place-items:center;width:20px;height:24px;color:inherit;background:transparent}.quick-access-icon ion-icon{font-size:19px}.workspace-quick-access strong,.workspace-quick-access small{display:block}.workspace-quick-access strong{font-size:13px;font-weight:500}.workspace-quick-access small,.workspace-quick-access .quick-access-arrow{display:none}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}.dashboard-columns>*{min-width:0}.dashboard-columns .section-title:first-child{margin-top:0}.dashboard-columns ion-list{margin-bottom:20px}.home-agenda{display:grid;gap:14px}.home-agenda-card{padding:20px;border:1px solid var(--hairline);border-radius:16px;background:var(--surface)}.home-agenda-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.home-agenda-heading>span{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12px}.home-agenda-heading ion-icon{color:var(--ion-color-primary);font-size:18px}.home-agenda-card h3{font-size:17px;margin:18px 0 10px;line-height:1.5;overflow-wrap:anywhere}.home-agenda-card p{color:var(--text-muted);font-size:12px;line-height:1.8;margin:0}.home-agenda-card ion-button{margin:12px 0 -8px -12px}.child-picker{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.child-picker ion-select{flex:1;min-width:0}.metric-grid{gap:12px;padding:12px;border-radius:12px;background:var(--fill)}.metric{min-height:76px;padding:8px 12px;border:0;border-radius:0;background:transparent}.metric-label{padding:0;border-radius:0;color:var(--text-muted);background:none;font-size:12px;font-weight:400;white-space:normal}.metric strong{margin:6px 0 4px;font-size:26px;line-height:1.25;font-weight:600}.metric small{font-size:11px}.metric:after{content:none}.section-title{margin:24px 0 14px}.section-title h2{font-size:16px}ion-card{box-shadow:none}ion-card-header{padding:22px 24px 10px}ion-card-content{padding:6px 24px 22px}.primary-course-card{border:1px solid color-mix(in srgb,var(--ion-color-primary) 18%,var(--hairline));background:var(--surface)}.primary-course-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--ion-color-primary)}.primary-course-card ion-card-title{color:var(--ion-text-color);font-size:21px}.primary-course-card ion-card-subtitle,.primary-course-card ion-card-content{color:var(--text-muted)}.primary-course-card .card-action-line{margin-top:20px;color:var(--ion-color-primary)}.primary-course-card .progress-track{background:var(--fill)}.primary-course-card .progress-track span{background:var(--ion-color-primary)}.next-lesson{display:block;min-height:44px;padding:5px 0 2px;border-radius:12px;color:var(--ion-text-color);text-decoration:none}.next-lesson-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.next-lesson-time{display:inline-flex;align-items:baseline;gap:10px;white-space:nowrap;font-variant-numeric:tabular-nums}.next-lesson-time>time{font-size:36px;font-weight:600;line-height:1.25;letter-spacing:-.04em}.next-lesson-time>span{color:var(--text-muted);font-size:15px;line-height:1.5}.next-lesson-symbol{display:inline-grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border-radius:13px;background:var(--tint-primary);color:var(--ion-color-primary)}.next-lesson-symbol ion-icon{font-size:24px}.next-lesson-content{min-width:0;overflow-wrap:anywhere}.next-lesson-content h3{margin:12px 0 0;font-size:21px;font-weight:600;line-height:1.45;letter-spacing:-.025em}.next-lesson-class{margin:5px 0 0;color:var(--text-muted);font-size:13px;line-height:1.6}.next-lesson-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin:7px 0 0;color:var(--text-muted);font-size:12px;line-height:1.6}.next-lesson-meta>span{display:inline-flex;align-items:center;gap:5px}.next-lesson-meta ion-icon{font-size:14px;flex-shrink:0}.next-lesson-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;color:var(--text-muted);font-size:12px;line-height:1.6}.next-lesson-footer strong{font-weight:500;font-variant-numeric:tabular-nums}.next-lesson ion-badge.ion-color{padding:0;border-radius:0;background:transparent;box-shadow:none;color:var(--ion-color-base);font-size:12px;font-weight:500;white-space:normal;line-height:1.6}.next-lesson ion-badge.ion-color-success{color:var(--ion-color-success-shade)}.next-lesson-arrow{margin-top:6px;color:var(--text-muted);font-size:16px}.next-lesson:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:4px}.next-lesson:active{background:var(--fill)}.home-icon-link:focus-visible,.home-primary-link:focus-visible,.home-section-link:focus-visible,.home-task:focus-visible,.workspace-quick-access a:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:3px}.home-actions{display:flex;align-items:center;gap:4px}.home-icon-link{display:inline-grid;place-items:center;width:44px;height:44px;flex:0 0 auto;border-radius:12px;color:var(--ion-text-color);text-decoration:none}.home-icon-link ion-icon{font-size:21px}.home-icon-link:active{background:var(--fill)}.home-avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;color:var(--ion-background-color);background:var(--ion-text-color);font-size:12px;font-weight:500}.home-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px}.home-section-heading h2{margin:0;color:var(--text-muted);font-size:13px;font-weight:500}.home-section-link{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--text-muted);font-size:12px;text-decoration:none}.home-section-link ion-icon{font-size:13px}.home-primary-link{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 16px;border-radius:24px;color:var(--ion-color-primary-contrast);background:var(--ion-color-primary);font-size:13px;font-weight:500;text-decoration:none}.home-primary-link ion-icon{font-size:17px}.home-primary-link:active{background:var(--ion-color-primary-shade)}.home-preparation-detail{display:grid;gap:3px}.home-preparation-detail>small{font-size:11px;color:var(--text-muted)}.home-preparation-status{display:inline-flex;align-items:center;gap:7px;color:var(--ion-color-warning);font-size:12px}.home-preparation-status ion-icon{font-size:14px}.home-preparation-status.is-ready{color:var(--ion-color-success)}.home-preparation-status.is-unconfigured{color:var(--text-muted)}.home-task{display:grid;grid-template-columns:26px minmax(0,1fr) 14px;align-items:center;gap:12px;min-height:68px;padding:10px 0;border-radius:8px;color:var(--ion-text-color);text-decoration:none}a.home-task:active{background:var(--fill)}.home-task-icon{justify-self:center;font-size:21px}.home-task-arrow{font-size:13px;color:var(--text-muted)}.home-task-content{min-width:0;overflow-wrap:anywhere}.home-task-content>strong{display:block;font-size:15px;font-weight:500;line-height:1.5}.home-task-detail{margin-top:5px;color:var(--text-muted);font-size:12px;line-height:1.6}.home-task-status{margin-top:4px}.home-task-attention .home-task-icon{color:var(--ion-color-warning)}.home-feedback{padding:14px 0}.home-feedback>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 12px}.home-feedback strong{font-size:13px;font-weight:500}.home-feedback time{color:var(--text-muted);font-size:12px}.home-feedback p{margin:10px 0 0;font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.home-weekly-performance{margin-top:24px}.preparation-list ion-checkbox{width:100%;min-height:60px;--size: 21px;--checkbox-background: transparent}.preparation-list ion-checkbox::part(label){white-space:normal}.preparation-label{display:grid;gap:4px;padding:12px 0}.preparation-label strong{font-size:15px;font-weight:500}.preparation-label small{font-size:12px;color:var(--text-muted)}.dashboard-page ion-header.page-header ion-toolbar{border-bottom:0;background:var(--ion-background-color);--background: var(--ion-background-color)}.dashboard-page .page-toolbar{min-height:104px;align-items:flex-start;padding:20px 0 12px}.dashboard-page .page-title{font-size:34px;line-height:1.2;letter-spacing:-.04em}.dashboard-page .page-subtitle{margin-top:8px;font-size:12px;line-height:20px}.dashboard-page .content-shell{padding-top:4px}@media(hover:hover)and (pointer:fine){.page-action:hover .page-chip{background:var(--tint-primary);border-color:var(--ion-color-primary)}.page-action-active:hover .page-chip{background:var(--ion-color-primary-shade)}.workspace-quick-access a:hover{color:var(--ion-text-color);background:var(--fill)}.next-lesson:hover h3,.next-lesson:hover .next-lesson-arrow{color:var(--ion-color-primary)}.home-task:hover,.home-icon-link:hover{background:var(--fill)}.home-primary-link:hover{background:var(--ion-color-primary-shade)}}ion-segment{max-width:640px;border-radius:12px;padding:4px}ion-segment-button{--border-radius: 8px;--indicator-box-shadow: 0 1px 4px rgba(23, 35, 59, .08);min-height:40px;font-size:13px}ion-segment-button::part(indicator-background){border-radius:8px}.form-control,.date-input{background:var(--surface)}.form-grid{gap:16px}.question-item :is(ion-input,ion-textarea,ion-select),.inline-form :is(ion-input,ion-textarea,ion-select),.form-grid>:is(ion-input,ion-textarea,ion-select){min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);--padding-start: 14px;--padding-end: 14px;--padding-top: 10px;--padding-bottom: 10px}.question-item :is(ion-input,ion-textarea,ion-select):focus-within,.inline-form :is(ion-input,ion-textarea,ion-select):focus-within{border-color:var(--ion-color-primary);box-shadow:0 0 0 3px var(--tint-primary)}.question-item>:is(ion-input,ion-textarea),.grading-item>:is(ion-input,ion-textarea),.inline-form>:is(ion-input,ion-textarea){margin:16px 0}.question-item ion-select,.form-grid>ion-select,.inline-form ion-select{padding:10px 14px}.question-item ion-textarea{min-height:100px}.teaching-scope-picker{min-width:0;padding:0;margin:0 0 20px;border:0}.scope-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.scope-search{margin-bottom:16px}.picker-more,.picker-error button{justify-self:start;padding:3px 0;background:transparent;color:var(--ion-color-primary);font:inherit}.picker-error{color:var(--ion-color-danger);font-size:12px}.picker-error button{margin-left:12px}.question-answer-fields{margin:16px 0}.correct-answer-picker{display:grid;gap:10px;margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:10px}.correct-answer-picker legend{color:var(--text-muted);font-size:13px}.correct-answer-picker label{display:flex;align-items:flex-start;gap:10px;min-width:0;font-size:14px;line-height:1.6}.correct-answer-picker input{flex:0 0 auto;width:18px;height:18px;margin-top:2px;accent-color:var(--ion-color-primary)}.correct-answer-picker span{overflow-wrap:anywhere}.inline-form{background:var(--surface)}.answer-options button{min-height:50px}.timeline-item{width:100%;text-align:left;font:inherit;cursor:pointer}.timeline-item:hover{border-color:var(--ion-color-primary)}.filter-segment button{min-height:44px;border-radius:10px}.resource-state{min-height:260px;border:1px solid var(--hairline);border-radius:18px;background:var(--surface)}.resource-loading{display:block;padding:24px;text-align:left}.resource-loading .loading-caption{display:flex;align-items:center;gap:12px;margin-bottom:26px;font-size:13px}.resource-skeleton{display:grid;gap:14px}.resource-skeleton span{display:block;height:16px;width:70%;border-radius:6px;background:var(--fill);animation:skeleton-pulse 1.6s ease-in-out infinite alternate}.resource-skeleton span:first-child{width:40%;height:25px}.resource-skeleton span:last-child{width:90%;height:68px}@keyframes skeleton-pulse{to{opacity:.4}}.message-summary{border-radius:16px;background:var(--surface);border:1px solid var(--hairline)}.message-list ion-item{--min-height: 96px}.message-body{flex:1;min-width:0;padding:4px 0 8px}.message-body ion-label{display:block}.message-body ion-label:focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:3px}.message-footer{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;color:var(--text-muted);font-size:11px}.message-footer ion-button{margin:-6px 0 -6px auto;--padding-start: 4px;--padding-end: 4px;font-size:12px}.message-icon{border-radius:12px}.identity{padding:24px;border:1px solid var(--hairline);border-radius:18px;background:var(--surface)}.shortcut-grid{padding:8px}.report-score{border:1px solid var(--hairline);background:var(--surface);border-radius:18px;padding:24px}.score-ring{display:flex;flex-direction:column;justify-content:center;align-items:center}.score-ring:before{-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8.5px))}.score-ring strong{line-height:1.2}.score-ring span{margin-top:4px}@media(max-width:600px){.scope-picker-grid{grid-template-columns:1fr}}.workspace-field{display:grid;gap:8px;min-width:0;color:var(--text-muted);font-size:13px;font-weight:600}.workspace-field input,.workspace-field textarea{width:100%;min-width:0;padding:12px;color:var(--ion-text-color);font:inherit;font-weight:400;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.workspace-field textarea{resize:vertical;line-height:1.8}.workspace-field input:focus,.workspace-field textarea:focus{outline:2px solid var(--ion-color-primary);outline-offset:2px}.workspace-field :disabled{opacity:.6;cursor:not-allowed}.primary-button:disabled{opacity:.5;cursor:not-allowed}.feedback-records{display:grid;gap:16px}.feedback-records ion-card-title{font-size:16px}.feedback-content,.feedback-replies p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}.feedback-replies{display:grid;gap:14px;margin:20px 0 0;padding:16px;border-radius:12px;background:var(--fill)}.feedback-replies article>div{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between}.feedback-replies strong{font-size:13px}.feedback-replies time{color:var(--text-muted);font-size:11px}.feedback-replies p{margin:8px 0 0}.navigation-search-field{display:flex;align-items:center;gap:12px;padding:0 14px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface)}.navigation-search-field input{width:100%;min-width:0;height:44px;border:0;outline:0;background:transparent;color:var(--ion-text-color);font-size:16px}.navigation-search-field:focus-within{border-color:var(--ion-color-primary);box-shadow:0 0 0 3px var(--tint-primary)}.navigation-results{display:grid;gap:4px;margin-top:12px}.navigation-results button{display:flex;gap:12px;align-items:center;min-height:44px;padding:11px 12px;border:0;border-radius:var(--control-radius);background:transparent;color:var(--ion-text-color);text-align:left}.navigation-results button[aria-selected=true]{color:var(--ion-color-primary);background:var(--tint-primary)}.navigation-results button ion-icon:last-child{margin-left:auto}.navigation-no-results{text-align:center;color:var(--text-muted);padding:24px 0}.login-content{--background: var(--ion-background-color)}.login-layout{width:min(1120px,calc(100% - 64px));grid-template-columns:1fr 420px;gap:96px;padding:64px 0;animation:none}.login-story{min-width:0}.login-brand{margin-bottom:68px}.login-brand h1{font-size:23px}.login-story h2{margin:0 0 20px;font-size:clamp(30px,3.6vw,46px);line-height:1.45;letter-spacing:-.045em}.login-story h2 span{color:var(--ion-color-primary)}.login-story>p{max-width:34em;color:var(--text-muted);line-height:1.9;font-size:15px}.login-story-features{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}.login-story-features span{padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text-muted);font-size:12px}.login-panel{padding:32px;border-radius:24px;background:var(--surface);box-shadow:0 16px 48px -20px #17233b29;-webkit-backdrop-filter:none;backdrop-filter:none}.login-panel h2{margin:0 0 10px;font-size:24px;letter-spacing:-.03em}.login-panel>p{margin:0 0 28px;color:var(--text-muted);font-size:13px;line-height:1.7}.login-fields{border:0;margin:24px 0;overflow:visible}.login-field{display:grid;gap:10px;margin-bottom:18px;color:var(--ion-text-color);font-size:13px;font-weight:600}.login-field input{display:block;width:100%;height:48px;padding:0 14px;font:inherit;font-weight:400;color:var(--ion-text-color);border:1px solid var(--line);border-radius:10px;background:var(--ion-background-color)}.login-field input:focus{outline:2px solid var(--tint-primary-strong);outline-offset:1px;border-color:var(--ion-color-primary)}.login-password{position:relative}.login-password input{padding-right:48px}.login-password button{position:absolute;right:3px;top:2px;width:44px;min-height:44px;border:0;background:transparent;color:var(--text-muted)}.login-error{margin:0 0 16px;padding:12px;border-radius:10px;color:var(--ion-color-danger);background:color-mix(in srgb,var(--ion-color-danger) 8%,var(--surface));font-size:13px;line-height:1.6}.login-footer{color:var(--text-muted);text-align:center;font-size:11px;margin:20px 0 0;line-height:1.7}.login-panel .primary-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px}.login-demo{width:100%;min-height:44px;margin-top:10px;border:0;background:none;color:var(--ion-color-primary);font-size:13px}button:disabled{cursor:not-allowed}.primary-button:disabled{opacity:.6}@media(min-width:992px){.workspace-sidebar{position:fixed;inset:0 auto 0 0;z-index:30;display:flex;flex-direction:column;width:244px;padding:30px 18px 20px;border-right:1px solid var(--hairline);background:var(--surface)}.workspace-brand{padding:0 8px}.workspace-search{display:flex;align-items:center;gap:9px;min-height:44px;margin:34px 0 26px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--ion-background-color);color:var(--text-muted);text-align:left;font-size:12px}.workspace-search kbd{margin-left:auto;font-size:9px;font-family:inherit;opacity:.75}.workspace-nav-label{margin:0 12px 12px;color:var(--text-subtle);font-size:11px}.workspace-navigation{display:grid;gap:5px;overflow-y:auto}.workspace-navigation a{display:flex;align-items:center;gap:12px;min-height:46px;padding:12px 14px;border-radius:11px;color:var(--text-muted);text-decoration:none;font-size:14px;font-weight:500}.workspace-navigation a ion-icon{font-size:20px}.workspace-navigation a:hover{background:var(--fill)}.workspace-navigation a.active{color:var(--ion-color-primary);background:var(--tint-primary);font-weight:650}.workspace-nav-count{display:inline-grid;place-items:center;min-width:23px;min-height:21px;padding:0 6px;margin-left:auto;border-radius:6px;font-size:11px;color:var(--ion-color-primary);background:var(--tint-primary)}.workspace-account{display:flex;align-items:center;gap:12px;margin-top:auto;padding:20px 8px 0;color:var(--ion-text-color);text-decoration:none}.workspace-account>span:last-child{min-width:0}.workspace-account strong,.workspace-account small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-account strong{font-size:13px}.workspace-account small{margin-top:5px;color:var(--text-muted);font-size:11px}.workspace-account-avatar{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:50%;color:var(--ion-color-primary);background:var(--tint-primary)}.app-main{width:calc(100% - 244px);margin-left:244px}.bottom-navigation{display:none}.content-shell{padding-bottom:40px}.page-toolbar{min-height:78px}ion-header.page-header ion-toolbar{--padding-start: 32px;--padding-end: 32px}}@media(max-width:991px){.dashboard-columns{grid-template-columns:1fr;gap:24px}.login-layout{width:min(460px,calc(100% - 40px));grid-template-columns:1fr;gap:30px;padding:calc(32px + env(safe-area-inset-top)) 0 calc(32px + env(safe-area-inset-bottom))}.login-brand{margin-bottom:26px}.login-story h2{margin-bottom:12px;font-size:28px}.login-story>p{margin:0;font-size:13px}.login-story-features{display:none}.bottom-navigation{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}}@media(prefers-reduced-motion:reduce){.resource-skeleton span{animation:none}}@media(max-width:767px){.page-content{--background: var(--ion-background-color)}ion-header.page-header ion-toolbar{--background: var(--ion-background-color);--padding-start: max(24px, env(safe-area-inset-left));--padding-end: max(24px, env(safe-area-inset-right));border-bottom:0;-webkit-backdrop-filter:none;backdrop-filter:none}ion-header.page-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0px);padding-bottom:0}.page-toolbar{min-height:60px;gap:8px}.page-title{font-size:21px;line-height:1.4;font-weight:600;letter-spacing:-.025em}.page-heading{flex-basis:80px}.page-subtitle{margin-top:2px;font-size:12px;line-height:1.5}.page-actions{flex-shrink:0}.page-action,.page-back{min-width:44px;min-height:44px}.page-chip{height:36px;padding:0 10px;border:0;border-radius:10px;box-shadow:none;font-size:13px}.page-chip ion-icon{font-size:17px}.page-action .page-chip{background:var(--tint-primary)}.page-action-active .page-chip{background:var(--ion-color-primary);color:var(--ion-color-primary-contrast)}.page-back{margin-left:-12px}.page-back .page-chip{background:transparent}.page-back .page-chip ion-icon{font-size:23px}.content-shell{padding:12px max(24px,env(safe-area-inset-right)) calc(88px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}.app-main-detail .content-shell{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.app-workspace .bottom-navigation{height:calc(64px + env(safe-area-inset-bottom));padding:6px 6px env(safe-area-inset-bottom);background:var(--ion-background-color);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.bottom-navigation button{border-radius:10px;gap:4px}.bottom-navigation button:before,.bottom-navigation button:after{content:none}.bottom-navigation button.active ion-icon{transform:none}.bottom-navigation ion-icon{font-size:22px}.bottom-navigation button>span:not(.bottom-unread-count){font-size:11px}.bottom-navigation .bottom-unread-count{top:0;font-size:10px;height:16px;min-width:16px;padding:0 4px}.metric-grid,.metric-grid-four{gap:0;grid-template-columns:repeat(3,minmax(0,1fr));padding:16px 8px;border:0;border-radius:12px;background:var(--fill)}.metric-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{display:flex;flex-direction:column;min-height:0;padding:0 8px;border:0;border-radius:0;background:transparent;overflow:visible}.metric:after{content:none}.metric-label{color:var(--text-muted);background:none;border:0;border-radius:0;font-size:12px;letter-spacing:0;padding:0;white-space:normal}.metric strong{font-size:26px;margin:5px 0 3px;line-height:1.3;font-weight:600}.metric small{font-size:11px;line-height:1.6;white-space:normal}.metric-grid-four .metric{padding:0 8px}.metric-grid-four .metric strong{font-size:22px}.metric-grid-four .metric-label{font-size:11px}.workspace-quick-access{gap:12px;margin:24px 0 0;border:0}.workspace-quick-access a{flex-direction:row;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:8px;background:transparent;border:1px solid var(--line);border-radius:12px}.workspace-quick-access a:active{background:var(--fill)}.workspace-quick-access strong{font-size:13px;font-weight:500}.workspace-quick-access small,.workspace-quick-access .quick-access-arrow{display:none}.quick-access-icon{background:none;color:inherit;width:20px;height:24px;border-radius:0}.quick-access-icon ion-icon{font-size:19px}.dashboard-columns{gap:28px}.section-title{margin:22px 0 10px;gap:8px}.section-title h2{font-size:16px;line-height:1.6;font-weight:650;letter-spacing:0}.section-title span{font-size:12px;flex-shrink:1;text-align:right;white-space:normal}.dashboard-page .section-title{margin-top:24px;margin-bottom:12px}.dashboard-columns .section-title:first-child{margin-top:0}.dashboard-page .page-toolbar{min-height:108px;padding:20px 0 12px}.dashboard-page .page-title{font-size:34px;line-height:1.2}.dashboard-page .page-subtitle{margin-top:8px;font-size:12px;line-height:20px}.dashboard-page .content-shell{padding-top:4px}.home-task{min-height:76px}.home-task-section>.section-title h2{font-size:17px;font-weight:600}.home-agenda{gap:16px}.home-agenda-card{padding:8px 0;border:0;border-radius:0;background:transparent}.home-agenda-card h3{font-size:16px;margin:8px 0 5px}.home-agenda-card ion-button{margin-top:4px}.child-switcher{min-height:56px;padding:0 0 12px;margin-bottom:20px;border:0;border-radius:0;background:transparent}.child-switcher .avatar{width:40px;height:40px;font-size:16px;box-shadow:none}.child-switcher strong{font-size:17px}.child-switcher ion-select{flex:1;max-width:none;min-height:44px;padding:8px 12px;border:0;border-radius:10px;font-size:14px;font-weight:500;background:var(--fill)}ion-card{border:0;border-radius:0;box-shadow:none;background:transparent;transition:none}ion-card[button]:active{transform:none;background:var(--fill)}ion-card-header{padding:14px 0 6px}.app-workspace ion-card-content{padding:2px 0 16px;padding-inline:0;font-size:13px;line-height:1.8}ion-card-title,.card-heading-row ion-card-title{font-size:16px;line-height:1.6;font-weight:600;letter-spacing:0}ion-card-subtitle{order:initial;margin-top:5px;font-size:12px;line-height:1.7;text-transform:none;letter-spacing:0}.card-list{display:block;margin-top:0}.card-list>ion-card{border-bottom:1px solid var(--hairline)}.card-list>ion-card:last-child{border-bottom:0}.card-list>ion-card ion-card-header{padding-top:20px}.card-list .course-cover{position:absolute;top:20px;left:0;display:grid;width:24px;height:26px;margin:0;border-radius:0;background:none;box-shadow:none}.card-list .course-cover ion-icon{font-size:23px}.card-list ion-card-header:has(.course-cover){padding-left:36px}.card-heading-row{align-items:flex-start;gap:10px}.card-heading-row ion-badge{flex:0 0 auto;margin-top:4px}.card-action-line{gap:8px;margin-top:5px;font-size:12px}.row-link{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;color:var(--ion-color-primary);font-size:12px}.row-link ion-icon{font-size:15px}.primary-course-card{padding-left:0;border:0;background:transparent}.primary-course-card:before{content:none}.primary-course-card ion-card-header{padding-top:0}.primary-course-card ion-card-title{font-size:18px}.primary-course-card ion-card-content{padding-bottom:0}.primary-course-card .card-action-line{margin-top:8px}.progress-line{margin:10px 0}.progress-track{height:3px}.app-workspace ion-badge.ion-color{padding:3px 7px;border-radius:6px;background:color-mix(in srgb,var(--ion-color-base) 8%,transparent);box-shadow:none;color:var(--ion-color-base);font-size:11px;font-weight:500;white-space:normal;line-height:1.5}.app-workspace ion-badge.ion-color-success{color:var(--ion-color-success-shade)}ion-list[inset]{border:0;border-radius:0;padding:0;background:transparent}ion-list[inset] ion-item{--background: transparent;--padding-start: 0;--inner-padding-end: 0;--border-color: var(--hairline);--min-height: 56px}ion-list[inset] ion-item ion-label h3{font-size:15px;line-height:1.6;font-weight:500}ion-list[inset] ion-item ion-label p{font-size:12px;line-height:1.7}ion-list[inset] ion-item>ion-icon[slot=start]{padding:0;background:none;border-radius:0;margin-right:12px;font-size:21px}.task-list ion-icon{padding:0;background:none}.inline-empty{min-height:0;padding:18px 0;border:0;border-radius:0;background:transparent;text-align:left;font-size:13px;line-height:1.8}.resource-state{border:0;border-radius:0;background:transparent}.resource-loading{padding:20px 0}.alert-band{padding:12px;border:0;border-radius:12px;background:var(--tint-primary)}ion-segment{max-width:none;min-height:48px;padding:3px;border:0;border-radius:12px;background:var(--fill);box-shadow:none}ion-segment-button{--border-radius: 9px;--background: transparent;--background-checked: transparent;--color: var(--text-muted);--color-checked: var(--ion-color-primary);--indicator-color: var(--surface);--indicator-height: 100%;--indicator-box-shadow: var(--shadow-sm);--padding-start: 8px;--padding-end: 8px;min-width:0;min-height:44px;margin:0;font-size:14px;font-weight:500}ion-segment-button::part(indicator){top:0;bottom:0;height:100%;padding:0}ion-segment-button::part(indicator-background){border-radius:9px;box-shadow:var(--shadow-sm)}ion-segment-button:before{border:0}.filter-segment{gap:8px;margin-bottom:12px;padding-bottom:0;border:0}.filter-segment button{position:relative;min-height:44px;padding:0 14px;border:0;border-radius:10px;color:var(--text-muted);background:var(--fill);font-size:13px}.filter-segment button.selected{border:0;background:var(--tint-primary);color:var(--ion-color-primary);box-shadow:inset 0 0 0 1px var(--ion-color-primary)}ion-button,ion-button[size=large]{min-height:44px;--border-radius: 10px;font-size:14px;font-weight:500;transition:none}ion-button:active{transform:none}.button-row{gap:4px 12px}.card-list>ion-card>ion-card-content>.button-row{justify-content:flex-start;flex-wrap:wrap;gap:8px;margin-top:12px}.card-list>ion-card>ion-card-content>.button-row>ion-button{--padding-start: 14px;--padding-end: 14px;margin:0;min-height:44px;font-size:13px}.card-list>ion-card>ion-card-content>.button-row>ion-button ion-icon{font-size:16px;margin-right:4px}.inline-form{margin-top:10px;padding:14px 0;border:0;border-top:1px solid var(--hairline);border-radius:0;background:transparent}.form-grid,.scope-picker-grid{gap:14px}.form-control,.workspace-field input,.workspace-field select,.workspace-field textarea{border-radius:10px;font-size:16px}ion-input,ion-textarea,ion-select{font-size:16px}.question-item :is(ion-input,ion-textarea,ion-select),.inline-form :is(ion-input,ion-textarea,ion-select),.form-grid>:is(ion-input,ion-textarea,ion-select){border-radius:10px;font-size:16px}.question-item,.grading-item{border-radius:0;box-shadow:none}.question-list,.grading-list{gap:0}.question-item,.grading-item{padding:18px 0;border:0;border-bottom:1px solid var(--hairline);background:transparent}.answer-options{gap:8px}.answer-options button{padding:12px;border-radius:10px;font-size:15px;box-shadow:none;transition:none}.answer-options button.selected{box-shadow:none;font-weight:500}.question-navigation button{border-radius:8px;transition:none}.exam-clock{min-height:48px;padding:0 0 12px;border:0;border-bottom:1px solid var(--hairline);border-radius:0;background:transparent}.exam-clock>ion-icon{width:22px;height:22px;padding:0;background:transparent;border-radius:0}.exam-clock div{display:flex;align-items:center;justify-content:space-between;gap:12px}.exam-clock strong{margin:0;font-size:22px}.result-hero{min-height:90px;padding:18px 0;border:0;border-bottom:1px solid var(--hairline);border-radius:0;background:transparent;box-shadow:none}.message-body{padding:0 0 10px}.message-body ion-label{margin-bottom:8px}.session-summary{margin-bottom:24px;padding:12px 16px;border:0;border-radius:12px;background:var(--fill)}.session-summary div{padding:8px 0;background:transparent;border:0}.timeline{gap:12px}.timeline:before,.timeline-item:before{content:none}.timeline-item{grid-template-columns:52px minmax(0,1fr);gap:8px 12px;min-height:92px;padding:14px 0;border:0;border-bottom:1px solid var(--hairline);border-radius:0;background:transparent;box-shadow:none;transition:none}.timeline-item ion-badge{grid-column:2;justify-self:start}.timeline-item:hover{transform:none;box-shadow:none}.timeline-item:active{background:var(--fill)}.identity{padding:8px 0 20px;margin:0;border:0;border-radius:0;background:transparent}.profile-avatar{width:48px;height:48px;border-radius:50%;background:var(--fill);color:var(--ion-text-color);box-shadow:none}.identity-text h2{font-size:22px}.shortcut-grid{padding:8px 0;border:0;border-radius:12px;background:var(--fill);grid-template-columns:repeat(auto-fit,minmax(64px,1fr))}.shortcut-grid button{min-height:70px;gap:4px;padding:8px 0}.shortcut-icon{width:28px;height:28px;background:transparent;color:var(--text-muted);font-size:22px}.shortcut-label{font-size:12px;font-weight:400}.message-summary{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 10px;padding:0;min-height:0;border:0;border-radius:0;background:transparent}.message-summary strong{font-size:14px;font-weight:600}.message-summary span{font-size:12px}.message-summary span:last-child{flex-basis:100%;text-align:left;line-height:1.8}.message-list ion-item{--min-height: 0}.message-unread::part(native){background:transparent}.message-icon{width:28px;height:28px;margin-top:20px;margin-right:12px;background:transparent;color:var(--text-muted);border-radius:0}.message-icon ion-icon{font-size:22px}.message-list ion-label{margin-top:16px;margin-bottom:16px}.message-list ion-label h3{margin-bottom:4px}.message-list .message-unread h3:before{display:inline-block;width:6px;height:6px;margin:0 7px 2px 0;border-radius:50%;background:var(--ion-color-primary);content:""}.feedback-records{gap:0}.feedback-records>ion-card{border-bottom:1px solid var(--hairline)}.feedback-replies{padding:14px;border:0;border-radius:12px;background:var(--fill)}.report-score{padding:20px 0;border:0;border-bottom:1px solid var(--hairline);border-radius:0;background:transparent}.score-ring{width:92px;height:92px;flex-basis:92px}.score-ring strong{font-size:26px}.suggestion-row{padding:12px 0;border:0;border-radius:0;background:transparent}.login-content{--background: var(--ion-background-color)}.login-layout{width:min(420px,calc(100% - 48px));gap:24px;padding-top:calc(44px + env(safe-area-inset-top))}.login-brand{margin-bottom:0}.login-story h2,.login-story>p{display:none}.login-panel{padding:20px 0 0;border:0;border-radius:0;box-shadow:none;background:transparent}.login-panel h2{font-size:25px}.login-field input{border-radius:10px;background:var(--surface);font-size:16px}.login-panel .primary-button{border-radius:10px;font-size:15px}}@media(max-width:360px){.content-shell{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}ion-header.page-header ion-toolbar{--padding-start: max(20px, env(safe-area-inset-left));--padding-end: max(20px, env(safe-area-inset-right))}.page-title{font-size:19px}.page-chip{font-size:12px;padding-inline:8px}.dashboard-page .page-title{font-size:32px}.next-lesson-time>time{font-size:33px}.next-lesson-content h3{font-size:20px}.next-lesson-time{gap:8px}.next-lesson-meta{gap:6px 10px}.metric{padding-left:8px;padding-right:8px}.metric strong{font-size:23px}.metric-grid-four .metric strong{font-size:19px}.workspace-quick-access strong{font-size:12px}.workspace-quick-access{gap:8px}.workspace-quick-access a{gap:4px;padding-inline:4px}}@media(min-width:768px)and (max-width:991px){.app-main-detail .content-shell{padding-bottom:calc(32px + env(safe-area-inset-bottom))}}.row-link{display:inline-flex;align-items:center;gap:5px;color:var(--ion-color-primary)}.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;padding:10px 16px;border:1px solid transparent;border-radius:8px;font:inherit;font-size:14px;font-weight:600;line-height:1.4;text-decoration:none;cursor:pointer}.ui-button ion-icon{flex:0 0 auto;font-size:18px}.ui-button-primary{background:var(--ion-color-primary);color:var(--ion-color-primary-contrast)}.ui-button-secondary{background:var(--surface);color:var(--ion-text-color);border-color:var(--hairline-strong)}.ui-button-quiet{color:var(--text-muted);background:transparent;padding-inline:12px}.ui-button-danger{color:var(--ion-color-danger);background:var(--tint-danger)}.ui-icon-button{display:grid;place-items:center;flex:0 0 44px;width:44px;min-height:44px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--text-muted);font-size:21px;cursor:pointer}:is(.app-workspace,.ui-dialog,.login-layout) :is(button,a,summary):focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}:is(.app-workspace,.ui-dialog,.login-layout) button:disabled{opacity:.45;cursor:not-allowed}:is(.app-workspace,.ui-dialog,.login-layout) :is(button,a,summary){-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ui-dialog{position:fixed;inset:0 0 var(--ui-keyboard-inset, 0px);width:min(620px,calc(100% - 40px));max-width:100%;max-height:calc(var(--ui-viewport-height, 100dvh) - 64px);margin:auto;padding:0;border:1px solid var(--hairline);border-radius:16px;background:var(--surface);color:var(--ion-text-color);box-shadow:var(--shadow-lg);overflow:hidden}.ui-dialog[open]{display:flex;flex-direction:column}.ui-dialog::backdrop{background:#141e1766}.ui-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0;padding:16px 16px 16px 24px;border-bottom:1px solid var(--hairline)}.ui-dialog-header>div{min-width:0}.ui-dialog-header h2{margin:0;font-size:18px;font-weight:650;line-height:1.5;outline:none}.ui-dialog-header p{margin:4px 0 0;overflow:hidden;color:var(--text-muted);font-size:12px;line-height:1.5;text-overflow:ellipsis;white-space:nowrap}.ui-editor-form{display:flex;flex-direction:column;min-height:0;margin:0;overflow:hidden}.ui-editor-content{min-height:0;padding:20px 24px 24px;overflow:auto;overscroll-behavior:contain;scroll-padding-block:20px}.ui-editor-content .resource-state{border:0;margin:0;box-shadow:none}.ui-fields{min-width:0;margin:0;padding:0;border:0}.ui-form-section h3{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:14px;font-weight:650;line-height:1.5}.ui-form-section h3 ion-icon{color:var(--text-muted);font-size:18px}.ui-form-section+.ui-form-section{margin-top:24px;padding-top:20px;border-top:1px solid var(--hairline)}.ui-field-grid{display:grid;gap:16px;min-width:0}.ui-field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0}.ui-field,.ui-fields .workspace-field{display:grid;align-content:start;min-width:0;gap:7px}.ui-field>label,.ui-fields .workspace-field>label{display:flex;align-items:baseline;gap:6px;color:var(--text-muted);font-size:12px;font-weight:500;line-height:1.5}.ui-optional{color:var(--text-subtle);font-size:11px;font-weight:400}.ui-fields .ui-field :is(input,textarea){display:block;width:100%;min-width:0;max-width:100%;min-height:44px;margin:0;padding:10px 12px;border:1px solid var(--hairline-strong);border-radius:8px;outline:none;background:var(--surface);color:var(--ion-text-color);font:inherit;font-size:14px;font-weight:400;line-height:1.5}.ui-fields input[type=date]{min-inline-size:0;font-variant-numeric:tabular-nums;-webkit-appearance:none}.ui-fields input[type=date]::-webkit-date-and-time-value{text-align:left}.ui-fields textarea{resize:vertical;line-height:1.7}.ui-fields :is(input,textarea):focus{border-color:var(--ion-color-primary);outline:none;box-shadow:0 0 0 3px var(--tint-primary)}.ui-fields :is(input,textarea)[aria-invalid=true]{border-color:var(--ion-color-danger)}.ui-fields :is(input,textarea):disabled{opacity:.6;cursor:not-allowed}.ui-fields input::placeholder,.ui-fields textarea::placeholder{color:var(--text-subtle);opacity:1}.ui-field-error,.ui-fields .workspace-field>small{color:var(--ion-color-danger);font-size:12px;font-weight:400;line-height:1.6}.ui-number-field{position:relative}.ui-number-field input{padding-right:58px}.ui-number-field>span{position:absolute;top:0;right:12px;display:flex;align-items:center;height:100%;color:var(--text-muted);font-size:12px;pointer-events:none}.ui-number-field input::-webkit-inner-spin-button{margin-right:2px}.ui-additional{margin-top:24px;padding-top:8px;border-top:1px solid var(--hairline)}.ui-additional>summary{display:flex;align-items:center;gap:8px;min-height:44px;color:var(--ion-text-color);font-size:14px;font-weight:600;list-style:none;cursor:pointer}.ui-additional>summary::-webkit-details-marker{display:none}.ui-additional>summary>ion-icon{color:var(--text-muted);font-size:18px}.ui-additional>summary>small{color:var(--text-muted);font-size:12px;font-weight:400}.ui-additional>summary>ion-icon:last-child{margin-left:auto;font-size:16px}.ui-additional[open]>summary>ion-icon:last-child{transform:rotate(180deg)}.ui-additional .ui-field-grid{margin-top:12px}.ui-form-footer{flex-shrink:0;margin:0;padding:12px 24px;border-top:1px solid var(--hairline);background:var(--surface)}.ui-footer-actions{display:flex;align-items:center;gap:8px}.ui-save-state{flex:1;min-width:0;color:var(--text-muted);font-size:12px;line-height:1.6}.ui-footer-actions .ui-button{flex-shrink:0}.ui-form-footer>.action-feedback{margin:0 0 10px;padding:10px 12px;border-radius:8px;font-size:13px}.ui-validation-summary{margin:0 0 10px;color:var(--ion-color-danger);font-size:12px;line-height:1.6}.ui-offline-note{margin:0 0 10px;color:var(--ion-color-warning);font-size:12px;line-height:1.6}.ui-readonly{padding:24px 0;color:var(--text-muted);font-size:14px;line-height:1.8}.ui-dialog-compact{width:min(420px,calc(100% - 32px))}.ui-dialog-compact::backdrop{background:#141e1740}.ui-discard-content{padding:16px 24px 8px;overflow:auto}.ui-discard-content p{margin:0;color:var(--text-muted);font-size:14px;line-height:1.8}.ui-discard-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;padding:16px 24px 20px}:root{--control-radius: var(--radius-xs);--group-radius: var(--radius-sm);--control-height: 44px;--page-gutter: 28px;--page-max-width: 1280px}.ui-page .content-shell{width:min(100%,var(--page-max-width));padding-inline:var(--page-gutter)}.ui-page ion-header.page-header ion-toolbar{--padding-start: var(--page-gutter);--padding-end: var(--page-gutter)}.ui-page .page-toolbar{width:min(100%,calc(var(--page-max-width) - 2 * var(--page-gutter)));margin-inline:auto}.ui-page.form-page,.ui-page.settings-page{--page-max-width: 780px}.ui-page.reading-page{--page-max-width: 960px}.ui-page.list-page{--page-max-width: 1080px}.ui-page .page-title{overflow-wrap:anywhere}.ui-page .section-title{align-items:center}.ui-page .section-title h2{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600}.section-title h2>ion-icon{flex:0 0 auto;color:var(--text-muted);font-size:18px}.ui-page .section-title>span{font-variant-numeric:tabular-nums}.ui-page .page-chip{border-radius:var(--control-radius)}.ui-page ion-button,.ui-dialog ion-button,.login-panel ion-button{--border-radius: var(--control-radius);--padding-start: 14px;--padding-end: 14px;--box-shadow: none;--border-width: 1px;min-height:var(--control-height);height:auto;margin:0;font-size:14px;line-height:1.4;font-weight:500;text-transform:none;transform:none;filter:none;transition:none}.ui-page ion-button[size=small],.ui-dialog ion-button[size=small]{min-height:var(--control-height);font-size:13px}.ui-page ion-button[fill=clear],.ui-dialog ion-button[fill=clear]{--padding-start: 10px;--padding-end: 10px}.ui-page ion-button::part(native),.ui-dialog ion-button::part(native){min-height:var(--control-height)}.ui-page ion-button.button-disabled,.ui-dialog ion-button.button-disabled{opacity:.45}.live-coming-soon-label{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.3}.live-coming-soon-label small{font-size:12px;font-weight:400}.ui-page .button-row{justify-content:flex-start;gap:8px;flex-wrap:wrap}.ui-page ion-button[expand=block]{width:fit-content;max-width:100%;margin-top:16px}.ui-page .primary-actions,.ui-page .exam-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding-top:16px}.ui-page ion-segment,.login-panel ion-segment{width:100%;max-width:none;min-height:var(--control-height);padding:0;margin:0 0 16px;border:0;border-radius:0;background:transparent;box-shadow:none}.ui-page ion-segment-button,.login-panel ion-segment-button{--border-radius: var(--control-radius);--background: transparent;--color: var(--text-muted);--color-checked: var(--ion-color-primary);--background-checked: transparent;--indicator-color: var(--tint-primary);--indicator-box-shadow: none;--indicator-height: 100%;--padding-start: 8px;--padding-end: 8px;min-width:0;min-height:var(--control-height);margin:0 2px;font-size:14px;font-weight:500;letter-spacing:0}.ui-page ion-segment-button::part(indicator),.login-panel ion-segment-button::part(indicator){top:4px;bottom:4px;height:auto;padding:0}.ui-page ion-segment-button::part(indicator-background),.login-panel ion-segment-button::part(indicator-background){border-radius:var(--control-radius);box-shadow:none}.ui-page ion-segment-button:before,.login-panel ion-segment-button:before{border:0}.ui-page ion-card{background:var(--surface);border-radius:var(--group-radius);border:1px solid var(--hairline);box-shadow:none;transform:none;transition:none}.ui-page ion-card-header{padding:18px 18px 6px}.ui-page ion-card-content{padding:4px 18px 18px;font-size:14px;line-height:1.7}.ui-page ion-card-title{font-size:16px;font-weight:600;line-height:1.6}.ui-page ion-card-subtitle{margin-top:4px;font-size:12px;line-height:1.7;font-weight:400}.ui-page .card-list{display:block;margin-top:16px;border:1px solid var(--hairline);border-radius:var(--group-radius);background:var(--surface);overflow:hidden}.ui-page .card-list>ion-card{margin:0;border:0;border-radius:0;background:transparent}.ui-page .card-list>ion-card+ion-card{border-top:1px solid var(--hairline)}.ui-page .card-list>ion-card ion-card-header{padding-top:18px}.ui-page .card-list ion-card-header:has(.course-cover){padding-left:54px}.ui-page .card-list .course-cover{position:absolute;top:20px;left:18px;display:grid;place-items:center;width:23px;height:24px;margin:0;padding:0;border-radius:0;background:transparent;box-shadow:none}.ui-page .card-list .course-cover ion-icon{font-size:22px}.ui-page ion-list[inset]{border:1px solid var(--hairline);border-radius:var(--group-radius);padding:0;background:var(--surface)}.ui-page ion-list[inset] ion-item{--background: transparent;--padding-start: 16px;--inner-padding-end: 16px;--min-height: 60px;--border-color: var(--hairline)}.ui-page ion-list[inset] ion-item:last-child{--border-width: 0;--inner-border-width: 0}.ui-page ion-list[inset] ion-label h3{font-size:14px;font-weight:500;line-height:1.6}.ui-page ion-list[inset] ion-label p{margin-top:4px;font-size:12px;line-height:1.6}.ui-page ion-list[inset] ion-item>ion-icon[slot=start]{margin-inline-end:12px;padding:0;width:20px;font-size:20px;color:var(--text-muted);background:transparent}.ui-page .resource-state{padding:28px 20px;border:0;border-radius:var(--group-radius);background:transparent;box-shadow:none}.ui-page .resource-state>ion-icon{width:32px;height:32px;padding:0;border-radius:0;background:transparent;font-size:30px}.ui-page .resource-state>strong{font-size:15px;font-weight:600}.ui-page .resource-state>span{max-width:440px;line-height:1.7}.ui-page .resource-loading{padding:20px 0}.ui-page .action-feedback,.ui-dialog .action-feedback{gap:8px;padding:10px 12px;border-radius:var(--control-radius);border:0;font-size:13px;line-height:1.6;box-shadow:none}.ui-page .action-feedback ion-icon,.ui-dialog .action-feedback ion-icon,.ui-page .action-feedback ion-spinner,.ui-dialog .action-feedback ion-spinner{width:18px;height:18px;flex:0 0 18px}.ui-page .inline-empty{padding:20px 0;border:0;border-radius:0;background:transparent;color:var(--text-muted);font-size:13px;line-height:1.8}.ui-page .session-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px;padding:16px;border:0;border-radius:var(--group-radius);background:var(--fill)}.ui-page .session-summary>div{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:0;border:0;background:transparent;min-width:0;overflow-wrap:anywhere}.ui-page .session-summary strong{font-size:14px;line-height:1.6}.ui-page .session-summary span{font-size:12px}.ui-page .question-list,.ui-page .grading-list{gap:20px}.ui-page .question-item,.ui-page .grading-item{margin:0 0 20px;padding:18px;border:1px solid var(--hairline);border-radius:var(--group-radius);background:var(--surface);box-shadow:none}.ui-page .question-list>.question-item,.ui-page .grading-list>.grading-item{margin-bottom:0}.ui-page .question-item h2{font-size:16px;font-weight:600;line-height:1.75}.ui-page .grading-item h3{font-size:15px;font-weight:600}.ui-page .question-item>.section-title:first-child,.ui-page .grading-item>.section-title:first-child{margin-top:0}.ui-page .inline-form{padding:18px;border:1px solid var(--hairline);border-radius:var(--group-radius);background:var(--surface)}.ui-page .form-grid{gap:16px;align-items:start}.ui-page .answer-options button{min-height:var(--control-height);padding:12px;border:1px solid var(--hairline-strong);border-radius:var(--control-radius);box-shadow:none;font-size:15px;font-weight:400;line-height:1.7;transform:none}.ui-page .answer-options button.selected{border-color:var(--ion-color-primary);background:var(--tint-primary);color:var(--ion-color-primary);box-shadow:inset 0 0 0 1px var(--ion-color-primary)}.ui-page .question-navigation button{border-radius:var(--control-radius);transform:none}.ui-page .exam-actions{position:sticky;bottom:0;z-index:2;padding:12px 0;border-top:1px solid var(--hairline);background:var(--ion-background-color)}.ui-page .metric-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr))}.ui-page .metric-grid-four{grid-template-columns:repeat(auto-fit,minmax(64px,1fr))}.ui-page .metric{overflow-wrap:anywhere}.ui-button ion-spinner{width:18px;height:18px;flex:0 0 18px}.ui-confirm-content{padding:16px 24px 0;overflow:auto}.ui-confirm-content p{margin:0;color:var(--text-muted);font-size:14px;line-height:1.8;overflow-wrap:anywhere}.ui-confirm-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:20px 24px}.ui-form-notice{margin:0 0 10px;color:var(--text-muted);font-size:13px;line-height:1.7}.ui-field-hint{color:var(--text-muted);font-size:12px;line-height:1.7}.ui-fields .ui-field-hint{color:var(--text-muted)}.ui-field :is(input,textarea),.ui-page .workspace-field :is(input,textarea),.ui-dialog .workspace-field :is(input,textarea){width:100%;min-width:0;max-width:100%;min-height:var(--control-height);margin:0;padding:10px 12px;border:1px solid var(--hairline-strong);border-radius:var(--control-radius);outline:none;background:var(--surface);color:var(--ion-text-color);font:inherit;font-size:14px;font-weight:400;line-height:1.5}.ui-field :is(input,textarea):focus,.ui-page .workspace-field :is(input,textarea):focus,.ui-dialog .workspace-field :is(input,textarea):focus{border-color:var(--ion-color-primary);box-shadow:0 0 0 3px var(--tint-primary)}.ui-field :is(input,textarea)[aria-invalid=true]{border-color:var(--ion-color-danger)}.ui-field textarea{resize:vertical;line-height:1.7}.ui-field input[type=datetime-local],.ui-field input[type=date],.ui-field input[type=month]{min-inline-size:0;-webkit-appearance:none;font-variant-numeric:tabular-nums}.ui-field input::-webkit-date-and-time-value{text-align:left}.ui-page .workspace-field>label,.ui-dialog .workspace-field>label{font-size:12px;font-weight:500;color:var(--text-muted)}.ui-page .workspace-field,.ui-dialog .workspace-field{gap:7px}.ui-page .form-control,.ui-page :is(.question-item,.grading-item,.inline-form,.form-grid)>:is(ion-input,ion-textarea,ion-select){--padding-start: 12px;--padding-end: 12px;border-radius:var(--control-radius);border-color:var(--hairline-strong);font-size:14px}.ui-form-page{margin:0}.ui-form-page>.ui-fields{padding-bottom:24px}.ui-form-page>.ui-form-footer,.ui-page-footer{position:sticky;bottom:0;z-index:2;padding:12px 0;border-top:1px solid var(--hairline);background:var(--ion-background-color)}.ui-form-intro{margin:0 0 24px;color:var(--text-muted);font-size:13px;line-height:1.8}.ui-form-page .ui-form-section+.ui-form-section{margin-top:28px}.ui-disclosure{min-width:0;border-top:1px solid var(--hairline);margin-top:20px}.ui-disclosure>summary{display:flex;align-items:center;gap:8px;min-height:var(--control-height);padding:10px 0;color:var(--ion-text-color);font-size:14px;font-weight:500;line-height:1.6;list-style:none;cursor:pointer}.ui-disclosure>summary::-webkit-details-marker{display:none}.ui-disclosure>summary ion-icon{font-size:18px;color:var(--text-muted)}.ui-disclosure>summary small{margin-left:auto;color:var(--text-muted);font-size:12px;font-weight:400}.ui-disclosure>summary ion-icon:last-child{margin-left:auto;font-size:16px}.ui-disclosure>summary small+ion-icon{margin-left:0}.ui-disclosure[open]>summary ion-icon:last-child{transform:rotate(180deg)}.ui-disclosure-content{padding-block:8px 16px}.ui-search{display:flex;align-items:center;gap:10px;min-width:0;min-height:46px;padding-left:12px;border:1px solid var(--hairline-strong);border-radius:var(--control-radius);background:var(--surface)}.ui-search>ion-icon{flex-shrink:0;font-size:19px;color:var(--text-muted)}.ui-search>input{min-width:0;width:100%;height:44px;padding:0 10px 0 0;border:0;outline:0;background:transparent;color:var(--ion-text-color);font:inherit;font-size:14px}.ui-search input::-webkit-search-cancel-button{-webkit-appearance:none}.ui-search:focus-within{border-color:var(--ion-color-primary);box-shadow:0 0 0 3px var(--tint-primary)}.ui-filter-tabs{display:flex;align-items:center;gap:4px;min-width:0;margin-bottom:16px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.ui-filter-tabs>button{flex:0 0 auto;min-width:44px;min-height:44px;padding:0;border:0;color:var(--text-muted);background:transparent;font:inherit;font-size:13px;cursor:pointer}.ui-filter-tabs>button>span{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border-radius:var(--control-radius);white-space:nowrap}.ui-filter-tabs>button[aria-pressed=true]{color:var(--ion-color-primary);font-weight:600}.ui-filter-tabs>button[aria-pressed=true]>span{background:var(--tint-primary)}.ui-filter-tabs small{font:inherit;font-size:11px;font-variant-numeric:tabular-nums}.ui-settings-list,.ui-record-list{overflow:hidden;margin:0;padding:0;border:1px solid var(--hairline);border-radius:var(--group-radius);background:var(--surface)}.ui-settings-row{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:12px 16px;border:0;border-radius:0;background:transparent;color:var(--ion-text-color);text-align:left;font:inherit}.ui-settings-row+.ui-settings-row{border-top:1px solid var(--hairline)}button.ui-settings-row{cursor:pointer}.ui-row-icon{flex:0 0 20px;font-size:20px;color:var(--text-muted)}.ui-row-body{flex:1;min-width:0}.ui-row-body strong{display:block;font-size:14px;font-weight:500;line-height:1.6}.ui-row-body small{display:block;margin-top:4px;color:var(--text-muted);font-size:12px;line-height:1.7;overflow-wrap:anywhere}.ui-row-value{flex:0 1 auto;max-width:45%;color:var(--text-muted);font-size:13px;line-height:1.6;overflow-wrap:anywhere;text-align:right}.ui-row-chevron{flex:0 0 15px;color:var(--text-subtle);font-size:15px}.ui-row-danger,.ui-row-danger .ui-row-icon{color:var(--ion-color-danger)}.ui-switch-row{cursor:pointer}.ui-switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;position:relative;flex:0 0 44px;width:44px;height:28px;margin:8px 0;border:1px solid var(--hairline-strong);border-radius:999px;background:var(--fill);cursor:pointer}.ui-switch:after{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--text-muted);content:""}.ui-switch:checked{background:var(--ion-color-primary);border-color:var(--ion-color-primary)}.ui-switch:checked:after{background:var(--ion-color-primary-contrast);transform:translate(16px)}.ui-switch:disabled,button.ui-settings-row:disabled{opacity:.5;cursor:not-allowed}.ui-radio-list{display:grid;gap:0;margin:0;padding:0;border:1px solid var(--hairline);border-radius:var(--group-radius)}.ui-radio-list>label{display:flex;align-items:center;gap:12px;min-height:56px;padding:12px 16px;cursor:pointer}.ui-radio-list>label+label{border-top:1px solid var(--hairline)}.ui-radio-list input{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--ion-color-primary)}.ui-radio-list span{flex:1;font-size:14px;line-height:1.6}.ui-list-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:20px 0 12px}.ui-list-heading h2{margin:0;font-size:16px;font-weight:600}.ui-list-heading p{margin:6px 0 0;color:var(--text-muted);font-size:12px;line-height:1.7}.ui-list-heading>span{color:var(--text-muted);font-size:12px}.ui-list-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ui-record{display:flex;align-items:center;gap:12px;min-height:68px;padding:14px 16px;color:var(--ion-text-color);text-decoration:none}.ui-record+.ui-record{border-top:1px solid var(--hairline)}.ui-record-avatar{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:var(--fill);color:var(--text-muted);font-size:13px}.ui-record-content{flex:1;min-width:0}.ui-record-content h3{margin:0;color:var(--ion-text-color);font-size:15px;font-weight:500;line-height:1.6;overflow-wrap:anywhere}.ui-record-content p{margin:4px 0 0;color:var(--text-muted);font-size:12px;line-height:1.7;overflow-wrap:anywhere}.ui-record .ui-button{padding-inline:10px;font-size:13px}.ui-record-meta{display:flex;gap:6px 14px;flex-wrap:wrap;margin-top:8px;color:var(--text-muted);font-size:12px;line-height:1.7}.ui-record-meta span{display:inline-flex;align-items:center;gap:5px}.ui-record-meta ion-icon{font-size:15px}.schedule-record{padding:16px 18px 8px}.schedule-record+.schedule-record{border-top:1px solid var(--hairline)}.schedule-record-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.schedule-record-heading>div{flex:1;min-width:0}.schedule-record-heading h3{margin:4px 0 0;font-size:16px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.schedule-record-number{font-size:12px;color:var(--text-muted)}.schedule-record-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:8px}.schedule-record-actions .ui-button{font-size:13px}.ui-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin-bottom:20px}.ui-toolbar .ui-search,.ui-toolbar .ui-field{flex:1;min-width:min(100%,200px)}.ui-question-editor{margin:0 0 20px;padding:18px;border:1px solid var(--hairline);border-radius:var(--group-radius);background:var(--surface)}.ui-question-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.ui-question-heading h3{margin:0;font-size:15px;font-weight:600}.ui-question-editor .ui-field-grid{gap:16px}.ui-fields .correct-answer-picker input{width:18px;min-height:0;height:18px;flex:0 0 18px;margin:0;padding:0;border-radius:4px;accent-color:var(--ion-color-primary)}.ui-fields .ui-switch{flex:0 0 44px;width:44px;min-height:0;height:28px;margin:8px 0;padding:0;border-radius:999px;background:var(--fill)}.ui-fields .ui-switch:checked{background:var(--ion-color-primary)}.ui-page .report-score{border:0;background:var(--fill);border-radius:var(--group-radius);padding:20px}.ui-page .score-ring[data-empty=true]:before{background:var(--hairline)}.ui-page .feedback-records{gap:16px}.ui-page .feedback-replies{padding:12px;background:var(--fill);border:0;border-radius:var(--control-radius)}.feedback-filter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:end;gap:12px;margin-bottom:24px}.feedback-filter>.resource-state,.feedback-filter>.resource-loading,.feedback-filter>.inline-error{grid-column:1 / -1}.feedback-filter .ui-button{padding-inline:10px}.feedback-draft-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:4px 12px;border-radius:var(--control-radius);background:var(--fill);color:var(--text-muted);font-size:13px}.feedback-record-actions{display:flex;justify-content:flex-end;margin-top:8px}.feedback-quote{max-height:160px;margin:0 0 20px;padding:12px 16px;overflow:auto;border:0;border-radius:var(--control-radius);background:var(--fill);color:var(--text-muted);font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.navigation-search-dialog{width:min(560px,calc(100% - 40px))}.navigation-search-hint{color:var(--text-muted);font-size:12px;line-height:1.7}.schedule-date-toolbar{max-width:440px}.live-participant{align-items:flex-start}.live-participant-actions{margin-top:8px;gap:4px}.live-message-form{margin-top:16px}.ui-page .child-picker{min-width:0;flex:1;max-width:320px}.ui-page .identity{gap:14px;padding:8px 0 24px}.ui-page .profile-avatar{width:48px;height:48px;flex:0 0 48px;border-radius:50%;background:var(--tint-primary);color:var(--ion-color-primary);box-shadow:none}.ui-page .identity-text h2{margin:0;font-size:22px;font-weight:600}.ui-page .identity-text p{margin-top:6px;line-height:1.7}.ui-page .avatar{width:32px;height:32px;background:var(--tint-primary);color:var(--ion-color-primary);box-shadow:none}.ui-page .avatar-large{width:48px;height:48px}.ui-page .shortcut-grid{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));padding:8px 0;margin-bottom:24px;border:1px solid var(--hairline);border-radius:var(--group-radius);background:var(--surface)}.ui-page .shortcut-grid button{min-height:72px;padding:8px 0;gap:5px}.ui-page .shortcut-icon{width:28px;height:28px;background:transparent;color:var(--text-muted);font-size:22px}.ui-page .shortcut-label{font-size:12px;font-weight:400}.ui-page .message-icon{width:24px;height:24px;flex:0 0 24px;padding:0;margin-top:18px;margin-right:12px;background:transparent;color:var(--text-muted);border-radius:0}.ui-page .message-summary{margin-bottom:16px}.ui-page .message-body{padding-block:14px}.ui-page .message-body ion-label{margin:0 0 10px}.ui-page .message-footer{gap:6px 10px}.ui-page .message-body ion-label h3{font-size:15px}.ui-page .message-body ion-label p{font-size:13px;line-height:1.8}.ui-page .message-unread::part(native){background:transparent}.ui-page .message-unread h3:before{display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--ion-color-primary);content:""}.ui-page .preparation-list ion-checkbox{min-height:64px}.ui-page .attendance-controls{display:flex;gap:8px;align-items:center}.ui-page .attendance-controls select{width:128px}.ui-page .attendance-record{display:grid;grid-template-columns:minmax(0,1fr) auto}.attendance-person{display:flex;gap:10px;align-items:center;min-width:0}.attendance-person>div{min-width:0}.attendance-person strong{display:block;font-size:15px;overflow-wrap:anywhere}.attendance-person small{display:block;margin-top:4px;color:var(--text-muted);font-size:12px;line-height:1.5}.ui-page .attendance-reason{grid-column:1 / -1;margin:0;color:var(--text-muted);font-size:13px;line-height:1.7;white-space:normal;overflow-wrap:anywhere}.ui-page .alert-band,.ui-page .suggestion-row{gap:10px;min-height:0;padding:12px 14px;border-radius:var(--control-radius)}.ui-page .alert-band>ion-icon,.ui-page .suggestion-row>ion-icon{flex:0 0 20px;width:20px;height:20px;padding:0;border:0;border-radius:0;background:transparent}.ui-context-note{display:flex;align-items:center;gap:8px;margin:20px 0 12px;color:var(--text-muted);font-size:13px;line-height:1.7}.ui-context-note ion-icon{flex:0 0 18px;font-size:18px}.ui-page .live-stage{min-height:180px;border-radius:var(--group-radius);background:#20372b;box-shadow:none}.ui-page .live-stage:before{display:none}.ui-page .live-stage.is-live:after{animation:none}.ui-page .camera-preview ion-icon{width:32px;height:32px;padding:0;border:0;border-radius:0;background:transparent}.ui-page .live-stats{border:0;border-radius:var(--group-radius);background:var(--fill);padding:16px 8px}.ui-page .action-grid{grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px}.ui-page .timeline-item{transform:none;box-shadow:none;border-radius:var(--group-radius)}.ui-page .timeline-item:hover{transform:none;box-shadow:none}.ui-page .home-primary-link{border-radius:var(--control-radius)}.login-panel .primary-button,.primary-button{border-radius:var(--control-radius);min-height:var(--control-height);font-size:14px}.login-field input{border-radius:var(--control-radius)}:is(.app-workspace,.ui-dialog,.login-layout) :is(button,a,summary,input,select,textarea):focus-visible{outline:2px solid var(--ion-color-primary);outline-offset:2px}:is(.app-workspace,.ui-dialog,.login-layout) :is(button,a,summary){touch-action:manipulation;-webkit-tap-highlight-color:transparent}.ui-page :is(button,a,summary):active,.ui-dialog :is(button,summary):active{transform:none}@media(min-width:768px){.ui-toolbar .ui-field{flex:0 1 280px}.ui-page ion-segment{display:flex;justify-content:flex-start;width:fit-content;max-width:100%}.ui-page ion-segment-button{flex:0 1 auto;--padding-start: 16px;--padding-end: 16px}.ui-page .identity{padding:24px;border-radius:var(--group-radius)}.ui-page .attendance-controls:has(>select){display:grid;grid-template-columns:136px 112px 88px}.ui-page .attendance-controls:has(>select) select{width:100%}.ui-page .attendance-controls:has(>select)>.ui-button{padding-inline:8px}}@media(min-width:1200px){.ui-page .assignment-list>ion-card:not(:has(.inline-form)){display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);align-items:start;gap:32px;padding:20px}.ui-page .assignment-list>ion-card:not(:has(.inline-form))>ion-card-header,.ui-page .assignment-list>ion-card:not(:has(.inline-form))>ion-card-content{min-width:0;padding:0}.ui-page .assignment-list .progress-line{margin:0 0 12px}.ui-page .assignment-list .card-action-line{margin-top:0}.ui-page .assignment-list .progress-track{height:4px}}@media(hover:hover){.ui-button-primary:not(:disabled):hover{background:var(--ion-color-primary-shade)}.ui-button-secondary:not(:disabled):hover,.ui-button-quiet:not(:disabled):hover,.ui-icon-button:not(:disabled):hover,button.ui-settings-row:not(:disabled):hover,a.ui-record:hover,.ui-filter-tabs>button:not(:disabled):hover>span{background:var(--fill)}.ui-button-danger:not(:disabled):hover{background:color-mix(in srgb,var(--ion-color-danger) 15%,var(--surface))}.ui-page ion-card[button]:hover{background:var(--fill)}}@media(prefers-reduced-motion:reduce){.ui-page ion-segment-button,.login-panel ion-segment-button{--transition: none;--indicator-transition: none}}@media(prefers-reduced-motion:no-preference){.ui-dialog[open]{animation:ui-dialog-in .16s ease-out}.ui-button,.ui-icon-button,.ui-settings-row,.ui-switch,.ui-switch:after{transition:background .14s,color .14s,transform .14s}@keyframes ui-dialog-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}@media(max-width:767px){:root{--page-gutter: max(20px, env(safe-area-inset-left), env(safe-area-inset-right))}.ui-page .content-shell{padding-top:12px}.ui-dialog:not(.ui-dialog-compact){inset:auto 0 var(--ui-keyboard-inset, 0px);width:100%;max-height:calc(var(--ui-viewport-height, 100dvh) - max(12px,env(safe-area-inset-top)));margin:0;border:0;border-radius:16px 16px 0 0}.ui-dialog-header{padding:12px 12px 12px 20px}.ui-editor-content{padding:20px}.ui-form-footer{padding:12px 20px max(12px,env(safe-area-inset-bottom))}.ui-field-grid{gap:16px}.feedback-filter{grid-template-columns:minmax(0,1fr) auto;gap:12px}.feedback-filter>.ui-search{grid-column:1 / -1}.live-participant-actions .ui-button{padding-inline:8px}.ui-dialog-compact{max-height:calc(var(--ui-viewport-height, 100dvh) - 32px)}.ui-field :is(input,textarea),.ui-fields .ui-field :is(input,textarea),.ui-page .workspace-field :is(input,textarea),.ui-dialog .workspace-field :is(input,textarea),.ui-search input,.course-search input,.ui-page :is(.question-item,.grading-item,.inline-form,.form-grid)>:is(ion-input,ion-textarea,ion-select){font-size:16px}.ui-page .session-summary{gap:12px;padding:14px}.ui-page .session-summary strong{font-size:13px}.ui-page .session-summary span{font-size:11px}.ui-page ion-card-header,.ui-page .card-list>ion-card ion-card-header{padding:16px 16px 6px}.ui-page ion-card-content{padding:4px 16px 16px}.ui-page .card-list .course-cover{left:16px;top:18px}.ui-page .card-list ion-card-header:has(.course-cover){padding-left:50px}.ui-page .question-item,.ui-page .grading-item,.ui-question-editor,.ui-page .inline-form{padding:16px}.ui-page .question-item .question-item,.ui-page .question-item .grading-item{padding:16px 0;border-inline:0;border-radius:0}.ui-page .action-grid{gap:6px}.ui-page .action-grid ion-button{font-size:13px;--padding-start: 8px;--padding-end: 8px}.ui-page .action-grid ion-icon{font-size:17px}.ui-page .attendance-controls{align-self:stretch;flex-wrap:wrap;justify-content:flex-end;max-width:128px}.ui-page .attendance-controls select{max-width:128px;font-size:16px}.ui-page .report-score{padding:16px}.ui-page .home-agenda-card{padding:16px;border:1px solid var(--hairline);border-radius:var(--group-radius);background:var(--surface)}.ui-page .home-agenda-card h3{margin-top:10px}.ui-page .home-agenda-card ion-button{margin-top:8px}}@media(max-width:359px){:root{--page-gutter: max(16px, env(safe-area-inset-left), env(safe-area-inset-right))}.ui-dialog-header{padding-left:16px}.ui-editor-content,.ui-form-footer{padding-inline:16px}.ui-field-pair{gap:10px}.ui-fields input[type=date]{padding-inline:8px}.ui-footer-actions{gap:4px}.ui-footer-actions .ui-button{padding-inline:10px}.ui-record{gap:8px;padding-inline:12px}.ui-record .ui-record-avatar{display:none}.ui-settings-row{padding-inline:12px;gap:10px}.ui-page .metric-grid-four:has(>.metric:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 0}}:is(select.ui-select,button.ui-select-trigger),:is(.ui-page,.ui-dialog,.qb-dialog) :is(select.ui-select,button.ui-select-trigger){--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23646e65' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");display:block;width:100%;min-width:0;max-width:100%;height:44px;min-height:44px;margin:0;padding:0 38px 0 12px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--hairline-strong);border-radius:8px;outline:none;background:var(--surface) var(--select-arrow) no-repeat right 12px center / 16px;color:var(--ion-text-color);font:inherit;font-size:14px;font-weight:400;line-height:1.5;text-align:start;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;box-shadow:none;opacity:1}:is(.ui-page,.ui-dialog,.qb-dialog) :is(select.ui-select,button.ui-select-trigger):focus-visible{border-color:var(--ion-color-primary);outline:none;box-shadow:0 0 0 3px var(--tint-primary)}:is(.ui-page,.ui-dialog,.qb-dialog) :is(select.ui-select,button.ui-select-trigger)[aria-invalid=true]{border-color:var(--ion-color-danger)}:is(.ui-page,.ui-dialog,.qb-dialog) :is(select.ui-select,button.ui-select-trigger)[aria-invalid=true]:focus-visible{box-shadow:0 0 0 3px var(--tint-danger)}:is(.ui-page,.ui-dialog,.qb-dialog) :is(select.ui-select,button.ui-select-trigger):disabled{border-color:var(--hairline);background-color:var(--fill);color:var(--text-subtle);-webkit-text-fill-color:var(--text-subtle);cursor:not-allowed;opacity:1}:is(.ui-page,.ui-dialog,.qb-dialog) button.ui-select-trigger{display:flex;align-items:center;gap:8px}.ui-select-trigger>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-select-trigger>ion-icon{flex:0 0 16px;font-size:16px;color:var(--text-muted)}@media(hover:hover)and (pointer:fine){:is(.ui-page,.ui-dialog,.qb-dialog) :is(select.ui-select,button.ui-select-trigger):not(:disabled):not([aria-invalid=true]):hover{border-color:var(--text-subtle)}}@supports (appearance: base-select){@media(min-width:768px)and (hover:hover)and (pointer:fine)and (forced-colors:none){:is(.ui-page,.ui-dialog,.qb-dialog) select.ui-select:not([multiple]):not([size]){display:flex;align-items:center;gap:12px;padding-inline:12px;-webkit-appearance:base-select;-moz-appearance:base-select;appearance:base-select;background-image:none;overflow:hidden}select.ui-select>button.ui-select-value{all:unset;display:block;flex:1;min-width:0}select.ui-select selectedcontent{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}select.ui-select::picker-icon{content:"";flex:0 0 16px;width:16px;height:16px;background:var(--select-arrow) center / 16px no-repeat}select.ui-select:open::picker-icon{transform:rotate(180deg)}select.ui-select::picker(select){-webkit-appearance:base-select;-moz-appearance:base-select;appearance:base-select;inline-size:anchor-size(self-inline);min-inline-size:anchor-size(self-inline);max-inline-size:calc(100vw - 32px);max-block-size:min(320px,50dvh);margin-block:6px;padding:4px;border:1px solid var(--hairline-strong);border-radius:12px;background:var(--surface);color:var(--ion-text-color);box-shadow:var(--shadow-lg);font:inherit;font-size:14px;overflow-y:auto;scrollbar-width:thin;overscroll-behavior:contain;scroll-padding-block:4px}select.ui-select option{display:flex;align-items:center;gap:12px;min-height:36px;padding:8px 10px;border:0;border-radius:7px;background:transparent;color:var(--ion-text-color);font-weight:400;line-height:1.5;white-space:normal;overflow-wrap:anywhere;cursor:pointer}select.ui-select option:not(:disabled):is(:hover,:focus-visible){outline:none;background:var(--fill)}select.ui-select option:checked{background:var(--tint-primary);color:var(--ion-color-primary);font-weight:500}select.ui-select option:disabled{color:var(--text-subtle);cursor:not-allowed}select.ui-select option::checkmark{order:1;margin-inline-start:auto;color:var(--ion-color-primary)}}}@media(max-width:767px),(pointer:coarse){:is(.ui-page,.ui-dialog,.qb-dialog) :is(select.ui-select,button.ui-select-trigger){font-size:16px}}@media(prefers-color-scheme:dark){:is(select.ui-select,button.ui-select-trigger),:is(.ui-page,.ui-dialog,.qb-dialog) :is(select.ui-select,button.ui-select-trigger){--select-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='%23a7b4aa' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}}@media(forced-colors:active){:is(.ui-page,.ui-dialog,.qb-dialog) select.ui-select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background-image:none}}
