.plan{max-width:1320px}.pl-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:1.4rem;display:flex}.pl-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--violet);margin:0 0 .4rem;font-size:.76rem;font-weight:600}.pl-head h1{margin:0 0 .4rem;font-size:clamp(2rem,3.4vw,3rem)}.pl-lede{max-width:60ch;color:var(--text-soft);margin:0}.pl-tabs{border:1px solid var(--stroke);background:#ffffff08;border-radius:999px;padding:4px;display:flex}.pl-tabs button{color:var(--text-soft);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:999px;padding:.5rem 1.3rem;position:relative}.pl-tabs button.on{color:var(--text)}.pl-tabs button span{z-index:1;position:relative}.pl-tab-bg{background:color-mix(in srgb, var(--violet) 30%, transparent);border:1px solid var(--stroke-glow);border-radius:999px;position:absolute;inset:0}.pl-month,.pl-year{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:1.25rem;display:grid}.pl-cal,.pl-side,.pl-wheel-wrap{padding:1.2rem 1.3rem}.pl-cal-bar{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.9rem;display:flex}.pl-sum{color:var(--text-soft);margin-left:auto;font-size:.86rem}.pl-sum b{color:var(--text)}.pl-week,.pl-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.pl-week span{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 .4rem .3rem;font-size:.72rem}.pl-day{text-align:left;border:1px solid var(--stroke);min-height:92px;color:var(--text);cursor:pointer;transition:border-color .2s, background .2s, transform .2s var(--ease);font:inherit;background:#ffffff06;border-radius:12px;padding:.45rem .5rem;position:relative;overflow:hidden}.pl-day:hover{border-color:var(--stroke-glow);transform:translateY(-2px)}.pl-day.today{border-color:var(--teal);box-shadow:0 0 18px -8px var(--teal)}.pl-day.picked{background:color-mix(in srgb, var(--violet) 16%, transparent);border-color:var(--violet)}.pl-day.heavy{background:color-mix(in srgb, var(--amber) 10%, transparent)}.pl-num{font-size:.95rem;font-weight:600}.pl-ring{width:20px;height:20px;position:absolute;top:6px;right:6px;transform:rotate(-90deg)}.pl-ring circle{fill:none;stroke-width:2.4px}.pl-ring .bg{stroke:var(--stroke)}.pl-ring .fg{stroke:var(--green);stroke-linecap:round}.pl-dots{flex-wrap:wrap;align-items:center;gap:3px;margin-top:.4rem;display:flex}.pl-dots i{border-radius:50%;width:8px;height:8px;box-shadow:0 0 6px}.pl-dots em{color:var(--violet);font-size:.8rem;font-style:normal}.pl-done{color:var(--green);font-size:.7rem;position:absolute;bottom:.6rem;left:.5rem}.pl-load{background:linear-gradient(90deg, var(--teal), var(--amber));transform-origin:0;height:4px;position:absolute;bottom:0;left:0;right:0}.pl-day.heavy .pl-load{background:var(--amber)}.pl-heavy{letter-spacing:.08em;text-transform:uppercase;color:var(--amber);font-size:.62rem;font-weight:700;position:absolute;bottom:.45rem;right:.4rem}.pl-legend{color:var(--muted);text-transform:capitalize;flex-wrap:wrap;gap:.4rem 1rem;margin:.9rem 0 0;font-size:.76rem;display:flex}.pl-legend i{border-radius:50%;width:8px;height:8px;margin-right:.25rem;display:inline-block}.pl-side h2{margin:0 0 .6rem;font-size:1.15rem}.pl-badge{background:color-mix(in srgb, var(--teal) 16%, transparent);color:var(--teal);border-radius:999px;margin:0 0 .6rem;padding:.3rem .7rem;font-size:.78rem;display:inline-block}.pl-badge.heavy{background:color-mix(in srgb, var(--amber) 18%, transparent);color:var(--amber)}.pl-sec h3,.pl-add h3,.pl-sub{letter-spacing:.1em;text-transform:uppercase;color:var(--violet);margin:.9rem 0 .4rem;font-size:.78rem}.pl-sec ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.pl-sec li{align-items:center;gap:.5rem;font-size:.88rem;display:flex}.pl-sec li i{border-radius:50%;flex:none;width:8px;height:8px}.pl-sec li span{color:var(--muted);margin-left:auto}.pl-empty,.pl-meta,.pl-note{color:var(--muted);margin:.2rem 0;font-size:.84rem}.pl-add{border-top:1px solid var(--stroke);gap:.5rem;margin-top:.6rem;padding-top:.4rem;display:grid}.pl-add input,.pl-add select{border:1px solid var(--stroke);color:var(--text);font:inherit;background:#ffffff0a;border-radius:10px;padding:.5rem .7rem}.pl-add-row{grid-template-columns:70px 1fr auto;gap:.5rem;display:grid}.pl-wheel{width:100%;max-height:74vh;margin:0 auto;display:block}.pl-sector{cursor:pointer}.pl-sector-bg{fill:#ffffff04;stroke:var(--stroke);stroke-width:1px;transition:fill .2s}.pl-sector:hover .pl-sector-bg{fill:color-mix(in srgb, var(--violet) 14%, transparent)}.pl-sector.now .pl-sector-bg{fill:color-mix(in srgb, var(--teal) 10%, transparent)}.pl-tick{stroke:var(--stroke-glow);stroke-width:1px}.pl-month-label{fill:var(--text-soft);text-anchor:middle;dominant-baseline:middle;letter-spacing:.08em;font-size:15px}.pl-sector.now .pl-month-label{fill:var(--teal);font-weight:700}.pl-work{stroke:var(--green);stroke-width:2.4px;stroke-linecap:round;opacity:.85}.pl-goal-track{fill:none;stroke-width:10px;opacity:.18;stroke-linecap:round}.pl-goal{fill:none;stroke-width:10px;stroke-linecap:round;filter:drop-shadow(0 0 6px)}.pl-goal-end{stroke:var(--bg);stroke-width:2px}.pl-pin line{stroke:var(--rose);stroke-width:2px}.pl-pin circle{fill:var(--rose);filter:drop-shadow(0 0 4px var(--rose))}.pl-pin{cursor:help}.pl-today line{stroke:var(--teal);stroke-width:2px;stroke-dasharray:4 6;opacity:.8}.pl-today circle{fill:var(--teal);filter:drop-shadow(0 0 8px var(--teal))}.pl-centre-year{fill:var(--text);font-family:var(--font-display);text-anchor:middle;font-size:56px}.pl-centre-sub{fill:var(--muted);text-anchor:middle;font-size:13px}.pl-hover{text-align:center;color:var(--text-soft);min-height:1.4em;margin:.4rem 0 0;font-size:.9rem}.pl-goals{gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.pl-goals li{align-items:flex-start;gap:.6rem;font-size:.88rem;display:flex}.pl-goals li>div{flex:1}.pl-goals span{color:var(--muted);font-size:.78rem}.pl-goal-dot{border-radius:50%;flex:none;width:10px;height:10px;margin-top:.35rem}.pl-bar{background:var(--stroke);border-radius:4px;height:6px;margin:.3rem 0;overflow:hidden}.pl-bar i{transform-origin:0;height:100%;display:block}.pl-read{color:var(--text-soft);gap:.35rem;margin:0;padding-left:1.1rem;font-size:.84rem;display:grid}@media (max-width:1000px){.pl-month,.pl-year{grid-template-columns:1fr}.pl-day{min-height:64px}.pl-heavy{display:none}}@media (prefers-reduced-motion:reduce){.pl-day{transition:none}}.pl-goal-cont{text-anchor:middle;dominant-baseline:middle;font-size:15px;font-weight:700}.pl-yearnav{justify-content:space-between;align-items:center;margin-bottom:.8rem;display:flex}.pl-yearnav b{font-size:1.3rem}
