    :root { --ink:#16231f; --muted:#66756f; --paper:#f4f6f1; --panel:#fff; --line:#dfe7e1; --green-950:#0d2e29; --green-900:#123c35; --green-700:#226a59; --green-100:#dfeee7; --green-50:#eff7f3; --gold:#f1c96b; --danger:#a53c2d; --shadow:0 12px 40px rgba(24,49,40,.08); }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { margin:0; background:var(--paper); color:var(--ink); font:15px/1.55 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
    button,input,textarea,select { font:inherit; }
    button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible { outline:3px solid rgba(241,201,107,.75); outline-offset:2px; }
    button:disabled { cursor:wait; opacity:.65; }
    .shell { display:grid; grid-template-columns:270px minmax(0,1fr); min-height:100vh; }
    aside { position:sticky; top:0; height:100vh; display:flex; flex-direction:column; overflow-y:auto; background:var(--green-950); color:#f4fbf7; padding:28px 20px 20px; }
    .brand { display:flex; align-items:center; gap:11px; margin:0 8px 38px; font-size:19px; font-weight:800; letter-spacing:-.03em; }
    .brand-mark { display:grid; place-items:center; width:34px; height:34px; border-radius:11px 11px 11px 3px; background:var(--gold); color:var(--green-950); font:700 22px Georgia,serif; }
    .side-label { margin:0 9px 10px; color:#94b1a7; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
    #course-list { display:grid; gap:7px; }
    .course { display:flex; align-items:center; width:100%; gap:11px; border:1px solid transparent; border-radius:12px; background:transparent; color:#d9e8e2; cursor:pointer; padding:11px; text-align:left; transition:.18s ease; }
    .course:hover { background:rgba(255,255,255,.07); }
    .course.active { border-color:rgba(241,201,107,.28); background:rgba(255,255,255,.11); color:#fff; }
    .course-dot { width:9px; height:9px; flex:none; border:2px solid #729187; border-radius:50%; }
    .course.active .course-dot { border-color:var(--gold); background:var(--gold); box-shadow:0 0 0 4px rgba(241,201,107,.12); }
    .course strong,.course small { display:block; }
    .course strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
    .course small { color:#8fada3; font-size:11px; }
    .sidebar-button { width:100%; margin-top:12px; border:1px dashed rgba(255,255,255,.19); border-radius:11px; background:transparent; color:#b7cec5; cursor:pointer; padding:10px; text-align:left; }
    .sidebar-button:hover { border-style:solid; background:rgba(255,255,255,.06); color:#fff; }
    .sidebar-button.manage { margin-top:7px; border-style:solid; }
    .side-footer { margin-top:auto; padding:18px 8px 0; }
    .signed-in { margin-bottom:9px; color:#8fada3; font-size:11px; }
    .sign-out { border:0; background:transparent; color:#b7cec5; cursor:pointer; padding:0; font-size:12px; }
    main { width:min(1220px,calc(100% - 64px)); margin:0 auto; padding:42px 0 72px; }
    .topline { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; }
    .breadcrumb,.eyebrow { color:var(--green-700); font-size:10px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
    h1 { margin:8px 0 11px; font:700 clamp(2.5rem,5vw,3.9rem)/.96 Georgia,serif; letter-spacing:-.05em; }
    h2 { margin:0; font:700 24px Georgia,serif; letter-spacing:-.03em; }
    .subtitle { max-width:600px; margin:0; color:var(--muted); font-size:16px; }
    .muted { color:var(--muted); font-size:13px; }
    .exam-chip { min-width:162px; border:1px solid #e8bf5d; border-radius:15px; background:linear-gradient(145deg,#f7d985,var(--gold)); padding:15px 18px; box-shadow:0 7px 20px rgba(124,89,13,.1); }
    .exam-chip span { display:block; color:#775917; font-size:10px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
    .exam-chip strong { display:block; margin-top:2px; font:700 23px Georgia,serif; }
    .course-summary { display:flex; flex-wrap:wrap; gap:9px 22px; margin:24px 0; color:var(--muted); font-size:12px; }
    .course-summary strong { color:var(--ink); font-weight:800; }
    [hidden] { display:none !important; }
    .continue-card { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:20px; border:1px solid #c7ded3; border-radius:18px; background:linear-gradient(115deg,#dfeee7,#f8fbf9 72%); padding:22px 24px; }
    .continue-card h2 { margin:4px 0 6px; font-size:28px; }
    .continue-card p { max-width:620px; margin:0; color:var(--muted); }
    .continue-actions { display:flex; flex:none; gap:8px; }
    .roadmap { display:grid; gap:10px; }
    .concept-map { overflow:hidden; border:1px solid #cfe1d7; border-radius:15px; background:linear-gradient(145deg,#f7fbf8,#edf6f1); padding:18px; }
    .concept-map-stage { position:relative; }
    .concept-map-core { position:relative; z-index:1; width:max-content; max-width:100%; margin:0 auto 22px; border:1px solid var(--green-700); border-radius:999px; background:var(--green-900); color:#fff; padding:8px 15px; text-align:center; font:700 16px Georgia,serif; box-shadow:0 7px 16px rgba(18,60,53,.16); }
    .concept-map-core span { display:block; margin-bottom:1px; color:#b9d9cd; font:800 8px/1 Inter,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
    .concept-map-branches { position:relative; display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; padding-top:16px; }
    .concept-map-branches::before { content:""; position:absolute; top:0; left:9%; right:9%; height:16px; border-top:1px solid #93bdae; border-left:1px solid #93bdae; border-right:1px solid #93bdae; }
    .concept-map-branch { position:relative; min-width:0; border:1px solid #d5e5dc; border-radius:12px; background:rgba(255,255,255,.86); padding:12px; }
    .concept-map-branch::before { content:""; position:absolute; top:-17px; left:50%; height:17px; border-left:1px solid #93bdae; }
    .concept-map-module { margin:0 0 9px; color:var(--ink); font:700 14px/1.18 Georgia,serif; }
    .concept-map-nodes { display:flex; flex-wrap:wrap; gap:6px; }
    .concept-map-node { border:1px solid #c7ded3; border-radius:999px; background:#f1f8f4; color:#286452; cursor:pointer; padding:5px 8px; font-size:10px; font-weight:760; text-align:left; transition:.16s ease; }
    .concept-map-node:hover { border-color:var(--green-700); background:#dcefe5; transform:translateY(-1px); }
    .concept-map-foot { display:flex; flex-wrap:wrap; gap:7px; margin-top:15px; color:var(--muted); font-size:11px; }
    .concept-map-link { border-radius:999px; background:rgba(255,255,255,.78); padding:5px 8px; }
    .concept-map-link b { color:var(--green-700); }
    .roadmap-progress { display:flex; align-items:center; gap:10px; min-width:170px; }
    .roadmap-progress .progress-track { min-width:90px; }
    .module-card { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:14px; align-items:start; border:1px solid var(--line); border-radius:13px; background:#fff; padding:16px; transition:.18s ease; }
    .module-card:hover { border-color:#b8d2c5; box-shadow:0 8px 24px rgba(24,49,40,.06); }
    .module-card.complete { background:#f3f8f5; }
    .module-number { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:var(--green-100); color:var(--green-700); font-size:11px; font-weight:850; }
    .module-card.complete .module-number { background:var(--green-700); color:#fff; }
    .module-content h3 { margin:0 0 4px; font:700 19px Georgia,serif; }
    .module-content p { margin:0; color:var(--muted); font-size:12px; }
    .concept-list { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
    .concept { border-radius:999px; background:var(--green-50); color:#37675a; padding:4px 8px; font-size:10px; font-weight:700; }
    .module-meta { margin-top:9px; color:#86948f; font-size:10px; }
    .module-actions { display:grid; justify-items:end; gap:8px; min-width:105px; }
    .complete-toggle { border:0; background:transparent; color:var(--muted); cursor:pointer; padding:0; font-size:10px; }
    .complete-toggle:hover { color:var(--green-700); }
    .workspace { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr); gap:20px; align-items:start; }
    .stack { display:grid; gap:20px; }
    .panel { border:1px solid var(--line); border-radius:18px; background:var(--panel); padding:23px; box-shadow:var(--shadow); }
    .panel.tutor { position:sticky; top:22px; max-height:calc(100vh - 44px); overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; border-color:#cde1d7; background:linear-gradient(160deg,#e9f5ef,#f8fbf9 70%); }
    .panel.tutor::-webkit-scrollbar { width:8px; }
    .panel.tutor::-webkit-scrollbar-thumb { border:2px solid transparent; border-radius:999px; background:#9ebcaf; background-clip:padding-box; }
    .panel.practice { border-color:#d5e5ea; background:linear-gradient(165deg,#eef6f9,#fff 70%); }
    .panel.exam-prep { border-color:#e6d9b7; background:linear-gradient(165deg,#fffaf0,#fff 72%); }
    .panel-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:18px; }
    .panel-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
    .library-details > summary { display:flex; align-items:center; width:max-content; list-style:none; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink); cursor:pointer; padding:9px 12px; font-size:13px; font-weight:700; user-select:none; }
    .library-details > summary::-webkit-details-marker { display:none; }
    .library-details > summary::before { content:'+'; display:inline-grid; place-items:center; width:16px; height:16px; margin-right:7px; border-radius:50%; background:var(--green-100); color:var(--green-700); font-size:14px; line-height:1; }
    .library-details[open] > summary::before { content:'−'; }
    .library-details > summary:hover { border-color:#a9cbbb; background:#f8fbf9; }
    .library-details > summary .collapse-label { display:none; }
    .library-details[open] > summary .expand-label { display:none; }
    .library-details[open] > summary .collapse-label { display:inline; }
    .library-content { margin-top:16px; }
    .primary,.secondary,.link,.mode { cursor:pointer; }
    .primary { border:0; border-radius:9px; background:var(--green-700); color:#fff; padding:10px 15px; font-weight:750; transition:.18s ease; }
    .primary:hover { background:var(--green-900); transform:translateY(-1px); }
    .secondary { border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink); padding:9px 12px; font-weight:700; }
    .link { border:0; background:transparent; color:var(--green-700); padding:0; font-size:12px; font-weight:750; text-decoration:none; }
    .link:hover { color:var(--green-900); text-decoration:underline; }
    .danger { color:var(--danger); }
    input,textarea,select { width:100%; border:1px solid #cbd8d1; border-radius:9px; background:rgba(255,255,255,.9); color:var(--ink); padding:10px 12px; }
    textarea { min-height:98px; resize:vertical; }
    label { display:block; margin:14px 0 6px; color:var(--muted); font-size:10px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
    .material-toolbar { display:flex; gap:10px; margin-bottom:6px; }
    .search-wrap { position:relative; flex:1; }
    .search-wrap input { padding-left:12px; }
    .materials-list { min-height:120px; }
    .material { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:16px; border-top:1px solid var(--line); padding:14px 2px; }
    .material:first-child { border-top:0; }
    .material-main { min-width:0; }
    .material-name { display:flex; align-items:center; gap:9px; font-weight:780; }
    .file-icon { display:grid; place-items:center; width:29px; height:27px; flex:none; border-radius:8px; background:var(--green-100); color:var(--green-700); font-size:9px; font-weight:850; }
    .material small { display:block; overflow:hidden; margin:4px 0 0 38px; color:var(--muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
    .material-actions { display:flex; align-items:center; gap:11px; }
    .empty-state { padding:34px 18px; border:1px dashed #cbd8d1; border-radius:12px; color:var(--muted); text-align:center; }
    .empty-state strong { display:block; margin-bottom:4px; color:var(--ink); }
    .loading-row { height:58px; margin:10px 0; border-radius:10px; background:linear-gradient(90deg,#eef2ee 25%,#fafcfa 50%,#eef2ee 75%); background-size:200% 100%; animation:shimmer 1.2s infinite; }
    @keyframes shimmer { to { background-position:-200% 0; } }
    .drawer { display:none; margin-top:18px; border-top:1px solid var(--line); padding-top:18px; }
    .drawer.visible { display:block; }
    .drawer-actions { display:flex; align-items:center; gap:12px; margin-top:12px; }
    .status { min-height:20px; margin:9px 0 0; color:var(--muted); font-size:12px; }
    .mode-row { display:flex; flex-wrap:wrap; gap:7px; margin:14px 0; }
    .mode { border:1px solid #b9d4c6; border-radius:999px; background:rgba(255,255,255,.65); color:var(--green-700); padding:7px 11px; font-size:11px; font-weight:780; }
    .mode.active { border-color:var(--green-700); background:var(--green-700); color:#fff; }
    .quick-prompts { display:grid; gap:7px; margin:12px 0 14px; }
    .quick-prompt { border:1px solid rgba(34,106,89,.16); border-radius:9px; background:rgba(255,255,255,.45); color:#31584c; cursor:pointer; padding:9px 10px; text-align:left; font-size:12px; }
    .quick-prompt:hover { border-color:var(--green-700); background:#fff; }
    .ask-button { width:100%; margin-top:10px; }
    .answer { min-height:90px; margin-top:16px; border:1px solid rgba(34,106,89,.12); border-radius:11px; background:rgba(255,255,255,.72); padding:15px; white-space:pre-wrap; }
    .answer p { margin:0 0 12px; white-space:pre-wrap; }
    .answer p:last-child { margin-bottom:0; }
    .answer-table-wrap { overflow-x:auto; margin:12px 0; border:1px solid rgba(34,106,89,.16); border-radius:9px; }
    .answer-table { width:100%; min-width:460px; border-collapse:collapse; font-size:14px; white-space:normal; }
    .answer-table th,.answer-table td { padding:10px 12px; border-bottom:1px solid rgba(34,106,89,.13); text-align:left; vertical-align:top; }
    .answer-table th { background:var(--cream); color:var(--ink); font-weight:800; }
    .answer-table tr:last-child td { border-bottom:0; }
    .answer.loading { color:var(--muted); }
    .answer-actions { display:none; justify-content:flex-end; margin-top:8px; }
    .answer-actions.visible { display:flex; }
    .source { margin-top:11px; border-top:1px solid #cfe0d7; padding-top:10px; color:var(--muted); font-size:11px; }
    .source b { color:var(--green-700); }
    .quiz-controls { display:grid; grid-template-columns:1fr 1.5fr 90px; gap:11px; margin:17px 0; }
    .quiz-controls label { margin-top:0; }
    .study-plan { display:grid; gap:10px; }
    .prep-empty { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:18px; border:1px dashed #d9cda9; border-radius:13px; background:rgba(255,255,255,.58); padding:18px; }
    .prep-empty strong { display:block; margin-bottom:4px; font:700 17px Georgia,serif; }
    .prep-empty p { margin:0; color:var(--muted); font-size:12px; }
    .plan-dashboard { display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid #e7d8b8; border-radius:12px; background:#fff9ed; padding:13px 14px; }
    .plan-dashboard strong { display:block; font-size:13px; }
    .plan-dashboard span { display:block; margin-top:2px; color:var(--muted); font-size:11px; }
    .plan-dashboard-actions { display:flex; align-items:center; gap:10px; flex:none; }
    .plan-progress { width:110px; }
    .plan-session { border:1px solid #eadfc8; border-radius:12px; background:rgba(255,255,255,.78); overflow:hidden; }
    .plan-session[open] { border-color:#d9be79; box-shadow:0 8px 22px rgba(100,77,21,.07); }
    .plan-session > summary { display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:12px; cursor:pointer; list-style:none; padding:14px; }
    .plan-session > summary::-webkit-details-marker { display:none; }
    .plan-session > summary::after { content:'+'; color:#8d731f; font-size:18px; font-weight:400; }
    .plan-session[open] > summary::after { content:'−'; }
    .plan-session.complete > summary { background:#f5faf6; }
    .plan-session.current > summary { background:#fff7df; }
    .plan-session-title { min-width:0; }
    .plan-session-title strong { display:block; overflow:hidden; font:700 16px Georgia,serif; text-overflow:ellipsis; white-space:nowrap; }
    .plan-session-title span { display:block; margin-top:2px; color:var(--muted); font-size:10px; }
    .plan-status { border-radius:999px; background:#f3e2a9; color:#795b10; padding:4px 7px; font-size:9px; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
    .plan-status.done { background:#dbeee1; color:var(--green-700); }
    .plan-session-body { padding:0 14px 14px 60px; }
    .plan-number { display:grid; place-items:center; width:31px; height:31px; border-radius:9px; background:#f7df9b; color:#775917; font-size:11px; font-weight:850; }
    .plan-session.complete .plan-number { background:#dbeee1; color:var(--green-700); }
    .plan-session p { margin:0; color:var(--muted); font-size:12px; }
    .plan-tasks { display:grid; gap:5px; margin:10px 0 8px; padding:0; list-style:none; }
    .plan-tasks li { display:flex; align-items:flex-start; gap:8px; }
    .plan-tasks label { display:flex; flex:1; align-items:flex-start; gap:8px; margin:0; color:var(--ink); font-size:12px; font-weight:500; letter-spacing:normal; text-transform:none; }
    .plan-tasks input { width:15px; height:15px; flex:none; margin:1px 0 0; accent-color:var(--green-700); padding:0; }
    .plan-tasks input:checked + span { color:var(--muted); text-decoration:line-through; }
    .plan-task-help { flex:none; margin-top:1px; font-size:10px; }
    .plan-coach-note { margin:10px 0 0; color:var(--green-700); font-size:11px; font-weight:700; }
    .plan-sources { color:#8a8272; font-size:10px; }
    .plan-session-actions { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:11px; }
    .plan-session-actions .complete-toggle { color:var(--green-700); font-weight:750; }
    .quiz-progress { display:none; align-items:center; gap:10px; margin:13px 0; }
    .quiz-progress.visible { display:flex; }
    .progress-track { height:7px; flex:1; overflow:hidden; border-radius:99px; background:#dbe7e9; }
    .progress-bar { width:0; height:100%; border-radius:99px; background:var(--green-700); transition:width .25s; }
    .progress-label { min-width:90px; color:var(--muted); font-size:11px; text-align:right; }
    .quiz-summary { margin:10px 0; color:var(--muted); font-size:11px; text-transform:capitalize; }
    .quiz-card { margin-top:11px; border:1px solid #dce8eb; border-radius:12px; background:rgba(255,255,255,.78); padding:15px; }
    .quiz-card p { margin:0 0 12px; font-weight:750; }
    .quiz-answer { display:none; margin-top:10px; color:var(--green-700); font-size:12px; }
    .quiz-answer.visible { display:block; }
    .quiz-choice { display:block; width:100%; margin:7px 0; border:1px solid #d4e0dc; border-radius:8px; background:#fff; color:var(--ink); cursor:pointer; padding:10px 12px; text-align:left; }
    .quiz-choice:hover:not(:disabled) { border-color:var(--green-700); }
    .quiz-choice.correct { border-color:var(--green-700); background:#e3f1e9; }
    .quiz-choice.incorrect { border-color:var(--danger); background:#fae9e4; }
    .quiz-choice:disabled { cursor:default; opacity:1; }
    .auth-screen { display:grid; place-items:center; min-height:100vh; padding:24px; background:radial-gradient(circle at 70% 10%,#285b50,transparent 37%),var(--green-950); }
    .auth-card { width:min(430px,100%); border:1px solid rgba(255,255,255,.16); border-radius:22px; background:#fff; padding:34px; box-shadow:0 30px 80px rgba(0,0,0,.25); }
    .auth-card h1 { margin-bottom:12px; font-size:44px; }
    .auth-card input { margin-bottom:10px; }
    .auth-card .primary { width:100%; margin-top:6px; }
    .google-login { display:flex; align-items:center; justify-content:center; width:100%; gap:9px; border:1px solid #cbd8d1; border-radius:9px; background:#fff; color:var(--ink); cursor:pointer; padding:10px 15px; font-weight:750; }
    .google-login:hover { border-color:#a9cbbb; background:#f8fbf9; }
    .google-g { display:grid; place-items:center; width:18px; height:18px; border-radius:50%; background:conic-gradient(from -45deg,#4285f4 0 25%,#34a853 0 50%,#fbbc05 0 75%,#ea4335 0); color:#fff; font-size:11px; font-weight:850; }
    .auth-divider { display:flex; align-items:center; gap:10px; margin:15px 0; color:#8c9893; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
    .auth-divider::before,.auth-divider::after { content:''; height:1px; flex:1; background:var(--line); }
    .auth-toggle { margin-top:16px; text-align:center; }
    .auth-error { min-height:20px; margin-top:9px; color:var(--danger); font-size:12px; }
    .demo-note { margin:18px 0 0; color:var(--muted); font-size:11px; text-align:center; }
    .toast { position:fixed; right:24px; bottom:24px; z-index:20; max-width:min(360px,calc(100% - 32px)); border-radius:11px; background:var(--green-950); color:#fff; padding:12px 16px; box-shadow:0 15px 50px rgba(0,0,0,.22); opacity:0; pointer-events:none; transform:translateY(12px); transition:.22s; }
    .toast.visible { opacity:1; transform:translateY(0); }
    /* Focused workspace refresh */
    :root { --paper:#f7f7f4; --panel:#fff; --line:#e8e9e4; --green-950:#173b35; --green-900:#204e43; --green-700:#387661; --green-100:#e8f2ed; --green-50:#f3f8f5; --muted:#75817b; --shadow:0 8px 28px rgba(32,57,47,.045); }
    body { background:#f7f7f4; color:#202b27; }
    .shell { grid-template-columns:244px minmax(0,1fr); }
    aside { z-index:4; padding:28px 15px 20px; background:#fbfbf9; color:#23312b; border-right:1px solid #e9eae5; }
    .brand { margin:0 9px 34px; color:#1b332b; font-size:18px; }
    .brand-mark { background:#d8e9de; color:#276448; border-radius:11px; }
    .primary-nav { display:grid; gap:4px; margin-bottom:30px; }
    .view-link { display:flex; align-items:center; gap:12px; width:100%; border:0; border-radius:10px; background:transparent; color:#62716a; cursor:pointer; padding:10px 12px; text-align:left; font-size:13px; font-weight:650; transition:.15s; }
    .view-link .view-icon { width:18px; color:#788a80; text-align:center; font-size:16px; }
    .view-link:hover { background:#f0f3ef; color:#284b3a; }
    .view-link.active { background:#e8f1eb; color:#24573e; }
    .view-link.active .view-icon { color:#34744d; }
    .side-label { margin:0 11px 9px; color:#9aa39d; font-size:9px; letter-spacing:.14em; }
    #course-list { gap:4px; }
    .course { color:#63716b; padding:9px 10px; }
    .course:hover { background:#f0f3ef; }
    .course.active { border-color:transparent; background:#f0f3ef; color:#203d30; }
    .course.active .course-dot { border-color:#4d8967; background:#4d8967; box-shadow:0 0 0 3px rgba(77,137,103,.11); }
    .course small { color:#98a29c; }
    .sidebar-button { margin-top:7px; border-color:#d8e2db; color:#60726a; }
    .side-footer { padding:18px 9px 0; }
    .signed-in { color:#87948d; }
    .sign-out { color:#64726a; }
    main { width:min(1280px,calc(100% - 88px)); padding:42px 0 72px; }
    .topline { align-items:center; margin-bottom:25px; }
    .breadcrumb { color:#829087; font-size:9px; }
    h1 { margin:7px 0 7px; color:#1d2b25; font-size:clamp(2.25rem,4vw,3rem); letter-spacing:-.055em; }
    .subtitle { color:#77827b; font-size:14px; }
    .exam-chip { min-width:150px; border:1px solid #e5e9e1; border-radius:13px; background:#fff; box-shadow:none; padding:12px 15px; }
    .exam-chip span { color:#849087; font-size:9px; }
    .exam-chip strong { color:#254b38; font-size:20px; }
    .course-summary { gap:8px 20px; margin:0 0 20px; color:#8a948e; font-size:11px; }
    .course-summary strong { color:#41594b; }
    .overview-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(270px,.9fr); gap:16px; margin-bottom:16px; }
    .focus-panel { display:grid; grid-template-columns:minmax(0,1fr) 245px; align-items:stretch; gap:28px; min-height:0; padding:25px 27px; background:linear-gradient(135deg,#edf4ee,#fbfcf9 72%); }
    .focus-panel h2 { max-width:600px; margin:10px 0 7px; font-size:28px; line-height:1.12; }
    .focus-panel p { max-width:650px; margin:0; color:#738078; font-size:13px; }
    .recommendation-signal { display:flex; align-items:center; gap:7px; margin-top:8px; color:#4d7c61; font-size:11px; font-weight:750; }
    .recommendation-signal::before { content:'✦'; display:grid; place-items:center; width:18px; height:18px; border-radius:50%; background:#dceee2; color:#327052; font-size:11px; }
    .focus-reason { margin-top:10px !important; color:#50645a !important; font-size:12px !important; line-height:1.55; }
    .focus-actions { display:flex; align-items:center; gap:12px; margin-top:20px; }
    .focus-side { display:flex; flex-direction:column; justify-content:space-between; border-left:1px solid #d9e8df; padding-left:22px; }
    .focus-side strong { display:block; margin:4px 0; color:#315742; font:700 25px Georgia,serif; }
    .focus-side p { font-size:11px; }
    .focus-progress { display:flex; align-items:center; gap:11px; margin-top:16px; color:#87928b; font-size:10px; }
    .focus-progress .progress-track { flex:1; }
    .refresh-recommendation { align-self:flex-start; margin-top:16px; }
    .overview-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding:17px 20px; }
    .overview-stat span,.overview-stat strong { display:block; }
    .overview-stat span { margin-bottom:4px; color:#8b958f; font-size:9px; }
    .overview-stat strong { color:#31483b; font:700 18px Georgia,serif; }
    .overview-stats > button { grid-column:1/-1; width:100%; border:0; border-top:1px solid #eff0ec; border-radius:0; background:transparent; color:#397054; padding:12px 0 0; text-align:left; font-size:11px; }
    .updates-panel { padding:18px 20px; }
    .updates-panel .panel-head { margin-bottom:8px; }
    .updates-panel h2 { font-size:19px; }
    .activity-feed { display:grid; gap:0; }
    .activity-item { display:grid; grid-template-columns:28px minmax(0,1fr); gap:10px; padding:10px 0; border-top:1px solid #f0f1ed; }
    .activity-icon { display:grid; place-items:center; width:27px; height:27px; border-radius:9px; background:#edf4ef; color:#47795a; font-size:12px; }
    .activity-copy strong,.activity-copy span { display:block; }
    .activity-copy strong { color:#38483f; font-size:11px; }
    .activity-copy span { margin-top:2px; color:#929b95; font-size:9px; }
    .continue-card { display:none !important; margin:0 0 18px; border:1px solid #e1e9e1; border-radius:15px; background:#fff; padding:19px 21px; box-shadow:var(--shadow); }
    .continue-card h2 { margin:4px 0; font-size:21px; }
    .continue-card p { color:#7c8880; font-size:12px; }
    .workspace { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(410px,.88fr); gap:20px; align-items:start; }
    /* The right grid track exists only for the Tutor.  Keeping it on the other
       views left a blank column and made their panels look detached from the page. */
    .workspace:not(.tutor-view) { grid-template-columns:minmax(0,1fr); }
    .workspace.tutor-view { grid-template-columns:minmax(0,1fr); }
    .workspace.tutor-view .stack { display:none; }
    .stack { display:grid; gap:16px; }
    .panel { border-color:#e8e9e4; border-radius:14px; box-shadow:var(--shadow); padding:22px; }
    .panel-head { margin-bottom:16px; }
    .panel-head h2 { color:#23352b; font-size:21px; }
    .panel-head .muted { margin-top:4px; font-size:11px; }
    .eyebrow { color:#738a79; font-size:9px; }
    .exam-prep,.practice { margin-top:16px; }
    .panel.tutor { position:sticky; top:18px; display:flex; flex-direction:column; min-width:0; height:calc(100vh - 36px); max-height:calc(100vh - 36px); overflow:hidden; scrollbar-gutter:auto; }
    .workspace.tutor-view .panel.tutor { position:static; width:min(100%,1320px); height:auto; min-height:0; max-height:none; margin:0 auto; overflow:visible; }
    .tutor-head-actions { display:flex; align-items:center; gap:14px; }
    .tutor-head-actions .secondary { padding:8px 11px; font-size:11px; }
    .tutor-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:18px; flex:1; min-height:0; }
    .conversation-sidebar { position:static; height:auto; overflow:visible; border-right:1px solid #eef0ec; background:transparent; color:inherit; padding:3px 15px 0 0; }
    .conversation-sidebar-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:3px 0 10px; }
    .conversation-sidebar-head .eyebrow { display:block; }
    .conversation-sidebar-head .secondary { flex:none; padding:7px 9px; font-size:11px; }
    .conversation-list { display:grid; gap:4px; }
    .conversation-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:3px; border-radius:9px; }
    .conversation-item { width:100%; overflow:visible; border:0; border-radius:9px; background:transparent; color:#78847c; cursor:pointer; padding:10px 8px 10px 11px; text-align:left; text-overflow:clip; white-space:normal; overflow-wrap:anywhere; font-size:10px; line-height:1.35; }
    .conversation-item:hover,.conversation-row:focus-within .conversation-item { background:#f5f7f4; }
    .conversation-item.active { background:#edf3ee; color:#315e42; font-weight:700; }
    .conversation-delete { width:28px; height:28px; margin:4px 3px 0 0; border:0; border-radius:7px; background:transparent; color:#94a099; cursor:pointer; font-size:17px; line-height:1; }
    .conversation-delete:hover { background:#f7e9e5; color:#a53c2d; }
    .conversation-row.confirming { grid-template-columns:1fr; border:1px solid #ecd6cf; background:#fff8f5; padding:5px; }
    .conversation-row.confirming .conversation-item { padding:6px; }
    .conversation-delete-confirm { display:flex; align-items:center; flex-wrap:wrap; gap:6px; padding:2px 1px 1px; color:#79594e; font-size:10px; font-weight:700; }
    .conversation-confirm-delete,.conversation-cancel-delete { border:0; border-radius:6px; cursor:pointer; padding:5px 7px; font:700 10px/1 Inter,ui-sans-serif,sans-serif; }
    .conversation-confirm-delete { background:#a53c2d; color:#fff; }
    .conversation-cancel-delete { background:#f1eee9; color:#66756f; }
    .tutor-main { display:flex; flex-direction:column; min-width:0; }
    .mode-row { gap:5px; margin:0 0 9px; }
    .mode-row .mode { border-color:#e8ebe6; color:#738078; padding:7px 10px; font-size:10px; }
    .mode-row .mode.active { border-color:#d9e8dc; background:#edf5ef; color:#37684a; }
    .mode-row .link { font-size:10px; }
    .quick-prompts { gap:6px; margin:0 0 14px; }
    .quick-prompt { border-color:#e7ebe5; background:#fafbf9; color:#66776b; padding:7px 10px; font-size:10px; }
    .conversation-thread { display:flex; flex:1; flex-direction:column; gap:13px; min-height:0; max-height:none; overflow-y:auto; border:1px solid #eff0ec; border-radius:12px; background:#fcfcfa; padding:17px; }
    .workspace.tutor-view .tutor-layout { align-items:start; }
    .workspace.tutor-view .conversation-thread { flex:none; min-height:360px; max-height:none; overflow:visible; }
    .chat-message { max-width:min(88%,680px); }
    .chat-message.user { align-self:flex-end; }
    .chat-message.assistant { align-self:flex-start; }
    .chat-role { margin:0 0 4px 3px; color:#97a098; font-size:9px; }
    .chat-bubble { border:1px solid #e8ebe6; border-radius:12px 12px 12px 3px; background:#fff; color:#3e4a42; padding:11px 13px; font-size:12px; line-height:1.65; white-space:pre-wrap; }
    .chat-message.user .chat-role { text-align:right; }
    .chat-message.user .chat-bubble { border-color:#dcebe0; border-radius:12px 12px 3px 12px; background:#edf5ef; color:#35533f; }
    .chat-sources { margin-top:6px; color:#929b95; font-size:9px; }
    .chat-empty { display:grid; flex:1; align-content:center; justify-items:center; padding:26px; color:#87928a; text-align:center; }
    .chat-empty strong { margin-bottom:5px; color:#415649; font:700 17px Georgia,serif; }
    .chat-empty span { font-size:11px; }
    #ask-form { flex:none; margin-top:12px; }
    #ask-form label { display:none; }
    .composer { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:stretch; gap:9px; border:1px solid #e3e8e2; border-radius:12px; background:#fff; padding:7px; }
    .composer textarea { width:100%; min-width:0; min-height:64px; max-height:160px; resize:vertical; overflow-y:auto; margin:0; border:0; box-shadow:none; }
    .composer textarea:focus { outline:0; }
    .composer .ask-button { width:auto; min-width:96px; min-height:64px; align-self:stretch; flex:none; white-space:nowrap; margin:0; padding:10px 16px; font-size:11px; }
    [data-view][hidden] { display:none !important; }
    .google-login { border-radius:10px; }
    /* Readability pass: raise the interface's small text to comfortable reading sizes. */
    body { font-size:17px; line-height:1.6; }
    .view-link { font-size:15px; }
    .view-link span { font-size:19px; }
    .side-label { font-size:11px; }
    .course strong { font-size:15px; }
    .course small { font-size:13px; }
    .sidebar-button { font-size:14px; }
    .sign-out { font-size:14px; }
    main { font-size:16px; }
    .breadcrumb { font-size:11px; }
    .subtitle { font-size:17px; }
    .exam-chip span { font-size:11px; }
    .exam-chip strong { font-size:22px; }
    .course-summary { font-size:14px; }
    .eyebrow { font-size:11px; }
    .panel-head .muted,.muted { font-size:14px; }
    .panel-head h2 { font-size:23px; }
    .focus-panel p { font-size:16px; line-height:1.65; }
    .focus-progress { font-size:13px; }
    .overview-stat span { font-size:12px; }
    .overview-stat strong { font-size:22px; }
    .overview-stats > button { font-size:14px; }
    .updates-panel h2 { font-size:21px; }
    .activity-copy strong { font-size:14px; }
    .activity-copy span { font-size:12px; }
    .tutor-head-actions .secondary { font-size:14px; }
    .conversation-sidebar .eyebrow { font-size:11px; }
    .conversation-sidebar-head .secondary { font-size:12px; }
    .conversation-item { font-size:13px; }
    .mode-row .mode { font-size:14px; }
    .mode-row .link { font-size:13px; }
    .quick-prompt { font-size:14px; line-height:1.5; }
    .chat-role { font-size:12px; }
    .chat-bubble { font-size:16px; line-height:1.7; }
    .chat-sources { font-size:12px; }
    .chat-empty strong { font-size:20px; }
    .chat-empty span { font-size:14px; }
    .composer textarea { font-size:16px; }
    .composer .ask-button { font-size:14px; }
    .source,.answer,.module-meta,.material-main small { font-size:14px; }
    .module-card h3 { font-size:19px; }
    .module-card p { font-size:15px; }
    .material-name { font-size:15px; }
    .material-actions .link { font-size:13px; }
    .quiz-choice,.quiz-answer,.quiz-summary { font-size:15px; }
    .plan-session-title strong { font-size:16px; }
    .plan-session-body { font-size:15px; }
    @media (max-width:1400px) {
      .overview-grid { grid-template-columns:1fr; }
      .focus-panel { grid-row:auto; }
    }
    @media (max-width:980px) {
      .shell { grid-template-columns:210px minmax(0,1fr); }
      main { width:calc(100% - 40px); min-width:0; padding:32px 0 56px; }
      .overview-grid { grid-template-columns:1fr; }
      .focus-panel { grid-row:auto; }
      .workspace { display:block; }
      .panel.tutor { position:static; grid-row:auto; height:auto; max-height:none; overflow:visible; }
      .workspace.tutor-view .panel.tutor { height:auto; min-height:0; }
      .workspace.tutor-view .tutor-layout { min-height:440px; }
      .workspace.tutor-view .conversation-thread { min-height:360px; max-height:none; overflow:visible; }
    }
    @media (max-width:760px) {
      .shell { display:block; } aside { position:static; height:auto; padding:13px 14px 9px; } .brand { margin:0 3px 10px; } .side-label { display:none; }
      .primary-nav { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:3px; margin:0 0 9px; }
      .view-link { justify-content:center; min-width:0; min-height:40px; gap:0; padding:8px 4px; font-size:clamp(10px,2.8vw,12px); white-space:nowrap; }
      .view-link .view-icon,.nav-label-desktop { display:none; }
      .nav-label-mobile { display:inline !important; }
      #course-list { display:flex; gap:7px; overflow-x:auto; scroll-snap-type:x proximity; padding-bottom:5px; } .course { width:auto; min-width:150px; scroll-snap-align:start; } .sidebar-button { width:auto; margin:8px 4px 0; }
      .side-footer { position:absolute; top:20px; right:17px; margin:0; padding:0; } .signed-in { display:none; }
      main { width:min(100% - 28px,720px); padding:24px 0 50px; } .topline { display:block; } .exam-chip { width:max-content; margin-top:15px; }
      .overview-grid { grid-template-columns:1fr; } .focus-panel { grid-template-columns:1fr; min-height:0; padding:21px; } .focus-side { border-top:1px solid #d9e8df; border-left:0; margin-top:20px; padding:16px 0 0; } .focus-progress { margin-top:12px; }
      .tutor-layout { grid-template-columns:1fr; gap:12px; } .conversation-sidebar { order:2; border-right:0; border-top:1px solid #eef0ec; padding:13px 0 0; } .conversation-list { display:flex; overflow-x:auto; } .conversation-row { width:165px; flex:none; } .conversation-item { width:auto; }
      .conversation-thread { min-height:280px; max-height:55vh; } .tutor-head-actions { align-items:flex-end; flex-direction:column; gap:7px; } .tutor-head-actions .eyebrow { font-size:8px; }
      .continue-card { align-items:flex-start; flex-direction:column; } .continue-actions { width:100%; } .continue-actions button { flex:1; } .panel { padding:18px; } .panel-head { gap:12px; } .panel-actions { gap:6px; }
      .module-card { grid-template-columns:36px minmax(0,1fr); } .module-actions { grid-column:2; display:flex; justify-items:start; } .concept-map-branches { grid-template-columns:1fr; padding-top:0; } .concept-map-branches::before,.concept-map-branch::before { display:none; }
      .material { grid-template-columns:1fr; gap:9px; } .material-actions { margin-left:38px; } .material-toolbar { flex-direction:column; } .prep-empty { grid-template-columns:1fr; } .plan-dashboard { align-items:flex-start; flex-direction:column; } .plan-session > summary { grid-template-columns:34px minmax(0,1fr); } .plan-session > summary::after { display:none; } .plan-status { width:max-content; grid-column:2; } .plan-session-body { padding-left:14px; }
    }
    @media (max-width:360px) {
      .panel-head { flex-wrap:wrap; }
      .roadmap-progress { width:100%; min-width:0; }
    }
