.plan-view { min-height:calc(100vh - 78px); padding:42px clamp(20px,3vw,52px) 80px; background:var(--canvas); }
.plan-content { width:100%; }
.plan-loading,.plan-error { min-height:420px; display:grid; place-items:center; color:var(--muted); text-align:center; }
.plan-hero { width:100%; max-width:1500px; margin:0 auto 22px; padding:clamp(30px,4vw,54px); display:flex; align-items:center; justify-content:space-between; gap:48px; border-radius:20px; overflow:hidden; }
.plan-hero > div:first-child { max-width:900px; }
.plan-hero h1 { font-size:clamp(38px,4.5vw,68px); line-height:.98; }
.plan-hero .intro { max-width:820px; font-size:16px; line-height:1.65; }
.plan-period { min-width:250px; padding:17px; background:var(--paper); border:1px solid var(--line); border-radius:13px; box-shadow:0 14px 35px rgba(39,55,47,.06); }
.plan-period label { display:grid; gap:7px; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.plan-period input { min-height:42px; padding:0 10px; color:var(--ink); background:white; border:1px solid #cbd3c7; border-radius:8px; }
.plan-period small { display:block; margin-top:10px; color:var(--muted); line-height:1.45; }
.plan-period small strong { color:var(--green-dark); }
.plan-summary { width:100%; max-width:1500px; margin:0 auto 20px; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.plan-summary > div { min-width:0; padding:18px; background:var(--paper); border:1px solid var(--line); border-radius:12px; }
.plan-summary strong,.plan-summary span { display:block; }
.plan-summary strong { color:var(--green-dark); font:500 clamp(25px,3vw,34px)/1 Georgia,"Times New Roman",serif; }
.plan-summary span { margin-top:6px; color:var(--muted); font-size:11px; font-weight:750; text-transform:uppercase; }
.plan-progress-panel { width:100%; max-width:1500px; margin:0 auto 20px; padding:28px 32px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px 24px; color:white; background:linear-gradient(135deg,#0b5845,#14372d); border-radius:16px; box-shadow:0 20px 50px rgba(13,70,53,.18); }
.plan-progress-copy h2 { margin:0; font:500 clamp(24px,3vw,35px)/1.2 Georgia,"Times New Roman",serif; }
.plan-progress-copy p:last-child { margin:7px 0 0; color:#b8d1c7; font-size:12px; }
.plan-progress-panel .eyebrow { color:#8fd4bd; }
.plan-progress-number { font:500 38px/1 Georgia,"Times New Roman",serif; }
.plan-progress-track { grid-column:1 / -1; width:100%; height:9px; overflow:hidden; background:rgba(255,255,255,.15); border-radius:999px; }
.plan-progress-track span { height:100%; display:block; background:linear-gradient(90deg,#72c5a9,var(--gold)); border-radius:inherit; }
.plan-next-button { min-height:42px; padding:0 17px; grid-column:1 / -1; justify-self:end; color:#13382e; background:#f7e2ae; border:0; border-radius:8px; font-size:12px; font-weight:800; }
.plan-finished { color:#f7e2ae; }
.plan-method { width:100%; max-width:1500px; margin:0 auto 34px; padding:30px 32px; display:grid; grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr); align-items:center; gap:38px; background:#e7ece4; border:1px solid var(--line); border-radius:15px; }
.plan-method h2,.plan-section-heading h2 { margin:0; font:500 clamp(27px,3.2vw,39px)/1.15 Georgia,"Times New Roman",serif; }
.plan-method p:last-child { margin:8px 0 0; color:var(--muted); line-height:1.55; }
.plan-method-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.plan-method-grid span { min-height:90px; padding:15px; display:flex; flex-direction:column; justify-content:center; color:var(--muted); background:rgba(255,255,255,.58); border-radius:10px; font-size:11px; line-height:1.4; }
.plan-method-grid strong { margin-bottom:5px; color:var(--green-dark); font-size:20px; }
.plan-priorities { width:100%; max-width:1500px; margin:0 auto 38px; }
.plan-priority-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.plan-priority-card { min-width:0; padding:18px; background:var(--paper); border:1px solid var(--line); border-radius:12px; }
.plan-priority-card header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.plan-priority-card header span { color:var(--muted); font-size:9px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.plan-priority-card header strong { color:var(--green-dark); font-size:12px; }
.plan-priority-card h3 { margin:13px 0 7px; font:500 18px/1.2 Georgia,"Times New Roman",serif; }
.plan-priority-card p { min-height:34px; margin:0; color:var(--muted); font-size:10px; line-height:1.5; }
.plan-priority-card i { height:6px; margin-top:14px; display:block; overflow:hidden; background:linear-gradient(90deg,var(--priority-accent) 0 var(--priority),#e5eae2 var(--priority) 100%); border-radius:99px; }
.plan-weeks-section { width:100%; max-width:1500px; margin:auto; }
.plan-section-heading { margin-bottom:18px; display:flex; align-items:end; justify-content:space-between; gap:30px; }
.plan-section-heading > p { max-width:470px; margin:0; color:var(--muted); line-height:1.55; }
.plan-weeks { display:grid; gap:12px; }
.plan-week-card { overflow:hidden; background:var(--paper); border:1px solid var(--line); border-radius:14px; box-shadow:0 12px 34px rgba(39,55,47,.05); }
.plan-week-card > summary { min-height:92px; padding:17px 20px; display:grid; grid-template-columns:auto minmax(0,1fr) minmax(100px,180px); align-items:center; gap:17px; cursor:pointer; list-style:none; }
.plan-week-card > summary::-webkit-details-marker,.plan-target-card > summary::-webkit-details-marker { display:none; }
.plan-week-card[open] > summary { background:#f7f8f3; border-bottom:1px solid var(--line); }
.plan-week-number { width:45px; height:45px; display:grid; place-items:center; color:white; background:var(--green); border-radius:12px; font:750 12px/1 ui-monospace,Consolas,monospace; }
.plan-week-title small,.plan-week-title strong,.plan-week-title em { display:block; }
.plan-week-title small { color:var(--green); font-size:9px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.plan-week-title strong { margin-top:3px; font:500 22px/1.15 Georgia,"Times New Roman",serif; }
.plan-week-title em { margin-top:5px; color:var(--muted); font-size:11px; font-style:normal; }
.plan-week-progress { text-align:right; }
.plan-week-progress > strong { color:var(--green-dark); font-size:12px; }
.plan-week-progress > span { height:5px; margin-top:7px; display:block; overflow:hidden; background:#e5eae2; border-radius:999px; }
.plan-week-progress i { height:100%; display:block; background:linear-gradient(90deg,var(--green),var(--gold)); border-radius:inherit; }
.plan-week-content { padding:20px; }
.plan-target-columns { margin-bottom:18px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.plan-target-card { min-width:0; padding:15px; background:#eef1e9; border:1px solid var(--line); border-radius:10px; }
.plan-target-card > summary { display:flex; align-items:center; justify-content:space-between; gap:15px; cursor:pointer; list-style:none; }
.plan-target-card summary strong,.plan-target-card summary small { display:block; }
.plan-target-card summary strong { font-size:13px; }
.plan-target-card summary small { margin-top:3px; color:var(--muted); font-size:10px; }
.plan-target-card summary b { color:var(--green-dark); font-size:10px; }
.plan-target-card > p { margin:7px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.plan-target-card ul { max-height:340px; margin:14px 0 0; padding:12px 0 0; overflow:auto; border-top:1px solid var(--line); list-style:none; }
.plan-target-card li { padding:8px 0; display:grid; gap:3px; border-bottom:1px solid rgba(204,211,201,.65); }
.plan-target-card li:last-child { border-bottom:0; }
.plan-target-card li a { color:var(--green-dark); font-size:12px; font-weight:800; text-decoration:none; }
.plan-target-card li span { color:var(--muted); font-size:10px; }
.plan-blocks { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.plan-block { min-width:0; min-height:64px; padding:10px 12px; display:grid; grid-template-columns:auto auto minmax(0,1fr); align-items:center; gap:11px; background:white; border:1px solid var(--line); border-radius:9px; cursor:pointer; }
.plan-block:hover { border-color:#a3c7b7; }
.plan-block.completed { background:var(--green-soft); border-color:#bedacb; }
.plan-block input { width:18px; height:18px; accent-color:var(--green); }
.plan-block-order { color:var(--muted); font:700 10px/1 ui-monospace,Consolas,monospace; }
.plan-block-copy { min-width:0; }
.plan-block-copy strong,.plan-block-copy small { display:block; }
.plan-block-copy strong { overflow-wrap:anywhere; font-size:12px; line-height:1.35; }
.plan-block-copy small { margin-top:3px; color:var(--muted); font-size:9px; text-transform:uppercase; }
.plan-block.completed .plan-block-copy strong { color:var(--green-dark); text-decoration:line-through; text-decoration-thickness:1px; }

@media (max-width:820px) {
  .plan-view { padding:30px 14px 55px; }
  .plan-hero { align-items:stretch; flex-direction:column; gap:19px; }
  .plan-period { min-width:0; }
  .plan-summary { grid-template-columns:1fr 1fr; }
  .plan-progress-panel { grid-template-columns:minmax(0,1fr) auto; padding:21px 18px; }
  .plan-progress-track { grid-column:1 / -1; }
  .plan-next-button,.plan-finished { grid-column:1 / -1; justify-self:stretch; }
  .plan-method { grid-template-columns:1fr; padding:20px 17px; }
  .plan-method-grid { grid-template-columns:1fr 1fr 1fr; }
  .plan-method-grid span { min-height:80px; padding:11px; }
  .plan-priority-grid { grid-template-columns:1fr 1fr; }
  .plan-section-heading { align-items:flex-start; flex-direction:column; gap:8px; }
  .plan-week-card > summary { grid-template-columns:auto minmax(0,1fr); padding:14px; }
  .plan-week-progress { grid-column:1 / -1; text-align:left; }
  .plan-week-content { padding:14px; }
  .plan-target-columns,.plan-blocks { grid-template-columns:1fr; }
}

@media (max-width:480px) {
  .plan-summary { grid-template-columns:1fr 1fr; gap:8px; }
  .plan-summary > div { padding:14px 12px; }
  .plan-method-grid { grid-template-columns:1fr; }
  .plan-method-grid span { min-height:0; }
  .plan-priority-grid { grid-template-columns:1fr; }
}
