/* Study plan page. Layered on the shared learning-page stylesheet. */
.sp-fine{margin:0;color:var(--ll-subtle);font-size:.88rem;line-height:1.55}
.sp-locked{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--ll-space-xl);align-items:start;padding:var(--ll-space-xl);border:1px solid #755b87;border-radius:var(--ll-radius-large);background:#1c1524}
.sp-locked h2{margin:0 0 .5rem;font:500 2rem/1.15 var(--ll-serif)}
.sp-locked-copy>p{max-width:60ch;color:var(--ll-muted)}
.sp-locked-list{margin:var(--ll-space-md) 0;padding-left:1.2rem;color:var(--ll-text);line-height:1.6}
.sp-locked-list li+li{margin-top:.35rem}
.sp-locked-actions,.sp-form-actions{display:flex;flex-wrap:wrap;gap:var(--ll-space-sm);align-items:center;margin:var(--ll-space-md) 0}
.sp-preview{position:relative;display:grid;gap:var(--ll-space-md);padding:var(--ll-space-lg);border:1px dashed var(--ll-line-strong);border-radius:var(--ll-radius);background:var(--ll-bg-deep);opacity:.78;filter:saturate(.7);user-select:none;pointer-events:none}
.sp-preview-tag{justify-self:start;margin:0;padding:.2rem .55rem;border:1px solid var(--ll-gold);border-radius:999px;color:var(--ll-gold);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.sp-summary{display:grid;gap:.6rem}
.sp-summary strong{display:block;font-size:1.1rem}
.sp-kicker{color:var(--ll-subtle);font-size:.8rem}
.sp-meter{height:8px;border-radius:4px;background:var(--ll-surface-active);overflow:hidden}
.sp-meter i{display:block;height:100%;background:var(--ll-violet)}
.sp-week-row{display:flex;flex-wrap:wrap;gap:.5rem}
.sp-week-row span{padding:.4rem .6rem;border:1px solid var(--ll-line);border-radius:6px;color:var(--ll-muted);font-size:.82rem}
.sp-box{display:inline-block;flex:0 0 auto;width:20px;height:20px;border:2px solid #6e5680;border-radius:5px}
.sp-box.sp-on{border-color:var(--ll-green);background:var(--ll-green)}

.sp-form{display:grid;gap:var(--ll-space-lg);max-width:40rem;padding:var(--ll-space-lg);border:1px solid var(--ll-line);border-radius:var(--ll-radius);background:var(--ll-surface)}
.sp-input{width:min(20rem,100%);height:48px;padding:0 .85rem;border:1px solid var(--ll-line-strong);border-radius:5px;background:var(--ll-surface-raised);color:var(--ll-text);font:inherit;color-scheme:dark}
.sp-input:focus-visible,.sp-form select:focus-visible,.sp-form input[type=checkbox]:focus-visible,.sp-form input[type=radio]:focus-visible{outline:2px solid var(--ll-violet);outline-offset:2px}
.sp-fieldset{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:0;border:0}
.sp-fieldset legend{width:100%;margin-bottom:.45rem;color:var(--ll-muted);font-size:.9rem;font-weight:700}
.sp-fieldset label{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;cursor:pointer}
.sp-fieldset input{width:20px;height:20px;accent-color:var(--ll-violet-strong)}
.sp-shelf{display:grid;gap:var(--ll-space-md)}
.sp-day{padding:0 .7rem;border:1px solid var(--ll-line);border-radius:6px;background:var(--ll-surface-raised)}

.sp-overview{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--ll-space-xl);align-items:end;padding:var(--ll-space-lg);border:1px solid var(--ll-line);border-radius:var(--ll-radius-large);background:var(--ll-surface)}
.sp-overview h2{margin:.2rem 0 .4rem;font:500 2rem/1.15 var(--ll-serif)}
.sp-overview p{margin:0;color:var(--ll-muted)}
.sp-progress{display:grid;gap:.5rem}
.sp-progress p:first-child{color:var(--ll-text);font-weight:700}
.sp-progress progress{width:100%;height:10px;accent-color:var(--ll-violet)}

.sp-today-card{padding:var(--ll-space-lg);border:1px solid var(--ll-line);border-radius:var(--ll-radius);background:var(--ll-surface)}
.sp-today-card h3{margin:0 0 .6rem;font-size:1.05rem}
.sp-today-card>p{margin:0;color:var(--ll-muted)}
.sp-tasks{display:grid;gap:0;margin:0;padding:0;list-style:none}
.sp-tasks li{display:flex;align-items:center;gap:.75rem;min-height:48px;padding:.35rem 0;border-top:1px solid rgba(255,255,255,.06)}
.sp-tasks li:first-child{border-top:0}
.sp-check{flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;background:transparent;cursor:pointer}
.sp-check::before{content:"";width:20px;height:20px;border:2px solid #7d6a8c;border-radius:5px}
.sp-check[aria-pressed=true]::before{border-color:var(--ll-green);background:var(--ll-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5 8.2 14 15 6.5' fill='none' stroke='%23081112' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.sp-check:focus-visible{outline:2px solid var(--ll-violet);outline-offset:1px;border-radius:6px}
.sp-check:disabled{opacity:.5;cursor:progress}
.sp-task-link{flex:1 1 auto;color:var(--ll-text);line-height:1.45;text-decoration:none}
.sp-task-link:hover{text-decoration:underline;text-underline-offset:3px}
.sp-task-text{flex:1 1 auto;font-weight:700}
.sp-task-done .sp-task-link,.sp-task-done .sp-task-text{color:var(--ll-subtle);text-decoration:line-through;text-decoration-thickness:1px}
.sp-start{flex:0 0 auto;min-height:44px;padding:.5rem .85rem}

.sp-weeks{display:grid;gap:var(--ll-space-md);margin:0;padding:0;list-style:none}
.sp-week{padding:var(--ll-space-md) var(--ll-space-lg);border:1px solid var(--ll-line);border-radius:var(--ll-radius);background:var(--ll-surface)}
.sp-week-current{border-color:var(--ll-violet-strong);box-shadow:0 0 0 1px var(--ll-violet-strong) inset}
.sp-week-past{opacity:.72}
.sp-week-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .8rem}
.sp-week-head h3{margin:0;font-size:1.1rem}
.sp-week-dates{color:var(--ll-muted);font-size:.9rem}
.sp-badge{padding:.1rem .5rem;border-radius:999px;background:var(--ll-violet);color:var(--ll-violet-ink);font-size:.75rem;font-weight:700}
.sp-badge-review{background:var(--ll-gold)}
.sp-week-stats{margin:.45rem 0 .25rem;color:var(--ll-text)}
.sp-week-days{margin-top:.5rem}
.sp-week-days summary{min-height:44px;display:flex;align-items:center;color:var(--ll-violet);cursor:pointer;font-weight:700}
.sp-day-list{display:grid;gap:.75rem;margin:.35rem 0 0;padding:0;list-style:none}
.sp-day-row{padding-top:.6rem;border-top:1px solid rgba(255,255,255,.07)}
.sp-tasks-compact li{min-height:44px}
.sp-manage h2{margin:0;font-size:1.2rem}
.sp-confirm{padding:var(--ll-space-md);border:1px solid #8b4e58;border-radius:var(--ll-radius);background:#27141a}
.sp-confirm p{margin:0}

@media (prefers-color-scheme:light){
 body.ll-page{--ll-bg:#f5f4f0;--ll-bg-deep:#ebe8e2;--ll-surface:#fffefa;--ll-surface-raised:#f1edf5;--ll-surface-active:#e4daed;--ll-line:#d8d3dc;--ll-line-strong:#978aa1;--ll-text:#211d25;--ll-muted:#625b67;--ll-subtle:#756d79;--ll-violet:#604287;--ll-violet-strong:#76529f;--ll-violet-ink:#fffefa;--ll-gold:#8a5b17;--ll-green:#377a51;--ll-red:#9a3f4b;--ll-blue:#356a9e;color-scheme:light;background:radial-gradient(circle at 50% -12rem,#e8def0 0,var(--ll-bg) 34rem,var(--ll-bg-deep) 72rem)}
 .ll-subnav{background:#eeeae5}.ll-subnav a[aria-current="page"]{background:#e2d9e8}.ll-select{color-scheme:light}.ll-button:not(.ll-button-secondary):not(.ll-button-quiet):hover:not(:disabled){background:#4e326f}.ll-footer{background:#e8e4de}
 .sp-locked{border-color:#b7a2c4;background:#eee8f2}
 .sp-preview{background:#e8e3ea}
 .sp-input{color-scheme:light}
 .sp-tasks li,.sp-day-row{border-color:var(--ll-line)}
 .sp-confirm{border-color:#c98e95;background:#f8e8e9}
}

@media (max-width:52rem){
 .sp-locked,.sp-overview{grid-template-columns:1fr}
}
@media (max-width:40rem){
 .sp-locked{padding:var(--ll-space-lg)}
 .sp-locked h2,.sp-overview h2{font-size:1.6rem}
 .sp-tasks li.sp-block{flex-wrap:wrap}
 .sp-start{margin-left:52px;max-width:calc(100% - 52px)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
