:root{color-scheme:light;--font-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--page:#f1ece1;--window:#ffffff;--panel:#ffffff;--soft:#f7f9fd;--line:#e5eaf4;--text:#0d1b4c;--muted:#68738c;--primary:#2563eb;--primary-dark:#1d4ed8;--primary-soft:#edf4ff;--green:#22c55e;--orange:#f59e0b;--red:#ef4444;--teacher:#f7fbff;--student:#255ee8;--shadow-sm:0 4px 14px rgba(13,27,76,0.06);--shadow-md:0 12px 28px rgba(13,27,76,0.09);--shadow-lg:0 24px 60px rgba(13,27,76,0.14);--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:26px}[data-theme=dark]{color-scheme:dark;--page:#0b1020;--window:#111827;--panel:#151f33;--soft:#0f172a;--line:#273449;--text:#eef5ff;--muted:#9cabbd;--primary:#60a5fa;--primary-dark:#3b82f6;--primary-soft:#132944;--teacher:#111f33;--student:#2563eb;--shadow-sm:0 4px 14px rgba(0,0,0,0.2);--shadow-md:0 12px 28px rgba(0,0,0,0.28);--shadow-lg:0 24px 60px rgba(0,0,0,0.38)}*{box-sizing:border-box}body,html{width:100%;min-height:100%;margin:0;overflow:hidden;background:radial-gradient(1200px 560px at 50% -12%,#fffdf7,transparent 62%),var(--page);color:var(--text);font-family:var(--font-sans)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.learn-shell{display:grid;grid-template-rows:minmax(0,1fr);height:100vh;padding:clamp(16px,2.4vh,30px) clamp(16px,3vw,48px)}.learning-window{display:grid;grid-template-columns:216px minmax(0,1fr);width:100%;max-width:1360px;margin-inline:auto;min-height:0;border:1px solid rgba(199,209,224,.6);border-radius:var(--radius-xl);background:var(--window);box-shadow:var(--shadow-lg);overflow:hidden}.app-sidebar{display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-gap:22px;gap:22px;padding:22px 16px;border-right:1px solid var(--line);background:linear-gradient(180deg,#ffffff,#f8fbff)}[data-theme=dark] .app-sidebar{background:linear-gradient(180deg,#111827,#0f172a)}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:2px 4px;font-size:16px;font-weight:900;letter-spacing:-.01em}.avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:linear-gradient(155deg,#0d1b4c,#2f6df6);color:white;font-weight:900;box-shadow:var(--shadow-sm)}.avatar.small{width:28px;height:28px;font-size:12px}.avatar.student{width:34px;height:34px;background:linear-gradient(155deg,#0d1b4c,#f5b82e)}.sidebar-nav{display:flex;flex-direction:column;gap:4px}.sidebar-nav button{display:flex;align-items:center;gap:12px;width:100%;min-height:42px;padding:0 13px;border:0;border-radius:12px;background:transparent;color:var(--muted);font-size:13px;font-weight:700;text-align:left;transition:background .14s ease,color .14s ease}.sidebar-nav button svg{flex:none;opacity:.85}.sidebar-nav button:hover{background:var(--soft);color:var(--text)}.sidebar-nav button.active{color:var(--primary-dark);background:var(--primary-soft);font-weight:800}.sidebar-nav button.active svg{opacity:1}[data-theme=dark] .sidebar-nav button.active{color:#bfdbfe;background:var(--primary-soft)}.student-card{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.student-card span,.student-card strong{display:block}.student-card strong{font-size:12px}.student-card span{margin-top:2px;color:var(--muted);font-size:10px;font-weight:700}.lesson-workspace{display:grid;grid-template-rows:minmax(0,1fr);min-width:0;min-height:0;background:linear-gradient(180deg,#ffffff,#f7f9fd)}[data-theme=dark] .lesson-workspace{background:linear-gradient(180deg,#111827,#0f172a)}.breadcrumb{display:block;color:var(--muted);font-size:11px;font-weight:800}.stage-area{min-height:0;padding:clamp(20px,2vw,30px)}.learning-card{display:grid;grid-template-columns:minmax(0,1fr) 292px;grid-gap:22px;gap:22px;height:100%;min-height:0;padding:22px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-md)}.curriculum-learning{grid-template-columns:minmax(340px,.95fr) minmax(420px,1.05fr);padding:18px;overflow:hidden}.curriculum-browser,.curriculum-detail{min-width:0;min-height:0}.curriculum-browser{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);grid-gap:14px;gap:14px}.curriculum-head,.learning-path-card,.material-detail-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow-sm)}.curriculum-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:16px}.curriculum-head h3,.material-detail-card h3,.material-detail-card h4{margin:0;letter-spacing:0}.curriculum-head h3{margin-top:5px;font-size:23px}.curriculum-head p,.material-detail-card p{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.5;font-weight:700}.source-pill{display:inline-flex;align-items:center;gap:8px;min-height:34px;max-width:220px;padding:0 10px;border:1px solid #dbe8ff;border-radius:10px;background:#f4f8ff;color:var(--primary-dark);font-size:11px;font-weight:900}.grade-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.grade-tabs button{min-height:42px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--muted);font-size:13px;font-weight:900}.grade-tabs button.active{border-color:rgba(37,99,235,.32);background:linear-gradient(180deg,#eef5ff,#ffffff);color:var(--primary-dark);box-shadow:0 8px 18px rgba(37,99,235,.12)}.curriculum-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.curriculum-stats div{min-height:58px;padding:10px 12px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(180deg,#ffffff,#f8fbff)}.curriculum-stats span,.curriculum-stats strong{display:block}.curriculum-stats strong{color:var(--primary-dark);font-size:18px}.curriculum-stats span{margin-top:3px;color:var(--muted);font-size:11px;font-weight:850}.chapter-list{display:grid;align-content:start;grid-gap:10px;gap:10px;min-height:0;overflow:auto;padding-right:3px}.chapter-card{border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:var(--shadow-sm);overflow:hidden}.chapter-card.active{border-color:rgba(37,99,235,.38);box-shadow:0 14px 28px rgba(37,99,235,.12)}.chapter-main{display:grid;grid-template-columns:58px minmax(0,1fr) 20px;align-items:center;grid-gap:12px;gap:12px;width:100%;min-height:74px;padding:12px;border:0;background:transparent;text-align:left}.chapter-number{display:grid;place-items:center;min-height:44px;border-radius:12px;background:#edf4ff;color:var(--primary-dark);font-size:12px;font-weight:950}.chapter-main h4{margin:0;color:var(--text);font-size:14px;line-height:1.3;letter-spacing:0}.chapter-main span{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:800}.chapter-main svg{color:var(--muted)}.subtopic-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;padding:0 12px 12px}.subtopic-list button{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:8px;gap:8px;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--text);text-align:left}.subtopic-list button.active{border-color:rgba(37,99,235,.38);background:#eef5ff;color:var(--primary-dark)}.subtopic-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:850}.subtopic-list em{color:var(--muted);font-size:10px;font-style:normal;font-weight:900}.curriculum-detail{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);grid-gap:14px;gap:14px}.material-detail-card{padding:16px}.material-kicker{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.material-kicker>span:first-child,.material-status{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:950}.material-kicker>span:first-child{background:#edf4ff;color:var(--primary-dark)}.material-status{background:#ecfdf5;color:#15803d}.material-status.sedang{background:#eef5ff;color:var(--primary-dark)}.material-status.selesai{background:#f0fdf4;color:#166534}.material-detail-card h3{font-size:21px}.material-detail-card h4{margin-top:8px;color:var(--primary-dark);font-size:16px}.material-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);grid-gap:10px;gap:10px;margin-top:16px}.material-actions .ghost-button,.material-actions .primary-button{min-width:0}.material-objectives{grid-template-columns:repeat(3,minmax(0,1fr))}.learning-path-card{display:grid;grid-gap:8px;gap:8px;padding:14px}.path-head,.path-row{display:grid;align-items:center}.path-head{grid-template-columns:minmax(0,1fr) 28px;margin-bottom:2px}.path-head strong{display:block;margin-top:3px}.path-head svg{color:var(--primary)}.path-row{grid-template-columns:28px minmax(0,1fr) 58px;gap:10px;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);text-align:left}.path-row.active{border-color:rgba(37,99,235,.4);background:#eef5ff}.path-row span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#edf4ff;color:var(--primary-dark);font-size:11px;font-weight:950}.path-row strong{overflow:hidden;color:var(--text);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.path-row em{color:var(--muted);font-size:11px;font-style:normal;font-weight:900;text-align:right}.material-board{min-height:300px}.material-board .board-container{min-height:230px}.interactive-learning{display:grid;grid-template-rows:auto minmax(0,1fr);grid-gap:14px;gap:14px;height:100%;min-height:0}.session-board-panel,.session-chat-panel,.session-topbar{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-md)}.session-topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:16px;gap:16px;min-height:72px;padding:12px 14px}.session-title{min-width:0}.session-title h3,.session-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-title span{display:block;color:var(--muted);font-size:12px;font-weight:850}.session-title h3{margin:4px 0 0;color:var(--text);font-size:20px;letter-spacing:0}.session-main{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:14px;gap:14px;min-height:0}.session-board-panel{display:grid;grid-template-rows:auto minmax(0,1fr);grid-gap:12px;gap:12px;min-width:0;min-height:0;padding:14px}.session-board-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.session-board-head strong{display:block;margin-top:4px;font-size:18px}.session-board-head .ghost-button{min-width:148px}.session-board-panel .board-container{min-height:0;height:100%}.session-chat-panel{grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.lesson-content,.session-chat-panel{display:grid;min-width:0;min-height:0}.lesson-content{grid-template-rows:auto auto minmax(0,1fr) auto;grid-gap:14px;gap:14px}.lesson-copy h3,.lesson-copy h4{margin:0;letter-spacing:0}.lesson-copy h3{margin-top:8px;font-size:24px}.lesson-copy h4{margin-top:10px;font-size:18px}.lesson-copy p{max-width:720px;margin:10px 0 0;color:var(--muted);font-size:14px;line-height:1.55;font-weight:650}.objective-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.objective-card{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--soft);color:var(--muted);font-size:12px;font-weight:800}.objective-card.active{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.example-panel{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;padding:14px;border:1px solid var(--line);border-radius:16px;background:#ffffff}.example-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px 12px}.example-header>span{color:var(--primary-dark);font-size:13px;font-weight:900}.status-pill{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}.status-pill.compact{min-height:28px;padding:0 10px;font-size:11px}.status-indicator{display:inline-block;width:8px;height:8px;border-radius:50%;background-color:var(--green)}.status-indicator.listening,.status-indicator.loading,.status-indicator.writing{animation:pulse-active 1.3s ease-in-out infinite}.status-indicator.writing{background:var(--orange)}.status-indicator.listening{background:var(--red)}@keyframes pulse-active{0%,to{transform:scale(.92);box-shadow:0 0 0 0 rgba(37,99,235,.28)}60%{transform:scale(1.12);box-shadow:0 0 0 7px rgba(37,99,235,0)}}.board-container{position:relative;min-height:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#ffffff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}.board-engine{position:absolute;inset:0;overflow:hidden;touch-action:none;background-color:#ffffff;background-image:radial-gradient(circle,rgba(15,23,42,.12) 1px,transparent 0);background-size:var(--board-grid-scale,28px) var(--board-grid-scale,28px);background-position:var(--board-grid-offset-x,0) var(--board-grid-offset-y,0)}.board-engine.is-locked{cursor:-webkit-grab;cursor:grab}.board-engine.is-locked:active{cursor:-webkit-grabbing;cursor:grabbing}.board-engine.is-live{cursor:crosshair;box-shadow:inset 0 0 0 2px var(--primary)}.board-world{transform-origin:0 0;width:0;height:0}.board-vectors,.board-world{position:absolute;top:0;left:0}.board-text,.board-vectors{pointer-events:none}.board-text{position:absolute;font-family:var(--font-inter),system-ui,sans-serif;font-weight:600;line-height:1.25;white-space:pre;-webkit-user-select:none;-moz-user-select:none;user-select:none}.board-text.board-math{font-weight:500}[data-theme=dark] .board-engine{background-color:#0b1220;background-image:radial-gradient(circle,rgba(148,163,184,.22) 1px,transparent 0)}.board-lock-overlay{position:absolute;inset:0;z-index:12;cursor:default;background:transparent}.board-access-badge{position:absolute;left:16px;bottom:16px;z-index:13;display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.92);color:var(--muted);box-shadow:var(--shadow-sm);font-size:12px;font-weight:900;pointer-events:none}.board-access-badge.open{border-color:var(--primary);background:var(--primary);color:white}.lesson-side{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;grid-gap:14px;gap:14px;min-height:0}.mini-chat,.progress-card,.tutor-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:rgba(255,255,255,.96);box-shadow:var(--shadow-lg);overflow:hidden}[data-theme=dark] .mini-chat,[data-theme=dark] .progress-card,[data-theme=dark] .tutor-card{background:rgba(21,31,51,.96)}.teacher-card{display:grid;grid-template-columns:44px minmax(0,1fr) 38px;align-items:center;grid-gap:12px;gap:12px;padding:16px;border-bottom:1px solid var(--line);background:var(--panel)}.teacher-card.compact-card{grid-template-columns:42px minmax(0,1fr) 34px;padding:12px;border-bottom:0}.teacher-avatar-wrapper{position:relative}.avatar-badge{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border:2px solid var(--panel);border-radius:50%;background:var(--green)}.teacher-card-info span,.teacher-card-info strong{display:block}.teacher-card-info strong{font-size:14px}.teacher-card-info span{margin-top:2px;color:var(--muted);font-size:12px;font-weight:700}.composer-actions button,.teacher-card button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.tutor-bubble{display:flex;align-items:flex-start;gap:8px;margin:0 12px 12px;padding:14px;border:1px solid #dbe9ff;border-radius:14px;background:var(--teacher);color:#123064;font-size:13px;line-height:1.45;font-weight:750}.tutor-bubble svg{flex:0 0 auto;color:#f5b82e}.ask-nara-button,.ghost-button,.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border-radius:10px;font-size:13px;font-weight:900}.ask-nara-button{width:calc(100% - 24px);margin:0 12px 14px;box-shadow:0 10px 22px rgba(37,99,235,.24)}.ask-nara-button,.primary-button{border:0;background:var(--primary);color:white}.primary-button{min-width:160px}.ghost-button{min-width:132px;border:1px solid var(--line);background:var(--panel);color:var(--primary-dark)}.replay-button.needs-tap{border-color:var(--primary);color:var(--primary);animation:replay-nudge 1.4s ease-in-out infinite}@keyframes replay-nudge{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.messages{display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto;padding:16px;background:linear-gradient(180deg,var(--panel),var(--soft))}.mini-chat{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0}.message{max-width:88%;white-space:pre-wrap;line-height:1.45;padding:11px 13px;border-radius:14px;font-size:13px;font-weight:650;box-shadow:var(--shadow-sm)}.message.teacher{align-self:flex-start;border:1px solid #dbe9ff;background:var(--teacher);color:#123064;border-bottom-left-radius:5px}[data-theme=dark] .message.teacher{color:#dbeafe;border-color:#263c5b}.message.student{align-self:flex-end;background:var(--student);color:white;border-bottom-right-radius:5px}.composer{padding:14px 16px 16px;border-top:1px solid var(--line);background:var(--panel)}.voice-button-row{display:flex;justify-content:center;padding-bottom:12px}.voice-button{display:grid;place-items:center;width:54px;height:54px;border:0;border-radius:50%;background:linear-gradient(145deg,var(--primary),#1749d9);color:white;box-shadow:0 12px 28px rgba(37,99,235,.28)}.voice-button.listening{background:linear-gradient(145deg,var(--red),#b91c1c);animation:pulse-mic 1.2s infinite alternate}@keyframes pulse-mic{0%{transform:scale(1)}to{transform:scale(1.07)}}.composer-input-wrapper{position:relative}.composer textarea{display:block;width:100%;min-height:58px;max-height:150px;resize:none;padding:12px 13px;border:1px solid var(--line);border-radius:13px;outline:none;background:var(--soft);font-size:13px;line-height:1.45}.composer textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(37,99,235,.1)}.composer-actions{display:flex;justify-content:flex-end;margin-top:10px}.composer-actions button{border-color:var(--primary);background:var(--primary);color:white}.composer-actions button:disabled{cursor:not-allowed;opacity:.5}.tip-card{display:grid;grid-template-columns:38px minmax(0,1fr);grid-gap:12px;gap:12px;padding:14px;border:1px solid #ffdca5;border-radius:15px;background:#fff8e8;box-shadow:var(--shadow-md)}.tip-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#ffe8ac;color:#b45309}.tip-card strong{display:block;color:#8a4a00;font-size:14px}.tip-card span{color:#7b5b2b;font-size:12px;line-height:1.45;font-weight:700}.progress-card{display:grid;grid-gap:10px;gap:10px;padding:14px}.progress-card>div:first-child{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.progress-card strong{color:var(--primary);font-size:20px}.progress-track{height:7px;overflow:hidden;border-radius:999px;background:#e8eef8}.progress-track span{display:block;height:100%;border-radius:inherit;background:var(--primary)}.progress-card ul{display:grid;grid-gap:8px;gap:8px;margin:0;padding:0;list-style:none}.progress-card li{color:var(--muted);font-size:12px;font-weight:750}.progress-card li.done{color:#15803d}.progress-card li.current{color:var(--primary-dark)}.lesson-footer{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;grid-gap:12px;gap:12px}.lesson-footer .primary-button{justify-self:end}.page-count{color:var(--text);font-size:14px;font-weight:900}.ask-view,.dashboard-view,.photo-view,.progress-view,.quiz-view,.view-card{height:100%;min-height:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-md)}.view-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.view-head h3{margin:4px 0 0;font-size:24px;letter-spacing:0}.compact-head h3{font-size:18px}.dashboard-view,.favorite-view,.list-view,.photo-view,.settings-view{display:grid;grid-gap:16px;gap:16px;overflow:auto;padding:22px}.welcome-block{display:flex;align-items:center;justify-content:space-between;gap:16px}.welcome-block h3{margin:4px 0 0;font-size:28px;letter-spacing:0}.streak-pill{padding:10px 14px;border-radius:12px;background:#fff6df;color:#9a5b00;font-size:12px;font-weight:900}.dashboard-grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-gap:14px;gap:14px}.favorite-card,.hero-action,.history-item,.mini-action,.recommend-card,.subject-progress{border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow-sm)}.favorite-card,.hero-action,.mini-action{display:grid;grid-gap:8px;gap:8px;min-height:128px;padding:18px;text-align:left}.favorite-card,.history-item,.subject-progress,.topic-row{text-align:left}.hero-action{grid-row:span 2;min-height:270px;background:linear-gradient(145deg,#245ef2,#5577ff);color:white}.hero-action svg{align-self:end;justify-self:end}.favorite-card strong,.hero-action strong,.mini-action strong{font-size:20px}.favorite-card span,.hero-action span,.mini-action span{color:inherit;opacity:.78;font-size:13px;line-height:1.45;font-weight:700}.mini-action.wide{grid-column:span 2}.recommend-card{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;grid-gap:12px;gap:12px;padding:14px;background:#fff8e6;border-color:#ffe2a9}.recommend-card svg{color:#f5b82e}.recommend-card span,.recommend-card strong{display:block}.recommend-card span{color:#8a5d16;font-size:12px;font-weight:800}.choice-row button,.recommend-card button{min-height:36px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--primary-dark);font-size:12px;font-weight:900}.choice-row button.active,.favorite-card.active,.history-item.active,.topic-row.active{border-color:rgba(37,99,235,.42);background:#eef5ff;color:var(--primary-dark);box-shadow:0 12px 24px rgba(37,99,235,.12)}.subject-progress-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.subject-progress{display:grid;grid-template-columns:62px minmax(0,1fr);grid-gap:8px 12px;gap:8px 12px;align-items:center;padding:14px}.subject-progress strong{font-size:14px}.subject-progress span{color:var(--muted);font-size:12px;font-weight:750}.ring-progress{grid-row:span 2;display:grid;place-items:center;width:54px;height:54px;border:7px solid #dce8ff;border-top:7px solid var(--primary);border-radius:50%;color:var(--primary-dark);font-size:12px;font-weight:900}.photo-view{grid-template-rows:auto minmax(0,1fr) auto auto}.photo-paper{position:relative;display:grid;place-items:center;grid-gap:18px;gap:18px;min-height:280px;border-radius:16px;background:linear-gradient(rgba(255,255,255,.15),rgba(255,255,255,.15)),repeating-linear-gradient(0deg,#e6dfd4 0 1px,transparent 1px 34px),repeating-linear-gradient(90deg,#e6dfd4 0 1px,#f5eee2 1px 34px);color:#161616;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}.photo-paper span{font-size:20px;font-family:Times New Roman,serif}.photo-paper strong{font-size:38px;font-weight:500}.crop-corner{position:absolute;width:34px;height:34px;border-color:#60a5fa}.top-left{left:14px;border-left:4px solid}.top-left,.top-right{top:14px;border-top:4px solid}.top-right{right:14px;border-right:4px solid}.bottom-left{left:14px;border-left:4px solid}.bottom-left,.bottom-right{bottom:14px;border-bottom:4px solid}.bottom-right{right:14px;border-right:4px solid}.scan-card{display:grid;grid-template-columns:36px minmax(0,1fr);grid-gap:12px;gap:12px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--panel)}.scan-card svg{color:var(--primary)}.favorite-detail-card,.history-detail-card,.photo-result-card,.progress-detail-card,.settings-status{display:grid;grid-gap:8px;gap:8px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--soft)}.photo-result-card,.progress-detail-card,.settings-status{grid-template-columns:28px minmax(0,1fr);align-items:start}.photo-result-card svg,.progress-detail-card svg,.settings-status svg{color:var(--primary)}.favorite-detail-card strong,.history-detail-card strong,.photo-result-card strong,.progress-detail-card strong{display:block}.favorite-detail-card span,.history-detail-card span,.photo-result-card span,.progress-detail-card span,.settings-status{color:var(--muted);font-size:12px;font-weight:800}.favorite-detail-card p,.history-detail-card p,.progress-detail-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.5;font-weight:750}.scan-card span,.scan-card strong{display:block}.scan-card span{margin:4px 0 9px;color:var(--muted);font-size:12px;font-weight:750}.choice-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.photo-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-gap:18px;gap:18px;align-items:start}.photo-input-col,.photo-output-col{display:grid;grid-gap:14px;gap:14px;min-width:0}.photo-dropzone{display:grid;place-items:center;grid-gap:8px;gap:8px;min-height:220px;padding:24px;border:2px dashed var(--line);border-radius:16px;background:var(--soft);color:var(--primary-dark);cursor:pointer;transition:border-color .15s ease,background .15s ease}.photo-dropzone:hover{border-color:var(--primary);background:#eef5ff}.photo-dropzone strong{font-size:15px}.photo-dropzone span{font-size:12px;color:var(--muted);font-weight:700}.photo-dropzone svg{color:var(--primary)}.photo-preview{position:relative;display:grid;grid-gap:10px;gap:10px;justify-items:center;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.photo-preview img{max-width:100%;max-height:260px;border-radius:12px;object-fit:contain}.photo-problem-field{display:grid;grid-gap:6px;gap:6px}.photo-problem-field span{font-size:12px;font-weight:900;color:var(--primary-dark)}.photo-problem-field textarea{width:100%;resize:vertical;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:inherit;font:inherit;font-size:14px}.photo-explain-button{justify-content:center}.photo-board{position:relative;min-height:320px;height:360px}.photo-result-card.hint{background:var(--panel)}.photo-ask{display:block;margin-top:6px;color:var(--primary-dark);font-style:normal;font-weight:800}.photo-save-status{font-size:12px;font-weight:800;color:var(--muted)}.photo-history{display:grid;grid-gap:10px;gap:10px}.photo-history-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:10px;gap:10px}.photo-history-item{display:grid;grid-template-columns:18px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:start;text-align:left;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);cursor:pointer}.photo-history-item:hover{border-color:var(--primary)}.photo-history-item svg{color:var(--primary);margin-top:2px}.photo-history-item strong{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-history-item span{display:block;font-size:11px;color:var(--muted);font-weight:700}@media (max-width:900px){.photo-grid{grid-template-columns:1fr}}.ask-view{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);grid-gap:18px;gap:18px;padding:18px}.ask-chat-panel,.explanation-panel,.quiz-main,.solution-board{display:grid;min-height:0;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm);overflow:hidden}.ask-chat-panel,.solution-board{grid-template-rows:auto minmax(0,1fr) auto}.solution-board{gap:12px;padding:16px}.answer-note{display:flex;align-items:center;gap:8px;padding:12px;border-radius:12px;background:#f2f5ff;color:#27346b;font-size:13px;font-weight:800}.quiz-view{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);grid-gap:18px;gap:18px;padding:18px}.explanation-panel,.quiz-main{align-content:start;gap:14px;padding:18px}.quiz-track{width:280px}.quiz-question{padding:18px 0;font-size:28px}.answer-option{display:flex;align-items:center;gap:12px;min-height:46px;border:1px solid var(--line);border-radius:12px;background:var(--panel);font-size:16px;font-weight:800}.answer-option.selected{border-color:rgba(37,99,235,.45);background:#eef5ff}.answer-option.correct{border-color:#86efac;background:#f0fdf4;color:#166534}.answer-option.wrong{border-color:#fecaca;background:#fef2f2;color:#991b1b}.answer-option span{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#edf4ff;color:var(--primary-dark)}.quiz-actions{display:grid;grid-template-columns:1fr 1.4fr;grid-gap:12px;gap:12px;margin-top:8px}.quiz-hint{padding:12px;border:1px solid #ffe2a9;border-radius:12px;background:#fff8e8;color:#8a5d16;font-size:13px;font-weight:850}.math-solution{padding:18px;border-radius:14px;background:var(--soft);font-size:26px}.progress-view{display:grid;grid-template-columns:minmax(280px,.65fr) minmax(0,1fr);grid-template-rows:auto auto 1fr;grid-gap:18px;gap:18px;padding:22px}.overall-progress{display:grid;align-content:center;justify-items:start;grid-gap:10px;gap:10px;min-height:240px;padding:28px;border-radius:18px;background:linear-gradient(145deg,#245ef2,#6b83ff);color:white}.overall-progress strong{display:grid;place-items:center;width:128px;height:128px;border:14px solid rgba(255,255,255,.36);border-top-color:white;border-radius:50%;font-size:34px}.overall-progress button{min-height:38px;padding:0 18px;border:0;border-radius:10px;background:white;color:var(--primary-dark);font-weight:900}.topic-list{display:grid;grid-gap:14px;gap:14px}.topic-row{display:grid;grid-template-columns:44px 110px minmax(0,1fr) 48px 88px;align-items:center;grid-gap:12px;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.topic-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:white;font-weight:900}.topic-icon.blue{background:var(--primary)}.topic-icon.orange{background:#f97316}.topic-icon.green{background:#22c55e}.topic-row em{color:var(--muted);font-size:12px;font-style:normal;font-weight:800}.focus-card{grid-column:1/-1;display:grid;grid-template-columns:48px minmax(0,1fr) 220px;align-items:center;grid-gap:16px;gap:16px;padding:18px;border:1px solid #ffe2a9;border-radius:16px;background:#fff8e8}.progress-detail-card{grid-column:1/-1}.focus-card svg{color:#ea580c}.list-view{align-content:start}.history-item{display:grid;grid-template-columns:34px minmax(0,1fr) 22px;align-items:center;grid-gap:12px;gap:12px;padding:14px}.history-item p,.history-item span{margin:0;color:var(--muted);font-size:12px;font-weight:750}.history-item strong{display:block;margin:3px 0}.favorite-grid,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.favorite-detail-card,.history-detail-card{grid-template-columns:1fr}.inline-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.favorite-detail-card .primary-button{justify-self:start}.favorite-card{min-height:150px}.favorite-card svg{color:#f5b82e}.settings-grid label{display:grid;grid-gap:8px;gap:8px;color:var(--muted);font-size:12px;font-weight:900}.settings-grid input,.settings-grid select{height:42px;border:1px solid var(--line);border-radius:10px;background:var(--soft);padding:0 12px}.settings-status.saved{border-color:#bbf7d0;background:#f0fdf4;color:#166534}@media (max-width:1180px){.learn-shell{padding:10px}.learning-window{grid-template-columns:132px minmax(0,1fr)}.learning-card{grid-template-columns:minmax(0,1fr) 250px;gap:14px;padding:16px}.curriculum-learning{grid-template-columns:minmax(300px,.95fr) minmax(340px,1.05fr)}.session-main{grid-template-columns:minmax(0,1fr) 300px}.subtopic-list{grid-template-columns:1fr}.objective-grid,.progress-card{display:none}}@media (max-width:720px){body,html{overflow:auto}.learn-shell{min-height:100vh;height:auto;padding:8px}.learning-window{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);min-height:980px;border-radius:16px}.app-sidebar{display:grid;grid-template-rows:auto auto;grid-gap:10px;gap:10px;padding:10px;border-right:0;border-bottom:1px solid var(--line)}.sidebar-brand{justify-content:space-between}.student-card{display:none}.sidebar-nav{display:flex;flex-direction:row;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-nav button{flex:0 0 auto;width:auto;min-height:36px;padding:0 12px;white-space:nowrap}.stage-area{display:grid;min-height:800px;padding:12px}.learning-card{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:14px;padding:14px}.curriculum-learning{grid-template-rows:auto auto;overflow:visible}.curriculum-browser{min-height:720px}.curriculum-head,.material-kicker{align-items:stretch;flex-direction:column}.source-pill{max-width:none}.curriculum-stats,.material-actions,.material-objectives{grid-template-columns:1fr}.curriculum-detail{min-height:760px}.interactive-learning{min-height:980px}.session-board-head,.session-main,.session-topbar{grid-template-columns:1fr}.session-board-head,.session-topbar{align-items:stretch}.session-main{grid-template-rows:minmax(520px,1fr) minmax(420px,auto)}.session-chat-panel{min-height:420px}.lesson-side{min-height:560px}.lesson-footer,.objective-grid{grid-template-columns:1fr}.ghost-button,.lesson-footer .primary-button{width:100%;justify-self:stretch}}.auth-shell{display:grid;place-items:center;min-height:100vh;padding:24px;background:var(--bg,#f3f6fb)}.auth-loading{color:var(--muted);font-weight:800}.auth-card{width:100%;max-width:400px;display:grid;grid-gap:14px;gap:14px;padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--panel,#fff);box-shadow:var(--shadow-sm,0 12px 40px rgba(15,23,42,.08))}.auth-brand{display:flex;align-items:center;gap:10px}.auth-brand strong{display:block;font-size:15px}.auth-brand span{font-size:12px;color:var(--muted)}.auth-card h1{margin:4px 0 0;font-size:22px}.auth-subtitle{margin:0;color:var(--muted);font-size:13px;font-weight:600}.google-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff);color:var(--text,#1f2937);font-size:14px;font-weight:800;cursor:pointer;transition:background .15s ease,border-color .15s ease}.google-button:hover:not(:disabled){background:#f7f9fc;border-color:#cbd5e1}.google-button:disabled{opacity:.6;cursor:not-allowed}.auth-divider{display:flex;align-items:center;text-align:center;color:var(--muted);font-size:11px;font-weight:800}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--line)}.auth-divider span{padding:0 12px}.auth-field{display:grid;grid-gap:6px;gap:6px}.auth-field span{font-size:12px;font-weight:800;color:var(--primary-dark)}.auth-field input{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel,#fff);color:inherit;font:inherit;font-size:14px}.auth-field input:focus{outline:none;border-color:var(--primary)}.auth-submit{justify-content:center;min-height:46px}.auth-switch{border:none;background:none;color:var(--primary-dark);font-size:13px;font-weight:800;cursor:pointer}.auth-error{padding:10px 12px;border-radius:10px;background:#fef2f2;color:#b91c1c;font-size:12px;font-weight:700}.auth-error code{font-size:11px}.auth-message{padding:10px 12px;border-radius:10px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:700}.auth-footnote{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:4px;color:var(--muted);font-size:11px;font-weight:700}.signout-button{margin-left:auto;display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:10px;background:var(--panel,#fff);color:var(--muted);cursor:pointer}.signout-button:hover{color:#b91c1c;border-color:#fecaca}.spin{animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(1turn)}}