.program-shell{width:min(100%,980px);margin:0 auto}
.program-week-nav{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin:0 0 18px}
.program-week-nav a,.program-week-nav span{min-height:38px;border:1px solid #cbd8d3;border-radius:999px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:.88rem;font-weight:750;white-space:nowrap}
.program-week-nav a{background:#fff;color:#315149;transition:background .14s ease,border-color .14s ease,transform .14s ease}
.program-week-nav a:hover{border-color:#0c6b5b;background:#f3faf7;transform:translateY(-1px)}
.program-week-nav .is-current{border-color:#0c6b5b;background:#0c6b5b;color:#fff}
.program-week-nav .is-future{border-color:#dde4e1;background:#f2f4f3;color:#9aa5a1;cursor:not-allowed}
.program-topbar{margin-bottom:24px}
.program-meta{display:flex;justify-content:space-between;gap:20px;align-items:baseline;margin-bottom:10px;color:#52645f;font-size:.95rem}
.program-progress{height:8px;overflow:hidden;border-radius:999px;background:#e2ebe7}
.program-progress-bar{width:0;height:100%;border-radius:inherit;background:#0c6b5b;transition:width .22s ease}
.program-card{padding:clamp(28px,5vw,52px);border:1px solid #d7e3df;border-radius:28px;background:#fff;box-shadow:0 18px 55px rgba(20,50,43,.08)}
.program-loading{color:#52645f}
.program-eyebrow{margin:0 0 12px;color:#0c6b5b;font-weight:750;letter-spacing:.04em;text-transform:uppercase;font-size:.83rem}
.program-heading{max-width:760px;margin:0 0 24px;color:#1e2935;font-size:clamp(2rem,5vw,3.35rem);line-height:1.08}
.program-subheading{margin:34px 0 14px;color:#06463f;font-size:1.55rem}
.program-content-section{max-width:800px;margin-top:42px;padding-top:8px}
.program-content-section:first-of-type{margin-top:18px}
.program-block--first .program-content-section:first-child .program-content-heading{display:none}
.program-content-heading{margin:0 0 18px;padding-bottom:10px;border-bottom:2px solid #dcebe6;color:#06463f;font-size:clamp(1.55rem,3vw,2rem);line-height:1.2}
.program-lead{max-width:760px;margin:0 0 24px;color:#455a54;font-size:clamp(1.08rem,2.2vw,1.28rem);line-height:1.7}
.program-copy{max-width:760px;color:#33433f;line-height:1.75}
.program-copy p{margin:0 0 1.2em}
.program-note{max-width:760px;margin:26px 0 0;padding:18px 20px;border-left:4px solid #7eb6a8;border-radius:0 14px 14px 0;background:#eef7f3;color:#31453f;line-height:1.6}
.program-locked-note{margin:0 0 26px;padding:16px 18px;border:1px solid #cfdcd7;border-radius:14px;background:#f4f7f6;color:#40514b;line-height:1.55}
.program-start-box{max-width:760px;margin-top:28px;padding:24px;border:1px solid #cfe0da;border-radius:18px;background:#f5faf8}
.program-start-box p{margin:0 0 18px;color:#52645e;line-height:1.65}
.program-button{min-height:48px;padding:0 20px;border:1px solid transparent;border-radius:999px;font:inherit;font-weight:750;cursor:pointer;transition:transform .14s ease,background .14s ease,border-color .14s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.program-button:hover{transform:translateY(-1px)}
.program-button:focus-visible{outline:3px solid rgba(12,107,91,.22);outline-offset:2px}
.program-button-primary{background:#0c6b5b;color:#fff}
.program-button-secondary{border-color:#b8cac4;background:#fff;color:#31433d}
.program-button-danger{border-color:#d8bcbc;background:#fff7f7;color:#7b2f2f}
.program-week-status{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:28px 0}
.program-week-stat{padding:18px;border:1px solid #d8e4e0;border-radius:16px;background:#f8fbfa}
.program-week-stat strong{display:block;margin-bottom:4px;color:#0c6b5b;font-size:1.5rem}
.program-week-stat span{color:#52645e}
.diary-days{display:grid;gap:14px;margin-top:24px}
.diary-day{border:1px solid #d7e3df;border-radius:18px;background:#fff;overflow:hidden}
.diary-day.is-today{border-color:#0c6b5b;box-shadow:0 0 0 3px rgba(12,107,91,.08)}
.diary-day.is-complete{background:#fbfdfc}
.diary-day.is-future{opacity:.65}
.diary-day.is-locked{background:#fafcfb}
.diary-day-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;background:#f8fbfa}
.diary-day-heading-wrap{min-width:0}
.diary-day-title{margin:0;color:#233b33;font-size:1.08rem}
.diary-day-meta{margin-top:3px;color:#66766f;font-size:.93rem}
.diary-day-controls{display:flex;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:10px}
.diary-day-badge{flex:0 0 auto;padding:6px 10px;border-radius:999px;background:#e6f1ed;color:#0c6b5b;font-size:.84rem;font-weight:700}
.diary-day-badge.future{background:#ecefed;color:#6a7470}
.diary-day-badge.locked{background:#edf0ef;color:#59645f}
.diary-edit-button{min-height:40px;padding:0 16px}
.diary-day-body{padding:20px;border-top:1px solid #e4ece9}
.diary-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.diary-field{display:flex;flex-direction:column;gap:8px}
.diary-field.full{grid-column:1/-1}
.diary-field label{font-weight:750;color:#26342f}
.diary-field input,.diary-field select,.diary-field textarea{width:100%;box-sizing:border-box;border:1px solid #b9cbc5;border-radius:14px;background:#fff;color:#1f2c28;font:inherit;font-size:1rem}
.diary-field input,.diary-field select{min-height:50px;padding:0 14px}
.diary-field textarea{min-height:110px;padding:14px;resize:vertical}
.diary-field small{color:#65756f;line-height:1.5}
.range-row{display:flex;align-items:center;gap:14px}
.range-row input[type="range"]{padding:0}
.range-value{min-width:38px;text-align:center;font-weight:750;color:#0c6b5b}
.diary-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.diary-details{grid-column:1/-1;border:1px solid #d8e4e0;border-radius:14px;background:#f8fbfa;overflow:hidden}.diary-details summary{padding:14px 16px;cursor:pointer;font-weight:750;color:#07594f;list-style:none}.diary-details summary::-webkit-details-marker{display:none}.diary-details summary::before{content:'▸';display:inline-block;margin-right:8px}.diary-details[open] summary::before{transform:rotate(90deg)}.diary-details summary span{color:#687872;font-size:.88rem;font-weight:500}.diary-details-grid{padding:4px 16px 18px}.diary-emotions{margin:0;padding:0;border:0}.diary-emotion-options{display:flex;flex-wrap:wrap;gap:8px}.diary-emotion-options label{padding:8px 11px;border:1px solid #c9d8d3;border-radius:999px;background:#fff;cursor:pointer}.diary-emotion-options input{width:auto;min-height:auto}
.program-summary{display:grid;gap:14px;margin-top:26px}
.program-summary-item{padding:17px 18px;border:1px solid #d8e4e0;border-radius:14px;background:#f8fbfa}
.program-summary-item strong{display:block;margin-bottom:5px;color:#234138}
.program-summary-item span{color:#52645e;white-space:pre-wrap}
.program-answer-grid{display:grid;gap:18px;max-width:760px}
.program-answer-grid-inline{margin-top:24px;padding:22px;border:1px solid #cfe0da;border-radius:18px;background:#f7fbf9}
.program-block-questions{max-width:800px;margin-top:40px;padding-top:26px;border-top:2px solid #dcebe6}
.program-block-questions>h2{margin:0 0 8px;color:#06463f;font-size:1.45rem}
.program-block-questions>p{margin:0;color:#52645e;line-height:1.6}
.program-field{display:flex;flex-direction:column;gap:8px}
.program-field label{font-weight:750;color:#06463f;line-height:1.45}
.program-field select,.program-field textarea{width:100%;box-sizing:border-box;border:1px solid #b9cbc5;border-radius:14px;background:#fff;color:#1f2c28;font:inherit;font-size:1rem}
.program-field select{min-height:52px;padding:0 14px}
.program-field textarea{min-height:140px;padding:14px;resize:vertical}
.program-field select:disabled,.program-field textarea:disabled{opacity:1;background:#f3f6f5;color:#52615c;cursor:not-allowed}
.program-section{margin-top:42px}
.program-block-intro{max-width:800px;margin:28px 0 10px;padding:18px 20px;border-left:4px solid #0c6b5b;border-radius:0 14px 14px 0;background:#f2faf7}
.program-block-intro span{display:block;margin-bottom:5px;color:#0c6b5b;font-size:.85rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.program-block-intro h2{margin:0;color:#173b33;font-size:1.25rem}
.program-week-intro{margin-top:24px}
.program-block-navigation{margin-top:44px;padding-top:24px;border-top:1px solid #dce6e2}
.program-block-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0;padding:0;list-style:none}
.program-block-steps button{width:100%;min-height:42px;padding:7px 10px;border:1px solid #cad9d4;border-radius:999px;background:#fff;color:#52645e;font:inherit;font-size:.9rem;font-weight:750;cursor:pointer}
.program-block-steps button[aria-current="step"]{border-color:#0c6b5b;background:#0c6b5b;color:#fff}
.program-block-actions{display:flex;justify-content:space-between;gap:18px;margin-top:22px}
.program-block-link{padding:4px 0;border:0;background:transparent;color:#07594f;font:inherit;font-weight:800;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;cursor:pointer}
.program-block-link-next{margin-left:auto;text-align:right}
.program-block-link:hover{color:#0c6b5b}
.program-block-link:focus-visible{outline:3px solid rgba(12,107,91,.22);outline-offset:5px;border-radius:4px}
.program-week-close{max-width:760px;padding:24px;border:1px solid #b8d4cb;border-radius:18px;background:#f2faf7}
.program-week-close .program-subheading{margin-top:0}
.program-week-close-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:20px}
.program-week-close-hint{color:#61716b;line-height:1.5;font-size:.93rem}
.program-completion-actions{margin-top:22px}
.program-reset-row{display:flex;justify-content:flex-end;margin-top:28px}
.program-storage-note{margin:18px 0 0;text-align:center;color:#73817c;font-size:.86rem}
.program-error{padding:20px;border:1px solid #e2bcbc;border-radius:14px;background:#fff6f6;color:#6d2d2d}
.floating-diary-launcher{position:fixed;z-index:80;right:clamp(18px,3vw,42px);top:50%;display:flex;align-items:center;gap:10px;min-height:52px;padding:0 18px;border:1px solid #07594f;border-radius:999px;background:#0c6b5b;color:#fff;font:inherit;font-weight:800;box-shadow:0 12px 32px rgba(12,70,61,.24);cursor:pointer;transform:translateY(-50%);transition:transform .15s ease,box-shadow .15s ease}
.floating-diary-launcher:hover{transform:translateY(calc(-50% - 2px));box-shadow:0 15px 36px rgba(12,70,61,.3)}
.floating-diary-launcher.is-complete{border-color:#b8d4cb;background:#fff;color:#07594f}
.floating-diary-launcher-icon{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:rgba(255,255,255,.18);font-size:1.05rem}
.floating-diary-launcher.is-complete .floating-diary-launcher-icon{background:#e5f3ee}
.floating-diary-backdrop{position:fixed;z-index:90;inset:0;background:rgba(19,36,31,.46);backdrop-filter:blur(2px)}
.floating-diary-panel{position:fixed;z-index:100;top:0;right:0;width:min(560px,92vw);height:100dvh;box-sizing:border-box;overflow-y:auto;padding:28px;background:#fff;box-shadow:-18px 0 52px rgba(16,42,35,.2)}
.floating-diary-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid #dce6e2}
.floating-diary-header .program-eyebrow{margin-bottom:5px}
.floating-diary-header h2{margin:0;color:#173b33;font-size:1.75rem}
.floating-diary-close{width:44px;height:44px;border:1px solid #cad9d4;border-radius:50%;background:#fff;color:#29453d;font:inherit;font-size:1.8rem;line-height:1;cursor:pointer}
.floating-diary-date{margin:18px 0;color:#52645e;font-weight:700}
.floating-diary-body .diary-details{margin-top:4px}
.floating-diary-body .diary-actions{position:sticky;bottom:-28px;margin:24px -28px -28px;padding:18px 28px;background:#fff;border-top:1px solid #dce6e2}
@media(max-width:900px){
  .program-week-nav{display:flex;overflow-x:auto;gap:8px;padding-bottom:4px;scrollbar-width:thin}
  .program-week-nav a,.program-week-nav span{flex:0 0 auto;min-width:64px;padding:0 12px}
}
@media(max-width:760px){
  body{padding-bottom:82px}
  .floating-diary-launcher{top:auto;right:12px;bottom:12px;left:12px;justify-content:center;transform:none}
  .floating-diary-launcher:hover{transform:translateY(-2px)}
  .floating-diary-panel{top:auto;bottom:0;width:100%;height:min(88dvh,760px);padding:22px 18px;border-radius:24px 24px 0 0}
  .floating-diary-body .diary-actions{bottom:-22px;margin:24px -18px -22px;padding:16px 18px}
  .program-card{padding:28px 20px;border-radius:20px}
  .program-meta{align-items:flex-start;font-size:.9rem}
  .program-week-status{grid-template-columns:1fr 1fr}
  .diary-form-grid{grid-template-columns:1fr}
  .diary-field.full{grid-column:auto}
  .diary-day-header{align-items:flex-start}
  .diary-day-controls{flex-direction:column;align-items:flex-end}
  .program-answer-grid-inline{padding:18px}
}
@media(max-width:520px){
  .program-card{padding:24px 16px}
  .program-heading{font-size:2rem}
  .program-subheading{font-size:1.35rem}
  .diary-day-header{padding:16px;display:grid;grid-template-columns:1fr;gap:12px}
  .diary-day-controls{width:100%;flex-direction:row;justify-content:space-between;align-items:center}
  .diary-edit-button{margin-left:auto}
  .diary-day-body{padding:16px}
  .diary-actions{display:grid}
  .diary-actions .program-button{width:100%}
  .program-week-close-actions{display:grid}
  .program-week-close-actions .program-button{width:100%}
  .program-reset-row{justify-content:stretch}
  .program-reset-row .program-button{width:100%}
  .program-block-steps{grid-template-columns:1fr 1fr}
  .program-block-actions{align-items:flex-start;flex-direction:column}
  .program-block-link-next{margin-left:0;text-align:left}
}
@media(max-width:480px){
  .program-week-status{grid-template-columns:1fr}
  .program-meta{display:grid;gap:4px}
}
