  :root{
    --cream:#F4F4F7; --cream-2:#EFF1F4; --peach:#F7DEC9;
    --coral:#F26B38; --coral-deep:#E45B26; --apricot:#F4B173; --gold:#F5D08D;
    --rose:#E9B6B6; --plum:#B9AED8; --sage:#7FB58C; --sage-deep:#5E9A6D; --amber:#D49A4D;
    --mint:#D9EEE7; --mist:#E8ECE7; --lav:#EAE4F6; --sky-soft:#DBEBEE;
    --clay:#16171B; --clay-soft:#7A7E88; --line:#E4E6EB; --card:#FFFFFF;
    --shadow:0 12px 32px -20px rgba(17,24,39,.18);
    --shadow-soft:0 8px 24px -18px rgba(17,24,39,.14);
    --r-lg:26px; --r-md:18px; --r-sm:13px;
    --ff-head:"Quicksand", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;
    --ff-body:"Nunito", ui-rounded, system-ui, -apple-system, sans-serif;
  }
  *{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
  html,body{margin:0;padding:0;-webkit-text-size-adjust:100%;touch-action:manipulation;}
  body{font-family:var(--ff-body);color:var(--clay);background:var(--cream);min-height:100dvh;line-height:1.45;-webkit-font-smoothing:antialiased;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;touch-action:manipulation;-webkit-user-select:none;user-select:none;}
  textarea{font-family:inherit;}
  .app{max-width:480px;margin:0 auto;min-height:100dvh;position:relative;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);}

  /* HOME */
  .home{padding:28px 22px 40px;background:linear-gradient(145deg, rgba(247,222,201,.88) 0%, rgba(233,238,227,.72) 46%, rgba(217,238,231,.92) 100%);min-height:100dvh;display:flex;flex-direction:column;}
  .home-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
  .date{font-family:var(--ff-head);font-weight:600;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;color:var(--clay-soft);}
  .greet{font-family:var(--ff-head);font-weight:700;font-size:1.9rem;line-height:1.12;margin:6px 0 2px;color:var(--clay);}
  .sub{color:var(--clay-soft);font-size:1rem;margin-bottom:22px;}
  .streak{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:999px;padding:7px 13px;font-size:.84rem;font-weight:600;color:var(--clay);box-shadow:var(--shadow-soft);white-space:nowrap;}
  .cards{display:flex;flex-direction:column;gap:16px;margin-top:6px;}
  .checkcard{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:22px 22px 20px;box-shadow:var(--shadow);text-align:left;width:100%;transition:transform .18s ease;color:var(--clay);}
  .checkcard:active{transform:scale(.985);}
  .checkcard.morning{background:linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(252,247,242,.98) 100%);border:1px solid rgba(242,107,56,.12);}
  .checkcard.evening{background:linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(248,246,252,.98) 100%);border:1px solid rgba(185,174,216,.28);}
  .cc-icon{position:absolute;top:16px;right:18px;width:46px;height:46px;opacity:.95;}
  .cc-eyebrow{font-family:var(--ff-head);font-weight:600;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;opacity:.72;}
  .cc-title{font-family:var(--ff-head);font-weight:700;font-size:1.4rem;margin:3px 0 4px;}
  .cc-desc{font-size:.95rem;opacity:.85;max-width:80%;}
  .cc-status{display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-weight:700;font-size:.86rem;background:rgba(255,255,255,.62);border-radius:999px;padding:6px 12px;}
  .cc-status.done{background:rgba(127,181,140,.22);color:var(--sage-deep);}
  .home-foot{margin-top:auto;padding-top:26px;display:flex;flex-direction:column;gap:12px;}
  .nav-btn{width:100%;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-soft);font-family:var(--ff-head);font-weight:700;font-size:1.05rem;color:var(--clay);}
  .nav-btn .chev{color:#A1A7B3;}
  .mini-links{display:flex;gap:18px;justify-content:center;font-size:.82rem;margin-top:6px;}
  .mini-links button{color:var(--clay-soft);text-decoration:underline;text-underline-offset:3px;font-weight:600;}

  /* FLOW */
  .flow{position:fixed;inset:0;max-width:480px;margin:0 auto;display:flex;flex-direction:column;z-index:20;overflow:hidden;}
  .sky{position:absolute;inset:0;transition:background 1.1s ease;z-index:0;}
  .sun{position:absolute;left:50%;width:74px;height:74px;border-radius:50%;transform:translate(-50%,0);transition:bottom 1s cubic-bezier(.22,.9,.3,1), background 1s ease, box-shadow 1s ease;z-index:1;}
  .flow-head{position:relative;z-index:3;padding:max(18px,env(safe-area-inset-top)) 20px 0;display:flex;align-items:center;justify-content:space-between;}
  .icon-btn{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.8);backdrop-filter:blur(4px);color:var(--clay);box-shadow:var(--shadow-soft);font-size:1.4rem;font-weight:700;border:1px solid rgba(228,230,235,.95);}
  .flow-date{font-family:var(--ff-head);font-weight:700;font-size:.82rem;color:var(--clay);background:rgba(255,255,255,.55);padding:5px 12px;border-radius:999px;}
  .progress-dots{display:flex;gap:6px;align-items:center;}
  .pdot{width:7px;height:7px;border-radius:50%;background:rgba(92,67,57,.22);transition:.3s;}
  .pdot.active{background:var(--clay);width:9px;height:9px;}
  .pdot.done{background:rgba(92,67,57,.5);}
  .flow-body{position:relative;z-index:3;flex:1;display:flex;flex-direction:column;padding:18px 20px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .q-card{margin-top:auto;background:rgba(255,255,255,.93);backdrop-filter:blur(8px);border-radius:var(--r-lg);padding:22px 22px 22px;box-shadow:var(--shadow);animation:rise .42s cubic-bezier(.22,.9,.3,1);}
  @keyframes rise{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
  .q-eyebrow{font-family:var(--ff-head);font-weight:600;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--coral-deep);margin-bottom:8px;}
  .q-title{font-family:var(--ff-head);font-weight:700;font-size:1.4rem;line-height:1.2;margin:0 0 4px;}
  .q-help{color:var(--clay-soft);font-size:.95rem;margin:0 0 16px;}

  /* VERTICAL SLIDER */
  .vs-cap{text-align:center;font-family:var(--ff-head);font-weight:700;font-size:.82rem;color:var(--clay-soft);}
  .vs-cap.top{margin:8px 0 6px;} .vs-cap.bot{margin:6px 0 2px;}
  .vslider{display:flex;gap:8px;align-items:stretch;justify-content:center;}
  .vs-nums{position:relative;width:20px;height:280px;}
  .vs-num{position:absolute;right:0;transform:translateY(-50%);font:700 .72rem/1 var(--ff-head);color:var(--clay-soft);}
  .vs-main{position:relative;width:96px;height:280px;touch-action:none;user-select:none;-webkit-user-select:none;}
  .vs-track{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);width:60px;border-radius:32px;background:#F3E6DA;box-shadow:inset 0 2px 6px rgba(120,72,45,.12);overflow:hidden;}
  .vs-fill{position:absolute;left:0;right:0;bottom:0;transition:height .1s ease, background .15s ease;}
  .vs-ticks{position:absolute;inset:0;pointer-events:none;}
  .vs-tick{position:absolute;left:9px;right:9px;height:1px;background:rgba(120,72,45,.07);}
  .vs-avg{position:absolute;left:14px;right:14px;display:flex;justify-content:flex-end;align-items:center;pointer-events:none;z-index:2;}
  .vs-avg .ln{position:absolute;left:0;right:0;border-top:2px dashed rgba(92,67,57,.55);}
  .vs-avg .tag{position:relative;transform:translateX(8px);background:var(--clay);color:#fff;font:800 .62rem/1 var(--ff-head);padding:3px 7px;border-radius:999px;white-space:nowrap;}
  .vs-handle{position:absolute;left:50%;width:74px;height:74px;border-radius:50%;transform:translate(-50%,-50%);background:#fff;border:4px solid var(--coral);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center;cursor:grab;z-index:4;outline:none;}
  .vs-handle:focus-visible{box-shadow:0 0 0 4px rgba(255,138,107,.45),var(--shadow);}
  .vs-main.pending .vs-handle{border-color:#E8CDB8;}
  .vs-main.pending .vs-fill{opacity:.35;}
  .vs-main.pending .vs-val{color:#C9B4A4;}
  .vs-handle:active{cursor:grabbing;}
  .vs-val{font-family:var(--ff-head);font-weight:700;font-size:1.7rem;color:var(--clay);}
  .vs-hint{text-align:center;font-size:.82rem;color:var(--clay-soft);margin-top:14px;}

  /* choices */
  .choices{display:flex;flex-direction:column;gap:10px;}
  .choice{width:100%;text-align:left;background:#fff;border:2px solid var(--line);border-radius:var(--r-md);padding:15px 16px;font-weight:600;font-size:1.02rem;color:var(--clay);transition:.14s;display:flex;align-items:center;gap:12px;}
  .choice .swatch{width:14px;height:14px;border-radius:50%;flex:none;}
  .choice:active{transform:scale(.99);}
  .choice.sel{border-color:var(--coral);background:#FFF3EC;box-shadow:var(--shadow-soft);}
  .choice.sel .pick{margin-left:auto;color:var(--coral-deep);font-weight:800;}

  /* activities */
  .activity-wrap{display:flex;flex-direction:column;gap:11px;}
  .activity-group{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-md);padding:13px 13px 12px;box-shadow:var(--shadow-soft);}
  .ag-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
  .ag-title{font-family:var(--ff-head);font-weight:700;font-size:.98rem;color:var(--clay);display:flex;align-items:center;gap:7px;}
  .ag-dot{width:8px;height:8px;border-radius:50%;background:var(--coral);display:inline-block;}
  .ag-count{font-size:.74rem;font-weight:800;color:var(--clay-soft);background:#F6EADF;border-radius:999px;padding:3px 8px;}
  .activity-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;}
  .activity{min-height:80px;border:1.5px solid #E8DCD2;border-radius:18px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 5px;text-align:center;font-weight:700;font-size:.75rem;line-height:1.15;color:var(--clay-soft);transition:.14s;}
  .activity .aicon{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#F7EDE4;color:var(--coral-deep);font-size:1.05rem;font-weight:800;}
  .activity.sel{border-color:var(--coral);background:#FFF3EC;color:var(--clay);box-shadow:var(--shadow-soft);}
  .activity.sel .aicon{background:var(--coral);color:#fff;}
  .activity:active{transform:scale(.98);}
  .activity-summary{font-size:.86rem;color:var(--clay-soft);text-align:center;margin-top:12px;}
  .trigger-wrap{display:flex;flex-direction:column;gap:12px;}
  .trigger-group{background:#fff;border:1.5px solid var(--line);border-radius:var(--r-md);padding:13px 13px 12px;box-shadow:var(--shadow-soft);}
  .trigger-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;}
  .trigger-title{font-family:var(--ff-head);font-weight:700;font-size:.96rem;color:var(--clay);}
  .trigger-count{font-size:.74rem;font-weight:800;color:var(--clay-soft);}
  .trigger-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
  .trigger-chip{min-height:46px;border:1.5px solid #E8DCD2;border-radius:15px;background:#fff;display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:9px 10px;text-align:left;font-weight:700;font-size:.82rem;line-height:1.15;color:var(--clay-soft);transition:.14s;}
  .trigger-chip .tiny{width:22px;height:22px;border-radius:50%;background:#F7EDE4;color:var(--coral-deep);display:flex;align-items:center;justify-content:center;flex:none;font-size:.78rem;font-weight:800;}
  .trigger-chip.sel{border-color:var(--coral);background:#FFF3EC;color:var(--clay);box-shadow:var(--shadow-soft);}
  .trigger-chip.sel .tiny{background:var(--coral);color:#fff;}
  .trigger-chip:active{transform:scale(.98);}
  .trigger-summary{font-size:.86rem;color:var(--clay-soft);text-align:center;margin-top:12px;}
  .trigger-note{margin-top:12px;}

  /* ACTING OUT / RELAPSE FLOW */
  .checkcard.acted{background:linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(253,245,240,.98) 100%);border:1px solid rgba(242,107,56,.18);}
  .acted-list{padding:8px 22px 44px;display:flex;flex-direction:column;gap:12px;}
  .acted-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:17px;box-shadow:var(--shadow-soft);}
  .acted-step{font-family:var(--ff-head);font-weight:700;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--coral-deep);margin-bottom:6px;}
  .acted-title{font-family:var(--ff-head);font-weight:700;font-size:1.25rem;line-height:1.16;margin:0 0 8px;color:var(--clay);}
  .acted-help{font-size:.94rem;color:var(--clay-soft);margin:0 0 14px;}
  .acted-section-title{font-family:var(--ff-head);font-weight:700;font-size:.95rem;color:var(--clay);margin:14px 0 8px;}
  .acted-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
  .acted-chip{min-height:44px;border:1.5px solid #E8DCD2;border-radius:15px;background:#FFFDFB;display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:9px 10px;text-align:left;font-weight:700;font-size:.83rem;line-height:1.15;color:var(--clay-soft);transition:.14s;}
  .acted-chip .tiny{width:22px;height:22px;border-radius:50%;background:#F7EDE4;color:var(--coral-deep);display:flex;align-items:center;justify-content:center;flex:none;font-size:.72rem;font-weight:800;}
  .acted-chip.sel{border-color:var(--coral);background:#FFF3EC;color:var(--clay);box-shadow:var(--shadow-soft);}
  .acted-chip.sel .tiny{background:var(--coral);color:#fff;}
  .acted-field{margin-top:12px;}
  .acted-field label{display:block;font-size:.76rem;font-weight:800;color:var(--clay-soft);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;}
  .acted-field input,.acted-field select{width:100%;border:2px solid var(--line);border-radius:14px;padding:12px 13px;font-family:var(--ff-body);font-size:.98rem;color:var(--clay);background:#FFFDFB;outline:none;}
  .acted-nav{display:flex;gap:10px;padding:12px 22px max(18px,env(safe-area-inset-bottom));position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,249,242,0),var(--cream) 25%);}
  .acted-nav button{flex:1;border-radius:var(--r-md);padding:14px 12px;font-family:var(--ff-head);font-weight:700;background:#F3E6DA;color:var(--clay);}
  .acted-nav button.primary{background:var(--clay);color:#fff;}
  .acted-script{background:#FFF9F4;border:1px solid #F4E2D2;border-radius:14px;padding:12px;font-size:.9rem;color:var(--clay);margin-top:10px;}
  .acted-summary-row{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #F1E2D4;padding:8px 0;font-size:.9rem;}
  .acted-summary-row:first-child{border-top:none;}
  .acted-summary-row b{font-family:var(--ff-head);}

  .recovery-tools{margin-top:22px;padding-top:15px;border-top:1px solid rgba(240,217,198,.8);display:flex;flex-direction:column;gap:8px;}
  .recovery-label{font-family:var(--ff-head);font-weight:700;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--clay-soft);padding-left:2px;}
  .acted-small-btn{width:100%;display:flex;align-items:center;gap:12px;text-align:left;background:rgba(255,255,255,.74);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;box-shadow:var(--shadow-soft);}
  .acted-small-btn:before{content:"↺";width:32px;height:32px;border-radius:50%;background:#FFF3EC;color:var(--coral-deep);display:flex;align-items:center;justify-content:center;font-family:var(--ff-head);font-weight:800;flex:none;}
  .acted-small-main{font-family:var(--ff-head);font-weight:700;font-size:.98rem;color:var(--clay);display:block;}
  .acted-small-sub{display:block;font-size:.82rem;color:var(--clay-soft);font-weight:600;margin-top:1px;flex:1;}
  .acted-small-btn .chev{margin-left:auto;color:var(--coral);font-family:var(--ff-head);font-weight:800;}
  @keyframes actedIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
  @keyframes actedOut{from{opacity:1;transform:none;}to{opacity:0;transform:translateY(-8px);}}
  .acted-card{animation:actedIn .55s ease both;}
  .acted-card.leaving{animation:actedOut .28s ease both;}

  /* note + nudge */
  .note-toggle{margin-top:18px;font-size:.86rem;font-weight:700;color:var(--coral-deep);display:inline-flex;align-items:center;gap:6px;}
  .note-wrap{margin-top:12px;display:none;}
  .note-wrap.open{display:block;animation:rise .3s ease;}
  textarea.note{width:100%;border:2px solid var(--line);border-radius:var(--r-md);padding:13px 14px;font-size:.98rem;resize:vertical;min-height:78px;color:var(--clay);background:#FFFDFB;outline:none;}
  textarea.note:focus{border-color:var(--apricot);}
  .nudge{margin-top:16px;border-radius:var(--r-md);padding:14px 16px;font-size:.95rem;animation:rise .35s ease;border:1.5px solid;}
  .nudge.up{background:rgba(127,181,140,.13);border-color:rgba(127,181,140,.5);}
  .nudge.down{background:rgba(233,168,91,.14);border-color:rgba(233,168,91,.55);}
  .nudge .nt{font-family:var(--ff-head);font-weight:700;font-size:1rem;margin-bottom:3px;}
  .nudge.up .nt{color:var(--sage-deep);} .nudge.down .nt{color:#B47A22;}
  .guided{margin-top:14px;border-radius:var(--r-md);padding:14px 16px;background:rgba(255,255,255,.75);border:1px solid var(--line);box-shadow:var(--shadow-soft);animation:rise .35s ease;}
  .guided-title{font-family:var(--ff-head);font-weight:700;font-size:.98rem;color:var(--clay);margin-bottom:3px;}
  .guided-body{font-size:.88rem;color:var(--clay-soft);margin-bottom:10px;}
  .prompt-list{display:flex;flex-direction:column;gap:8px;}
  .prompt-btn{width:100%;text-align:left;background:#FFFDFB;border:1.5px solid var(--line);border-radius:14px;padding:10px 12px;font-size:.9rem;font-weight:700;color:var(--clay);line-height:1.25;}
  .prompt-btn:active{transform:scale(.99);}
  .prompt-note{background:#FFFDFB;border:1.5px solid var(--line);border-radius:14px;padding:12px;}
  .prompt-q{font-weight:800;font-size:.9rem;line-height:1.25;color:var(--clay);margin-bottom:8px;}
  .prompt-note-input{min-height:64px;font-size:.94rem;}



  /* goals */
  .goal-summary{margin-top:14px;background:rgba(255,255,255,.7);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;box-shadow:var(--shadow-soft);}
  .goal-summary-title{font-family:var(--ff-head);font-weight:700;font-size:.95rem;margin-bottom:6px;color:var(--clay);}
  .goal-mini{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.84rem;color:var(--clay-soft);padding:5px 0;border-top:1px solid rgba(240,217,198,.55);}
  .goal-mini:first-of-type{border-top:none;}
  .goal-list{padding:22px;display:flex;flex-direction:column;gap:12px;}
  .goal-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:15px;box-shadow:var(--shadow-soft);}
  .goal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px;}
  .goal-title{font-family:var(--ff-head);font-weight:700;font-size:1.05rem;line-height:1.2;margin:0;color:var(--clay);}
  .goal-tag{display:inline-flex;align-items:center;gap:5px;background:#F7EDE4;color:var(--clay-soft);border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:800;white-space:nowrap;}
  .goal-text{font-size:.88rem;color:var(--clay-soft);margin:0 0 11px;}
  .goal-progress-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;}
  .goal-progress-label{font-weight:800;font-size:.82rem;color:var(--clay);}
  .goal-progress-num{font-family:var(--ff-head);font-weight:800;font-size:.92rem;color:var(--coral-deep);}
  .goal-bar{height:10px;border-radius:999px;background:#F3E6DA;overflow:hidden;margin-bottom:10px;}
  .goal-bar i{display:block;height:100%;border-radius:999px;background:var(--sage);}
  .goal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
  .goal-actions button{flex:1;min-width:120px;border-radius:14px;padding:10px 11px;font-family:var(--ff-head);font-weight:700;font-size:.86rem;background:#F7EDE4;color:var(--clay);}
  .goal-actions button.primary{background:var(--clay);color:#fff;}
  .goal-actions button.warn{background:rgba(255,138,107,.18);color:var(--coral-deep);}
  .goal-form{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;box-shadow:var(--shadow);}
  .goal-form label{display:block;font-size:.78rem;font-weight:800;color:var(--clay-soft);text-transform:uppercase;letter-spacing:.04em;margin:12px 0 6px;}
  .goal-form input,.goal-form select{width:100%;border:2px solid var(--line);border-radius:14px;padding:12px 13px;font-family:var(--ff-body);font-size:.98rem;color:var(--clay);background:#FFFDFB;outline:none;}
  .goal-form input:focus,.goal-form select:focus{border-color:var(--apricot);}
  .goal-empty{background:rgba(255,255,255,.65);border:1px solid var(--line);border-radius:var(--r-md);padding:15px;color:var(--clay-soft);font-size:.94rem;}
  .goal-flow-list{display:flex;flex-direction:column;gap:10px;margin-top:4px;}
  .goal-flow-card{background:#FFFDFB;border:2px solid var(--line);border-radius:var(--r-md);padding:13px 14px;box-shadow:var(--shadow-soft);}
  .goal-flow-card.sel{border-color:var(--coral);background:#FFF3EC;}
  .goal-flow-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
  .goal-flow-title{font-family:var(--ff-head);font-weight:700;font-size:.98rem;line-height:1.18;color:var(--clay);}
  .goal-flow-meta{font-size:.76rem;font-weight:800;color:var(--clay-soft);background:#F7EDE4;border-radius:999px;padding:4px 8px;white-space:nowrap;}
  .goal-flow-status{font-size:.86rem;color:var(--clay-soft);margin-top:7px;}
  .goal-flow-status.good{color:var(--sage-deep);font-weight:800;}
  .goal-flow-status.care{color:#B47A22;font-weight:800;}
  .goal-flow-note{margin-top:10px;}
  .goal-flow-note textarea.note{min-height:64px;}
  .goal-focus-hint{font-size:.84rem;color:var(--clay-soft);margin:10px 0 0;}

  .flow-foot{position:relative;z-index:3;padding:12px 20px max(18px,env(safe-area-inset-bottom));}
  .next-btn{width:100%;background:var(--clay);color:#fff;border-radius:var(--r-md);padding:16px;font-family:var(--ff-head);font-weight:700;font-size:1.08rem;box-shadow:var(--shadow);transition:.15s;display:flex;align-items:center;justify-content:center;gap:8px;}
  .next-btn:disabled{opacity:.4;}
  .next-btn:not(:disabled):active{transform:scale(.985);}
  .skip-btn{display:block;width:100%;text-align:center;margin-top:10px;color:var(--clay-soft);font-weight:600;font-size:.9rem;padding:6px;}

  /* completion */
  .done-screen{position:fixed;inset:0;max-width:480px;margin:0 auto;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:linear-gradient(160deg, rgba(247,222,201,.86) 0%, rgba(232,236,226,.74) 45%, rgba(217,238,231,.9) 100%);}
  .done-sun{width:96px;height:96px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#FFE7A6,var(--coral));box-shadow:0 0 0 14px rgba(255,206,122,.35),0 0 0 30px rgba(255,206,122,.18);animation:pulse 2.4s ease-in-out infinite;margin-bottom:24px;}
  @keyframes pulse{0%,100%{transform:scale(1);}50%{transform:scale(1.06);}}
  .done-title{font-family:var(--ff-head);font-weight:700;font-size:1.7rem;margin:0 0 8px;}
  .done-sum{color:var(--clay-soft);font-size:1.02rem;max-width:320px;margin:0 0 18px;}
  .done-flag{font-size:.84rem;color:#B47A22;background:rgba(233,168,91,.16);border:1px solid rgba(233,168,91,.45);border-radius:999px;padding:7px 14px;margin-bottom:24px;}
  .done-stat{display:flex;gap:22px;margin-bottom:28px;}
  .done-stat .n{font-family:var(--ff-head);font-weight:700;font-size:1.7rem;color:var(--coral-deep);}
  .done-stat .l{font-size:.78rem;color:var(--clay-soft);text-transform:uppercase;letter-spacing:.04em;}

  /* REPORT + HISTORY shared head */
  .screen{min-height:100dvh;background:linear-gradient(180deg, rgba(247,222,201,.52) 0%, rgba(217,238,231,.28) 18%, var(--cream) 34%, var(--cream) 100%);padding:0 0 50px;}
  .scr-head{padding:max(22px,env(safe-area-inset-top)) 22px 24px;background:linear-gradient(135deg, rgba(247,222,201,.88) 0%, rgba(232,236,226,.76) 52%, rgba(217,238,231,.9) 100%);}
  .scr-back{display:inline-flex;align-items:center;gap:6px;color:var(--clay-soft);font-weight:700;font-size:.9rem;margin-bottom:14px;}
  .scr-eyebrow{font-family:var(--ff-head);font-weight:600;font-size:.8rem;letter-spacing:.04em;text-transform:uppercase;color:var(--clay-soft);}
  .scr-h1{font-family:var(--ff-head);font-weight:700;font-size:1.75rem;margin:4px 0 10px;}
  .scr-summary{font-size:1.02rem;color:var(--clay);background:rgba(255,255,255,.6);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;}
  .scr-summary b{color:var(--coral-deep);}
  .scr-note{margin-top:10px;font-size:.82rem;color:#B47A22;background:rgba(233,168,91,.14);border:1px solid rgba(233,168,91,.4);border-radius:12px;padding:8px 12px;}
  .sec{padding:22px 22px 4px;}
  .sec-title{font-family:var(--ff-head);font-weight:700;font-size:1.12rem;margin:0 0 14px;}
  .range-tabs{display:flex;gap:8px;margin-top:14px;background:rgba(255,255,255,.55);border:1px solid var(--line);border-radius:999px;padding:5px;}
  .range-tabs button{flex:1;border-radius:999px;padding:8px 10px;font-family:var(--ff-head);font-weight:700;font-size:.86rem;color:var(--clay-soft);}
  .range-tabs button.active{background:#fff;color:var(--clay);box-shadow:var(--shadow-soft);}
  .chart-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;margin:-2px 0 10px;box-shadow:var(--shadow-soft);font-family:var(--ff-head);font-weight:700;font-size:.98rem;}
  .area-chart-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 13px 12px;margin-bottom:11px;box-shadow:var(--shadow-soft);}
  .area-chart-help{font-size:.82rem;color:var(--clay-soft);margin:0 2px 10px;}
  .area-chart-controls{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px;}
  .chart-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:#FFFDFB;border-radius:999px;padding:7px 10px;font-weight:800;font-size:.78rem;color:var(--clay-soft);}
  .chart-chip .dot{width:9px;height:9px;border-radius:50%;background:var(--dot);opacity:.45;}
  .chart-chip.active{border-color:var(--dot);color:var(--clay);background:#fff;box-shadow:var(--shadow-soft);}
  .chart-chip.active .dot{opacity:1;}
  .chart-wrap{width:100%;overflow:hidden;border-radius:14px;background:#FFF9F4;border:1px solid #F4E2D2;padding:4px;}
  .multi-chart{width:100%;height:176px;display:block;}
  .axis-t{font-size:8px;fill:#9B8274;font-family:var(--ff-head);font-weight:700;}
  .chart-empty{font-size:.88rem;color:var(--clay-soft);padding:14px 10px;text-align:center;}
  .overview{display:flex;gap:10px;margin:0 22px 4px;}
  .ov-card{flex:1;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;text-align:center;box-shadow:var(--shadow-soft);}
  .ov-n{font-family:var(--ff-head);font-weight:700;font-size:1.55rem;color:var(--clay);}
  .ov-l{font-size:.74rem;color:var(--clay-soft);text-transform:uppercase;letter-spacing:.03em;margin-top:2px;}
  .metric-row{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;margin-bottom:9px;box-shadow:var(--shadow-soft);}
  .mr-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px;}
  .mr-label{font-weight:700;font-size:.97rem;}
  .mr-right{display:flex;align-items:center;gap:9px;flex:none;}
  .mr-avg{font-family:var(--ff-head);font-weight:700;font-size:1.05rem;}
  .trend{font-size:.78rem;font-weight:800;display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;}
  .trend.up{color:var(--sage-deep);background:rgba(127,181,140,.16);}
  .trend.down{color:#B47A22;background:rgba(233,168,91,.18);}
  .trend.flat{color:var(--clay-soft);background:rgba(92,67,57,.08);}
  .bar{height:9px;border-radius:999px;background:#F3E6DA;overflow:hidden;}
  .bar > i{display:block;height:100%;border-radius:999px;}
  .pillrow{display:flex;flex-wrap:wrap;gap:8px;}
  .pill{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 13px;font-size:.88rem;font-weight:700;box-shadow:var(--shadow-soft);}
  .pill.good{border-color:rgba(127,181,140,.55);color:var(--sage-deep);}
  .pill.care{border-color:rgba(233,168,91,.6);color:#B47A22;}
  .insight-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 14px 13px;box-shadow:var(--shadow-soft);}
  .insight-help{font-size:.84rem;color:var(--clay-soft);margin:0 0 11px;}
  .insight-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px;}
  .insight-chip{border:1px solid var(--line);background:#FFFDFB;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:800;color:var(--clay-soft);}
  .insight-chip.active{border-color:var(--coral);background:#FFF3EC;color:var(--clay);box-shadow:var(--shadow-soft);}
  .insight-summary{font-size:.92rem;color:var(--clay);background:#FFF9F4;border:1px solid #F4E2D2;border-radius:14px;padding:11px 12px;margin-bottom:12px;}
  .insight-summary b{color:var(--coral-deep);}
  .insight-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:12px;}
  .insight-stat{background:#FFFDFB;border:1px solid var(--line);border-radius:14px;padding:11px 12px;text-align:center;}
  .is-label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--clay-soft);}
  .is-value{font-family:var(--ff-head);font-weight:800;font-size:1.32rem;margin:2px 0;color:var(--clay);}
  .is-value.good{color:var(--sage-deep);}
  .is-value.care{color:#B47A22;}
  .is-sub{font-size:.75rem;color:var(--clay-soft);}
  .insight-areas{display:flex;flex-direction:column;gap:8px;}
  .insight-area{border-top:1px solid #F1E2D4;padding-top:8px;}
  .ia-top{display:flex;justify-content:space-between;gap:8px;font-size:.84rem;font-weight:800;margin-bottom:5px;}
  .ia-diff.good{color:var(--sage-deep);}.ia-diff.care{color:#B47A22;}
  .ia-bars{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
  .ia-bar{height:8px;border-radius:999px;background:#F3E6DA;overflow:hidden;}
  .ia-bar i{display:block;height:100%;border-radius:999px;background:var(--sage);}
  .ia-bar.with i{background:var(--coral);}
  .insight-muted{font-size:.8rem;color:var(--clay-soft);margin-top:10px;}
  .intens{display:flex;gap:5px;align-items:flex-end;height:70px;margin-top:4px;}
  .intens .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;height:100%;}
  .intens .ibar{width:70%;border-radius:6px 6px 0 0;min-height:3px;}
  .intens .ilabel{font-size:.62rem;color:var(--clay-soft);text-align:center;line-height:1.1;}
  .notecard{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;margin-bottom:9px;box-shadow:var(--shadow-soft);}
  .nc-meta{font-size:.74rem;color:var(--clay-soft);font-weight:700;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;}
  .nc-text{font-size:.96rem;color:var(--clay);}
  .empty{color:var(--clay-soft);font-size:.95rem;padding:6px 0 2px;}
  .spark{width:100%;height:90px;}

  /* HISTORY rows */
  .day-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;margin:0 22px 9px;box-shadow:var(--shadow-soft);width:calc(100% - 44px);text-align:left;}
  .day-row:active{transform:scale(.99);}
  .dr-main{flex:1;min-width:0;}
  .dr-date{font-family:var(--ff-head);font-weight:700;font-size:1rem;}
  .dr-chips{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap;}
  .chip{font-size:.64rem;font-weight:800;padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em;}
  .chip.m{background:rgba(255,181,112,.24);color:#B47A22;}
  .chip.e{background:rgba(192,137,174,.24);color:#8A5E84;}
  .chip.late{background:rgba(233,168,91,.22);color:#B47A22;}
  .chip.edit{background:rgba(120,72,45,.1);color:var(--clay-soft);}
  .chip.off{background:#F1E7DC;color:#C3B3A4;}
  .dr-score{font-family:var(--ff-head);font-weight:700;font-size:1.25rem;flex:none;}
  .dr-chev{color:var(--coral);font-size:1.2rem;font-weight:700;flex:none;}

  /* day menu */
  .daymenu{padding:8px 22px 40px;}

  /* SETTINGS */
  .settings-list{padding:8px 22px 44px;display:flex;flex-direction:column;gap:12px;}
  .set-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:15px 16px;box-shadow:var(--shadow-soft);}
  .set-title{font-family:var(--ff-head);font-weight:700;font-size:1.02rem;margin:0 0 4px;color:var(--clay);}
  .set-text{font-size:.9rem;color:var(--clay-soft);margin:0 0 12px;}
  .set-row{display:flex;gap:9px;flex-wrap:wrap;}
  .set-btn{border-radius:var(--r-md);padding:11px 13px;background:#F3E6DA;color:var(--clay);font-family:var(--ff-head);font-weight:700;font-size:.92rem;}
  .set-btn.primary{background:var(--clay);color:#fff;}
  .set-btn.warn{background:var(--coral);color:#fff;}
  .set-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#FFFDFB;border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;text-align:left;}
  .set-toggle .lab{font-family:var(--ff-head);font-weight:700;font-size:.96rem;}
  .set-toggle .state{font-size:.76rem;font-weight:800;border-radius:999px;padding:5px 9px;background:#F3E6DA;color:var(--clay-soft);white-space:nowrap;}
  .set-toggle.on .state{background:rgba(127,181,140,.18);color:var(--sage-deep);}
  .backup-box{width:100%;min-height:170px;border:2px solid var(--line);border-radius:var(--r-md);padding:12px;font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-size:.72rem;color:var(--clay);background:#FFFDFB;resize:vertical;}
  .hidden-file{display:none;}


  /* PIN PRIVACY */
  .pin-screen{min-height:100dvh;background:linear-gradient(155deg, rgba(234,228,246,.86) 0%, rgba(232,236,226,.72) 48%, rgba(219,235,238,.88) 100%);display:flex;align-items:center;justify-content:center;padding:28px 22px calc(30px + env(safe-area-inset-bottom));}
  .pin-card{width:100%;max-width:360px;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:24px 22px;text-align:center;backdrop-filter:blur(8px);}
  .pin-icon{width:74px;height:74px;border-radius:28px;margin:0 auto 16px;background:linear-gradient(135deg,#FFE8C9,#FFD1B8);display:flex;align-items:center;justify-content:center;font-size:2rem;box-shadow:var(--shadow-soft);}
  .pin-eyebrow{font-family:var(--ff-head);font-weight:700;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--clay-soft);margin-bottom:6px;}
  .pin-title{font-family:var(--ff-head);font-weight:700;font-size:1.52rem;line-height:1.16;margin:0 0 8px;color:var(--clay);}
  .pin-text{font-size:.96rem;color:var(--clay-soft);margin:0 0 18px;}
  .pin-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:16px;}
  .pin-action{border-radius:var(--r-md);padding:13px 15px;font-family:var(--ff-head);font-weight:700;background:#F3E6DA;color:var(--clay);min-width:130px;}
  .pin-action.primary{background:var(--clay);color:#fff;}
  .pin-action.warn{background:var(--coral);color:#fff;}
  .pin-dots{display:flex;gap:11px;justify-content:center;margin:20px 0 14px;}
  .pin-dot{width:15px;height:15px;border-radius:50%;border:2px solid #D9C4B4;background:#fff;}
  .pin-dot.filled{background:var(--clay);border-color:var(--clay);}
  .pin-msg{min-height:22px;font-size:.88rem;font-weight:700;color:var(--coral-deep);margin-bottom:10px;}
  .pin-msg.muted{color:var(--clay-soft);font-weight:600;}
  .pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:300px;margin:0 auto;}

  .pin-screen,.pin-card,.pin-pad,.pin-row{touch-action:manipulation;-webkit-user-select:none;user-select:none;overscroll-behavior:contain;}
  .pin-key,.pin-action,.pin-link{touch-action:manipulation;-webkit-user-select:none;user-select:none;}
  .pin-key{height:58px;border-radius:20px;background:#FFFDFB;border:1px solid var(--line);font-family:var(--ff-head);font-weight:700;font-size:1.28rem;box-shadow:var(--shadow-soft);}
  .pin-key:active{transform:scale(.98);}
  .pin-key.small{font-size:.9rem;color:var(--clay-soft);}
  .pin-key.blank{visibility:hidden;}
  .pin-foot{margin-top:16px;font-size:.86rem;color:var(--clay-soft);}
  .pin-link{font-weight:700;text-decoration:underline;text-underline-offset:3px;color:var(--clay-soft);}


  /* dialog */
  .scrim{position:fixed;inset:0;background:rgba(60,38,28,.4);z-index:50;display:flex;align-items:center;justify-content:center;padding:26px;}
  .dialog{background:#fff;border-radius:var(--r-lg);padding:24px;max-width:340px;width:100%;box-shadow:var(--shadow);text-align:center;}
  .dialog h3{font-family:var(--ff-head);margin:0 0 8px;font-size:1.25rem;}
  .dialog p{color:var(--clay-soft);margin:0 0 20px;}
  .dialog .row{display:flex;gap:10px;}
  .dialog button{flex:1;border-radius:var(--r-md);padding:13px;font-weight:700;font-family:var(--ff-head);}
  .btn-ghost{background:#F3E6DA;color:var(--clay);}
  .btn-warn{background:var(--coral);color:#fff;}

  /* v17 additions */
  .guided{margin-top:16px;border:1.5px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:#FFFCF8;}
  .guided-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:13px 15px;font-family:var(--ff-head);font-weight:700;font-size:.96rem;color:var(--coral-deep);background:none;}
  .guided-inner{display:none;padding:0 15px 14px;}
  .guided.open .guided-inner{display:block;animation:rise .25s ease;}
  .gt-chev{color:var(--clay-soft);}

  .home-banner{background:rgba(255,255,255,.74);border:1px solid rgba(228,230,235,.95);border-radius:var(--r-md);padding:13px 15px;margin:0 0 16px;display:flex;gap:12px;align-items:flex-start;box-shadow:var(--shadow-soft);backdrop-filter:blur(6px);}
  .home-banner .hb-main{flex:1;}
  .home-banner .hb-title{font-family:var(--ff-head);font-weight:700;font-size:.96rem;color:var(--clay);margin-bottom:2px;}
  .home-banner .hb-text{font-size:.84rem;color:var(--clay-soft);}
  .home-banner .hb-row{display:flex;gap:8px;margin-top:10px;}
  .home-banner button{font-family:var(--ff-head);font-weight:700;font-size:.84rem;border-radius:10px;padding:7px 12px;}
  .home-banner .hb-go{background:var(--coral);color:#fff;}
  .home-banner .hb-x{background:#F1E2D2;color:var(--clay);}

  .urge-small-btn{width:100%;display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#FFE2D2,#FFC9B6);border:1px solid #F4B49B;border-radius:var(--r-md);padding:15px 16px;box-shadow:var(--shadow-soft);text-align:left;margin-bottom:10px;color:var(--clay);}
  .urge-small-btn:active{transform:scale(.99);}
  .urge-small-main{display:block;font-family:var(--ff-head);font-weight:700;font-size:1.04rem;color:var(--coral-deep);}
  .urge-small-sub{display:block;font-size:.82rem;color:var(--clay-soft);}

  /* urge flow */
  .urge-screen{position:fixed;inset:0;max-width:480px;margin:0 auto;z-index:25;display:flex;flex-direction:column;background:linear-gradient(160deg, rgba(247,222,201,.86) 0%, rgba(232,236,226,.72) 44%, rgba(217,238,231,.9) 100%);}
  .urge-head{padding:max(18px,env(safe-area-inset-top)) 20px 0;display:flex;align-items:center;justify-content:space-between;}
  .urge-body{flex:1;overflow-y:auto;padding:14px 22px;display:flex;flex-direction:column;}
  .urge-card{margin-top:auto;background:rgba(255,255,255,.94);border-radius:var(--r-lg);padding:24px 22px;box-shadow:var(--shadow);animation:rise .4s ease;}
  .urge-step{font-family:var(--ff-head);font-weight:600;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--coral-deep);}
  .urge-title{font-family:var(--ff-head);font-weight:700;font-size:1.5rem;line-height:1.18;margin:6px 0 8px;}
  .urge-text{color:var(--clay);font-size:1rem;margin-bottom:6px;}
  .urge-commit{background:#FFF6EE;border:1.5px solid var(--apricot);border-radius:var(--r-md);padding:15px 16px;font-size:1.05rem;line-height:1.5;color:var(--clay);margin:6px 0;}
  .urge-foot{padding:14px 22px max(18px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:9px;}
  .urge-primary{background:var(--clay);color:#fff;border-radius:var(--r-md);padding:16px;font-family:var(--ff-head);font-weight:700;font-size:1.06rem;box-shadow:var(--shadow);}
  .urge-ghost{background:#F3E6DA;color:var(--clay);border-radius:var(--r-md);padding:14px;font-family:var(--ff-head);font-weight:700;font-size:.98rem;}
  .urge-text-link{background:none;color:var(--clay-soft);font-weight:700;font-size:.9rem;padding:8px;text-decoration:underline;text-underline-offset:3px;}
  .breath{display:flex;flex-direction:column;align-items:center;gap:14px;padding:6px 0 4px;}
  .breath-orb{width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#FFE7C9,var(--coral));box-shadow:0 0 50px -6px rgba(243,110,78,.5);animation:breathe 11s ease-in-out infinite;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--ff-head);font-weight:700;font-size:1.05rem;text-shadow:0 1px 4px rgba(120,72,45,.3);}
  @keyframes breathe{0%{transform:scale(.6);}18%{transform:scale(1);}45%{transform:scale(1);}63%{transform:scale(.6);}100%{transform:scale(.6);}}
  .breath-count{font-family:var(--ff-head);font-weight:700;font-size:1rem;color:var(--clay-soft);}
  .delay-num{font-family:var(--ff-head);font-weight:700;font-size:3rem;color:var(--coral-deep);text-align:center;letter-spacing:.02em;}
  .urge-contacts{white-space:pre-wrap;background:#FBF3EB;border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;font-size:.98rem;color:var(--clay);margin:6px 0;}

  /* recovery logs list */
  .log-row{display:flex;align-items:flex-start;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 15px;margin:0 22px 9px;box-shadow:var(--shadow-soft);width:calc(100% - 44px);text-align:left;}
  .log-row .lr-main{flex:1;min-width:0;}
  .lr-date{font-family:var(--ff-head);font-weight:700;font-size:.96rem;}
  .lr-sub{font-size:.82rem;color:var(--clay-soft);margin-top:3px;}
  .lr-chev{color:var(--coral);font-size:1.1rem;font-weight:700;}
  .log-detail-row{display:flex;flex-direction:column;gap:2px;padding:11px 0;border-bottom:1px solid var(--line);}
  .ld-label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--clay-soft);}
  .ld-val{font-size:.98rem;color:var(--clay);}

  /* settings extras */
  .set-field label{display:block;font-size:.82rem;font-weight:700;color:var(--clay-soft);margin:10px 0 5px;}
  .set-field textarea,.set-field input{width:100%;border:2px solid var(--line);border-radius:var(--r-md);padding:12px 13px;font-size:.98rem;color:var(--clay);background:#FFFDFB;outline:none;font-family:var(--ff-body);}
  .set-field textarea:focus,.set-field input:focus{border-color:var(--apricot);}
  .install-steps{font-size:.86rem;color:var(--clay-soft);margin:6px 0 0;padding-left:18px;}
  .install-steps li{margin-bottom:4px;}

  /* share dialog */
  .share-box{width:100%;min-height:240px;border:2px solid var(--line);border-radius:var(--r-md);padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;color:var(--clay);background:#FFFDFB;white-space:pre;overflow:auto;}

  @media print{
    body{background:#fff;}
    .app,.screen,.scr-head{background:#fff!important;}
    .scr-back,.range-tabs,.chart-toggle,.mini-links,.home-foot,.nav-btn,#shareBtn{display:none!important;}
  }

  .acted-other-note{display:none;}
  .acted-other-note.open{display:block;}

  @media (prefers-reduced-motion:reduce){*{animation:none!important;transition:background .2s ease!important;}}

/* v18 static PWA pilot additions */
.reminder-card{border-color:rgba(127,181,140,.55);background:#FFFCF8;}
.reminder-card .set-field input[type="time"]{max-width:180px;}
.reminder-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
.reminder-mini{font-size:.78rem;color:var(--clay-soft);line-height:1.25;margin-top:6px;}
.pwa-status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:#F3E6DA;color:var(--clay-soft);padding:5px 9px;font-size:.74rem;font-weight:800;}
.pwa-status.ok{background:rgba(127,181,140,.18);color:var(--sage-deep);}
.home-banner.reminder{background:#F3FFF6;border-color:rgba(127,181,140,.55);}
.home-banner.reminder .hb-title{color:var(--sage-deep);}
.home-banner.install{background:#FFF8ED;border-color:rgba(255,181,112,.75);}
.dialog .steps{text-align:left;color:var(--clay-soft);font-size:.9rem;margin:0 0 16px;padding-left:20px;}
.dialog .steps li{margin:0 0 7px;}
@media (max-width:380px){.reminder-grid{grid-template-columns:1fr;}}

/* ==========================================================
   v19 visual declutter pass
   Direction: Health-app style clarity, less ornament, fewer gradients,
   lighter shadows, flatter cards, stronger typography hierarchy.
   ========================================================== */
:root{
  --cream:#F7F8FA;
  --cream-2:#F1F3F6;
  --peach:#EFF3F5;
  --coral:#2F9FB3;
  --coral-deep:#167B91;
  --apricot:#62C0CE;
  --gold:#BFE9EF;
  --rose:#DCE2F3;
  --plum:#9B8BC9;
  --sage:#38A878;
  --sage-deep:#247B59;
  --amber:#F0A13A;
  --clay:#101820;
  --clay-soft:#6F7680;
  --line:#E6E9EE;
  --card:#FFFFFF;
  --shadow:0 10px 28px -22px rgba(16,24,32,.22);
  --shadow-soft:0 6px 18px -16px rgba(16,24,32,.18);
  --r-lg:30px;
  --r-md:22px;
  --r-sm:15px;
}
body{background:var(--cream);color:var(--clay);}
.app{background:var(--cream);}

/* Global simplification */
button{font-weight:700;}
.icon-btn,.scr-back{box-shadow:none;}
.mini-links button,.scr-back{text-decoration:none;}

/* Home: remove decorative sunrise look and make the screen read as a clean dashboard */
.home{
  background:linear-gradient(180deg,#F7F8FA 0%,#F3F5F8 100%);
  padding:24px 22px 34px;
}
.home-top{align-items:center;margin-bottom:12px;}
.date{font-size:.78rem;letter-spacing:.02em;text-transform:none;color:#7B818A;}
.greet{font-size:2.05rem;letter-spacing:-.035em;margin:4px 0 2px;}
.sub{font-size:1rem;color:#5C616B;margin:0 0 10px;}
.streak{
  background:#fff;border:1px solid #E7EBEF;border-radius:999px;padding:8px 12px;
  box-shadow:none;color:#363E47;font-size:.82rem;
}
.cards{gap:12px;margin-top:8px;}
.checkcard{
  border-radius:28px;padding:20px 20px 18px;background:#fff!important;
  border:1px solid #E7EBEF;box-shadow:var(--shadow-soft);min-height:132px;
}
.checkcard.morning{border-left:7px solid #58B6C6;}
.checkcard.evening{border-left:7px solid #9B8BC9;}
.cc-icon{display:none;}
.cc-eyebrow{font-size:.8rem;letter-spacing:0;text-transform:none;color:#7A828C;opacity:1;}
.cc-title{font-size:1.55rem;letter-spacing:-.025em;margin:3px 0 5px;}
.cc-desc{max-width:100%;font-size:.97rem;color:#6F7680;opacity:1;}
.cc-status{background:#F3F6F8;color:#4C5560;border-radius:999px;padding:7px 12px;margin-top:14px;font-size:.84rem;}
.cc-status.done{background:#E7F6EF;color:#1F7A58;}
.home-foot{gap:10px;padding-top:20px;}
.nav-btn{
  border-radius:24px;border:1px solid #E7EBEF;box-shadow:none;background:#fff;
  padding:15px 18px;font-size:1.03rem;letter-spacing:-.01em;
}
.nav-btn .chev,.acted-small-btn .chev{color:#8A929B;}
.recovery-tools{border-top:0;margin-top:16px;padding-top:0;gap:10px;}
.recovery-label{font-size:.82rem;letter-spacing:0;text-transform:none;color:#5C616B;padding-left:4px;}
.urge-small-btn,.acted-small-btn{
  background:#fff;border:1px solid #E7EBEF;border-radius:24px;box-shadow:none;padding:15px 16px;
}
.urge-small-main,.acted-small-main{font-size:1.04rem;color:#101820;}
.urge-small-sub,.acted-small-sub{font-size:.85rem;color:#5C616B;}
.acted-small-btn:before{display:none;}

/* Banners: keep them useful but less visually noisy */
.home-banner{
  background:#fff;border:1px solid #E7EBEF;border-radius:24px;box-shadow:none;margin:0 0 12px;padding:14px 15px;
}
.home-banner>div:first-child{display:none;}
.home-banner .hb-title{color:#101820;font-size:.98rem;}
.home-banner .hb-text{color:#6F7680;line-height:1.35;}
.home-banner .hb-go{background:#101820;color:#fff;border-radius:999px;padding:8px 13px;}
.home-banner .hb-x{background:#F1F3F6;color:#4D5560;border-radius:999px;padding:8px 13px;}

/* Flow: remove sun/sky ornament, present as one calm full-screen card */
.flow{background:linear-gradient(180deg,#F7F8FA 0%,#EEF1F5 100%);}
.sky{background:transparent!important;}
.sun{display:none!important;}
.flow-head{padding:max(18px,env(safe-area-inset-top)) 22px 0;}
.icon-btn{
  width:54px;height:54px;background:#fff;border:1px solid #E7EBEF;color:#101820;
  box-shadow:0 8px 22px -18px rgba(16,24,32,.35);font-size:1.55rem;
}
.flow-date{background:transparent;color:#101820;font-size:.95rem;padding:0;}
.progress-dots{gap:5px;}
.pdot{width:6px;height:6px;background:#CCD2D8;}
.pdot.active{background:#101820;width:18px;height:6px;border-radius:999px;}
.pdot.done{background:#8F99A4;}
.flow-body{padding:22px 22px 12px;}
.q-card{
  margin:auto 0 0;background:#fff;border:1px solid #E7EBEF;border-radius:32px;
  box-shadow:0 14px 38px -28px rgba(16,24,32,.28);padding:26px 24px 24px;
}
.q-eyebrow{font-size:.86rem;letter-spacing:0;text-transform:none;color:#7B818A;margin-bottom:10px;}
.q-title{font-size:1.7rem;letter-spacing:-.04em;line-height:1.12;margin-bottom:8px;}
.q-help{color:#707882;font-size:1rem;line-height:1.38;margin-bottom:18px;}
.flow-foot{padding:12px 22px max(18px,env(safe-area-inset-bottom));}
.next-btn,.urge-primary{
  background:#101820;border-radius:999px;box-shadow:0 12px 28px -22px rgba(16,24,32,.36);
  padding:17px;font-size:1.05rem;
}
.skip-btn,.urge-text-link{color:#5C616B;text-decoration:none;}

/* Slider: slimmer, less game-like */
.vslider{gap:12px;}
.vs-nums{display:none;}
.vs-main{height:250px;width:74px;}
.vs-track{width:42px;background:#EDF1F4;box-shadow:none;}
.vs-tick{display:none;}
.vs-fill{background:#2F9FB3!important;}
.vs-handle{width:62px;height:62px;border:0;box-shadow:0 10px 24px -16px rgba(16,24,32,.35);}
.vs-val{font-size:1.6rem;}
.vs-cap{font-size:.82rem;color:#5C616B;}
.vs-hint{color:#5C616B;}

/* Choices and chips: more like clean iOS lists/pills */
.choice{
  border:1px solid #E7EBEF;border-radius:22px;background:#fff;box-shadow:none;padding:16px 17px;
  font-size:1.04rem;color:#101820;
}
.choice .swatch{width:10px;height:10px;opacity:.85;}
.choice.sel{border-color:#101820;background:#F7F8FA;box-shadow:none;}
.choice.sel .pick{color:#101820;}
.activity-group,.trigger-group,.goal-flow-card,.guided,.prompt-note,.nudge{
  border:1px solid #E7EBEF;background:#fff;border-radius:24px;box-shadow:none;
}
.activity-grid{grid-template-columns:repeat(3,1fr);gap:8px;}
.activity{min-height:52px;border:1px solid #E7EBEF;border-radius:999px;background:#F7F8FA;padding:9px 10px;font-size:.82rem;color:#4B5560;}
.activity .aicon{display:none;}
.activity.sel{border-color:#101820;background:#101820;color:#fff;box-shadow:none;}
.ag-dot{display:none;}
.ag-count{background:#F1F3F6;color:#5C616B;}
.trigger-grid,.acted-grid{gap:8px;}
.trigger-chip,.acted-chip{
  min-height:42px;border:1px solid #E7EBEF;border-radius:999px;background:#F7F8FA;color:#4B5560;box-shadow:none;
}
.trigger-chip .tiny,.acted-chip .tiny{display:none;}
.trigger-chip.sel,.acted-chip.sel{border-color:#101820;background:#101820;color:#fff;box-shadow:none;}

/* Reports/history/settings: flatter cards, clearer hierarchy */
.screen{background:#F7F8FA;}
.scr-head{background:#F7F8FA;padding:max(22px,env(safe-area-inset-top)) 22px 18px;}
.scr-eyebrow{font-size:.84rem;letter-spacing:0;text-transform:none;color:#5C616B;}
.scr-h1{font-size:2.05rem;letter-spacing:-.04em;margin:4px 0 8px;}
.scr-summary{background:#fff;border:1px solid #E7EBEF;border-radius:24px;color:#3F4650;box-shadow:none;}
.scr-note{border:1px solid #F1D7A8;background:#FFF7E8;color:#8A5F13;border-radius:18px;}
.sec{padding:20px 22px 4px;}
.sec-title{font-size:1.18rem;letter-spacing:-.02em;}
.overview{gap:10px;}
.ov-card,.metric-row,.insight-card,.notecard,.day-row,.log-row,.set-card,.goal-card,.goal-form,.goal-summary,.area-chart-card{
  background:#fff;border:1px solid #E7EBEF;border-radius:24px;box-shadow:none;
}
.ov-n{font-size:1.75rem;color:#101820;}
.ov-l{letter-spacing:0;text-transform:none;color:#5C616B;}
.range-tabs{background:#EBEEF2;border:0;border-radius:999px;padding:4px;}
.range-tabs button{font-size:.86rem;color:#626B75;}
.range-tabs button.active{background:#fff;box-shadow:none;color:#101820;}
.chart-toggle{box-shadow:none;border:1px solid #E7EBEF;border-radius:24px;}
.chart-wrap{border:1px solid #E7EBEF;background:#F8FAFB;border-radius:20px;}
.bar,.goal-bar,.ia-bar{background:#ECEFF3;}
.pill{border:1px solid #E7EBEF;box-shadow:none;background:#fff;}
.day-row{padding:15px 16px;}
.dr-chev,.lr-chev{color:#8A929B;}
.chip{text-transform:none;letter-spacing:0;}

/* Settings */
.settings-list{gap:10px;padding:8px 22px 44px;}
.set-card{padding:16px;}
.set-title{font-size:1.08rem;letter-spacing:-.015em;}
.set-text{color:#6F7680;}
.set-btn,.set-toggle,.goal-actions button,.acted-nav button,.urge-ghost{
  border-radius:999px;background:#F1F3F6;color:#101820;box-shadow:none;
}
.set-btn.primary,.goal-actions button.primary,.acted-nav button.primary{background:#101820;color:#fff;}
.set-btn.warn,.goal-actions button.warn{background:#FFECE8;color:#B33322;}
.set-toggle{border:1px solid #E7EBEF;background:#fff;padding:14px 15px;}
.set-toggle .state{background:#F1F3F6;color:#6F7680;}
.set-toggle.on{border-color:#101820;}
.set-toggle.on .state{background:#101820;color:#fff;}
.set-field input,.set-field textarea,.goal-form input,.goal-form select,.acted-field input,.acted-field select,textarea.note,.backup-box{
  border:1px solid #DDE2E8;background:#fff;border-radius:20px;box-shadow:none;
}

/* PIN and dialogs: plain private-screen style */
.pin-screen{background:#F7F8FA;}
.pin-card{background:#fff;border:1px solid #E7EBEF;box-shadow:none;border-radius:34px;}
.pin-icon{display:none;}
.pin-eyebrow{letter-spacing:0;text-transform:none;color:#5C616B;}
.pin-title{font-size:1.75rem;letter-spacing:-.035em;}
.pin-key{background:#fff;border:0;box-shadow:none;border-radius:20px;font-size:1.5rem;}
.pin-dot{border-color:#C8CDD4;}
.pin-dot.filled{background:#101820;border-color:#101820;}
.pin-action{border-radius:999px;background:#F1F3F6;}
.pin-action.primary{background:#101820;}
.dialog{border-radius:30px;box-shadow:0 18px 50px -28px rgba(16,24,32,.35);}
.dialog button{border-radius:999px;}
.btn-ghost{background:#F1F3F6;}
.btn-warn{background:#101820;}

/* Urge flow */
.urge-screen{background:linear-gradient(180deg,#F7F8FA 0%,#EEF1F5 100%);}
.urge-card{background:#fff;border:1px solid #E7EBEF;border-radius:32px;box-shadow:none;}
.urge-step{letter-spacing:0;text-transform:none;color:#5C616B;}
.urge-title{font-size:1.8rem;letter-spacing:-.04em;}
.urge-commit,.urge-contacts{background:#F7F8FA;border:1px solid #E7EBEF;border-radius:24px;}
.breath-orb{background:#2F9FB3;box-shadow:0 20px 60px -34px rgba(47,159,179,.8);}

@media (max-width:380px){
  .greet,.scr-h1{font-size:1.85rem;}
  .q-title{font-size:1.52rem;}
  .activity-grid{grid-template-columns:repeat(2,1fr);}
}

/* =========================================================
   v20 Health-flow visual system
   Data is unchanged. These overrides simplify presentation only.
   ========================================================= */
:root{
  --cream:#F5F6F8;
  --cream-2:#F5F6F8;
  --peach:#EEF2F7;
  --coral:#2563EB;
  --coral-deep:#1D4ED8;
  --apricot:#93C5FD;
  --gold:#DBEAFE;
  --rose:#F3F4F6;
  --plum:#E5E7EB;
  --sage:#22C55E;
  --sage-deep:#15803D;
  --amber:#F59E0B;
  --clay:#111827;
  --clay-soft:#6B7280;
  --line:#E5E7EB;
  --card:#FFFFFF;
  --shadow:none;
  --shadow-soft:none;
  --r-lg:28px;
  --r-md:20px;
  --r-sm:14px;
  --ff-head:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Rounded", system-ui, sans-serif;
  --ff-body:-apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif;
}
html,body{background:#F5F6F8;color:var(--clay);}
body{font-size:16px;letter-spacing:-.01em;}
button,input,textarea,select{font-family:var(--ff-body);}
.app{max-width:430px;background:#F5F6F8;}

/* Home: task stack */
.home{background:#F5F6F8;padding:22px 18px 34px;gap:0;}
.home-top{align-items:center;margin-bottom:18px;}
.date{font-size:.76rem;letter-spacing:.04em;color:#8B95A1;font-weight:700;}
.greet{font-size:2.1rem;letter-spacing:-.045em;line-height:1.02;margin:5px 0 2px;font-weight:800;}
.sub{font-size:1rem;color:#6B7280;margin:0;}
.streak{background:#fff;border:1px solid #E5E7EB;box-shadow:none;color:#374151;padding:7px 10px;font-size:.8rem;}
.home-banner{background:#fff;border:1px solid #E5E7EB;border-left:4px solid #2563EB;border-radius:22px;padding:14px 15px;margin:0 0 14px;box-shadow:none;}
.home-banner>div:first-child{display:none;}
.home-banner .hb-title{color:#111827;font-size:.95rem;}
.home-banner .hb-text{color:#6B7280;font-size:.86rem;line-height:1.34;}
.home-banner button{border-radius:999px;padding:8px 12px;}
.home-banner .hb-go{background:#111827;color:#fff;}
.home-banner .hb-x{background:#F3F4F6;color:#374151;}
.cards{gap:12px;margin-top:2px;}
.checkcard{background:#fff!important;border:1px solid #E5E7EB;border-radius:24px;padding:18px 18px 17px;box-shadow:none;min-height:126px;}
.checkcard:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:5px;border-radius:0 8px 8px 0;background:#2563EB;}
.checkcard.evening:before{background:#7C3AED;}
.checkcard.acted:before{background:#DC2626;}
.checkcard:active,.nav-btn:active,.urge-small-btn:active,.acted-small-btn:active{transform:scale(.992);}
.cc-icon{display:none!important;}
.cc-eyebrow{font-size:.72rem;color:#6B7280;opacity:1;font-weight:800;letter-spacing:.08em;}
.cc-title{font-size:1.28rem;letter-spacing:-.025em;margin:4px 0 4px;font-weight:800;}
.cc-desc{font-size:.93rem;color:#6B7280;opacity:1;max-width:100%;line-height:1.35;}
.cc-status{background:#F3F4F6;color:#374151;margin-top:12px;padding:6px 10px;font-size:.8rem;}
.cc-status.done{background:#DCFCE7;color:#15803D;}
.recovery-tools{margin-top:16px;padding-top:0;border-top:0;gap:10px;}
.recovery-label{font-size:.76rem;color:#8B95A1;letter-spacing:.08em;padding:2px 2px 0;}
.urge-small-btn,.acted-small-btn,.nav-btn{background:#fff!important;border:1px solid #E5E7EB;border-radius:22px;box-shadow:none;color:#111827;}
.urge-small-btn{padding:15px 16px;border-left:4px solid #DC2626;}
.acted-small-btn{padding:15px 16px;border-left:4px solid #F59E0B;}
.acted-small-btn:before{display:none;}
.urge-small-main,.acted-small-main{font-size:1rem;color:#111827;font-weight:800;letter-spacing:-.015em;}
.urge-small-sub,.acted-small-sub{color:#6B7280;font-size:.86rem;line-height:1.3;}
.nav-btn{padding:16px 17px;font-size:1rem;font-weight:800;letter-spacing:-.015em;}
.nav-btn .chev,.acted-small-btn .chev,.urge-small-btn .chev{color:#9CA3AF;}
.home-foot{padding-top:16px;gap:10px;}
.mini-links{display:none;}

/* Shared screens */
.screen{background:#F5F6F8;}
.scr-head{background:#F5F6F8;padding:max(20px,env(safe-area-inset-top)) 18px 16px;}
.scr-back{color:#6B7280;margin-bottom:16px;font-weight:700;}
.scr-eyebrow{color:#8B95A1;font-size:.75rem;font-weight:800;letter-spacing:.08em;}
.scr-h1{font-size:2rem;line-height:1.02;letter-spacing:-.045em;font-weight:850;margin:4px 0 12px;}
.scr-summary{background:#fff;border:1px solid #E5E7EB;border-radius:22px;padding:14px 15px;color:#374151;box-shadow:none;}
.scr-summary b{color:#111827;}
.scr-note{background:#FFFBEB;border-color:#FDE68A;color:#92400E;border-radius:16px;}
.sec{padding:18px 18px 4px;}
.sec-title{font-size:1.15rem;letter-spacing:-.025em;font-weight:850;margin-bottom:12px;}
.overview{margin:0 18px 4px;gap:10px;}
.ov-card,.metric-row,.area-chart-card,.insight-card,.notecard,.goal-card,.goal-form,.set-card,.acted-card,.log-row,.day-row{background:#fff;border:1px solid #E5E7EB;border-radius:22px;box-shadow:none;}
.ov-card{padding:14px 10px;}
.ov-n{font-size:1.55rem;color:#111827;}
.ov-l{color:#6B7280;font-weight:800;}
.metric-row{padding:14px 15px;margin-bottom:10px;}
.mr-label{font-weight:800;color:#111827;}
.mr-avg{color:#111827;}
.bar,.goal-bar,.ia-bar{background:#EEF2F7;}
.pill{background:#fff;border:1px solid #E5E7EB;box-shadow:none;color:#374151;}
.pill.good{background:#F0FDF4;border-color:#BBF7D0;color:#15803D;}
.pill.care{background:#FFFBEB;border-color:#FDE68A;color:#92400E;}
.range-tabs{background:#E9EEF5;border:0;border-radius:18px;padding:4px;margin-top:12px;}
.range-tabs button{color:#6B7280;padding:9px 10px;}
.range-tabs button.active{background:#fff;color:#111827;box-shadow:none;}
.chart-toggle{background:#fff;border:1px solid #E5E7EB;border-radius:20px;box-shadow:none;}
.chart-wrap{background:#F9FAFB;border:1px solid #EEF2F7;border-radius:18px;}

/* Check-in flow: calm one-question screen */
.flow{background:#F5F6F8;}
.sky{background:#F5F6F8!important;}
.sun{display:none!important;}
.flow-head{padding:max(16px,env(safe-area-inset-top)) 18px 0;}
.icon-btn{background:#fff;border:1px solid #E5E7EB;box-shadow:none;color:#374151;font-size:1.2rem;}
.flow-date{background:#fff;border:1px solid #E5E7EB;color:#374151;font-size:.78rem;}
.progress-dots{gap:5px;}
.pdot{height:5px;width:16px;border-radius:999px;background:#D1D5DB;}
.pdot.active{height:5px;width:24px;background:#111827;}
.pdot.done{background:#9CA3AF;}
.flow-body{padding:18px;}
.q-card{background:#fff;border:1px solid #E5E7EB;border-radius:30px;padding:24px 22px;box-shadow:none;backdrop-filter:none;margin:auto 0 0;}
.q-eyebrow{font-size:.74rem;font-weight:850;letter-spacing:.08em;color:#6B7280;margin-bottom:9px;}
.q-title{font-size:1.55rem;line-height:1.12;letter-spacing:-.04em;font-weight:850;margin-bottom:6px;color:#111827;}
.q-help{font-size:.95rem;color:#6B7280;line-height:1.4;}
.flow-foot{padding:12px 18px max(16px,env(safe-area-inset-bottom));background:#F5F6F8;}
.next-btn{background:#111827;color:#fff;border-radius:18px;box-shadow:none;padding:16px;font-weight:850;}
.skip-btn{color:#6B7280;text-decoration:none;}

/* Controls */
.vslider{gap:12px;}
.vs-main{height:260px;width:86px;}
.vs-nums{height:260px;}
.vs-track{width:42px;background:#EEF2F7;box-shadow:none;}
.vs-fill{background:#2563EB!important;}
.vs-handle{width:66px;height:66px;border:3px solid #2563EB;box-shadow:0 10px 24px -14px rgba(17,24,39,.35);}
.vs-main.pending .vs-handle{border-color:#D1D5DB;}
.vs-val{font-size:1.55rem;color:#111827;}
.vs-cap,.vs-hint,.vs-num{color:#6B7280;}
.choice{border:1px solid #E5E7EB;border-radius:18px;background:#fff;padding:15px;font-weight:750;box-shadow:none;}
.choice.sel{border-color:#2563EB;background:#EFF6FF;box-shadow:none;}
.choice.sel .pick{color:#2563EB;}
.activity-group,.trigger-group{background:#fff;border:1px solid #E5E7EB;border-radius:22px;box-shadow:none;}
.activity-grid{gap:8px;}
.activity{border:1px solid #E5E7EB;border-radius:18px;background:#fff;color:#6B7280;min-height:76px;}
.activity .aicon{background:#F3F4F6;color:#374151;}
.activity.sel{border-color:#2563EB;background:#EFF6FF;color:#111827;box-shadow:none;}
.activity.sel .aicon{background:#2563EB;color:#fff;}
.trigger-chip,.acted-chip{border:1px solid #E5E7EB;border-radius:16px;background:#fff;color:#6B7280;}
.trigger-chip .tiny,.acted-chip .tiny{background:#F3F4F6;color:#374151;}
.trigger-chip.sel,.acted-chip.sel{border-color:#2563EB;background:#EFF6FF;color:#111827;box-shadow:none;}
.trigger-chip.sel .tiny,.acted-chip.sel .tiny{background:#2563EB;color:#fff;}
textarea.note,.goal-form input,.goal-form select,.set-field textarea,.set-field input,.acted-field input,.acted-field select,.backup-box,.share-box{background:#fff;border:1px solid #D1D5DB;border-radius:18px;color:#111827;box-shadow:none;}
textarea.note:focus,.goal-form input:focus,.goal-form select:focus,.set-field textarea:focus,.set-field input:focus{border-color:#2563EB;outline:none;}
.note-toggle,.guided-toggle{color:#2563EB;}
.guided{background:#fff;border:1px solid #E5E7EB;border-radius:22px;box-shadow:none;}
.prompt-btn,.prompt-note{border:1px solid #E5E7EB;background:#F9FAFB;border-radius:16px;}
.nudge{border-radius:20px;}
.nudge.up{background:#F0FDF4;border-color:#BBF7D0;}
.nudge.down{background:#FFFBEB;border-color:#FDE68A;}

/* Recovery and logs */
.urge-screen{background:#F5F6F8;}
.urge-card{background:#fff;border:1px solid #E5E7EB;border-radius:30px;box-shadow:none;}
.urge-title{font-size:1.65rem;letter-spacing:-.04em;font-weight:850;}
.urge-step{color:#6B7280;font-weight:850;}
.urge-primary{background:#111827;border-radius:18px;box-shadow:none;}
.urge-ghost{background:#fff;border:1px solid #E5E7EB;border-radius:18px;}
.urge-commit,.urge-contacts{background:#F9FAFB;border:1px solid #E5E7EB;border-radius:20px;}
.breath-orb{background:#2563EB;box-shadow:0 0 0 16px rgba(37,99,235,.09);}
.acted-list,.daymenu,.settings-list,.goal-list{padding-left:18px;padding-right:18px;}
.acted-step{color:#6B7280;}
.acted-title{font-size:1.35rem;letter-spacing:-.03em;font-weight:850;}
.acted-nav{background:linear-gradient(180deg,rgba(245,246,248,0),#F5F6F8 25%);padding-left:18px;padding-right:18px;}
.acted-nav button{background:#fff;border:1px solid #E5E7EB;border-radius:18px;}
.acted-nav button.primary{background:#111827;color:#fff;border-color:#111827;}
.log-row,.day-row{margin-left:18px;margin-right:18px;width:calc(100% - 36px);}
.lr-date,.dr-date{font-weight:850;letter-spacing:-.015em;}
.chip{border-radius:999px;background:#F3F4F6!important;color:#6B7280!important;}
.dr-chev,.lr-chev{color:#9CA3AF;}

/* Goals and settings */
.goal-card,.set-card{padding:16px;}
.goal-title,.set-title{font-weight:850;letter-spacing:-.02em;color:#111827;}
.goal-tag,.ag-count,.trigger-count{background:#F3F4F6;color:#6B7280;}
.goal-actions button,.set-btn{background:#F3F4F6;color:#111827;border-radius:16px;}
.goal-actions button.primary,.set-btn.primary{background:#111827;color:#fff;}
.goal-actions button.warn,.set-btn.warn{background:#FEE2E2;color:#991B1B;}
.set-toggle{background:#fff;border:1px solid #E5E7EB;border-radius:18px;}
.set-toggle .lab{font-weight:850;}
.set-toggle .state{background:#F3F4F6;color:#6B7280;}
.set-toggle.on{border-color:#2563EB;background:#EFF6FF;}
.set-toggle.on .state{background:#DBEAFE;color:#1D4ED8;}
.install-steps{color:#6B7280;}
.reminder-mini{color:#6B7280;}
.pwa-status.ok{color:#15803D;}

/* Private access */
.pin-screen{background:#F5F6F8;padding:24px 18px calc(24px + env(safe-area-inset-bottom));}
.pin-card{background:#fff;border:1px solid #E5E7EB;border-radius:30px;box-shadow:none;padding:24px 20px;}
.pin-icon{display:none;}
.pin-eyebrow{color:#8B95A1;font-weight:850;letter-spacing:.08em;}
.pin-title{font-size:1.65rem;letter-spacing:-.04em;font-weight:850;}
.pin-text,.pin-foot{color:#6B7280;}
.pin-dot{border-color:#D1D5DB;background:#fff;}
.pin-dot.filled{background:#111827;border-color:#111827;}
.pin-key{background:#F9FAFB;border:1px solid #E5E7EB;border-radius:20px;box-shadow:none;color:#111827;}
.pin-action{background:#F3F4F6;border-radius:18px;}
.pin-action.primary{background:#111827;color:#fff;}
.pin-action.warn{background:#FEE2E2;color:#991B1B;}
.dialog{border-radius:28px;box-shadow:none;border:1px solid #E5E7EB;}
.btn-ghost{background:#F3F4F6;}
.btn-warn{background:#DC2626;}

/* Print remains plain. */
@media print{body,.screen,.scr-head{background:#fff!important;}}


/* ================= v23 Health-like home + integrated Hold mode =================
   Typography remains the existing app typography: Quicksand / Nunito.
   These are colour, spacing, and component-shape overrides only. */

:root{
  --cream:#F0F1F6;
  --cream-2:#E8F2EF;
  --peach:#F7C7A7;
  --coral:#F26B38;
  --coral-deep:#E65A24;
  --apricot:#F6A85E;
  --gold:#F3C469;
  --rose:#E8A9A2;
  --plum:#A99BD8;
  --sage:#69B889;
  --sage-deep:#478F64;
  --amber:#D88D34;
  --mint:#BFE7DD;
  --mist:#E0E7E4;
  --lav:#DCD4F3;
  --sky-soft:#CFE8EE;
  --clay:#15171C;
  --clay-soft:#737985;
  --line:#E0E3EA;
  --card:#FFFFFF;
  --shadow:0 18px 42px -26px rgba(20,25,34,.24);
  --shadow-soft:0 10px 28px -22px rgba(20,25,34,.18);
}

body{background:var(--cream);color:var(--clay);}
.app{background:var(--cream);}

.home.health-home{
  background:
    radial-gradient(95% 46% at 9% -4%, rgba(247,199,167,.94), transparent 62%),
    radial-gradient(100% 55% at 94% 0%, rgba(149,230,216,.92), transparent 62%),
    linear-gradient(180deg,#F5F6FA 0%,#F0F1F6 58%,#ECEEF3 100%);
  padding:30px 20px 42px;
  min-height:100dvh;
}

.health-titlebar{
  display:grid;
  grid-template-columns:44px 1fr 44px;
  align-items:center;
  padding:max(4px,env(safe-area-inset-top)) 0 24px;
}
.health-title{
  text-align:center;
  font-family:var(--ff-head);
  font-weight:800;
  font-size:1.05rem;
  color:var(--clay);
}
.health-round-btn{
  width:42px;height:42px;border-radius:50%;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(224,227,234,.92);
  box-shadow:var(--shadow-soft);
  font-family:var(--ff-head);
  font-weight:900;
  font-size:1.2rem;
  color:var(--clay-soft);
}


.home-menu-wrap{ position:relative; display:flex; justify-content:flex-end; }
.home-menu-button{ position:relative; z-index:52; }
.home-menu{
  position:absolute;
  top:52px;
  right:0;
  z-index:51;
  min-width:184px;
  padding:8px;
  border-radius:22px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(224,227,234,.95);
  box-shadow:0 22px 48px -24px rgba(20,25,34,.34);
  -webkit-backdrop-filter:saturate(1.35) blur(14px);
  backdrop-filter:saturate(1.35) blur(14px);
}
.home-menu[hidden]{ display:none; }
.home-menu button{
  width:100%;
  min-height:46px;
  padding:11px 14px;
  border:0;
  border-radius:15px;
  background:transparent;
  text-align:left;
  font-family:var(--ff-head);
  font-size:.95rem;
  font-weight:800;
  color:var(--clay);
  touch-action:manipulation;
}
.home-menu button:active,
.home-menu button:focus-visible{ background:rgba(240,241,246,.95); outline:none; }

.health-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:2px 2px 14px;
}
.health-section-head.small{margin:28px 2px 12px;}
.health-section-head h1,
.health-section-head h2{
  margin:0;
  font-family:var(--ff-head);
  font-weight:800;
  letter-spacing:-.03em;
  color:var(--clay);
}
.health-section-head h1{font-size:2rem;}
.health-section-head h2{font-size:1.45rem;}
.health-edit{
  color:#2C7DF0;
  font-weight:800;
  font-size:.92rem;
}

.health-streak-row{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  margin:2px 2px 14px;
}

.health-card-stack{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.health-data-card{
  width:100%;
  min-height:134px;
  text-align:left;
  border-radius:28px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(224,227,234,.82);
  box-shadow:var(--shadow);
  padding:20px 20px 18px;
  color:var(--clay);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  position:relative;
}
.health-data-card:active{transform:scale(.99);}
.hcard-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
}
.hcard-label{
  font-family:var(--ff-head);
  font-weight:900;
  font-size:1.04rem;
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.hcard-label:before{
  content:"";
  width:10px;height:10px;border-radius:50%;
  background:currentColor;
  box-shadow:0 0 0 4px rgba(0,0,0,.04);
}
.hcard-label.mind{color:#39BDA8;}
.hcard-label.evening{color:#7D68D8;}
.hcard-label.activity,.hcard-label.week-accent{color:var(--coral-deep);}

/* v38.8q: keep home-card eyebrow labels in the same dot + text layout. */
.hcard-top .hcard-label{
  white-space:nowrap;
}

.hcard-label.greeting{
  min-width:0;
  max-width:calc(100% - 118px);
}
.hcard-label.greeting .hcard-label-text{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.hcard-time{
  color:#8B909A;
  font-size:.94rem;
  font-weight:800;
}
.hcard-main{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin-top:22px;
}
.hcard-value{
  font-family:var(--ff-head);
  font-size:1.45rem;
  line-height:1.12;
  font-weight:900;
  color:var(--clay);
}
.hcard-sub{
  color:#8B909A;
  font-size:1rem;
  font-weight:800;
  margin-top:3px;
}
.hcard-number{
  font-family:var(--ff-head);
  font-weight:900;
  font-size:2.15rem;
  line-height:1;
  color:var(--clay);
}
.hcard-orb{
  flex:none;
  width:78px;height:78px;
  border-radius:28px;
  background:
    radial-gradient(circle at 50% 50%, rgba(126,104,216,.95) 0 12%, rgba(126,104,216,.4) 13% 30%, transparent 31%),
    conic-gradient(from 20deg, rgba(126,104,216,.18), rgba(126,104,216,.9), rgba(255,255,255,.75), rgba(126,104,216,.28), rgba(126,104,216,.18));
  filter:saturate(1.05);
  opacity:.88;
}
.mini-bars{
  display:flex;
  gap:7px;
  align-items:flex-end;
  height:58px;
  padding-right:2px;
}
.mini-bars i{
  width:12px;
  border-radius:8px;
  background:#E4E6EB;
  display:block;
}
.mini-bars i:nth-child(1){height:18px;}
.mini-bars i:nth-child(2){height:28px;}
.mini-bars i:nth-child(3){height:44px;}
.mini-bars i:nth-child(4){height:32px;}
.mini-bars i:nth-child(5){height:24px;background:var(--coral);}
.mini-bars.active i:nth-child(5){height:52px;}

.health-action-row,
.health-list-row{
  width:100%;
  min-height:58px;
  border-radius:22px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(224,227,234,.82);
  box-shadow:var(--shadow-soft);
  padding:0 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:var(--clay);
  font-family:var(--ff-head);
  font-weight:900;
  font-size:1rem;
  text-align:left;
}
.health-action-row.urgent{
  background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(255,232,220,.9));
  border-color:rgba(242,107,56,.2);
  color:var(--coral-deep);
}
.health-list-card{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(224,227,234,.82);
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.health-list-row{
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  min-height:56px;
}
.health-list-row + .health-list-row{border-top:1px solid rgba(224,227,234,.82);}
.home-banner.compact{
  margin:0 0 18px;
  background:rgba(255,255,255,.78);
  border-color:rgba(224,227,234,.92);
}
.home-banner.compact .hb-text{display:none;}

.screen{
  background:
    radial-gradient(88% 36% at 0% -6%, rgba(247,199,167,.72), transparent 60%),
    radial-gradient(96% 42% at 100% -4%, rgba(149,230,216,.72), transparent 60%),
    linear-gradient(180deg,#F5F6FA 0%,#F0F1F6 34%,#ECEEF3 100%);
}
.scr-head{
  background:transparent;
  padding-bottom:16px;
}
.scr-summary{
  background:rgba(255,255,255,.76);
  border-color:rgba(224,227,234,.88);
  color:var(--clay);
}
.set-card,.goal-card,.metric-row,.insight-card,.notecard,.area-chart-card,.day-row,.log-row,.acted-card{
  border-color:rgba(224,227,234,.86);
  box-shadow:var(--shadow-soft);
}

/* Urgent support borrows Hold behaviour, but keeps this app's typography and component language. */
.urge-screen.hold-mode{
  background:
    radial-gradient(85% 45% at 50% -8%, rgba(66,93,99,.95), transparent 68%),
    linear-gradient(180deg,#182629 0%,#213337 52%,#10181A 100%);
  color:#F2F4F2;
}
.urge-screen.hold-mode .icon-btn,
.urge-screen.hold-mode .flow-date{
  background:rgba(255,255,255,.12);
  color:#F2F4F2;
  border-color:rgba(255,255,255,.12);
}
.urge-screen.hold-mode .urge-card.hold-card{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:#F2F4F2;
  box-shadow:0 22px 52px -28px rgba(0,0,0,.7);
  backdrop-filter:blur(8px);
}
.urge-screen.hold-mode .urge-step{color:#B7D5D0;}
.urge-screen.hold-mode .urge-title{color:#FFFFFF;}
.urge-screen.hold-mode .urge-text{color:#C9D3D1;}
.hold-visual{
  height:220px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  margin:8px 0 18px;
  overflow:hidden;
  border-radius:28px;
  background:
    radial-gradient(circle at 50% 40%, rgba(113,181,178,.24), transparent 32%),
    linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
}
.hold-rings{
  position:absolute;
  width:148px;
  height:148px;
  display:grid;
  place-items:center;
}
.hold-rings i{
  position:absolute;
  inset:0;
  border-radius:50%;
  border:1.5px solid rgba(183,213,208,.5);
  animation:holdPulse 6s ease-in-out infinite;
}
.hold-rings i:nth-child(2){
  inset:-24px;
  opacity:.55;
  animation-delay:.6s;
}
.hold-rings i:nth-child(3){
  inset:-48px;
  opacity:.3;
  animation-delay:1.2s;
}
.hold-core{
  position:relative;
  z-index:2;
  width:106px;
  height:106px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:radial-gradient(circle at 35% 30%,#E8F7F4,#6AA9A4 62%,#355E62);
  color:#0E1A1C;
  font-family:var(--ff-head);
  font-size:1.35rem;
  font-weight:900;
  box-shadow:0 20px 50px -22px rgba(106,169,164,.85);
}
@keyframes holdPulse{
  0%,100%{transform:scale(.82);opacity:.26}
  45%{transform:scale(1.06);opacity:.7}
  70%{transform:scale(1.06);opacity:.5}
}
.hold-reason{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.12);
  color:#EAF0EE;
}
.hold-reason b{color:#FFFFFF;}
.hold-exit-link{
  position:relative;
  width:100%;
  min-height:48px;
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,.08);
  color:#B7C5C3;
  font-family:var(--ff-head);
  font-weight:900;
  border:1px solid rgba(255,255,255,.1);
}
.hold-exit-fill{
  position:absolute;
  inset:0 auto 0 0;
  width:0%;
  background:rgba(255,255,255,.12);
  transition:width .05s linear;
}
.hold-exit-label{
  position:relative;
  z-index:1;
}
.urge-screen.hold-mode .urge-primary{
  background:#F2F4F2;
  color:#10181A;
}
.urge-screen.hold-mode .urge-foot{
  background:linear-gradient(180deg,rgba(16,24,26,0),#10181A 26%);
}

/* Strip visual noise from older home components if any remain reachable */
.cc-icon{display:none;}


/* =================== A11Y + NAVIGATION ENHANCEMENTS (v25) =================== */
/* These rules are appended last so they win the cascade. */

:root{ --clay-soft:#5C616B; }   /* AA-contrast secondary text on light backgrounds */

/* Consistent, visible keyboard focus on every interactive control */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
.choice:focus-visible,.activity:focus-visible,.trigger-chip:focus-visible,.acted-chip:focus-visible,
.health-data-card:focus-visible,.health-action-row:focus-visible,.health-list-row:focus-visible,
.goal-flow-card:focus-visible,.pin-key:focus-visible,.tab:focus-visible,.scr-back:focus-visible,
.next-btn:focus-visible,.skip-btn:focus-visible,.pin-action:focus-visible,.note-toggle:focus-visible{
  outline:3px solid #1D4ED8;
  outline-offset:2px;
  border-radius:12px;
}
/* Programmatic heading focus on navigation should not show a ring */
.scr-h1:focus,.done-title:focus,.pin-title:focus,.q-title:focus,.health-title:focus,
.urge-title:focus,#app:focus{ outline:none; }

/* Skip link */
.skip-link{
  position:fixed; left:8px; top:-64px; z-index:200;
  background:#101820; color:#fff; padding:11px 18px;
  border-radius:0 0 12px 12px; font-family:var(--ff-head); font-weight:800;
  box-shadow:var(--shadow); transition:top .15s ease;
}
.skip-link:focus{ top:0; }

/* Larger touch targets (>=44px) for navigation controls */
.scr-back{ min-height:44px; padding:9px 8px 9px 2px; margin-left:-2px; align-items:center; }
.skip-btn{ min-height:44px; display:flex; align-items:center; justify-content:center; }
.health-round-btn{ width:44px; height:44px; }
.home-banner .hb-x,.home-banner .hb-go{ min-height:40px; }

/* Persistent bottom navigation */
.tabbar{
  position:fixed; left:50%; transform:translateX(-50%); bottom:0;
  width:100%; max-width:480px; z-index:40; display:none;
  grid-template-columns:repeat(4,1fr); gap:2px;
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:saturate(1.4) blur(16px); backdrop-filter:saturate(1.4) blur(16px);
  border-top:1px solid var(--line);
  padding:6px 8px max(8px,env(safe-area-inset-bottom));
}
.tabbar.show{ display:none; }
.tabbar .tab{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  min-height:50px; padding:6px 4px; border:none; background:none; border-radius:12px;
  font-family:var(--ff-head); font-weight:700; font-size:.7rem; color:var(--clay-soft);
}
.tabbar .tab-ico{ font-size:1.15rem; line-height:1; }
.tabbar .tab.active{ color:var(--coral-deep); }
body.tabbar-on .app{ padding-bottom:0; }
body.tabbar-on .home.health-home,
body.tabbar-on .screen{ padding-bottom:42px; }


/* Subtle entry motion for modal dialogs */
.scrim{ animation:scrimIn .14s ease; }
.dialog{ animation:dlgIn .18s cubic-bezier(.2,.7,.3,1); }
@keyframes scrimIn{ from{opacity:0;} to{opacity:1;} }
@keyframes dlgIn{ from{opacity:0;transform:translateY(8px) scale(.98);} to{opacity:1;transform:none;} }

/* High-contrast preference */
@media (prefers-contrast:more){
  :root{ --clay-soft:#3A3E47; --line:#8A909B; }
  .choice,.activity,.trigger-chip,.acted-chip,.health-data-card,.health-list-card,
  .activity-group,.trigger-group,.goal-flow-card,.set-field input,.set-field textarea,
  textarea.note{ border-width:2px; border-color:#3A3E47; }
  .next-btn,.pin-action.primary,.set-btn.primary,.acted-nav button.primary{ outline:1px solid #000; }
  .tabbar{ background:#fff; border-top:2px solid #3A3E47; }
}

.health-title{ margin:0; }

/* Respect reduced-motion for the new animations too */
@media (prefers-reduced-motion:reduce){
  .scrim,.dialog,.skip-link,.tabbar .tab{ animation:none!important; transition:none!important; }
}


/* ================= v26 tactile / haptic response ================= */
.haptic-tick{animation:hapticTick .14s ease-out;}
.haptic-confirm{animation:hapticConfirm .18s ease-out;}
.haptic-track-tick .vs-track{box-shadow:inset 0 2px 6px rgba(120,72,45,.12),0 0 0 6px rgba(242,107,56,.08);}
.vs-handle.haptic-tick{animation:hapticSliderTick .14s ease-out;}
.vs-handle.haptic-confirm{animation:hapticSliderConfirm .18s ease-out;}
@keyframes hapticTick{0%{transform:scale(1)}50%{transform:scale(.985)}100%{transform:scale(1)}}
@keyframes hapticConfirm{0%{transform:scale(1)}35%{transform:scale(.97)}100%{transform:scale(1)}}
@keyframes hapticSliderTick{0%{transform:translate(-50%,-50%) scale(1)}55%{transform:translate(-50%,-50%) scale(1.055)}100%{transform:translate(-50%,-50%) scale(1)}}
@keyframes hapticSliderConfirm{0%{transform:translate(-50%,-50%) scale(1)}45%{transform:translate(-50%,-50%) scale(.96)}100%{transform:translate(-50%,-50%) scale(1)}}
@media (prefers-reduced-motion: reduce){.haptic-tick,.haptic-confirm,.vs-handle.haptic-tick,.vs-handle.haptic-confirm{animation:none;}}


/* ================= v27 horizontal scale + flat reflection prompts ================= */
.hscale-labels{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:4px 4px 8px;color:var(--clay-soft);font-family:var(--ff-head);font-weight:900;font-size:.98rem;}
.horizontal-scale{display:block;margin:6px auto 6px;max-width:430px;width:100%;}
.hscale-main,.vs-main.hscale-main{width:100%;height:86px;touch-action:none;user-select:none;-webkit-user-select:none;}
.hscale-track,.vs-track.hscale-track{position:absolute;left:34px;right:34px;top:50%;bottom:auto;transform:translateY(-50%);width:auto;height:26px;border-radius:999px;background:#E9EEF5;box-shadow:inset 0 2px 6px rgba(40,55,75,.10);overflow:hidden;}
.hscale-fill,.vs-fill.hscale-fill{position:absolute;top:0;bottom:0;left:0;right:auto;height:100%;width:0;border-radius:999px;transition:width .1s ease, background .15s ease;}
.hscale-handle,.vs-handle.hscale-handle{top:50%;left:34px;width:68px;height:68px;border-width:5px;border-color:var(--scale-colour, var(--coral));transform:translate(-50%,-50%);background:#fff;}
.hscale-handle .vs-val{font-size:1.75rem;}
.hscale-main.pending .hscale-handle{border-color:#D7DEE8;}
.hscale-main.pending .hscale-fill{opacity:.26;}
.hscale-main.pending .vs-val{color:#B7BEC9;}
.hscale-ticks,.vs-ticks.hscale-ticks{position:absolute;inset:0;pointer-events:none;}
.hscale-tick,.vs-tick.hscale-tick{position:absolute;top:50%;width:2px;height:10px;transform:translate(-50%,-50%);border-radius:999px;background:rgba(80,95,120,.14);left:auto;right:auto;}
.hscale-nums{position:relative;height:18px;max-width:430px;margin:0 auto;}
.hscale-num,.vs-num.hscale-num{position:absolute;top:0;right:auto;transform:translateX(-50%);color:#9CA3AF;font:.78rem/1 var(--ff-head);font-weight:900;}
.hscale-avg,.vs-avg.hscale-avg{position:absolute;top:8px;bottom:auto;width:auto;left:34px;right:auto;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2;transform:translateX(-50%);}
.hscale-avg .ln{position:absolute;top:34px;bottom:auto;height:34px;left:50%;right:auto;width:0;border-top:0;border-left:2px dashed rgba(92,67,57,.38);}
.hscale-avg .tag{transform:none;background:var(--clay);color:#fff;}
.haptic-track-tick .hscale-track{box-shadow:inset 0 2px 6px rgba(40,55,75,.10),0 0 0 6px rgba(242,107,56,.08);}
.flat-guided{margin-top:22px;padding-top:20px;border-top:1px solid rgba(221,226,234,.95);}
.guided-flat-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:#2563EB;font-family:var(--ff-head);font-size:1.08rem;line-height:1.2;font-weight:900;margin-bottom:16px;}
.guided-flat-head span{color:var(--clay-soft);font-size:.82rem;letter-spacing:.02em;font-weight:900;}
.flat-prompt-list{display:flex;flex-direction:column;gap:18px;}
.flat-prompt-note{padding:0 0 18px;margin:0;border:0;border-bottom:1px solid rgba(221,226,234,.95);background:transparent;border-radius:0;}
.flat-prompt-note:last-child{padding-bottom:0;border-bottom:0;}
.flat-prompt-note .prompt-q{display:block;font-family:var(--ff-head);font-size:1.08rem;line-height:1.22;font-weight:900;color:var(--clay);margin:0 0 8px;}
.flat-prompt-input,textarea.note.flat-prompt-input{min-height:52px;border:0;border-bottom:2px solid #D7DDE7;border-radius:0;background:transparent;padding:10px 0;color:var(--clay);box-shadow:none;resize:vertical;}
.flat-prompt-input:focus{outline:none;border-bottom-color:#2563EB;box-shadow:none;}


/* ================= v28 scale colour, notes expander, inline activity buttons ================= */
.hscale-track,.vs-track.hscale-track{background:linear-gradient(90deg,rgba(230,106,85,.18) 0%,rgba(247,200,100,.20) 50%,rgba(85,183,122,.20) 100%);} .hscale-fill,.vs-fill.hscale-fill{background:var(--scale-colour, var(--coral));}
.scale-option-block{margin:18px 0 4px;} .scale-option-question{font-family:var(--ff-head);font-weight:900;color:var(--clay);font-size:1rem;line-height:1.22;margin:0 0 10px;} .scale-option-row{display:flex;flex-wrap:wrap;gap:8px;}
.scale-option{min-height:42px;border:1.5px solid #DDE3EC;border-radius:999px;background:#fff;color:var(--clay-soft);padding:8px 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-family:var(--ff-head);font-size:.86rem;font-weight:900;line-height:1;box-shadow:none;} .scale-option .tiny{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;background:#F3F6FA;color:var(--clay-soft);font-size:.72rem;font-weight:900;} .scale-option.sel{border-color:#111827;background:#111827;color:#fff;} .scale-option.sel .tiny{background:rgba(255,255,255,.16);color:#fff;}
.note-expander,.note-toggle.note-expander{margin-top:18px;width:100%;min-height:48px;border-radius:18px;border:1.5px solid #DDE3EC;background:#fff;color:#2563EB;padding:0 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:var(--ff-head);font-weight:900;font-size:1rem;} .note-chevron{color:var(--clay-soft);font-size:1.1rem;} .flat-notes-panel,.note-wrap.flat-notes-panel{margin-top:14px;padding:0;background:transparent;border:0;box-shadow:none;} .flat-notes-panel.open{display:block;} .flat-notes-panel:not(.open){display:none;}
.flat-notes-panel textarea.note,textarea.note.general-note-input,textarea.note.flat-prompt-input{background:transparent;border:0;border-bottom:2px solid #D7DDE7;border-radius:0;box-shadow:none;padding:10px 0;min-height:54px;color:var(--clay);} .flat-notes-panel textarea.note:focus,textarea.note.general-note-input:focus,textarea.note.flat-prompt-input:focus{outline:none;border-bottom-color:#2563EB;} .flat-guided{margin:0 0 18px;padding:0 0 14px;border:0;border-bottom:1px solid rgba(221,226,234,.95);background:transparent;box-shadow:none;} .guided-flat-head{margin-bottom:14px;} .flat-prompt-list{gap:16px;} .flat-prompt-note,.prompt-note.flat-prompt-note{background:transparent;border:0;border-radius:0;padding:0 0 16px;border-bottom:1px solid rgba(221,226,234,.85);} .flat-prompt-note:last-child{border-bottom:0;padding-bottom:0;} .flat-prompt-note .prompt-q{font-size:1.04rem;line-height:1.22;margin-bottom:8px;} .general-note-input{margin-top:4px;}


/* ================= v29 name entry / language audit ================= */
.name-input{width:100%;min-height:48px;border:2px solid var(--line);border-radius:16px;padding:11px 13px;font:inherit;font-size:16px;color:var(--clay);background:#fff;} .name-input:focus{outline:none;border-color:#2563EB;} .pin-action[disabled],.pin-action:disabled{opacity:.45;cursor:not-allowed;}

/* v34.1 safe flow guard fix */
.flow-right{display:flex;align-items:center;gap:8px;min-width:72px;justify-content:flex-end;}
.flow-exit{border:1px solid #E5E7EB;background:#fff;color:#374151;border-radius:999px;padding:8px 11px;font-family:var(--ff-head);font-weight:800;font-size:.8rem;box-shadow:none;}
.flow-exit:active{transform:scale(.98);}
.day-lock-note{background:#FFF7ED;border:1px solid #FED7AA;color:#7C2D12;border-radius:var(--r-md);padding:12px 14px;margin:0 0 12px;font-size:.88rem;line-height:1.35;box-shadow:var(--shadow-soft);}
.day-lock-note b{display:block;font-family:var(--ff-head);font-size:.95rem;margin-bottom:2px;}
.day-lock-note span{display:block;color:#9A3412;}
.edit-lock-screen .scr-head{padding-bottom:4px;}
.edit-lock-card{margin:12px 22px 40px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px 22px;text-align:center;box-shadow:var(--shadow);}
.edit-lock-icon{width:62px;height:62px;border-radius:24px;margin:0 auto 15px;display:flex;align-items:center;justify-content:center;background:rgba(127,181,140,.18);color:var(--sage-deep);font-family:var(--ff-head);font-weight:900;font-size:1.7rem;}
.edit-lock-card h2{font-family:var(--ff-head);font-size:1.32rem;line-height:1.2;margin:0 0 9px;color:var(--clay);}
.edit-lock-card p{font-size:.96rem;color:var(--clay-soft);line-height:1.45;margin:0 0 18px;}
.edit-lock-actions{display:flex;flex-direction:column;gap:9px;align-items:stretch;}
.edit-lock-actions .next-btn,.edit-lock-actions .skip-btn{width:100%;max-width:none;margin:0;}

/* v38.4 minimal daily inventory: 1-5 tap scales and easy-empty text answers */
.tap-scale{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:14px 0 8px;}
.tap-scale-btn{min-height:62px;border:1.5px solid var(--line);border-radius:16px;background:#fff;color:var(--clay-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 4px;font-family:var(--ff-head);font-weight:900;}
.tap-scale-btn .tap-n{font-size:1.1rem;color:var(--clay);line-height:1;}
.tap-scale-btn .tap-l{font-size:.66rem;line-height:1.1;text-align:center;white-space:nowrap;}
.tap-scale-btn.sel{border-color:var(--coral-deep);background:#EFF6FF;color:var(--clay);box-shadow:var(--shadow-soft);}
.tap-scale-btn.sel .tap-n{color:var(--coral-deep);}
.inventory-sweep{display:flex;flex-direction:column;gap:12px;margin-top:12px;}
.inventory-row{background:#fff;border:1px solid var(--line);border-radius:20px;padding:13px 13px 14px;box-shadow:var(--shadow-soft);}
.inventory-label{font-family:var(--ff-head);font-weight:900;font-size:1rem;color:var(--clay);margin:0 0 10px;line-height:1.18;}
.inventory-scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;width:100%;}
.inventory-scale-btn{width:100%;min-width:0;min-height:60px;border:1.5px solid #DDE3EC;border-radius:16px;background:#F9FAFB;color:var(--clay-soft);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:var(--ff-head);font-weight:900;padding:7px 2px;}
.inventory-scale-btn span{font-size:1.14rem;line-height:1;color:var(--clay);}
.inventory-scale-btn small{display:block;font-size:.57rem;line-height:1.05;text-align:center;color:inherit;max-width:100%;white-space:nowrap;}
.inventory-scale-btn.sel{border-color:var(--coral-deep);background:#111827;color:#fff;}
.inventory-scale-btn.sel span,.inventory-scale-btn.sel small{color:#fff;}
.empty-answer{margin-top:12px;width:100%;min-height:48px;border:1.5px solid var(--line);border-radius:18px;background:#fff;color:var(--clay-soft);font-family:var(--ff-head);font-weight:900;}
.empty-answer.sel{border-color:var(--clay);background:var(--clay);color:#fff;}
@media (max-width:380px){
  .tap-scale{gap:5px;}
  .tap-scale-btn{min-height:58px;}
  .tap-scale-btn .tap-l{font-size:.6rem;}
  .inventory-scale{gap:5px;}
  .inventory-scale-btn{min-height:56px;border-radius:13px;padding-left:1px;padding-right:1px;}
  .inventory-scale-btn span{font-size:1.04rem;}
  .inventory-scale-btn small{font-size:.5rem;}
}


/* v38.6 safe finish button / scale colour patch
   Selected 1-5 tap buttons now use a red-to-green strength scale.
   Higher = stronger/better unless the row text itself says otherwise. */
.inventory-scale-btn.sel[data-inv-value="1"],
.tap-scale-btn.sel[data-tap-value="1"]{background:#E66A55!important;border-color:#D24E3A!important;color:#fff!important;}
.inventory-scale-btn.sel[data-inv-value="2"],
.tap-scale-btn.sel[data-tap-value="2"]{background:#F59A5F!important;border-color:#E47F3E!important;color:#111827!important;}
.inventory-scale-btn.sel[data-inv-value="3"],
.tap-scale-btn.sel[data-tap-value="3"]{background:#F7C864!important;border-color:#DFAE3E!important;color:#111827!important;}
.inventory-scale-btn.sel[data-inv-value="4"],
.tap-scale-btn.sel[data-tap-value="4"]{background:#AFCF76!important;border-color:#8FB45D!important;color:#111827!important;}
.inventory-scale-btn.sel[data-inv-value="5"],
.tap-scale-btn.sel[data-tap-value="5"]{background:#55B77A!important;border-color:#3E9E62!important;color:#fff!important;}
.inventory-scale-btn.sel span,
.inventory-scale-btn.sel small,
.tap-scale-btn.sel .tap-n,
.tap-scale-btn.sel .tap-l{color:inherit!important;}


/* v38.8b inventory sweep fullscreen patch
   Expands the Daily Inventory multi-check screens across the available phone width.
   This leaves all other flow screens on the existing card layout. */
.flow--inventory-fullscreen .flow-body{
  padding-left:0;
  padding-right:0;
  padding-top:18px;
}
.flow--inventory-fullscreen .q-card--inventory-fullscreen{
  width:100%;
  margin:0;
  border-left:0;
  border-right:0;
  border-bottom:0;
  border-radius:32px 32px 0 0;
  padding:26px 20px calc(26px + env(safe-area-inset-bottom));
  min-height:calc(100dvh - 172px);
  box-shadow:none;
}
.flow--inventory-fullscreen .inventory-sweep{
  margin-left:-8px;
  margin-right:-8px;
  gap:12px;
}
.flow--inventory-fullscreen .inventory-row{
  padding:14px 14px 15px;
  border-radius:22px;
}
.flow--inventory-fullscreen .inventory-label{
  font-size:1.06rem;
  line-height:1.15;
  margin-bottom:12px;
}
.flow--inventory-fullscreen .inventory-scale{
  gap:8px;
}
.flow--inventory-fullscreen .inventory-scale-btn{
  min-height:66px;
  border-radius:17px;
  padding:8px 2px;
}
.flow--inventory-fullscreen .inventory-scale-btn span{
  font-size:1.2rem;
}
.flow--inventory-fullscreen .inventory-scale-btn small{
  font-size:.6rem;
  line-height:1.04;
}
@media (max-width:380px){
  .flow--inventory-fullscreen .q-card--inventory-fullscreen{padding-left:16px;padding-right:16px;}
  .flow--inventory-fullscreen .inventory-sweep{margin-left:-6px;margin-right:-6px;}
  .flow--inventory-fullscreen .inventory-row{padding-left:10px;padding-right:10px;}
  .flow--inventory-fullscreen .inventory-scale{gap:6px;}
  .flow--inventory-fullscreen .inventory-scale-btn{min-height:62px;border-radius:15px;}
  .flow--inventory-fullscreen .inventory-scale-btn small{font-size:.54rem;}
}


/* v38.8c flow top-lock and no-flow-chrome patch
   Keeps each check-in question anchored near the top of the available screen and hides
   the in-flow back/exit/progress chrome so users complete the sequence to leave. */
.flow--no-chrome .flow-head{
  display:none!important;
}
.flow--no-chrome .flow-body{
  padding-top:max(18px,env(safe-area-inset-top));
  justify-content:flex-start;
}
.flow--no-chrome .q-card{
  margin:0;
}
.flow--no-chrome .q-card--inventory-fullscreen{
  margin:0;
}
.guided--morning-review .guided-inner{
  padding-top:14px;
}
.flow--no-chrome.flow--inventory-fullscreen .q-card--inventory-fullscreen{
  min-height:calc(100dvh - 92px);
}

/* v38.8d/v38.8e report drilldown pages: area calendar, separate graph, goals and notes pages */
.report-drill-screen .scr-head{background:#F5F6F8;padding:max(20px,env(safe-area-inset-top)) 18px 16px;}
.report-drill-head .scr-h1{font-size:2.04rem;line-height:1.02;letter-spacing:-.05em;font-weight:900;}
.report-back{margin-bottom:16px;padding:8px 0;font-weight:850;color:#6B7280;}
.report-hint{font-size:.86rem;color:#6B7280;line-height:1.4;margin:0 0 12px;font-weight:650;}
.report-metric-button.metric-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;background:#fff;border:1px solid #E5E7EB;border-radius:22px;padding:15px;margin:0 0 10px;box-shadow:none;}
.report-metric-button .mr-top{margin-bottom:8px;}
.report-metric-button .bar{display:block;margin-bottom:7px;}
.report-metric-main{display:block;min-width:0;}
.report-row-sub{display:block;color:#6B7280;font-size:.8rem;font-weight:750;line-height:1.25;margin-top:3px;}
.report-row-chev,.report-action-card .chev{font-size:1.45rem;color:#9CA3AF;line-height:1;font-weight:750;}
.report-action-grid{display:grid;gap:10px;}
.report-action-card{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;background:#fff;border:1px solid #E5E7EB;border-radius:22px;padding:16px 17px;color:#111827;box-shadow:none;}
.report-action-title{display:block;font-weight:900;letter-spacing:-.02em;}
.report-action-sub{display:block;color:#6B7280;font-weight:700;font-size:.82rem;margin-top:4px;line-height:1.25;}
.report-page-card,.report-calendar-card{background:#fff;border:1px solid #E5E7EB;border-radius:22px;padding:16px;box-shadow:none;}
.report-page-card .area-chart-card{border:0;box-shadow:none;padding:0;margin:0;background:transparent;}
.report-page-card .area-chart-help{display:none;}
.report-page-card .multi-chart{height:220px;}
.report-calendar-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.report-calendar-month{font-weight:900;font-size:1.15rem;letter-spacing:-.025em;color:#111827;}
.report-calendar-meta{text-align:right;color:#6B7280;font-size:.78rem;font-weight:800;line-height:1.35;white-space:nowrap;}
.report-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.report-dow{font-size:.7rem;text-align:center;color:#8B95A1;font-weight:850;padding:0 0 4px;}
.report-calendar-day{min-height:42px;border-radius:14px;background:#F9FAFB;border:1px solid #EEF2F7;display:flex;align-items:center;justify-content:center;font-weight:900;color:#6B7280;position:relative;}
.report-calendar-day.blank{background:transparent;border:0;}
.report-calendar-day.done{color:#111827;}
.report-calendar-day.v5{background:#E8F8EF;border-color:#BBF7D0;}
.report-calendar-day.v4{background:#F0FDF4;border-color:#CFF6DA;}
.report-calendar-day.v3{background:#FFF4D8;border-color:#FDE68A;}
.report-calendar-day.v2{background:#FFF0E5;border-color:#FDBA74;}
.report-calendar-day.v1{background:#FEE2E2;border-color:#FCA5A5;}
.report-calendar-day.out-range.done{opacity:.46;}
.report-calendar-day.today{outline:2px solid #111827;outline-offset:1px;}
.report-calendar-grid.rolling-window .report-calendar-day.rolling{flex-direction:column;gap:1px;}
.report-calendar-grid.rolling-window .report-calendar-day small{font-size:.48rem;line-height:1;font-weight:900;color:#9CA3AF;text-transform:uppercase;letter-spacing:.03em;}
.report-legend{display:flex;justify-content:space-between;gap:6px;margin-top:14px;}
.report-legend > span{flex:1;text-align:center;border-radius:999px;padding:7px 3px;font-size:.68rem;font-weight:850;color:#374151;background:#F9FAFB;border:1px solid #EEF2F7;white-space:nowrap;overflow:hidden;text-overflow:clip;}
.report-legend .legend-num{font-weight:950;margin-right:2px;}
.report-legend .legend-word{font-weight:850;}
.report-legend > span.v5{background:#E8F8EF;border-color:#BBF7D0;}
.report-legend > span.v4{background:#F0FDF4;border-color:#CFF6DA;}
.report-legend > span.v3{background:#FFF4D8;border-color:#FDE68A;}
.report-legend > span.v2{background:#FFF0E5;border-color:#FDBA74;}
.report-legend > span.v1{background:#FEE2E2;border-color:#FCA5A5;}
.report-graph-tabs{margin:0 0 12px;}
@media (max-width:380px){
  .report-drill-head .scr-h1{font-size:1.85rem;}
  .report-calendar-day{min-height:38px;}
  .report-action-card,.report-metric-button.metric-row{border-radius:20px;}
}
/* v38.8h monthly archive controls */
.report-month-nav{display:grid;grid-template-columns:minmax(78px,auto) 1fr minmax(78px,auto);align-items:center;gap:8px;margin-top:12px;background:#FFFFFF;border:1px solid #E5E7EB;border-radius:18px;padding:7px;box-shadow:none;}
.report-month-nav span{text-align:center;font-family:var(--ff-head);font-weight:900;color:#111827;letter-spacing:-.02em;white-space:nowrap;}
.report-month-nav button{min-height:38px;border-radius:14px;padding:7px 9px;background:#F5F6F8;color:#374151;font-family:var(--ff-head);font-size:.82rem;font-weight:900;}
.report-month-nav button:disabled{opacity:.35;}
.report-graph-tabs button,.report-drill-head .range-tabs button{font-size:.78rem;padding-left:7px;padding-right:7px;}

/* v38.8n Notes grouping views: Date / Prompt / Patterns / Search */
.report-notes-card{padding:16px;}
.report-notes-range-tabs{margin:0 0 14px;}
.notes-tabs{display:flex;gap:8px;overflow:auto;-webkit-overflow-scrolling:touch;padding:2px 0 8px;margin-bottom:10px;}
.notes-tabs button{border:1px solid #E5E7EB;background:#fff;border-radius:999px;padding:10px 14px;font-family:var(--ff-head);font-size:.82rem;font-weight:900;color:#5F6673;white-space:nowrap;}
.notes-tabs button.active{background:#111827;border-color:#111827;color:#fff;}
.notes-panel{display:none;}
.notes-panel.active{display:block;}
.notes-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:8px 0 12px;}
.notes-section-head h2{margin:0;font-family:var(--ff-head);font-size:1.16rem;font-weight:950;letter-spacing:-.035em;color:#111827;}
.notes-section-head span{font-size:.75rem;color:#6B7280;font-weight:850;white-space:nowrap;}
.notes-day-group{margin:14px 0 18px;}
.notes-day-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 9px;}
.notes-day-header strong{font-family:var(--ff-head);font-size:1rem;font-weight:950;color:#111827;letter-spacing:-.02em;}
.notes-day-header span{font-size:.75rem;color:#6B7280;font-weight:850;white-space:nowrap;}
.report-note-card{border:1px solid #E5E7EB;background:#fff;border-radius:20px;padding:13px 14px;margin:9px 0;box-shadow:none;}
.report-note-top{display:flex;align-items:center;gap:8px;margin-bottom:7px;min-width:0;}
.report-note-top strong{font-size:.84rem;font-weight:950;color:#303746;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.report-note-top span{margin-left:auto;font-size:.72rem;color:#6B7280;font-weight:850;white-space:nowrap;}
.report-note-card p{margin:0;font-size:.96rem;line-height:1.33;font-weight:720;color:#202734;}
.notes-dot{width:10px;height:10px;border-radius:999px;display:inline-block;flex:0 0 auto;background:#2D7DF0;box-shadow:0 0 0 5px rgba(45,125,240,.08);}
.notes-dot.teal{background:#26B9A7;box-shadow:0 0 0 5px rgba(38,185,167,.08);}
.notes-dot.purple{background:#7B5EE6;box-shadow:0 0 0 5px rgba(123,94,230,.08);}
.notes-dot.orange{background:#F2612B;box-shadow:0 0 0 5px rgba(242,97,43,.08);}
.notes-dot.blue{background:#2D7DF0;box-shadow:0 0 0 5px rgba(45,125,240,.08);}
.notes-prompt-title,.notes-pattern-title{font-family:var(--ff-head);font-size:1rem;font-weight:950;color:#111827;letter-spacing:-.02em;margin:18px 0 9px;display:flex;align-items:center;gap:9px;}
.notes-count-pill{font-family:var(--ff-head);font-size:.7rem;border:1px solid #E5E7EB;border-radius:999px;padding:3px 8px;color:#6B7280;background:#fff;font-weight:900;letter-spacing:0;}
.notes-pattern-card{border-radius:22px;border:1px solid #E5E7EB;background:#fff;padding:14px;margin:12px 0;}
.notes-pattern-card .report-note-card{background:#F9FAFB;}
.notes-mini-stats{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px;}
.notes-mini-stats span{background:#F5F6F8;border:1px solid #E5E7EB;border-radius:999px;padding:7px 9px;font-size:.7rem;font-weight:900;color:#5F6673;}
.notes-search-box{width:100%;border:1px solid #E5E7EB;border-radius:20px;padding:14px 15px;font-size:16px;font-weight:780;outline:none;background:#fff;margin:8px 0 10px;color:#111827;}
.notes-search-box:focus{border-color:#2D7DF0;box-shadow:0 0 0 3px rgba(45,125,240,.14);}
.notes-logic-box{font-size:.82rem;line-height:1.35;color:#5F6673;font-weight:750;background:#fff;border:1px solid #E5E7EB;border-radius:20px;padding:13px 14px;margin-top:14px;}
@media (max-width:380px){
  .notes-tabs button{padding:9px 12px;font-size:.78rem;}
  .report-note-top span{font-size:.68rem;}
  .report-note-card p{font-size:.9rem;}
}


/* v38.8r update checker: user-controlled refresh prompt with loop guard */
.update-banner{
  position:fixed;
  left:max(14px, env(safe-area-inset-left));
  right:max(14px, env(safe-area-inset-right));
  bottom:calc(18px + env(safe-area-inset-bottom));
  z-index:9999;
  max-width:448px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px 14px;
  border-radius:24px;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(225,228,235,.95);
  box-shadow:0 18px 46px rgba(26,34,46,.18);
  color:#101720;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.update-copy{display:flex;flex-direction:column;gap:2px;min-width:0;}
.update-copy strong{font-family:var(--ff-head);font-weight:800;font-size:.95rem;}
.update-copy span{font-size:.82rem;color:#6D7481;line-height:1.25;}
.update-actions{display:flex;gap:8px;align-items:center;flex:none;}
.update-actions button{
  min-height:38px;
  border-radius:999px;
  padding:0 13px;
  font-family:var(--ff-head);
  font-weight:800;
  font-size:.82rem;
  touch-action:manipulation;
}
.update-later{background:#F3F5F8;border:1px solid #E1E5EC;color:#5E6673;}
.update-refresh{background:#101720;border:1px solid #101720;color:#fff;}
.update-refresh:disabled{opacity:.7;}
@media (max-width:380px){
  .update-banner{align-items:flex-start;flex-direction:column;}
  .update-actions{width:100%;justify-content:flex-end;}
}

/* v38.8v: Last 7 days uses week-accent, not .activity.
   .activity is an old chip class that forces column layout and caused the dot/text to stack. */
.week-card .hcard-top{
  align-items:center;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  column-gap:14px;
}
.week-card .hcard-label.week-accent{
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:7px;
  white-space:nowrap;
  min-width:0;
  width:100%;
  max-width:none;
  height:auto;
  min-height:0;
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  box-shadow:none;
  border-radius:0;
  text-align:left;
  line-height:1.12;
  overflow:visible;
}
.week-card .hcard-label.week-accent:before{
  flex:0 0 auto;
  margin:0;
}
.week-card .hcard-time{
  justify-self:end;
  white-space:nowrap;
}


/* v38.8w: Slightly larger app navigation controls and home title. */
.health-titlebar{
  grid-template-columns:50px 1fr 50px;
  padding:max(6px,env(safe-area-inset-top)) 0 26px;
}
.health-title{
  font-size:1.18rem;
  letter-spacing:-.025em;
}
.health-round-btn{
  width:48px;
  height:48px;
  font-size:1.28rem;
}
.scr-back{
  min-height:50px;
  padding:11px 12px 11px 2px;
  font-size:1rem;
  gap:7px;
}
.icon-btn{
  width:46px;
  height:46px;
  font-size:1.48rem;
}
.done-screen .next-btn[id$="Home"],
.done-screen #doneHome,
.done-screen #actedHome,
.done-screen #uHome{
  min-height:54px;
  font-size:1.05rem;
}

/* v38.8x: Backup/export code remains available in the background, but the
   automatic home-screen backup banner is intentionally hidden by feature flag. */


/* v38.8ab: graphics integration spacing. Hero is intentionally clipped to its lower landscape band to avoid duplicate internal branding. */
.home.health-home .home-front-hero + .health-streak-row{
  margin-top:0;
}
.health-data-card .hcard-main:has(.hcard-art){
  align-items:center;
}
