.study-workspace { display:grid; gap:20px; width:100%; min-width:0; max-width:1120px; margin-inline:auto; }
.study-workspace > * { min-width:0; }
.study-modes { margin:0 auto 24px; max-width:1120px; }
.study-workspace h2 { margin:8px 0; font-size:clamp(1.6rem,3vw,2.2rem); }
.study-workspace h3 { margin:0 0 14px; }
.study-workspace p { line-height:1.6; }
.study-workspace fieldset { min-width:0; padding:0; border:0; display:grid; gap:18px; }
.fsrs-fields { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; }
.fsrs-deck>.fsrs-fields>label:first-child { grid-column:1/-1; }
.fsrs-fields label,.fsrs-deck details>label,.fsrs-source label,.fsrs-day { display:grid; gap:8px; font-size:.85rem; min-width:0; }
.study-workspace input:not([type=range]),.study-workspace textarea,.study-workspace select { width:100%; min-width:0; box-sizing:border-box; border:1px solid var(--line); border-radius:8px; padding:11px; color:var(--ink); background:var(--surface,#fff); font:inherit; }
.study-workspace small { display:block; margin-top:12px; line-height:1.6; color:var(--muted); }
.fsrs-source { display:grid; gap:10px; margin:16px 0 22px; }
.fsrs-source p { margin:0; font-size:.85rem; color:var(--muted); }
.fsrs-source-results { list-style:none; padding:3px; margin:8px 0 12px; display:grid; gap:6px; max-height:390px; overflow-y:auto; }
.fsrs-source-choice { display:flex; justify-content:space-between; align-items:center; gap:18px; width:100%; text-align:left; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:var(--surface,#fff); color:var(--ink); font:inherit; cursor:pointer; }
.fsrs-source-choice:hover:not(:disabled),.fsrs-source-choice:focus-visible { border-color:var(--accent); background:var(--surface-soft,var(--surface,#fff)); outline:2px solid var(--accent); outline-offset:2px; }
.fsrs-source-choice:disabled { opacity:.6; cursor:default; }
.fsrs-source-choice>span { min-width:0; display:grid; gap:4px; overflow-wrap:anywhere; }
.fsrs-source-kind,.fsrs-source-path,.fsrs-source-overlap,.fsrs-source-count { font-size:.78rem; line-height:1.5; }
.fsrs-source-kind,.fsrs-source-path { color:var(--muted); }
.fsrs-source-count { flex-shrink:0; text-align:right; }
.fsrs-source-count>span:last-child { color:var(--accent); font-weight:600; }
@media(max-width:600px){.fsrs-source-choice{align-items:start;flex-direction:column;gap:10px;padding:12px}.fsrs-source-count{width:100%;text-align:left;grid-template-columns:1fr auto}.fsrs-source-count>span:last-child{grid-column:2;grid-row:1/3;align-self:center}}
.fsrs-decks { display:grid; gap:20px; }
.fsrs-deck { padding:20px; border:1px solid var(--line); border-radius:14px; background:var(--surface,#fff); min-width:0; }
.fsrs-deck details { margin-top:18px; }
.fsrs-deck details[open] { display:grid; gap:16px; }
.fsrs-deck summary,.study-workspace summary { cursor:pointer; padding:6px 0; font-weight:600; }
.fsrs-chart text { fill:var(--muted); font:12px system-ui; }
.fsrs-plot { position:relative; }
.fsrs-plot svg { cursor:crosshair; }
.fsrs-tooltip { position:absolute; top:8px; z-index:1; pointer-events:none; display:grid; gap:4px; max-width:100%; box-sizing:border-box; padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:var(--surface,#fff); color:var(--ink); box-shadow:0 4px 16px #0002; font-size:.8rem; line-height:1.4; font-variant-numeric:tabular-nums; }
.fsrs-tooltip[hidden] { display:none; }
[data-fsrs-marker] { pointer-events:none; }
.fsrs-cursor { stroke:var(--muted); stroke-width:1; stroke-dasharray:3 4; vector-effect:non-scaling-stroke; }
[data-fsrs-marker] circle { fill:var(--surface,#fff); stroke-width:2; vector-effect:non-scaling-stroke; }
.fsrs-chart [data-fsrs-marker] .study-total { stroke-dasharray:none; }
.fsrs-gridline { stroke:var(--line); stroke-width:1; }
.fsrs-range { fill:var(--accent,#658d79); opacity:.14; }
.fsrs-chart .study-total { stroke-dasharray:5 3; }
.fsrs-chart .study-anki { stroke:#237a67; }
.fsrs-chart .fsrs-range { fill:#237a67; }
.fsrs-chart figcaption span:nth-child(2) { color:#237a67; }
[data-palette="midnight"] .fsrs-chart .study-anki { stroke:#79c7ad; }
[data-palette="midnight"] .fsrs-chart figcaption span:nth-child(2) { color:#79c7ad; }
@media(max-width:600px){.fsrs-chart text{font-size:27px}}
.fsrs-day { margin-top:20px; }
.fsrs-day input { width:100%; accent-color:var(--accent); }
.fsrs-comparison { border-left:3px solid var(--accent); padding-left:14px; }
.learning-manual-next { display:flex; justify-content:space-between; gap:24px; align-items:center; }
.learning-manual-next h3 { margin:0; }
.learning-manual-next p { margin-bottom:0; }
@media(max-width:600px) { .fsrs-fields { grid-template-columns:1fr; } .fsrs-deck { padding:14px; } .fsrs-source,.learning-manual-next { align-items:stretch; flex-direction:column; } .fsrs-run { flex-direction:column; } }
.study-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-block:20px; }
.study-metrics small,.study-decks small { display:block; opacity:.75; margin-bottom:6px; }
.study-metrics strong { display:block; font-size:clamp(1.2rem,2.5vw,2rem); font-variant-numeric:tabular-nums; }
.study-chart { margin:12px 0; }
.study-chart svg { width:100%; display:block; overflow:visible; }
.study-chart polyline { fill:none; stroke-width:2; vector-effect:non-scaling-stroke; }
.study-total { stroke:var(--ink,#303b39); }
.study-anki { stroke:var(--accent,#658d79); }
.study-cap { stroke:var(--ink,#303b39); stroke-dasharray:5 5; opacity:.45; }
.study-chart figcaption { display:flex; flex-wrap:wrap; gap:16px; font-size:.8rem; }
.study-chart figcaption span:nth-child(2) { color:var(--accent,#658d79); }
.study-chart>small { display:block; margin-top:8px; opacity:.75; }
.study-table-wrap { overflow:auto; max-width:100%; min-width:0; margin-block:16px; }
.study-table { width:100%; border-collapse:collapse; font-size:.9rem; text-align:left; }
.study-table th,.study-table td { padding:12px 10px; border-bottom:1px solid var(--border,rgba(120,130,125,.25)); vertical-align:top; min-width:100px; }
.study-table th { font-weight:500; opacity:.75; }
.study-decks { display:grid; gap:8px; margin-top:16px; }
.study-decks article { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:12px 0; border-bottom:1px solid var(--border,rgba(120,130,125,.25)); }
.study-decks article>div { min-width:0; overflow-wrap:anywhere; }
.study-goal-fields summary { cursor:pointer; padding-block:12px; font-weight:600; }
.study-goal-fields[open] { display:grid; gap:12px; }
#projectRepeatFields:not(.hidden) { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media(max-width:600px) { .study-metrics { grid-template-columns:1fr; gap:12px; } .study-metrics>div { display:flex; justify-content:space-between; align-items:center; gap:12px; } .study-metrics strong { font-size:1.15rem; } #projectRepeatFields:not(.hidden) { grid-template-columns:1fr; } }

.fsrs-save { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-block: 1rem; font-size: .9rem; }
.fsrs-history-list { list-style: none; margin: 0; padding: 0; }
.fsrs-history-list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1rem; border-bottom: 1px solid var(--line, #ddd); }
.fsrs-history-list li > div { min-width: 0; overflow-wrap: anywhere; }
.fsrs-history-list small { display: block; margin-top: .4rem; }
.fsrs-history-list p { margin-block: .4rem; }
@media (max-width: 600px) { .fsrs-history-list li { align-items: stretch; flex-direction: column; } }

/* Daily reading and configuration are separate so the programme stays compact. */
.capacity-workspace { gap: 20px; }
.capacity-workspace .learning-panel { margin: 0; min-width: 0; }
.capacity-header,.capacity-row,.capacity-date-heading,.capacity-date-controls,.capacity-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.capacity-header { align-items: flex-start; }
.capacity-header h2 { margin-top: 0; scroll-margin-top: 100px; }
.capacity-header h2:focus { outline: none; }
.capacity-header p { margin: 8px 0 0; color: var(--muted); font-size: .9rem; }
.capacity-header > .button { flex-shrink: 0; margin-top: 8px; }
.capacity-workspace .capacity-notice { margin: 0; color: var(--muted); font-size: .85rem; }
.capacity-overview { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); align-items: start; gap: 24px; }
.capacity-workspace h3 { margin: 0; }
.capacity-workspace h4 { margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
.capacity-workspace small { margin-top: 6px; font-size: .78rem; }
.capacity-row > div,.capacity-row > h4 { min-width: 0; }
.capacity-row > strong { flex-shrink: 0; font-variant-numeric: tabular-nums; }
.capacity-workspace .capacity-muted { margin: 8px 0; color: var(--muted); font-size: .82rem; }
.capacity-date-controls { gap: 8px; }
.capacity-workspace [data-capacity-day] { width: auto; max-width: 170px; padding: 8px; font-size: .8rem; }
.capacity-day-total { padding: 22px 0; border-bottom: 1px solid var(--line); }
.capacity-day-total > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; }
.capacity-day-total strong { font-size: clamp(1.7rem,3vw,2.4rem); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.capacity-day-total span,.capacity-day-total p { font-size: .85rem; color: var(--muted); }
.capacity-day-total p { margin: 6px 0 0; }
.capacity-workspace .capacity-attention { color: var(--ink); font-weight: 600; }
.capacity-attention::before { content: '↗ '; }
.capacity-day-tree { display: grid; }
.capacity-day-simulation { padding-block: 22px; border-bottom: 1px solid var(--line); }
.capacity-day-simulation:last-child { border-bottom: 0; padding-bottom: 0; }
.capacity-group { margin: 14px 0 0 6px; padding-left: 16px; border-left: 2px solid var(--line); }
.capacity-group > summary { display: flex; align-items: center; gap: 12px; justify-content: space-between; list-style: none; font-size: .85rem; font-weight: 400; }
.capacity-group > summary::-webkit-details-marker { display: none; }
.capacity-group > summary::after { content: '›'; font-size: 1.3rem; color: var(--muted); }
.capacity-group[open] > summary::after { transform: rotate(90deg); }
.capacity-group > summary > span:first-child { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.capacity-group > summary > span:nth-child(2) { white-space: nowrap; font-variant-numeric: tabular-nums; }
.capacity-group > summary small { margin-top: 5px; }
.capacity-group-hint { display: block; margin-top: 3px; color: var(--muted); font-size: .75rem; }
.capacity-group > summary:hover .capacity-group-hint { text-decoration: underline; }
.capacity-group > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 4px; }
.capacity-progress { display: grid; gap: 12px; padding-block: 12px; }
.capacity-progress strong { display: block; margin-top: 5px; font-size: .83rem; font-weight: 500; }
.capacity-progress progress { display: block; width: 100%; max-width: 260px; height: 5px; margin-top: 8px; accent-color: var(--accent); }
.capacity-deck-list { list-style: none; margin: 8px 0 0; padding: 0; font-size: .82rem; }
.capacity-deck-list li { display: flex; justify-content: space-between; gap: 16px; padding-block: 8px; }
.capacity-deck-list li > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.capacity-deck-list li > span:last-child { flex-shrink: 0; color: var(--muted); }
.capacity-deck-list small { display: block; margin-top: 4px; color: var(--muted); font-size: .74rem; }
.capacity-deck-list li > span:last-child small { text-align: right; }
.capacity-day-simulation > .capacity-row > strong,.capacity-group > summary > span:last-child { max-width: 45%; text-align: right; }
.capacity-day-rings { padding-top: 20px; }
.capacity-assignment-hint { margin-top: 12px; }
.capacity-simulation-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.capacity-add { display: grid; gap: 20px; max-width: 800px; width: 100%; box-sizing: border-box; margin-inline: auto !important; }
.capacity-add h3 { scroll-margin-top: 100px; }
.capacity-add header p { margin: 6px 0 0; overflow-wrap: anywhere; }
.capacity-add-choices { list-style: none; margin: 0; padding: 0; }
.capacity-add-choices li,.capacity-add-selected { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 16px; border-bottom: 1px solid var(--line); }
.capacity-add-choices li>div,.capacity-add-selected>div { min-width: 0; overflow-wrap: anywhere; }
.capacity-add-choices .button { flex-shrink: 0; }
.capacity-add-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.capacity-add label { display: grid; gap: 8px; font-size: .85rem; min-width: 0; }
.capacity-add form p { font-size: .85rem; }
.capacity-add form>.button { white-space: normal; }
@media(max-width:600px){.capacity-add-fields{grid-template-columns:1fr}.capacity-add-choices li,.capacity-add-selected,.capacity-add header{align-items:stretch;flex-direction:column}.capacity-add-choices .button{align-self:flex-start}}
.capacity-load .capacity-limit { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-top: 22px; font-size: .82rem; }
.capacity-workspace .capacity-verdict { font-size: .85rem; margin: 18px 0; }
.capacity-load-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.capacity-load-metrics strong { display: block; font-size: 1.6rem; margin-top: 5px; font-variant-numeric: tabular-nums; }
.capacity-load-metrics small { margin: 0; }
.capacity-chart { margin: 16px 0; }
.capacity-chart text { fill: var(--muted); font: 13px system-ui; }
.capacity-chart .study-total { stroke: var(--accent); }
.capacity-chart { --capacity-review: #356bc1; --capacity-new: #a25718; }
[data-palette="midnight"] .capacity-chart { --capacity-review: #89b5ff; --capacity-new: #edb873; }
.capacity-chart .capacity-reviews { fill: none; stroke: var(--capacity-review); stroke-width: 2; }
.capacity-chart .capacity-new { fill: none; stroke: var(--capacity-new); stroke-width: 2; stroke-dasharray: 6 3; }
.capacity-chart .capacity-curve-hit { fill: none; stroke: transparent; stroke-width: 18; pointer-events: stroke; cursor: pointer; }
.capacity-chart circle.capacity-curve-hit { fill: transparent; pointer-events: all; }
.study-chart.capacity-chart figcaption .capacity-review-label { color: var(--capacity-review); }
.study-chart.capacity-chart figcaption .capacity-new-label { color: var(--capacity-new); }
.capacity-chart-scope { display: grid; gap: 7px; margin-top: 18px; font-size: .8rem; }
.capacity-chart-scope select { width: 100%; min-width: 0; font-size: .85rem; }
.capacity-chart > button { margin-block: 8px; }
.capacity-projection-status { font-size: .78rem; color: var(--muted); }
.capacity-projection-status p { margin: 10px 0 0; font-size: inherit; }
.capacity-gridline { stroke: var(--line); stroke-width: 1; }
.capacity-area { fill: var(--accent); opacity: .07; }
.capacity-chart figcaption { font-size: .72rem; gap: 12px; }
.capacity-chart figcaption span:nth-child(2):not(.capacity-new-label) { color: var(--muted); }
.capacity-workspace .capacity-method,.capacity-warnings { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 12px; font-size: .8rem; color: var(--muted); }
.capacity-method p,.capacity-warnings li { font-size: .8rem; line-height: 1.6; }
.capacity-footer { font-size: .8rem; color: var(--muted); }
.capacity-empty { text-align: center; padding: 48px 24px !important; }
.capacity-empty > p { max-width: 460px; margin: 14px auto 24px; }
.capacity-empty > small { margin-top: 18px; }
.capacity-search { display: grid; gap: 8px; max-width: 480px; font-size: .85rem; }
.capacity-chooser details { margin-top: 6px; font-size: .8rem; color: var(--muted); }
.capacity-chooser details ul { list-style: disc; padding-left: 20px; }
.capacity-chooser details li { display: list-item; padding: 4px 0; border: 0; }
.capacity-simulation { padding-block: 22px; border-bottom: 1px solid var(--line); }
.capacity-simulation:last-child { border-bottom: 0; padding-bottom: 0; }
.capacity-count { margin-left: 6px; font-size: .8rem; font-weight: 400; color: var(--muted); }
.capacity-project-names { font-size: .9rem; overflow-wrap: anywhere; }
.capacity-options { position: relative; align-self: flex-start; flex-shrink: 0; }
.capacity-options > summary { font-size: .8rem; }
.capacity-options > .learning-actions { position: absolute; z-index: 2; top: 100%; right: 0; width: 200px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-solid); box-shadow: var(--shadow); }
.capacity-options .button { width: 100%; text-align: left; }
.capacity-deck { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-block: 12px; border-bottom: 1px solid var(--line); }
.capacity-deck:last-child { border-bottom: 0; }
.capacity-deck > span { overflow-wrap: anywhere; min-width: 0; }
.capacity-assignments { display: grid; gap: 20px; }
.capacity-assignment { display: grid; gap: 12px; min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 10px; }
.capacity-assignment legend { max-width: 100%; padding-inline: 6px; overflow-wrap: anywhere; font-weight: 600; }
.capacity-assignment .capacity-new-project { display: none; }
.capacity-assignment:has(option[value="__new__"]:checked) .capacity-new-project { display: grid; }
@media(max-width:900px) { .capacity-overview { grid-template-columns: 1fr; } }
@media(max-width:600px) {
  .capacity-header { flex-direction: column; gap: 8px; }
  .capacity-header > .button { margin-top: 0; }
  .capacity-workspace { gap: 16px; }
  .capacity-overview { gap: 16px; }
  .capacity-management > .capacity-row,.capacity-simulation > .capacity-row:last-child { flex-wrap: wrap; gap: 10px; }
  .capacity-date-heading { flex-wrap: wrap; gap: 10px; }
  .capacity-date-controls { flex-wrap: wrap; }
  .capacity-day-total { padding-block: 18px; }
  .capacity-footer { flex-wrap: wrap; gap: 10px; }
  .capacity-group { padding-left: 12px; margin-left: 0; }
  .capacity-row { gap: 10px; }
  .capacity-row > strong { font-size: .85rem; }
}
@media(max-width:600px) { .capacity-chart text { font-size:19px; } }
.capacity-plot { position: relative; }
[data-capacity-chart] { cursor: crosshair; touch-action: pan-y; border-radius: 4px; }
[data-capacity-chart]:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
[data-capacity-marker] { pointer-events: none; }
.capacity-cursor { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 3 4; vector-effect: non-scaling-stroke; }
.capacity-point,.capacity-limit-point { fill: var(--surface-solid); stroke: var(--accent); stroke-width: 2; vector-effect: non-scaling-stroke; }
.capacity-limit-point { stroke: var(--muted); }
.capacity-tooltip { position: absolute; top: 4px; z-index: 2; width: max-content; max-width: min(280px,100%); box-sizing: border-box; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-solid); color: var(--ink); box-shadow: var(--shadow); pointer-events: none; font-size: .8rem; line-height: 1.5; font-variant-numeric: tabular-nums; }
.capacity-tooltip[hidden] { display: none; }
.capacity-tooltip dl { margin: 8px 0 0; }
.capacity-tooltip dl > div { display: flex; justify-content: space-between; gap: 16px; }
.capacity-tooltip dd { margin: 0; font-weight: 600; }
.capacity-tooltip small { max-width: 250px; font-size: .7rem; }
.capacity-chart > small { font-size: .75rem; }

.capacity-assignment .capacity-link-hint { margin: 0; font-size: .8rem; color: var(--muted); line-height: 1.6; }
.capacity-ring-choice { display: flex !important; align-items: center; gap: 10px; margin-top: 18px; }
.capacity-ring-choice input[type="checkbox"] { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--ink); }
