
  #weekLabel { margin: 24px 0 0; }
:root{
    --bg: #142A20;
    --panel: #1D3A2C;
    --panel-hi: #244634;
    --ivory: #EFE6D3;
    --ivory-dim: #C9C0AC;
    --amber: #F2A65A;
    --sage: #82A78E;
    --line: rgba(239,230,211,0.14);
    --radius: 4px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ivory);
    font-family:'Inter', system-ui, sans-serif;
    -webkit-font-smoothing:antialiased;
    line-height:1.5;
  }
  h1,h2,h3, .display{
    font-family:'Fraunces', Georgia, serif;
    font-weight:500;
    letter-spacing:-0.01em;
    margin:0;
  }
  a{color:inherit;}
  .wrap{max-width:680px; margin:0 auto; padding:0 24px;}

  /* NAV */
  nav.top{
    padding:22px 0;
    border-bottom:1px solid var(--line);
  }
  nav.top .wrap{display:flex; justify-content:space-between; align-items:baseline;}
  .brand{font-family:'Fraunces', serif; font-size:19px; font-weight:600;}
  .brand span{color:var(--amber);}
  nav.top .meta{font-size:13px; color:var(--ivory-dim);}

  /* HERO */
  header.hero{padding:72px 0 56px; border-bottom:1px solid var(--line);}
  header.hero h1{
    font-size:clamp(34px, 6vw, 52px);
    line-height:1.08;
    max-width:11.5ch;
  }
  header.hero p.lede{
    max-width:46ch;
    color:var(--ivory-dim);
    font-size:16.5px;
    margin-top:20px;
  }
  .schedule-strip{
    display:flex;
    gap:10px;
    margin-top:36px;
    flex-wrap:wrap;
  }
  .schedule-pill{
    border:1px solid var(--line);
    border-radius:100px;
    padding:8px 16px;
    font-size:13.5px;
    color:var(--sage);
    display:flex;
    gap:8px;
    align-items:center;
  }
  .schedule-pill b{color:var(--ivory); font-weight:600;}
  .dot{width:6px; height:6px; border-radius:50%; background:var(--amber);}

  /* PROGRESS */
  .progress-row{
    margin-top:40px;
    display:flex;
    align-items:center;
    gap:16px;
  }
  .progress-track{
    flex:1;
    height:6px;
    background:var(--panel-hi);
    border-radius:100px;
    overflow:hidden;
  }
  .progress-fill{
    height:100%;
    width:0%;
    background:var(--amber);
    transition:width .4s ease;
  }
  #progressLabel{font-size:13px; color:var(--ivory-dim); white-space:nowrap;}

  /* DAY SECTIONS */
  main{padding:64px 0 40px;}
  section.day{margin-bottom:56px;}
  .day-head{
    display:flex;
    align-items:baseline;
    gap:14px;
    margin-bottom:6px;
  }
  .day-num{
    font-family:'Fraunces', serif;
    font-size:15px;
    color:var(--amber);
    border:1px solid var(--amber);
    border-radius:100px;
    width:28px; height:28px;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .day-head h2{font-size:24px;}
  .day-actions{
    margin-left:auto;
    display:flex;
    gap:12px;
    align-items:baseline;
  }
  .day-count{
    font-size:13px;
    color:var(--ivory-dim);
    font-family:'Inter', system-ui, sans-serif;
    white-space:nowrap;
  }
  .day-reset{
    background:none; border:none; color:var(--ivory-dim);
    text-decoration:underline; cursor:pointer; font-size:12.5px; padding:0;
    font-family:'Inter', system-ui, sans-serif;
  }
  .day-reset:hover{color:var(--amber);}
  .day-reset:focus-visible{
    outline:2px solid var(--amber);
    outline-offset:2px;
  }
  .day-sub{color:var(--ivory-dim); font-size:14px; margin:8px 0 20px 42px;}

  .exercise{
    display:flex;
    align-items:flex-start;
    gap:14px;
    padding:16px 0;
    border-top:1px solid var(--line);
    margin-left:42px;
  }
  .exercise:last-child{border-bottom:1px solid var(--line);}
  .check{
    margin-top:2px;
    padding:0;
    font:inherit;
    -webkit-appearance:none;
    appearance:none;
    width:20px; height:20px;
    border-radius:5px;
    border:1.5px solid var(--sage);
    flex-shrink:0;
    cursor:pointer;
    position:relative;
    background:transparent;
    transition:background .15s ease, border-color .15s ease;
  }
  .check.done{background:var(--amber); border-color:var(--amber);}
  .check.done::after{
    content:"";
    position:absolute; left:6px; top:2px;
    width:5px; height:10px;
    border:solid var(--bg);
    border-width:0 2px 2px 0;
    transform:rotate(40deg);
  }
  .check:focus-visible{
    outline:2px solid var(--amber);
    outline-offset:2px;
  }
  .exercise-body{flex:1;}
  .exercise-name{font-size:16px; font-weight:500;}
  .exercise-name.done{color:var(--ivory-dim); text-decoration:line-through; text-decoration-color:var(--sage);}
  .exercise-scheme{font-size:13.5px; color:var(--sage); margin-top:2px;}
  .exercise-video{
    display:inline-flex;
    align-items:center;
    gap:6px;
    margin-top:8px;
    font-size:13px;
    color:var(--amber);
    text-decoration:none;
  }
  .exercise-video:hover{text-decoration:underline;}
  .exercise-video svg{flex-shrink:0;}

  /* NOTES */
  .notes{
    background:var(--panel);
    border-radius:var(--radius);
    padding:28px 28px;
    border:1px solid var(--line);
  }
  .notes h3{font-size:15px; color:var(--amber); margin-bottom:14px; font-family:'Inter', system-ui, sans-serif; font-weight:600;}
  .notes ul{margin:0; padding-left:18px; color:var(--ivory-dim); font-size:14.5px;}
  .notes li{margin-bottom:9px;}
  .notes li:last-child{margin-bottom:0;}

  footer{
    border-top:1px solid var(--line);
    padding:28px 0 48px;
    color:var(--ivory-dim);
    font-size:12.5px;
  }
  footer .wrap{display:flex; justify-content:space-between;}
  button.reset{
    background:none; border:none; color:var(--ivory-dim);
    text-decoration:underline; cursor:pointer; font-size:12.5px; padding:0;
    font-family:'Inter', system-ui, sans-serif;
  }
  button.reset:hover{color:var(--amber);}

  @media (max-width:520px){
    .exercise, .day-sub{margin-left:0;}
    .day-head{gap:10px;}
  }
  [hidden]{display:none!important;}
  .toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:22px 0;}
  .toolbar h2{margin-right:auto;}
  button,input,select,textarea{font:inherit;}
  .toolbar button,.panel button,#undoBtn,.admin button{background:var(--panel);border:1px solid var(--sage);border-radius:4px;color:var(--ivory);padding:8px 12px;cursor:pointer;}
  button:disabled{opacity:.5;cursor:default;}
  .panel{padding-top:24px;padding-bottom:24px;border-bottom:1px solid var(--line);}
  #saveStatus,#connectionStatus,#importStatus,#adminStatus{font-size:14px;color:var(--amber);}
  .history-week{border-top:1px solid var(--line);padding:18px 0;}
  .routine-detail{margin:16px 0 24px;padding-left:24px;}
  .routine-detail li{margin:12px 0;}
  .routine-detail small{display:block;color:var(--sage);}
  .admin{max-width:900px;margin:auto;padding:24px;}
  .admin label{display:block;font-size:14px;margin:12px 0;}
  .admin input,.admin select,.admin textarea{display:block;width:100%;padding:10px;margin-top:5px;background:var(--panel);color:var(--ivory);border:1px solid var(--sage);border-radius:4px;}
  .admin fieldset{border:1px solid var(--line);margin:18px 0;padding:18px;}
  .admin .exercise-editor{border-top:1px solid var(--line);padding:12px 0;}
  :focus-visible{outline:2px solid var(--amber);outline-offset:3px;}
/* Account controls extend the existing green and amber theme. */
.account-page{padding:48px 24px;max-width:680px}.account-page h1{font-size:2.2rem;margin:32px 0 16px}.account-page label{display:block;margin:20px 0;font-size:1rem}.account-page input{display:block;width:100%;margin-top:8px;padding:12px;background:var(--bg,#142a20);color:inherit;border:1px solid #6c8974;border-radius:6px;font:inherit}.top .wrap{gap:16px;flex-wrap:wrap}.top .toolbar{flex-wrap:wrap;font-size:.875rem}.toolbar a{color:inherit}.account-page p{line-height:1.6}button:disabled{opacity:.55;cursor:wait}
