:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#18212f;background:#f5f6f3;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh;overflow-x:hidden}button,input,textarea,select{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.78}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f5f6f3}.auth-panel{width:min(420px,100%);min-height:280px;display:grid;align-content:center;gap:22px;padding:28px;border:1px solid #dde3ea;border-radius:8px;background:#fff;color:#18212f}.auth-brand{display:flex;align-items:center;gap:12px}.auth-brand svg{color:#2f6f73}.auth-brand strong{display:block;font-size:20px}.auth-brand span,.auth-panel>span{color:#526173;font-size:14px}.auth-submit{min-height:44px;width:100%}.app-shell{min-height:100dvh;display:grid;grid-template-columns:248px minmax(0,1fr)}.sidebar{background:#15202b;color:#f7fbff;padding:24px 18px;display:flex;flex-direction:column;gap:32px}.brand{display:flex;gap:12px;align-items:center;min-height:44px}.brand strong{display:block;font-size:16px}.brand span{color:#9eb2c2;display:block;font-size:12px;margin-top:2px}.nav-list{display:grid;gap:8px}.nav-list button{min-height:44px;width:100%;display:grid;grid-template-columns:20px 1fr auto;align-items:center;gap:10px;padding:0 12px;border-radius:8px;color:#dce7ef;background:transparent;text-align:left}.nav-list button:hover,.nav-list button.active{background:#223142;color:#fff}.nav-list b{min-width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:#e4a72f;color:#17202b;font-size:12px}.workspace{padding:28px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}.topbar>div:first-child{min-width:0}.topbar-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.topbar p{margin:0 0 4px;color:#526173;font-size:14px}.topbar-clock{font-variant-numeric:tabular-nums}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:30px;line-height:1.2;letter-spacing:0}h2{margin-bottom:0;font-size:18px;letter-spacing:0}h3{margin-bottom:8px;font-size:16px;line-height:1.35}.icon-button{width:38px;height:38px;border-radius:8px;display:inline-grid;place-items:center;background:#fff;color:#203044;border:1px solid #dde3ea}.icon-button:hover{border-color:#b8c4cf}.icon-button.ghost{background:transparent}.icon-button.danger{color:#b93838}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.banner{min-height:44px;border-radius:8px;padding:8px 10px 8px 14px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid}.banner.error{background:#fff1f1;color:#8f2323;border-color:#f1c4c4}.banner.success{background:#eef8f1;color:#1d6d37;border-color:#bbdfc5}.banner.compact{margin-bottom:0}.loading-panel,.panel,.reader-panel,.review-card,.stats-grid article{background:#fff;border:1px solid #dde3ea;border-radius:8px}.loading-panel{min-height:260px;display:grid;place-items:center;align-content:center;gap:12px;color:#526173}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:14px;margin-bottom:18px}.stats-grid article{min-height:112px;padding:18px;display:grid;align-content:space-between}.stats-grid span,small{color:#526173;font-size:13px}.stats-grid strong{font-size:34px;letter-spacing:0}.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.goal-progress-list,.progress-table{display:grid;gap:10px}.goal-progress-row,.progress-table article{width:100%;min-height:92px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:13px 14px;border:1px solid #dde3ea;border-radius:8px;background:#f7f9fb;color:#18212f;text-align:left}.row-title,.progress-table strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.progress-track{grid-column:1 / -1;height:8px;border-radius:999px;background:#edf2f7;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:inherit;background:#2f6f73}.progress-track.large{height:12px}.status-chip{min-height:28px;max-width:100%;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:0 10px;background:#edf2f7;color:#263445;font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-chip.completed,.status-chip.done{background:#eef8f1;color:#155f2d}.status-chip.doing{background:#eaf7f8;color:#1f5f63}.status-chip.todo{background:#edf2f7;color:#263445}.status-chip.skipped{background:#fff7e8;color:#744604}.status-chip.solved,.status-chip.solved_with_hint{background:#eef8f1;color:#155f2d}.status-chip.attempting{background:#fff7e8;color:#744604}.status-chip.retry{background:#fff1f1;color:#8f2323}.status-chip.not_started{background:#edf2f7;color:#263445}.status-chip.behind,.status-chip.overdue{background:#fff1f1;color:#8f2323}.study-log-form{display:grid;grid-template-columns:minmax(140px,1.3fr) minmax(90px,.6fr) minmax(132px,.8fr) minmax(160px,1fr) auto;gap:10px;align-items:end}.study-log-form button{min-height:42px}.wide-field{min-width:0}.activity-strip{min-height:150px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end}.activity-strip.tall{min-height:220px}.activity-day{min-width:0;height:100%;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:8px;align-items:end;text-align:center}.activity-bar{width:100%;min-height:8px;border-radius:6px 6px 2px 2px;background:#2f6f73}.summary-line,.linked-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.summary-line span,.linked-summary span{min-height:30px;max-width:100%;display:inline-flex;align-items:center;border-radius:999px;background:#edf2f7;color:#263445;padding:0 11px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel{padding:18px;min-width:0}.today-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:18px;margin-bottom:18px}.today-board>*,.today-learning-layout>*,.dashboard-grid>*,.library-layout>*,.practice-library>*,.analytics-toolbar>*{min-width:0}.today-board-main,.today-board-side article,.next-action-card,.completion-feedback{background:#fff;border:1px solid #dde3ea;border-radius:8px}.today-board-main{padding:18px;display:grid;gap:16px}.today-progress-line{display:grid;gap:10px}.today-progress-line>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.today-progress-line span,.next-action-card span,.today-board-side span,.today-summary-bar span,.feedback-grid span{color:#526173;font-size:13px;font-weight:700}.today-progress-line strong{font-size:26px}.next-action-card{min-height:118px;padding:16px;display:grid;align-content:center;gap:8px}.next-action-card strong{font-size:22px;line-height:1.25}.next-action-card small{line-height:1.45}.today-board-side{display:grid;gap:10px}.today-board-side article{min-height:96px;padding:14px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px}.today-board-side strong{font-size:28px}.today-board-side .live-caption{grid-column:1 / -1}.today-board-side button{grid-column:1 / -1;min-height:34px;border-radius:8px;background:#edf2f7;color:#1e2b3a}.today-learning-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:18px;align-items:start}.today-plan-panel,.today-side-stack{display:grid;gap:16px}.study-session-panel{display:grid;gap:14px}.session-status{display:grid;gap:7px;padding:12px 0;border-top:1px solid #dde3ea;border-bottom:1px solid #dde3ea}.session-status strong{font-size:32px;line-height:1.1}.session-meta{display:flex;flex-wrap:wrap;gap:7px 10px;min-width:0;color:#526173;font-size:13px;font-weight:700}.session-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-meta.idle{padding:2px 0 0}.session-recommendation,.live-caption{color:#2f6f73;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.session-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.session-start-button{min-height:42px}.date-picker{min-height:38px;display:grid;grid-template-columns:18px minmax(132px,1fr);align-items:center;gap:8px;padding:0 10px;border:1px solid #cfd8e3;border-radius:8px;background:#fff}.date-picker input{border:0;padding:0;box-shadow:none}.daily-empty-state{min-height:360px;display:grid;place-items:center;align-content:center;gap:12px;text-align:center;color:#526173}.daily-empty-state svg{color:#2f6f73}.daily-empty-state h2,.daily-empty-state p{margin-bottom:0}.daily-empty-state h2{color:#18212f}.today-summary-bar,.feedback-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.mobile-study-overview,.mobile-study-dock{display:none}.mobile-study-overview{gap:10px;padding:14px;border:1px solid #c9d9db;border-radius:8px;background:#fbfdfd}.mobile-study-overview>div{min-width:0;display:grid;gap:4px}.mobile-study-overview span{color:#526173;font-size:13px;font-weight:700}.mobile-study-overview strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px;line-height:1.3}.mobile-study-overview b{justify-self:end;color:#2f6f73;font-size:22px;line-height:1}.mobile-study-overview .progress-track{grid-column:1 / -1}.today-summary-bar article,.feedback-grid article{min-height:86px;padding:14px;border:1px solid #dde3ea;border-radius:8px;background:#f7f9fb;display:grid;align-content:space-between}.today-summary-bar strong,.feedback-grid strong{font-size:26px}.completion-feedback{padding:16px;display:grid;gap:14px}.completion-feedback.completed{border-color:#bbdfc5;background:#f8fcf9}.completion-feedback.completed .reader-kicker{color:#155f2d}.feedback-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.next-action-list{display:grid;gap:8px}.next-action-list p{margin:0;padding:10px 12px;border-radius:8px;background:#edf2f7;color:#263445}.daily-flow-player{display:grid;gap:16px;padding:18px;border:1px solid #c9d9db;border-radius:8px;background:#fbfdfd}.swipe-surface{touch-action:pan-y;transform:translate3d(var(--swipe-x, 0),0,0);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;will-change:transform}.swipe-surface.swiping{transition:none}.swipe-surface.swipe-right{border-color:#86b8bb;box-shadow:0 0 0 calc(2px + var(--swipe-intensity, 0) * 2px) #2f6f7329}.swipe-surface.swipe-left{border-color:#e3cfa4;box-shadow:0 0 0 calc(2px + var(--swipe-intensity, 0) * 2px) #e4a72f33}.swipe-cue-row{min-height:44px;display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;border-radius:8px;background:#edf2f7;color:#526173;font-size:13px;font-weight:800}.swipe-cue-row span{min-width:0;display:inline-flex;align-items:center;gap:6px}.swipe-cue-row span:last-child{justify-content:flex-end;color:#2f6f73}.flow-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}.flow-header h2{font-size:26px;line-height:1.28}.flow-meta,.flow-practice-summary{display:flex;flex-wrap:wrap;gap:8px}.flow-meta span,.flow-practice-summary span{min-height:30px;max-width:100%;display:inline-flex;align-items:center;border-radius:999px;background:#edf2f7;color:#263445;padding:0 11px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flow-description{margin:0;color:#3b4758;font-size:16px;line-height:1.65}.flow-content-card{display:grid;gap:12px;padding:16px;border:1px solid #dde3ea;border-radius:8px;background:#fff}.flow-memo-card{display:grid;gap:10px;padding:16px;border:1px solid #cfd8e3;border-radius:8px;background:#f7f9fb}.flow-memo-card textarea{min-height:118px;background:#fff}.flow-memo-card .form-actions{justify-content:flex-end}.compact-flow-card{align-content:start}.mini-heading{display:flex;align-items:center;gap:8px;min-width:0}.mini-heading svg{color:#2f6f73;flex:0 0 auto}.mini-heading strong{min-width:0;line-height:1.35}.flow-note-body{max-height:460px;overflow:auto;white-space:pre-wrap;color:#263445;font-size:16px;line-height:1.72}.inline-practice-form{max-width:none;display:grid;gap:14px}.compact-command-row{gap:8px}.compact-command-row button{min-height:34px}.inline-review-toggle{width:fit-content}.flow-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding-top:4px}.flow-footer>div:first-child{display:grid;gap:4px;min-width:0}.flow-footer>div:first-child span{color:#526173;font-size:13px;font-weight:700}.flow-footer strong{min-width:0;color:#18212f;line-height:1.35}.flow-footer .actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.flow-complete-state{min-height:280px;display:grid;grid-template-columns:minmax(0,min(520px,100%));align-content:center;justify-content:center;justify-items:center;gap:10px;padding:18px;text-align:center;color:#526173}.flow-complete-state svg{color:#2f6f73}.flow-complete-state h2,.flow-complete-state p{margin:0}.flow-complete-state h2{color:#18212f}.flow-complete-state p{line-height:1.55}.flow-complete-state button{margin-top:4px}.daily-list{display:grid;gap:12px}.daily-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px;border:1px solid #dde3ea;border-radius:8px;background:#fff}.daily-item.doing{border-color:#86b8bb;background:#f4fbfb}.daily-item.active-flow,.daily-item.activeFlow{border-color:#2f6f73;box-shadow:0 0 0 3px #2f6f731f}.daily-item.done{border-color:#bbdfc5;background:#f8fcf9}.daily-item.skipped{border-color:#e3cfa4;background:#fffaf0}.daily-item-main{min-width:0;display:grid;gap:8px}.daily-item-title{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.daily-item-title strong{min-width:0;font-size:17px}.daily-item p{margin:0;color:#3b4758;line-height:1.5}.daily-item-memo{padding:10px 12px;border-radius:8px;background:#f0f5f6;color:#263445!important;font-size:14px}.daily-item-actions,.daily-status-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.daily-status-actions{grid-column:1 / -1}.daily-status-actions button{min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;padding:0 12px;background:#edf2f7;color:#1e2b3a}.daily-status-actions button.active{background:#2f6f73;color:#fff}.compact-empty{min-height:64px}.resource-list{display:grid;gap:8px}.resource-list article{min-height:54px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-radius:8px;background:#f7f9fb;color:#18212f;text-align:left}.resource-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-list article{grid-template-columns:minmax(0,1fr) auto}.resource-list article>div:first-child{min-width:0;display:grid;gap:4px}.section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.section-heading>div{min-width:0}.section-heading button,.toolbar button,.primary,.secondary,.quality-row button,.reveal{min-height:38px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;background:#edf2f7;color:#1e2b3a}.primary{background:#2f6f73;color:#fff}.primary.completed-action{background:#eef8f1;color:#155f2d;border:1px solid #bbdfc5}.primary.completed-action:disabled{opacity:1}.secondary{background:#edf2f7;color:#1e2b3a}.danger-text{background:#fff1f1!important;color:#8f2323!important}.success-text{background:#eef8f1!important;color:#155f2d!important}.compact-list{display:grid;gap:8px}.list-row{min-height:54px;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;background:#f7f9fb;color:#18212f;text-align:left}.list-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{min-height:80px;display:grid;place-items:center;color:#526173;text-align:center;margin:0}form{display:grid;gap:14px}label{display:grid;gap:7px;color:#263445;font-size:14px;font-weight:650}input,textarea,select{width:100%;border:1px solid #cfd8e3;border-radius:8px;background:#fff;color:#18212f;padding:10px 11px;outline:none}input::placeholder,textarea::placeholder{color:#68778a;opacity:1}textarea{resize:vertical;line-height:1.55}input:focus,textarea:focus,select:focus{border-color:#2f6f73;box-shadow:0 0 0 3px #2f6f7324}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px}.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.search{flex:1;min-width:180px;display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:8px;border:1px solid #cfd8e3;border-radius:8px;padding:0 10px;background:#fff}.search input{border:0;box-shadow:none;padding-left:0}.library-layout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:18px;align-items:start}.library-layout.with-editor{grid-template-columns:minmax(248px,320px) minmax(0,1fr) minmax(300px,380px)}.shelf-panel{padding:0;overflow:hidden}.shelf-toolbar{padding:16px;display:grid;gap:12px;border-bottom:1px solid #dde3ea;background:#fff}.compact-heading{margin-bottom:0}.compact-heading>div{min-width:0}.shelf-list{max-height:calc(100dvh - 210px);overflow:auto}.shelf-item{width:100%;display:grid;gap:7px;padding:15px 16px;border-left:3px solid transparent;border-bottom:1px solid #edf2f7;background:#fff;color:#18212f;text-align:left}.shelf-item:hover,.shelf-item.selected{border-left-color:#2f6f73;background:#f7f9fb}.shelf-title{font-weight:700;line-height:1.35}.shelf-preview{color:#3b4758;font-size:14px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shelf-meta{color:#526173;font-size:13px}.shelf-empty{margin:16px}.practice-layout{display:grid;gap:18px}.practice-stats{margin-bottom:0}.practice-library{grid-template-columns:minmax(300px,380px) minmax(0,1fr)}.problem-item{gap:8px}.problem-meta-line{display:flex;flex-wrap:wrap;gap:6px}.practice-detail{display:grid;gap:18px;padding:24px 28px 28px}.practice-command-row{display:flex;flex-wrap:wrap;gap:10px}.practice-command-row button{min-height:38px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px}.practice-form{max-width:760px}.toggle-row{display:inline-flex;grid-template-columns:none;align-items:center;gap:9px;width:fit-content}.toggle-row input{width:18px;height:18px}.reader-panel{min-height:620px;overflow:hidden;display:grid;align-content:start}.reader-header{padding:24px 28px 18px;display:grid;gap:16px;border-bottom:1px solid #dde3ea;background:linear-gradient(180deg,#fff,#f7f9fb)}.reader-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start}.reader-kicker{display:block;margin-bottom:8px;color:#526173;font-size:13px;font-weight:700}.reader-title-row h2{font-size:28px;line-height:1.28}.reader-meta{display:flex;flex-wrap:wrap;gap:8px}.reader-meta span{min-height:30px;max-width:100%;display:inline-flex;align-items:center;border-radius:999px;background:#edf2f7;color:#263445;padding:0 11px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-body{padding:30px 32px;white-space:pre-wrap;color:#263445;font-size:17px;line-height:1.78}.goal-reader-body{display:grid;gap:22px}.goal-reader-body>p{margin-bottom:0}.overall-progress{display:grid;gap:10px;padding:18px;border:1px solid #dde3ea;border-radius:8px;background:#f7f9fb}.overall-progress div{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.overall-progress span{color:#526173;font-size:13px;font-weight:700}.overall-progress strong{color:#18212f;font-size:30px;line-height:1}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric-card{min-height:136px;display:grid;align-content:space-between;gap:10px;padding:14px;border:1px solid #dde3ea;border-radius:8px;background:#fff}.metric-card div{display:flex;justify-content:space-between;gap:8px;align-items:center}.metric-card span{color:#526173;font-size:13px;font-weight:700}.metric-card b{color:#263445;font-size:13px}.metric-card strong{font-size:22px;line-height:1.2}.form-grid{display:grid;gap:12px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.target-editor{display:grid;gap:10px}.target-editor>span{color:#3b4758;font-size:14px}.empty-copy{color:#526173}.reader-related{padding:20px 28px 24px;border-top:1px solid #dde3ea;background:#fff}.mini-card-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mini-card{min-height:92px;padding:12px;border-radius:8px;border:1px solid #dde3ea;background:#f7f9fb;color:#18212f;display:grid;gap:7px;text-align:left}.mini-card strong,.mini-card span{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.mini-card strong{-webkit-line-clamp:2}.mini-card span{-webkit-line-clamp:2;color:#3b4758;font-size:14px;line-height:1.45}.related-empty{min-height:60px}.compact-log-form{grid-template-columns:minmax(82px,.5fr) minmax(130px,.7fr) minmax(160px,1fr) auto;margin-top:14px}.log-list{margin-top:14px}.static-row{cursor:default;grid-template-columns:minmax(0,1fr) auto auto}.static-row .icon-button{width:32px;height:32px}.reader-empty{min-height:520px;display:grid;place-items:center;align-content:center;gap:12px;color:#526173;text-align:center}.reader-empty svg{color:#2f6f73}.reader-empty h2{color:#18212f}.card-study-surface{display:grid;gap:18px;padding:28px}.study-block{border:1px solid #dde3ea;border-radius:8px;padding:20px;background:#fff}.prompt-block{background:#f7f9fb}.study-block span{display:block;margin-bottom:12px;color:#526173;font-size:13px;font-weight:700}.study-block p{margin-bottom:0;white-space:pre-wrap;color:#263445;font-size:18px;line-height:1.7}.answer-block p{font-size:17px}.card-footer{display:flex;justify-content:flex-end;gap:10px}.editor-panel{position:sticky;top:20px}.form-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.actions{display:flex;flex-wrap:wrap;gap:8px}.mobile-study-dock{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;border:1px solid #cfd8e3;border-radius:8px;background:#fff;box-shadow:0 -12px 24px #15202b1f}.mobile-study-dock button{min-height:52px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;font-weight:750}.mobile-study-dock .dock-wide{grid-column:1 / -1}.review-layout{min-height:520px;display:grid;place-items:center}.review-card{width:min(760px,100%);min-height:420px;padding:28px;display:grid;align-content:start;gap:24px}.review-card h2{font-size:26px;line-height:1.35}.review-card p{white-space:pre-wrap;color:#2e3a49;line-height:1.7;font-size:17px}.review-meta,.quality-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.review-meta span{min-height:30px;display:inline-flex;align-items:center;border-radius:999px;background:#edf2f7;color:#263445;padding:0 11px;font-size:13px}.review-mode-toggle{display:inline-grid;grid-template-columns:repeat(2,minmax(112px,1fr));gap:6px;width:min(100%,280px);padding:4px;border:1px solid #dde3ea;border-radius:8px;background:#f7f9fb}.review-mode-toggle button{min-height:36px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;gap:7px;background:transparent;color:#263445}.review-mode-toggle button.active{background:#fff;color:#1e2b3a;border:1px solid #cfd8e3}.choice-options{display:grid;gap:10px}.choice-options button{width:100%;min-height:58px;padding:12px 14px;border:1px solid #dde3ea;border-radius:8px;background:#fff;color:#18212f;text-align:left}.choice-options button:hover:not(:disabled),.choice-options button.selected{border-color:#2f6f73;background:#f7f9fb}.choice-options button.correct{border-color:#8bc79d;background:#eef8f1;color:#1d6d37}.choice-options button.incorrect{border-color:#e8b9b9;background:#fff1f1;color:#8f2323}.choice-options button span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.45}.answer-entry-panel{display:grid;justify-items:start;gap:14px;padding:18px;border:1px solid #dde3ea;border-radius:8px;background:#f7f9fb}.answer-entry-panel p{margin-bottom:0;color:#526173;font-size:15px}.written-answer{align-items:start}.written-answer button{justify-self:start}.answer-result{display:grid;gap:7px;padding:14px 16px;border-radius:8px;border:1px solid #dde3ea;background:#f7f9fb}.answer-result strong{font-size:14px}.answer-result span{color:#3b4758;line-height:1.5;white-space:pre-wrap}.answer-result.correct{border-color:#bbdfc5;background:#eef8f1}.answer-result.correct strong{color:#155f2d}.answer-result.incorrect{border-color:#f1c4c4;background:#fff1f1}.answer-result.incorrect strong{color:#8f2323}.review-answer{display:grid;gap:10px}.review-answer>span{color:#526173;font-size:13px;font-weight:700}.review-answer p{margin-bottom:0}.quality-row{justify-content:flex-end;margin-top:auto}.reveal{justify-self:start}.empty-review{width:min(520px,100%);min-height:280px;display:grid;place-items:center;align-content:center;gap:12px;text-align:center}.empty-review svg{color:#2f6f73}.empty-review p{margin-bottom:0;color:#526173}.analysis-layout{display:grid;gap:18px}.analytics-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:18px;align-items:end}.analytics-toolbar h2{margin-bottom:4px}.analytics-stats{margin-bottom:0}.analytics-stats strong{font-size:28px}.progress-table article{min-height:78px}.progress-table article>div{display:contents}@media(max-width:920px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:auto 0 0;z-index:20;gap:0;padding:8px max(10px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-right));border-top:1px solid rgba(247,251,255,.12);box-shadow:0 -12px 28px #15202b2e}.brand{display:none}.nav-list{grid-auto-flow:column;grid-auto-columns:minmax(64px,1fr);grid-template-columns:none;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.nav-list::-webkit-scrollbar{display:none}.nav-list button{position:relative;min-width:64px;min-height:54px;grid-template-columns:1fr;grid-template-rows:20px auto;align-content:center;justify-items:center;text-align:center;gap:4px;padding:6px 8px;white-space:nowrap}.nav-list button.active{box-shadow:inset 0 0 0 1px #f7fbff14}.nav-list button span{font-size:12px;font-weight:650;line-height:1.15}.nav-list b{position:absolute;top:4px;right:8px;min-width:18px;height:18px;padding:0 5px;font-size:10px;line-height:18px}.workspace{padding:20px 20px calc(96px + env(safe-area-inset-bottom))}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.library-layout,.library-layout.with-editor,.analytics-toolbar,.today-board,.today-learning-layout{grid-template-columns:minmax(0,1fr)}.study-log-form,.compact-log-form,.today-summary-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.swipe-cue-row{display:grid}.editor-panel{position:static}.shelf-list{max-height:none}.reader-panel{min-height:auto}}@media(max-width:560px){.workspace{padding:14px 14px calc(168px + env(safe-area-inset-bottom))}h1{font-size:24px}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:flex-start}.icon-button{width:44px;height:44px}input,select{min-height:44px}.section-heading{align-items:flex-start;gap:10px}.section-heading>.actions{width:100%}.section-heading>.actions,.section-heading>.actions>*,.section-heading>button:not(.icon-button){min-width:0}.section-heading>.actions>*,.section-heading>button:not(.icon-button){flex:1 1 100%}.section-heading>.status-chip{flex:0 0 auto}.section-heading button,.toolbar button,.primary,.secondary,.quality-row button,.reveal{min-height:48px}.date-picker{min-height:42px;grid-template-columns:18px minmax(0,1fr)}.toolbar,.reader-title-row,.flow-header,.flow-footer{grid-template-columns:1fr}.toolbar{display:grid}.actions{justify-content:flex-end}.reader-header,.reader-body,.reader-related,.card-study-surface{padding-left:18px;padding-right:18px}.reader-title-row h2{font-size:23px}.shelf-list{max-height:min(42dvh,360px);overflow:auto}.mini-card-list,.card-footer,.form-actions,.metric-grid,.feedback-grid,.form-grid.two{grid-template-columns:1fr}.mini-card-list,.card-footer,.form-actions{display:grid}.study-log-form,.compact-log-form{grid-template-columns:1fr}.list-row,.goal-progress-row,.progress-table article{grid-template-columns:1fr}.list-row span,.row-title,.progress-table strong{white-space:normal}.practice-command-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.practice-command-row button{width:100%}.today-plan-panel{padding:14px}.today-plan-panel>.section-heading .top-completion-action:not(.completed-action){display:none}.mobile-study-overview{display:grid;grid-template-columns:minmax(0,1fr) auto}.today-summary-bar{grid-template-columns:repeat(4,minmax(76px,1fr));overflow-x:auto;padding-bottom:2px;scroll-snap-type:x mandatory;scrollbar-width:none}.today-summary-bar::-webkit-scrollbar{display:none}.today-summary-bar article{min-height:76px;padding:12px;scroll-snap-align:start}.today-summary-bar strong{font-size:22px}.daily-flow-player{min-height:min(660px,calc(100dvh - 236px));align-content:start;padding:16px;gap:14px}.flow-header h2{font-size:22px}.flow-note-body{max-height:42dvh}.flow-memo-card,.flow-content-card{padding:14px}.swipe-cue-row{min-height:48px}.mobile-study-dock{position:fixed;left:14px;right:14px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:30;display:grid}.daily-list{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory;scrollbar-width:none}.daily-list::-webkit-scrollbar{display:none}.daily-item{min-width:min(86vw,380px);scroll-snap-align:start}.review-card{padding:20px;min-height:min(620px,calc(100dvh - 172px))}.review-mode-toggle{width:100%}.review-mode-toggle button,.choice-options button{min-height:48px}.answer-entry-panel button,.written-answer button{width:100%}.quality-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.daily-item,.today-board-side article,.resource-list article{grid-template-columns:1fr}.daily-item-actions,.daily-status-actions,.resource-list .actions,.flow-footer .actions{justify-content:stretch}.daily-status-actions,.resource-list .actions,.flow-footer .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}
