.planner-page { --planner-ink: #15213e; --planner-muted: #697386; --planner-line: #e5e3eb; --planner-surface: rgba(255,255,255,.94); --planner-purple: #6f58ff; background: #f7f7f4; }
.planner-shell { width: min(1180px, calc(100% - 36px)); margin: 0 auto; padding: 110px 0 90px; color: var(--planner-ink); }
.planner-hero { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 28px; }
.planner-hero.compact { align-items: center; }
.planner-hero h1 { max-width: 760px; margin: 8px 0; font: 800 clamp(34px,5vw,58px)/1.06 Manrope,sans-serif; letter-spacing: 0; overflow-wrap: anywhere; }
.planner-hero p { max-width: 700px; margin: 0; color: var(--planner-muted); line-height: 1.6; }
.planner-hero-actions,.planner-widget-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.planner-plan-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.planner-plan-card,.planner-empty,.planner-wizard,.planner-today-card,.planner-ring-card,.planner-stat-card,.planner-insight-grid>article,.planner-growth-card,.planner-timeline,.session-task-list,.study-calendar,.dashboard-planner-widget { border: 1px solid var(--planner-line); border-radius: 22px; background: var(--planner-surface); box-shadow: 0 16px 40px rgba(31,36,58,.06); }
.planner-plan-card { display: block; padding: 24px; color: inherit; text-decoration: none; transition: transform .2s ease,box-shadow .2s ease; }
.planner-plan-card:hover { transform: translateY(-4px); box-shadow: 0 20px 46px rgba(31,36,58,.11); }
.planner-plan-card>div:first-child { display:flex; justify-content:space-between; gap:12px; color:var(--planner-muted); }
.planner-plan-card h2 { margin: 20px 0 8px; font: 800 22px/1.2 Manrope; overflow-wrap: anywhere; }
.planner-plan-card dl { display:grid; gap:10px; margin:20px 0 0; }
.planner-plan-card dl div { display:flex; justify-content:space-between; gap:12px; }
.planner-plan-card dt { color:var(--planner-muted); }.planner-plan-card dd{margin:0;font-weight:800}
.planner-status { padding:5px 9px; border-radius:999px; color:#3d2cb0; background:#eeebff; font-size:11px; font-weight:800; text-transform:uppercase; }
.planner-empty { padding: 60px 24px; text-align:center; }.planner-empty>span{font-size:44px;color:var(--planner-purple)}
.planner-empty p{color:var(--planner-muted);margin:0 auto 22px;max-width:540px}
.planner-wizard { max-width: 880px; margin: 0 auto; padding: 14px 34px 34px; }
.planner-wizard>section { display:grid;grid-template-columns:46px 1fr;gap:18px;padding:28px 0;border-bottom:1px solid var(--planner-line); }
.wizard-step { display:grid;place-items:center;width:40px;height:40px;border-radius:13px;color:#fff;background:var(--planner-purple);font-weight:800; }
.planner-wizard h2 { margin:5px 0 20px;font:800 22px Manrope; }.wizard-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.wizard-fields h2,.wizard-fields fieldset{grid-column:1/-1}
.planner-wizard label,.planner-wizard legend { display:grid;gap:8px;color:#535e72;font-size:13px;font-weight:800; }
.planner-wizard input,.planner-wizard select,.session-completion input { width:100%;min-height:48px;padding:10px 13px;border:1px solid #d8d5df;border-radius:11px;color:var(--planner-ink);background:#fff;font:600 15px DM Sans;box-sizing:border-box; }
.planner-wizard fieldset { padding:0;border:0 }.weekday-picker{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.weekday-picker label{display:block}.weekday-picker input{position:absolute;opacity:0}.weekday-picker span{display:grid;place-items:center;min-height:42px;border:1px solid #d8d5df;border-radius:10px;background:#fff}.weekday-picker input:checked+span{color:#fff;border-color:var(--planner-purple);background:var(--planner-purple)}.weekday-picker input:focus-visible+span{outline:3px solid rgba(111,88,255,.3)}
.wizard-submit{margin-top:28px;width:100%}
.planner-reminders { display:flex;gap:10px;overflow:auto;margin-bottom:18px }.planner-reminders p{flex:0 0 auto;margin:0;padding:10px 14px;border-radius:999px;color:#5f4700;background:#fff5cd;font-size:13px;font-weight:700}.planner-reminders span{margin-right:8px;color:#f2a600}
.planner-overview-grid { display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;margin-bottom:18px }.planner-today-card{grid-row:span 2;padding:25px}.planner-today-card h2{margin:6px 0 20px}.planner-today-card ul,.planner-insight-grid ul,.planner-widget-tasks{list-style:none;padding:0;margin:0}.planner-today-card li{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--planner-line)}.planner-today-card li i{width:10px;height:10px;margin-top:6px;border:2px solid var(--planner-purple);border-radius:50%}.planner-today-card li span{display:grid}.planner-today-card small{color:var(--planner-muted)}.planner-today-card>a{display:inline-block;margin-top:16px;color:var(--planner-purple);font-weight:800}.planner-today-card .is-done{text-decoration:line-through;opacity:.55}
.planner-ring-card,.planner-stat-card{padding:22px}.planner-ring-card{display:flex;align-items:center;gap:18px}.planner-ring-card>div:last-child{display:grid;gap:3px}.planner-ring-card b{font:800 22px Manrope}.planner-ring-card small,.planner-stat-card small{color:var(--planner-muted)}
.planner-progress-ring,.mini-progress-ring{--progress:0;display:grid;place-items:center;width:100px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff 57%,transparent 59%),conic-gradient(var(--planner-purple) calc(var(--progress)*1%),#e7e4ef 0)}.planner-progress-ring strong,.mini-progress-ring strong{font:800 23px Manrope}.planner-progress-ring span,.mini-progress-ring span{margin-top:-25px;color:var(--planner-muted);font-size:10px}
.planner-stat-card{display:grid;gap:9px}.planner-stat-card>strong{font:800 26px Manrope}.planner-progress{height:7px;border-radius:999px;overflow:hidden;background:#e8e6ee}.planner-progress i{display:block;height:100%;background:linear-gradient(90deg,#765eff,#a266ff)}
.planner-insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}.planner-insight-grid>article{min-width:0;padding:24px}.planner-insight-grid h2{margin:0 0 14px}.planner-insight-grid li a,.planner-insight-grid dl div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid var(--planner-line);color:inherit;text-decoration:none}.planner-insight-grid li span{display:grid;min-width:0}.planner-insight-grid small,.planner-insight-grid dt{color:var(--planner-muted)}.planner-insight-grid dd{margin:0;font-weight:800;text-align:right}
.planner-growth-card{display:grid;grid-template-columns:260px 1fr;align-items:end;gap:24px;margin-bottom:18px;padding:24px}.planner-growth-card h2{margin:6px 0}.planner-growth-bars{display:flex;align-items:end;gap:7px;height:120px;padding-top:10px;border-bottom:1px solid var(--planner-line)}.planner-growth-bars i{position:relative;flex:1;min-height:5px;border-radius:7px 7px 0 0;background:linear-gradient(#8d76ff,#5b43db)}.planner-growth-bars i span{position:absolute;top:-19px;left:50%;transform:translateX(-50%);color:var(--planner-muted);font:700 9px DM Sans}
.planner-timeline{padding:24px}.planner-section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:10px}.planner-section-heading h2{margin:5px 0}.planner-section-heading a{color:var(--planner-purple);font-weight:800}.timeline-row{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:16px;padding:15px 0;border-top:1px solid var(--planner-line);color:inherit;text-decoration:none}.timeline-row time{display:grid;place-items:center;padding:8px;border-radius:11px;background:#f0edff}.timeline-row time b{font-size:20px}.timeline-row time span{font-size:10px;text-transform:uppercase}.timeline-row p{margin:4px 0;color:var(--planner-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-row.status-completed{opacity:.65}.timeline-row.status-completed time{color:#176f4d;background:#e4f8ed}.timeline-row.status-skipped time{color:#a64242;background:#ffeded}
.calendar-nav{display:flex;justify-content:center;align-items:center;gap:25px;margin:15px 0}.calendar-nav a{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--planner-line);border-radius:50%;color:inherit;text-decoration:none;background:#fff}.calendar-nav h2{min-width:180px;text-align:center}.study-calendar{padding:18px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.calendar-weekdays span{min-width:0;padding:8px;text-align:center;color:var(--planner-muted);font-size:12px;font-weight:800}.calendar-day{min-width:0;min-height:105px;padding:10px;border:1px solid var(--planner-line);border-radius:13px;color:inherit;background:#fff;text-decoration:none;box-sizing:border-box;overflow:hidden}.calendar-day time{display:block;font-weight:800}.calendar-day strong,.calendar-day small{display:block;margin-top:9px;overflow:hidden;text-overflow:ellipsis}.calendar-day small{color:var(--planner-muted);font-size:10px}.calendar-day.outside{opacity:.35}.calendar-day.today{outline:2px solid var(--planner-purple)}.calendar-day.status-completed{border-color:#b8e4cf;background:#effbf4}.calendar-day.status-skipped{border-color:#f2c6c6;background:#fff3f3}.calendar-legend{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}.calendar-legend span{padding:6px 10px;border-radius:999px;background:#ebe8f7;font-size:11px;font-weight:800}
.session-task-list{padding:25px}.session-task-list>h2{margin-top:0}.session-task{display:grid;grid-template-columns:110px minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px 0;border-top:1px solid var(--planner-line)}.task-kind{padding:7px 9px;border-radius:999px;text-align:center;color:#4739a4;background:#efecff;font-size:10px;font-weight:800;text-transform:uppercase}.session-task h3{margin:0 0 6px;overflow-wrap:anywhere}.session-task p{margin:0;color:var(--planner-muted);overflow-wrap:anywhere}.task-actions a,.task-actions button{border:0;color:var(--planner-purple);background:transparent;font-weight:800;cursor:pointer}.session-task.is-done{opacity:.55}.session-completion{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-top:16px}.session-completion form:first-child{display:flex;align-items:end;gap:12px}.session-completion label{display:grid;gap:6px;color:var(--planner-muted);font-size:12px;font-weight:800}.session-completion input{width:150px}
.dashboard-planner-widget{display:grid;grid-template-columns:1fr auto;gap:18px;margin-bottom:20px;padding:24px}.planner-widget-heading{display:flex;justify-content:space-between;grid-column:1/-1}.mini-progress-ring{width:76px}.mini-progress-ring strong{font-size:17px}.planner-widget-reminders{display:flex;grid-column:1/-1;gap:8px}.planner-widget-reminders span{padding:7px 10px;border-radius:8px;background:#fff4cb;font-size:12px;font-weight:700}.planner-widget-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.planner-widget-grid div{display:grid;gap:5px;padding:12px;border-radius:12px;background:#f7f6fb}.planner-widget-grid span{color:var(--planner-muted);font-size:11px}.planner-widget-tasks{display:grid;gap:6px}.planner-widget-tasks li{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px solid var(--planner-line)}
.planner-skeleton{position:absolute;inset:100px 5% auto;z-index:2;padding:25px;border-radius:20px;background:#fff}.planner-skeleton i{display:block;width:100%;height:20px;margin:12px 0;border-radius:8px;background:linear-gradient(90deg,#eee 25%,#f8f8f8 50%,#eee 75%);background-size:200% 100%;animation:planner-shimmer 1.2s infinite}.planner-skeleton i:first-child{width:45%;height:38px}@keyframes planner-shimmer{to{background-position:-200% 0}}
:root[data-theme="dark"] .planner-page{--planner-ink:#f3f2fa;--planner-muted:#aaa8b6;--planner-line:#393643;--planner-surface:rgba(31,29,39,.95);background:#17161c}
:root[data-theme="dark"] .planner-wizard input,:root[data-theme="dark"] .planner-wizard select,:root[data-theme="dark"] .session-completion input,:root[data-theme="dark"] .weekday-picker span,:root[data-theme="dark"] .calendar-nav a,:root[data-theme="dark"] .calendar-day{color:var(--planner-ink);border-color:var(--planner-line);background:#25232c}
:root[data-theme="dark"] .planner-progress-ring,:root[data-theme="dark"] .mini-progress-ring{background:radial-gradient(circle,#25232c 57%,transparent 59%),conic-gradient(#8c79ff calc(var(--progress)*1%),#45414f 0)}
:root[data-theme="dark"] .planner-widget-grid div{background:#26232e}
@media (max-width:800px){.planner-shell{width:min(100% - 20px,1180px);padding-top:92px}.planner-hero{align-items:stretch;flex-direction:column}.planner-hero-actions>*{flex:1}.planner-plan-grid,.planner-overview-grid,.planner-insight-grid,.planner-growth-card{grid-template-columns:1fr}.planner-today-card{grid-row:auto}.wizard-fields{grid-template-columns:1fr}.planner-wizard{padding:8px 18px 25px}.weekday-picker{grid-template-columns:repeat(4,1fr)}.study-calendar{padding:7px}.calendar-weekdays,.calendar-grid{gap:3px}.calendar-day{min-height:74px;padding:6px}.calendar-day strong{font-size:9px}.calendar-day small{display:none}.session-task{grid-template-columns:1fr}.task-kind{justify-self:start}.session-completion,.session-completion form:first-child{align-items:stretch;flex-direction:column}.session-completion input{width:100%}.planner-widget-grid{grid-template-columns:1fr 1fr}.dashboard-planner-widget{grid-template-columns:1fr}.planner-widget-heading{align-items:start}.timeline-row{grid-template-columns:52px 1fr}.timeline-row>span{display:none}}
@media (prefers-reduced-motion:reduce){.planner-plan-card,.planner-skeleton i{transition:none;animation:none}}
