  :root {
    --burgundy:#6B2737; --burgundy-deep:#4A1A26; --burgundy-light:#8B3A4C;
    --brown:#5C3A21; --brown-light:#8B6F47;
    --beige:#F5E6D3; --beige-warm:#EADBC1; --beige-deep:#D4BF9F;
    --cream:#FBF6EC; --ink:#2B1810; --muted:#7A6550;
    --gold:#B8860B; --sage:#6B7D5C;
    --shadow:0 2px 6px rgba(74,26,38,.10);
  }
  *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
  html{font-size:15px}
  body{
    background:var(--cream);color:var(--ink);
    font-family:Georgia,'Times New Roman',serif;line-height:1.5;
    padding:10px 10px 40px;
    min-height:100vh;
  }
  .container{max-width:860px;margin:0 auto}

  /* header */
  header{text-align:center;padding:14px 6px 10px;border-bottom:1px solid var(--beige-deep);margin-bottom:12px}
  header h1{font-size:1.6rem;color:var(--burgundy);letter-spacing:.5px;font-variant:small-caps}
  header .subtitle{color:var(--brown);font-style:italic;font-size:.82rem;margin-top:2px}
  header .ornament{color:var(--gold);letter-spacing:6px;font-size:.9rem;margin:4px 0}

  /* dashboard */
  .dash{
    background:linear-gradient(135deg,var(--beige-warm),var(--beige));
    border:1px solid var(--beige-deep);border-radius:10px;
    padding:12px;margin-bottom:12px;box-shadow:var(--shadow);
  }
  .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
  .stat{text-align:center;padding:7px 2px;background:var(--cream);border-radius:6px;border:1px solid var(--beige-deep)}
  .stat-v{font-size:1.2rem;font-weight:bold;color:var(--burgundy);line-height:1;display:block}
  .stat-l{font-size:.62rem;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;margin-top:3px}

  .bar{height:18px;background:var(--cream);border:1px solid var(--beige-deep);border-radius:10px;overflow:hidden;position:relative}
  .bar-fill{height:100%;background:linear-gradient(90deg,var(--burgundy),var(--burgundy-light));transition:width .5s;position:relative}
  .bar-fill::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:sh 3s infinite}
  @keyframes sh{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
  .bar-label{text-align:center;margin-top:6px;color:var(--brown);font-size:.78rem}
  .pill{display:inline-block;background:var(--burgundy);color:var(--cream);padding:2px 10px;border-radius:20px;font-size:.7rem;letter-spacing:1.5px;text-transform:uppercase}

  /* level block */
  .lvl-block{margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--beige-deep)}
  .lvl-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
  .lvl-title-t{font-style:italic;color:var(--brown);font-size:.78rem;flex:1;min-width:0}
  .shields-wrap{color:var(--gold);font-size:.78rem;letter-spacing:1px}
  .lvl-bar-outer{height:10px;border-radius:8px}
  .lvl-fill{background:linear-gradient(90deg,var(--gold),#DCAA3A,var(--gold))}

  /* quests */
  .quests{background:var(--cream);border:1px solid var(--beige-deep);border-radius:8px;padding:10px;margin-bottom:12px;box-shadow:var(--shadow)}
  .quests h3{color:var(--burgundy);font-variant:small-caps;letter-spacing:1.5px;font-size:.88rem;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
  .quests h3 .qp{font-size:.65rem;color:var(--muted);letter-spacing:1px}
  .quest{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px dashed var(--beige-deep);font-size:.8rem}
  .quest:last-child{border:none}
  .quest-ic{font-size:1.1rem;width:24px;text-align:center}
  .quest-t{flex:1;color:var(--brown)}
  .quest-t b{color:var(--burgundy)}
  .quest-pr{font-size:.68rem;color:var(--muted);white-space:nowrap}
  .quest.done .quest-t{text-decoration:line-through;opacity:.6}
  .quest.done .quest-pr{color:var(--sage);font-weight:bold}

  /* books grid */
  .books{display:none;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:4px;
    background:var(--beige);border:1px solid var(--beige-deep);border-top:none;
    border-radius:0 0 8px 8px;padding:8px;margin-top:-8px;margin-bottom:12px}
  .books.open{display:grid}
  .book{text-align:center;padding:5px 2px;background:var(--cream);border:1px solid var(--beige-deep);border-radius:4px;font-size:.62rem;color:var(--muted);letter-spacing:.3px;opacity:.4;line-height:1.1;position:relative}
  .book.started{opacity:.85;background:var(--beige-warm);color:var(--brown);border-color:var(--brown-light)}
  .book.done{opacity:1;background:linear-gradient(135deg,var(--gold),#DCAA3A);color:var(--ink);border-color:var(--gold);font-weight:bold;box-shadow:0 0 4px rgba(184,134,11,.4)}
  .book.done::after{content:'✓';position:absolute;top:1px;right:3px;font-size:.6rem}

  /* confetti */
  .confetti{position:fixed;top:-10px;width:8px;height:12px;z-index:9999;pointer-events:none;animation:fall 2.5s linear forwards}
  @keyframes fall{to{transform:translateY(110vh) rotate(720deg);opacity:0}}

  /* today */
  .today{
    background:var(--burgundy);color:var(--cream);border-radius:10px;
    padding:14px;margin-bottom:12px;border:2px solid var(--gold);
    box-shadow:0 3px 10px rgba(74,26,38,.25);position:relative
  }
  .today::before{content:'TODAY';position:absolute;top:-8px;left:14px;background:var(--gold);color:var(--ink);padding:1px 9px;font-size:.6rem;letter-spacing:1.5px;border-radius:3px;font-weight:bold}
  .today-date{font-size:.72rem;opacity:.85;letter-spacing:.8px}
  .today-h{font-size:1rem;margin:4px 0 8px;font-variant:small-caps;color:var(--gold);letter-spacing:1px}
  .today-ref{font-size:.95rem;margin:2px 0;line-height:1.45}
  .today-ref .lbl{color:var(--gold);font-size:.65rem;letter-spacing:1.5px;margin-right:6px;font-weight:bold}
  .today-btn{
    margin-top:10px;background:var(--gold);color:var(--ink);
    border:none;padding:9px 14px;border-radius:5px;cursor:pointer;
    font-family:inherit;font-weight:bold;letter-spacing:.8px;font-size:.85rem;
    width:100%;transition:transform .2s
  }
  .today-btn:active{transform:scale(.97)}
  .today-btn.done{background:var(--sage);color:var(--cream)}
  .behind{background:rgba(184,134,11,.2);color:var(--gold);border:1px solid var(--gold);
    padding:6px 10px;border-radius:5px;font-size:.72rem;margin-bottom:8px;text-align:center}
  .behind button{background:var(--gold);color:var(--ink);border:none;padding:3px 8px;
    border-radius:3px;font-family:inherit;font-weight:bold;font-size:.7rem;cursor:pointer;margin-left:4px}

  /* controls */
  .controls{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
  .btn{
    background:var(--beige-warm);color:var(--brown);
    border:1px solid var(--beige-deep);padding:6px 10px;border-radius:5px;
    cursor:pointer;font-family:inherit;font-size:.78rem;flex:1;min-width:80px
  }
  .btn:active{background:var(--beige-deep)}
  .btn.primary{background:var(--burgundy);color:var(--cream);border-color:var(--burgundy-deep)}
  .btn.reset{flex:0;background:transparent;color:var(--muted);border:none;font-size:.7rem;text-decoration:underline}

  /* badges - collapsible */
  .badges-head{
    background:var(--beige);border:1px solid var(--beige-deep);
    border-radius:8px;padding:10px 12px;margin-bottom:8px;
    display:flex;justify-content:space-between;align-items:center;cursor:pointer
  }
  .badges-head h3{color:var(--burgundy);font-variant:small-caps;letter-spacing:1.5px;font-size:.9rem}
  .badges{
    display:none;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:6px;
    background:var(--beige);border:1px solid var(--beige-deep);border-top:none;
    border-radius:0 0 8px 8px;padding:10px;margin-top:-8px;margin-bottom:12px
  }
  .badges.open{display:grid}
  .badge{text-align:center;padding:6px 3px;background:var(--cream);border:1px solid var(--beige-deep);border-radius:6px;opacity:.3}
  .badge.earned{opacity:1;border-color:var(--gold);box-shadow:0 0 6px rgba(184,134,11,.25)}
  .badge-ic{font-size:1.2rem;display:block;line-height:1;margin-bottom:2px;filter:sepia(40%)}
  .badge.earned .badge-ic{filter:none}
  .badge-n{font-size:.58rem;color:var(--brown);letter-spacing:.5px;text-transform:uppercase;line-height:1.1}

  /* weeks */
  .week{background:var(--cream);border:1px solid var(--beige-deep);border-radius:8px;margin-bottom:8px;overflow:hidden;box-shadow:var(--shadow)}
  .week-h{
    padding:10px 12px;background:linear-gradient(90deg,var(--beige-warm),var(--beige));
    cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px
  }
  .week-h.done{background:linear-gradient(90deg,#D4C4A8,var(--beige-deep))}
  .week-t{font-size:.88rem;color:var(--burgundy);font-variant:small-caps;letter-spacing:.5px;flex:1;min-width:0}
  .week-m{display:flex;gap:6px;align-items:center;font-size:.72rem;color:var(--brown);flex-shrink:0}
  .mini{width:38px;height:5px;background:var(--cream);border:1px solid var(--beige-deep);border-radius:3px;overflow:hidden}
  .mini-f{height:100%;background:var(--burgundy)}
  .week-b{display:none;padding:4px 8px 10px;border-top:1px solid var(--beige-deep)}
  .week.open .week-b{display:block}
  .chev{display:inline-block;transition:transform .25s;color:var(--brown);font-size:.7rem}
  .week.open .chev{transform:rotate(90deg)}
  .theme{color:var(--muted);font-style:italic;margin:6px 2px 8px;font-size:.78rem;line-height:1.4}

  /* day */
  .day{
    padding:8px 6px;border-bottom:1px dashed var(--beige-deep);
  }
  .day:last-child{border-bottom:none}
  .day.done{opacity:.55}
  .day.done .day-refs{text-decoration:line-through}
  .day.today{background:rgba(184,134,11,.10);border-left:3px solid var(--gold);border-radius:3px;padding-left:6px}
  .day-row{display:flex;gap:8px;align-items:flex-start}
  .check{
    width:22px;height:22px;border:2px solid var(--burgundy);border-radius:4px;
    cursor:pointer;display:flex;align-items:center;justify-content:center;
    background:var(--cream);flex-shrink:0;margin-top:1px
  }
  .check.checked{background:var(--burgundy)}
  .check.checked::after{content:'✓';color:var(--cream);font-weight:bold;font-size:14px}
  .day-info{flex:1;min-width:0}
  .day-meta{font-size:.68rem;color:var(--muted);letter-spacing:.5px;text-transform:uppercase}
  .day-refs{font-size:.88rem;line-height:1.4;margin-top:2px}
  .day-refs .ot{color:var(--brown)}
  .day-refs .nt{color:var(--burgundy);font-style:italic}
  .day-refs .sep{color:var(--beige-deep);margin:0 4px}
  .day-ch{color:var(--muted);font-size:.68rem;white-space:nowrap;margin-top:2px}
  .tag{display:inline-block;font-size:.58rem;padding:1px 6px;border-radius:8px;letter-spacing:.8px;text-transform:uppercase;margin-left:4px;font-weight:bold}
  .tag-grind{background:var(--burgundy);color:var(--cream)}
  .tag-breather{background:var(--sage);color:var(--cream)}
  .tag-milestone{background:var(--gold);color:var(--ink)}
  .tag-easy{background:var(--beige-deep);color:var(--brown)}

  .insight-btn{
    background:none;border:none;color:var(--burgundy);
    font-family:inherit;font-size:.72rem;cursor:pointer;
    padding:4px 0 0;letter-spacing:.5px;text-decoration:underline;
    font-style:italic
  }
  .insight{
    display:none;margin-top:6px;padding:8px 10px;
    background:var(--beige);border-left:3px solid var(--gold);
    border-radius:0 6px 6px 0;font-size:.8rem;line-height:1.5
  }
  .insight.open{display:block}
  .insight-core{color:var(--brown);font-style:italic;margin-bottom:6px;font-size:.78rem}
  .view{margin-top:6px;padding:6px 8px;background:var(--cream);border-radius:4px}
  .view-n{font-size:.65rem;color:var(--burgundy);font-weight:bold;text-transform:uppercase;letter-spacing:1px;display:block;margin-bottom:2px}
  .view-a{border-left:2px solid var(--burgundy)}
  .view-b{border-left:2px solid var(--sage)}
  .view-b .view-n{color:var(--sage)}

  /* interlude */
  .interlude{
    background:linear-gradient(135deg,var(--brown),var(--burgundy-deep));
    color:var(--beige);padding:12px 14px;border-radius:8px;
    margin:10px 0;text-align:center;box-shadow:var(--shadow)
  }
  .interlude h4{color:var(--gold);font-variant:small-caps;letter-spacing:2px;margin-bottom:4px;font-size:.82rem}
  .interlude p{font-style:italic;font-size:.8rem;line-height:1.4;opacity:.94}

  /* toast */
  #toast{
    position:fixed;bottom:14px;left:50%;
    transform:translateX(-50%) translateY(60px);
    background:var(--burgundy);color:var(--cream);
    padding:10px 18px;border-radius:7px;border:2px solid var(--gold);
    box-shadow:0 4px 14px rgba(0,0,0,.3);
    opacity:0;transition:all .35s;z-index:1000;text-align:center;
    min-width:200px;max-width:90vw
  }
  #toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
  #toast .tt{color:var(--gold);font-size:.7rem;letter-spacing:1.5px;text-transform:uppercase;font-weight:bold}
  #toast .tm{font-size:.85rem;margin-top:2px}

  footer{text-align:center;padding:20px 10px;color:var(--muted);font-size:.72rem;font-style:italic}

  /* settings panel */
  .settings{background:var(--cream);border:1px solid var(--beige-deep);border-radius:8px;padding:10px 12px;margin-bottom:10px;display:none;box-shadow:var(--shadow)}
  .settings.open{display:block}
  .setting{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px dashed var(--beige-deep);font-size:.82rem;color:var(--brown)}
  .setting:last-child{border:none}
  .setting label{flex:1}
  .setting select,.setting .toggle{font-family:inherit;font-size:.78rem;padding:4px 8px;border-radius:4px;border:1px solid var(--beige-deep);background:var(--cream);color:var(--brown);cursor:pointer}
  .toggle[data-on="true"]{background:var(--burgundy);color:var(--cream);border-color:var(--burgundy-deep)}

  /* Bible links */
  .day-refs a{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor}
  .day-refs a:hover{border-bottom-style:solid}
  .today-ref a{color:var(--cream);text-decoration:underline;text-decoration-color:rgba(245,230,211,.4)}

  /* per-day notes */
  .note-btn{background:none;border:none;color:var(--brown);font-family:inherit;font-size:.7rem;cursor:pointer;padding:3px 0;margin-top:2px;letter-spacing:.4px;font-style:italic;opacity:.8}
  .note-btn:hover{opacity:1}
  .note-box{display:none;margin-top:6px}
  .note-box.open{display:block}
  .note-box textarea{width:100%;min-height:50px;padding:6px 8px;border:1px solid var(--beige-deep);border-radius:4px;background:var(--cream);font-family:inherit;font-size:.78rem;color:var(--ink);resize:vertical;line-height:1.4}
  .note-box textarea:focus{outline:none;border-color:var(--burgundy)}

  /* PIN gate */
  #gate{position:fixed;inset:0;background:linear-gradient(135deg,var(--burgundy-deep),var(--burgundy));z-index:9998;display:flex;align-items:center;justify-content:center;padding:20px}
  #gate.hide{display:none}
  .gate-card{background:var(--cream);border:2px solid var(--gold);border-radius:12px;padding:24px 22px;max-width:320px;width:100%;text-align:center;box-shadow:0 6px 28px rgba(0,0,0,.35)}
  .gate-card .orn{color:var(--gold);letter-spacing:8px;font-size:1rem;margin-bottom:4px}
  .gate-card h2{color:var(--burgundy);font-variant:small-caps;letter-spacing:2px;font-size:1.3rem;margin-bottom:4px}
  .gate-card .gsub{color:var(--muted);font-style:italic;font-size:.78rem;margin-bottom:14px}
  .gate-card input{width:100%;padding:12px;border:1px solid var(--beige-deep);border-radius:6px;font-family:inherit;font-size:1.4rem;text-align:center;letter-spacing:10px;background:var(--cream);color:var(--ink);margin-bottom:10px}
  .gate-card input:focus{outline:none;border-color:var(--burgundy)}
  .gate-card button{width:100%;background:var(--burgundy);color:var(--cream);border:none;padding:11px;border-radius:6px;font-family:inherit;font-weight:bold;letter-spacing:1px;font-size:.9rem;cursor:pointer;text-transform:uppercase}
  .gate-card button:hover{background:var(--burgundy-light)}
  .gate-msg{color:var(--brown);font-size:.78rem;margin-top:8px;min-height:1em}
  .gate-msg.err{color:var(--burgundy)}
  .gate-msg.ok{color:var(--sage)}
  .gate-hint{color:var(--muted);font-size:.7rem;margin-top:10px;font-style:italic}

  /* dark mode */
  body.dark{--cream:#1A1410;--beige:#2A2218;--beige-warm:#322819;--beige-deep:#3F3220;--ink:#E8DFD0;--muted:#9C8970;--brown:#B89A6F;--brown-light:#8B6F47}
  body.dark .today{background:#4A1A26}
  body.dark .week,body.dark .settings,body.dark .stat,body.dark .day.today{background:#221A12}
  body.dark .week-h,body.dark .badges-head{background:linear-gradient(90deg,#2A2218,#332718)}

  /* ≥600px */
  @media (min-width:600px){
    html{font-size:16px}
    body{padding:20px}
    header h1{font-size:2rem}
    .stats{grid-template-columns:repeat(4,1fr);gap:10px}
    .stat{padding:10px}
    .stat-v{font-size:1.6rem}
    .controls .btn{flex:0 0 auto}
    .week-t{font-size:1rem}
    .day-refs{font-size:.95rem}
  }

/* Production tracker additions */
.hidden{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.top-nav{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:8px;font-size:.74rem}
.top-nav a,.top-nav button{color:var(--burgundy);background:transparent;border:0;text-decoration:underline;font-family:inherit;cursor:pointer}
.setup-card{background:linear-gradient(135deg,var(--beige-warm),var(--beige));border:1px solid var(--beige-deep);border-radius:12px;padding:16px;margin:0 auto 14px;box-shadow:var(--shadow);max-width:560px}
.setup-card h2{color:var(--burgundy);font-variant:small-caps;letter-spacing:1.2px;margin-bottom:6px;text-align:center}
.setup-card p{color:var(--brown);font-size:.9rem;margin-bottom:12px;text-align:center}
.setup-form{display:grid;gap:11px}
.setup-field{display:grid;gap:4px}
.setup-field label{font-size:.72rem;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);font-weight:bold}
.setup-field input,.setup-field select{width:100%;padding:10px 11px;border:1px solid var(--beige-deep);border-radius:6px;background:var(--cream);color:var(--ink);font-family:inherit;font-size:1rem}
.setup-field input:focus,.setup-field select:focus{outline:none;border-color:var(--burgundy);box-shadow:0 0 0 3px rgba(107,39,55,.12)}
.slug-row{display:flex;align-items:center;border:1px solid var(--beige-deep);border-radius:6px;background:var(--cream);overflow:hidden}
.slug-row span{padding-left:10px;color:var(--muted);font-size:.82rem;white-space:nowrap}
.slug-row input{border:0;border-radius:0;padding-left:2px}
.hint{font-size:.72rem;color:var(--muted);min-height:1em}
.hint.ok{color:var(--sage)}.hint.err{color:var(--burgundy)}.hint.warn{color:var(--gold)}
.setup-actions{display:flex;gap:8px;flex-wrap:wrap}.setup-actions button{flex:1;min-width:130px}
.form-error{color:var(--burgundy);font-size:.82rem;min-height:1.2em;text-align:center}
.leaderboard{background:var(--cream);border:1px solid var(--beige-deep);border-radius:8px;padding:10px;margin-bottom:12px;box-shadow:var(--shadow)}
.leaderboard h3{color:var(--burgundy);font-variant:small-caps;letter-spacing:1.5px;font-size:.88rem;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.friend-form{display:flex;gap:6px;margin-bottom:8px}.friend-form input{flex:1;min-width:0;padding:7px 8px;border:1px solid var(--beige-deep);border-radius:5px;background:var(--cream);font-family:inherit}.friend-form button{background:var(--burgundy);color:var(--cream);border:0;border-radius:5px;padding:7px 10px;font-family:inherit;cursor:pointer}
.lb-row{display:grid;grid-template-columns:1.2fr .75fr .8fr;gap:8px;align-items:center;padding:7px 0;border-top:1px dashed var(--beige-deep);font-size:.8rem}.lb-row:first-of-type{border-top:0}.lb-name a{color:var(--burgundy);text-decoration:none}.lb-name small{display:block;color:var(--muted);font-size:.68rem}.lb-stat{color:var(--brown);text-align:right}.lb-level{text-align:right;color:var(--gold);font-size:.72rem}.read-only{background:rgba(184,134,11,.13);border:1px solid var(--gold);color:var(--brown);padding:8px 10px;border-radius:7px;margin-bottom:10px;font-size:.82rem;text-align:center}.locked-actions{opacity:.55;pointer-events:none}.gate-card .gate-link{display:inline-block;margin-top:10px;color:var(--burgundy);font-size:.74rem;background:transparent;border:0;text-decoration:underline;cursor:pointer}.loading-card{background:var(--cream);border:1px solid var(--beige-deep);border-radius:8px;padding:18px;text-align:center;color:var(--muted);box-shadow:var(--shadow)}
