.learning-page,.learning-reader{max-width:1120px;margin:0 auto;padding:32px}.learning-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:36px;border-radius:22px;background:linear-gradient(135deg,#edf4ff,#f8fbff);border:1px solid #dbe7f7}.learning-hero span{font-size:12px;letter-spacing:.14em;color:var(--primary)}.learning-hero h1{margin:8px 0;font-size:30px}.learning-hero p{margin:0;color:var(--muted)}.learning-current,.learning-history{margin-top:24px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px}.learning-card-heading,.learning-card-heading>div,.learning-history h2{display:flex;align-items:center;gap:12px}.learning-card-heading{justify-content:space-between}.learning-card-heading h2,.learning-card-heading p{margin:0}.learning-card-heading p{color:var(--muted);font-size:13px}.learning-status{padding:6px 10px;border-radius:999px;font-size:12px;background:#eef2f7}.learning-status.active{color:#087b45;background:#e9f8f0}.learning-status.failed{background:#fff0f0}.learning-empty,.learning-progress{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;min-height:180px;text-align:center;color:var(--muted)}.learning-timeline{margin-top:24px;grid-gap:10px;gap:10px}.learning-day{display:grid;grid-template-columns:74px 1fr auto;align-items:center;grid-gap:16px;gap:16px;padding:18px;border:1px solid var(--line);border-radius:14px;color:inherit;text-decoration:none}.learning-day p{margin:4px 0 0;color:var(--muted)}.learning-day em{font-style:normal;color:var(--primary)}.learning-day.locked{opacity:.48;pointer-events:none}.learning-day.completed{background:#f4fbf7}.learning-history article{display:flex;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line)}.learning-modal{position:fixed;inset:0;z-index:1000;background:rgba(15,23,42,.42);display:grid;place-items:center;padding:20px}.learning-modal-card{width:min(620px,100%);background:white;border-radius:18px;padding:24px;box-shadow:0 24px 70px rgba(0,0,0,.2)}.learning-modal-card label{display:grid;grid-gap:8px;gap:8px;margin:16px 0;font-size:14px}.learning-modal-card textarea{min-height:72px;resize:vertical}.learning-modal-card input,.learning-modal-card textarea{border:1px solid var(--line);border-radius:10px;padding:10px;background:#ffffff;color:var(--text);font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.learning-time-picker{position:relative;width:100%}.learning-time-trigger{width:100%;height:40px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:#ffffff;border:1px solid var(--line);border-radius:10px;color:var(--text);font-size:13px;font-weight:500;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.learning-time-trigger.open,.learning-time-trigger:hover{border-color:var(--primary);box-shadow:0 0 0 3px rgba(21,93,252,.08)}.learning-time-value{display:flex;align-items:center;gap:8px}.learning-time-icon{color:var(--muted);flex-shrink:0}.learning-time-trigger.open .learning-time-icon{color:var(--primary)}.learning-time-arrow{color:var(--muted);transition:transform .2s ease,color .15s ease;flex-shrink:0}.learning-time-arrow.open{transform:rotate(180deg);color:var(--primary)}.learning-time-panel{position:absolute;top:calc(100% + 6px);left:0;width:190px;background:#ffffff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 36px rgba(15,23,42,.16);z-index:1100;padding:10px 12px}.learning-time-header{display:grid;grid-template-columns:1fr 1fr;padding:4px 0 6px;border-bottom:1px solid var(--line);text-align:center;font-size:12px;font-weight:600;color:var(--muted)}.learning-time-columns{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;height:190px;padding-top:6px}.learning-time-column{overflow-y:auto;display:flex;flex-direction:column;gap:4px;scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;touch-action:pan-y}.learning-time-column::-webkit-scrollbar{display:none;width:0;height:0}.learning-time-cell{width:100%;height:34px;padding:4px 0;display:flex;align-items:center;justify-content:center;border:0;border-radius:8px;background:transparent;color:var(--text);font-size:13.5px;font-weight:500;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s ease,color .15s ease}.learning-time-cell:hover:not(.active){background:#f1f5f9}.learning-time-cell.active{background:var(--primary);color:#ffffff;font-weight:600;box-shadow:0 2px 6px rgba(21,93,252,.25)}.learning-smart{border:0;background:transparent;color:var(--primary);display:flex;gap:6px;align-items:center}.learning-duration{display:flex;gap:8px;flex-wrap:wrap}.learning-duration button{padding:8px 12px;border:1px solid var(--line);background:white;border-radius:10px}.learning-duration button.active{border-color:var(--primary);color:var(--primary);background:#edf2fe}.learning-duration input{width:90px}.learning-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.learning-reader-meta{display:flex;justify-content:space-between;margin-bottom:12px;color:var(--muted)}.learning-frame{width:100%;min-height:70vh;background:white}.learning-exercise,.learning-frame{border:1px solid var(--line);border-radius:16px}.learning-exercise{margin-top:20px;padding:24px}.learning-exercise fieldset{display:grid;grid-gap:10px;gap:10px;margin:14px 0;padding:14px;border:1px solid var(--line);border-radius:10px}.learning-exercise legend{padding:0 6px;font-weight:600}.learning-exercise fieldset label{display:flex;align-items:center;gap:8px}.learning-exercise textarea{min-height:72px;padding:10px;border:1px solid var(--line);border-radius:8px;resize:vertical}.learning-exercise .button{margin-top:10px}@media(max-width:720px){.learning-page,.learning-reader{padding:18px}.learning-hero{align-items:flex-start;flex-direction:column}.learning-day{grid-template-columns:60px 1fr}.learning-day em{grid-column:2}.learning-card-heading{align-items:flex-start}.learning-frame{min-height:60vh}}.learning-card-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.learning-abandon-button,.learning-redownload-button,.learning-repair-button{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 10px;cursor:pointer}.learning-redownload-button{border:1px solid var(--line);background:var(--surface);color:var(--primary)}.learning-redownload-button:hover:not(:disabled){border-color:var(--primary);background:#edf2fe}.learning-redownload-button:disabled,.learning-repair-button:disabled{cursor:wait;opacity:.65}.learning-repair-button{border:1px solid #efcda9;background:#fffaf4;color:#b96b20}.learning-repair-button:hover:not(:disabled){border-color:#e3b285;background:#fff3e6}.learning-abandon-button{border:1px solid #e8c9c9;background:#fffafa;color:#a04444}.learning-abandon-button:hover{border-color:#dbaaaa;background:#fff1f1}.learning-confirm-card{width:min(440px,100%)}.learning-confirm-card p{color:var(--muted);line-height:1.7}.learning-generation-confirm-modal{z-index:1010}.learning-points-check{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:9px 18px;gap:9px 18px;margin-top:18px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#f7f9fc;color:var(--muted);font-size:13px}.learning-points-check strong{color:var(--text);font-size:14px}.learning-generation-failed{margin-top:18px;padding:24px;border:1px solid #f0d8bf;border-radius:14px;background:#fffaf4;min-height:160px}.learning-generation-failed>svg{color:#b96b20}.learning-generation-failed .learning-actions{margin-top:2px;flex-wrap:wrap;justify-content:center}.learning-actions .button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.learning-login-required{display:flex;align-items:center;justify-content:center;gap:18px;min-height:170px;margin-top:24px;padding:28px;border:1px solid var(--line);border-radius:18px;background:var(--surface);text-align:left}.learning-login-required>svg{flex:0 0 auto;width:32px;height:32px;color:var(--primary)}.learning-login-required>div{min-width:0;flex:1 1}.learning-login-required h2{margin:0 0 6px;color:var(--text);font-size:18px}.learning-login-required p{margin:0;color:var(--muted);line-height:1.7}.learning-login-required .button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none}.learning-reader-login-required{min-height:260px;margin-top:0}@media(max-width:720px){.learning-login-required{align-items:flex-start;flex-direction:column;text-align:left}.learning-login-required .button{width:100%}}.learning-format-failure{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:12px;gap:12px;margin-top:18px;padding:18px;border:1px solid #efcda9;border-radius:14px;background:#fffaf4;color:#744416}.learning-format-failure>svg{margin-top:2px;color:#b96b20}.learning-format-failure strong{display:block;color:#7a4315}.learning-format-failure p{margin:6px 0;color:#8a5c32}.learning-format-failure ul{max-height:180px;margin:10px 0 14px;padding:8px 12px;overflow-y:auto;border-radius:10px;background:rgba(255,255,255,.68);list-style:none}.learning-format-failure li{display:grid;grid-template-columns:minmax(120px,auto) 1fr;grid-gap:10px;gap:10px;padding:5px 0;font-size:12px}.learning-format-failure code{color:#8b4513}.learning-format-failure .button{display:inline-flex;align-items:center;gap:6px}.learning-failure-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.learning-failure-actions .button.secondary{border:1px solid #e6d3bc;background:transparent;color:#8a5c32}.learning-failure-actions .button.secondary:hover:not(:disabled){border-color:#d8b98f;background:rgba(255,255,255,.5)}.learning-failure-actions .button:disabled{opacity:.65;cursor:wait}.learning-format-failure p.learning-repair-progress{margin:10px 0 0;padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.68);font-size:12.5px;line-height:1.7;color:#8a5c32}@media(max-width:720px){.learning-format-failure li{grid-template-columns:1fr;gap:2px}}.learning-history .learning-history-plan{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 0}.learning-history-plan details{flex:1 1;min-width:0}.learning-relearn-button{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--primary);font-size:11px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.learning-relearn-button:hover:not(:disabled){border-color:var(--primary);background:#edf2fe}.learning-relearn-button:disabled{cursor:wait;opacity:.65}.learning-history-plan-actions{flex:0 0 auto;display:flex;align-items:center;gap:8px}.learning-delete-button{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border:1px solid #e8c9c9;border-radius:999px;background:#fffafa;color:#a04444;font-size:11px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.learning-delete-button:hover:not(:disabled){border-color:#dbaaaa;background:#fff1f1}.learning-delete-button:disabled{cursor:wait;opacity:.65}.learning-history-plan-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none}.learning-history-plan-heading::-webkit-details-marker{display:none}.learning-history-plan-heading:hover{color:var(--primary)}.learning-history-plan-meta{display:inline-flex;align-items:center;gap:8px}.learning-history-plan-meta>svg{color:var(--muted);transition:transform .16s ease}.learning-history-plan details[open] .learning-history-plan-meta>svg{transform:rotate(180deg)}.learning-history-plan-status{flex:0 0 auto;padding:4px 9px;border-radius:999px;color:var(--text-secondary);background:var(--surface-muted);font-size:11px}.learning-history-plan-status.completed{color:var(--success);background:color-mix(in srgb,var(--success) 12%,var(--surface))}.learning-history-days{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));grid-gap:8px;gap:8px;margin-top:12px}.learning-history-day{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:9px;color:var(--text-secondary);background:var(--surface-muted);text-decoration:none;transition:border-color .16s ease,background .16s ease,transform .16s ease}.learning-history-day:hover{border-color:color-mix(in srgb,var(--primary) 36%,var(--line));background:var(--primary-tint);transform:translateY(-1px)}.learning-history-day.completed{border-color:color-mix(in srgb,var(--success) 30%,var(--line));color:var(--success);background:color-mix(in srgb,var(--success) 8%,var(--surface))}.learning-history-day.available{border-color:color-mix(in srgb,var(--primary) 30%,var(--line));color:var(--primary);background:color-mix(in srgb,var(--primary) 3%,var(--surface))}.learning-history-day span{font-weight:700}.learning-history-day em{font-size:10px;font-style:normal;white-space:nowrap}.learning-history-empty{margin:10px 0 0;color:var(--muted)}.learning-request-tools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:-6px 0 2px}.learning-theme-picker{position:relative}.learning-theme-trigger{display:inline-flex;align-items:center;gap:4px;padding:6px 2px;border:0;background:transparent;color:var(--primary);font-size:13px;font-weight:600;cursor:pointer}.learning-theme-trigger:hover{text-decoration:underline;text-underline-offset:3px}.learning-theme-trigger svg{transition:transform .16s ease}.learning-theme-trigger.open svg{transform:rotate(180deg)}.learning-theme-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:min(380px,calc(100vw - 90px));max-height:320px;overflow-y:auto;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 16px 44px rgba(15,23,42,.16)}.learning-theme-group+.learning-theme-group{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.learning-theme-group-label{padding:4px 10px;color:var(--muted);font-size:11px;font-weight:600;letter-spacing:.06em}.learning-theme-option{display:block;width:100%;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer;transition:background .12s ease,color .12s ease}.learning-theme-option:hover{background:#edf2fe;color:var(--primary)}.learning-hero{border-color:color-mix(in srgb,var(--primary) 22%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 12%,var(--surface)),var(--surface))}.learning-status{background:var(--surface-muted);color:var(--text-secondary)}.learning-status.active{background:color-mix(in srgb,var(--success) 14%,var(--surface));color:var(--success)}.learning-status.failed{background:color-mix(in srgb,var(--danger) 11%,var(--surface));color:var(--danger)}.learning-day.completed{background:color-mix(in srgb,var(--success) 8%,var(--surface))}.learning-duration button,.learning-frame,.learning-modal-card,.learning-modal-card input,.learning-modal-card textarea,.learning-time-panel,.learning-time-trigger{border-color:var(--line);background:var(--surface);color:var(--text)}.learning-theme-option:hover,.learning-time-cell:hover:not(.active){background:var(--surface-muted)}.learning-duration button.active,.learning-redownload-button:hover:not(:disabled),.learning-relearn-button:hover:not(:disabled){background:var(--primary-tint)}.learning-duration button:disabled{background:var(--surface-muted);border-color:var(--line);color:var(--muted);cursor:not-allowed;opacity:.55}.learning-points-check{background:var(--surface-muted)}.learning-format-failure,.learning-generation-failed,.learning-repair-button{border-color:color-mix(in srgb,var(--warning) 38%,var(--line));background:color-mix(in srgb,var(--warning) 9%,var(--surface));color:var(--warning)}.learning-failure-actions .button.secondary,.learning-format-failure code,.learning-format-failure p,.learning-format-failure p.learning-repair-progress,.learning-format-failure strong,.learning-repair-button{color:color-mix(in srgb,var(--warning) 82%,var(--text))}.learning-failure-actions .button.secondary:hover:not(:disabled),.learning-repair-button:hover:not(:disabled){border-color:color-mix(in srgb,var(--warning) 58%,var(--line));background:color-mix(in srgb,var(--warning) 14%,var(--surface))}.learning-abandon-button,.learning-delete-button{border-color:color-mix(in srgb,var(--danger) 34%,var(--line));background:color-mix(in srgb,var(--danger) 7%,var(--surface));color:var(--danger)}.learning-abandon-button:hover:not(:disabled),.learning-delete-button:hover:not(:disabled){border-color:color-mix(in srgb,var(--danger) 55%,var(--line));background:color-mix(in srgb,var(--danger) 13%,var(--surface))}.learning-redownload-button,.learning-relearn-button{border-color:color-mix(in srgb,var(--primary) 24%,var(--line));background:color-mix(in srgb,var(--primary) 3%,var(--surface))}.learning-delete-button:disabled,.learning-redownload-button:disabled,.learning-relearn-button:disabled,.learning-repair-button:disabled{border-color:var(--line);background:var(--surface-muted);color:var(--text-disabled);opacity:1}.learning-format-failure p.learning-repair-progress,.learning-format-failure ul{background:color-mix(in srgb,var(--surface-muted) 82%,transparent)}html[data-theme=dark] .learning-format-failure,html[data-theme=dark] .learning-generation-failed{border-color:color-mix(in srgb,var(--warning) 45%,var(--line));background:color-mix(in srgb,var(--warning) 10%,var(--surface));color:color-mix(in srgb,var(--warning) 82%,var(--text))}html[data-theme=dark] .learning-format-failure code,html[data-theme=dark] .learning-format-failure p,html[data-theme=dark] .learning-format-failure p.learning-repair-progress,html[data-theme=dark] .learning-format-failure strong{color:color-mix(in srgb,var(--warning) 82%,var(--text))}.learning-page,.learning-reader{font-size:13px}.learning-hero h1{font-size:24px;line-height:1.35}.learning-hero p{font-size:13px;line-height:1.65}.learning-current h2,.learning-exercise h2,.learning-history h2{font-size:16px;line-height:1.45}.learning-card-heading p,.learning-day p,.learning-empty p,.learning-exercise p,.learning-exercise pre,.learning-history article,.learning-progress p,.learning-reader-meta{font-size:12px;line-height:1.6}.learning-exercise-feedback{margin:4px 0 0;padding:9px 11px;border-radius:9px}.learning-exercise-feedback.incorrect{color:#b4233d;background:#fff1f3}.learning-exercise-feedback.correct{display:grid;grid-gap:4px;gap:4px;color:#146c43;background:#edf9f2}.learning-exercise-feedback.correct p,.learning-exercise-feedback.correct span{margin:0;color:inherit}.learning-exercise-correct{border-color:#a8dec0!important}.learning-exercise-incorrect{border-color:#f0b3bf!important}.learning-day strong{font-size:13px}.learning-actions .button,.learning-day em,.learning-day>span,.learning-hero .button{font-size:12px}.learning-timeline{display:grid;grid-gap:0;gap:0;padding:2px 0}.learning-timeline-item{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr);grid-gap:14px;gap:14px;padding-bottom:12px}.learning-timeline-item:last-child{padding-bottom:0}.learning-timeline-item:not(:last-child):after{position:absolute;z-index:0;top:32px;bottom:-32px;left:15px;width:3px;border-radius:999px;background:#dfe4eb;content:""}.learning-timeline-item.completed:not(:last-child):after{background:#45b77b}.learning-timeline-node{position:relative;z-index:1;display:grid;width:32px;height:32px;margin-top:16px;place-items:center;border:3px solid #fff;border-radius:50%;background:#d9dee7;color:#7f8998;box-shadow:0 0 0 1px #cfd5df;font-size:11px;font-weight:800}.learning-timeline-item.completed .learning-timeline-node{background:#2fa86c;color:#fff;box-shadow:0 0 0 1px #2fa86c,0 4px 12px rgba(47,168,108,.18)}.learning-timeline-item.available .learning-timeline-node{background:#eef3ff;color:var(--primary);box-shadow:0 0 0 2px var(--primary),0 4px 12px rgba(66,105,205,.14)}.learning-timeline .learning-day{grid-template-columns:78px minmax(0,1fr) auto;min-width:0;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.learning-timeline .learning-day:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(38,55,88,.06)}.learning-timeline .learning-day.completed{border-color:#cce9d9;background:#f3fbf7}.learning-timeline .learning-day.completed em,.learning-timeline .learning-day.completed>span{color:#21885a;font-weight:750}.learning-timeline .learning-day.available{border-color:#cbd8f6;background:#fbfcff}.learning-timeline .learning-day.available em{color:var(--primary);font-weight:750}.learning-timeline .learning-day.locked{opacity:1;border-color:#e4e7ec;background:#f7f8fa;color:#8b94a2}.learning-timeline .learning-day.locked em,.learning-timeline .learning-day.locked p,.learning-timeline .learning-day.locked strong{color:#9da5b1}@media (max-width:720px){.learning-timeline-item{grid-template-columns:30px minmax(0,1fr);gap:10px}.learning-timeline-node{width:28px;height:28px;margin-top:15px}.learning-timeline-item:not(:last-child):after{top:29px;bottom:-29px;left:13px}.learning-timeline .learning-day{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px}.learning-timeline .learning-day>div{grid-column:1/-1;grid-row:2}.learning-timeline .learning-day em{grid-column:2;grid-row:1}}.learning-smart{cursor:pointer}.learning-modal-card{font-size:13px}.learning-modal-card h2{font-size:17px;line-height:1.45}.learning-duration button,.learning-modal-card input,.learning-modal-card label,.learning-modal-card textarea,.learning-smart,.learning-theme-trigger{font-size:12px}.learning-timeline-item:not(:last-child):after{background:var(--line-strong)}.learning-timeline-node{border-color:var(--surface);background:var(--surface-muted);color:var(--text-tertiary);box-shadow:0 0 0 1px var(--line-strong)}.learning-timeline-item.available .learning-timeline-node{background:var(--primary-tint)}.learning-timeline .learning-day.completed{border-color:color-mix(in srgb,var(--success) 30%,var(--line));background:color-mix(in srgb,var(--success) 8%,var(--surface))}.learning-timeline .learning-day.available{border-color:color-mix(in srgb,var(--primary) 30%,var(--line));background:color-mix(in srgb,var(--primary) 3%,var(--surface))}.learning-timeline .learning-day.locked{border-color:var(--line);background:var(--surface-muted);color:var(--text-tertiary)}.learning-timeline .learning-day.locked em,.learning-timeline .learning-day.locked p,.learning-timeline .learning-day.locked strong{color:var(--text-disabled)}.learning-exercise-feedback.incorrect{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.learning-exercise-feedback.correct{color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--surface))}.learning-exercise-correct{border-color:color-mix(in srgb,var(--success) 52%,var(--line))!important}.learning-exercise-incorrect{border-color:color-mix(in srgb,var(--danger) 52%,var(--line))!important}