:root{
    --cream:#F5FAF8;
    --cream-deep:#E4F1EC;
    --card:#FFFFFF;
    --ink:#132420;
    --ink-soft:#4E655F;
    --ink-faint:#8FA6A0;
    --sage:#1A504C;
    --sage-soft:#DCEEE9;
    --sky:#2F7DE1;
    --sky-soft:#E1EDFB;
    --peach:#F0653D;
    --peach-soft:#FDE4DA;
    --lavender:#6C5CE7;
    --lavender-soft:#EAE6FB;
    --rose:#E5484D;
    --rose-soft:#FBE1E2;
    --shadow: 0 12px 28px -14px rgba(19,36,32,0.22);
    --shadow-sm: 0 6px 16px -10px rgba(19,36,32,0.18);
    --radius-lg: 24px;
    --radius-md: 16px;
    --radius-sm: 12px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --cream:#0E1613;
      --cream-deep:#152420;
      --card:#1B2925;
      --ink:#EAF3F0;
      --ink-soft:#A9BFB9;
      --ink-faint:#6F8983;
      --sage-soft:#1E3833;
      --sky-soft:#152B3D;
      --peach-soft:#3A241C;
      --lavender-soft:#241E3D;
      --rose-soft:#3A1E20;
      --shadow: 0 12px 28px -14px rgba(0,0,0,0.6);
      --shadow-sm: 0 6px 16px -10px rgba(0,0,0,0.55);
    }
  }
  :root[data-theme="dark"]{
    --cream:#0E1613;
    --cream-deep:#152420;
    --card:#1B2925;
    --ink:#EAF3F0;
    --ink-soft:#A9BFB9;
    --ink-faint:#6F8983;
    --sage-soft:#1E3833;
    --sky-soft:#152B3D;
    --peach-soft:#3A241C;
    --lavender-soft:#241E3D;
    --rose-soft:#3A1E20;
    --shadow: 0 12px 28px -14px rgba(0,0,0,0.6);
    --shadow-sm: 0 6px 16px -10px rgba(0,0,0,0.55);
  }

  *{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
  html,body{margin:0; padding:0; height:100%;}
  body{
    background:
      radial-gradient(circle at 15% 8%, var(--sky-soft) 0%, transparent 40%),
      radial-gradient(circle at 88% 82%, var(--peach-soft) 0%, transparent 42%),
      var(--cream-deep);
    font-family:'Inter', sans-serif;
    color:var(--ink);
    min-height:100dvh;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding:28px 14px;
  }
  h1,h2,h3,.display{
    font-family:'Manrope', sans-serif;
    font-weight:800;
    letter-spacing:-0.01em;
    margin:0;
  }

  .shell{
    width:100%;
    max-width:412px;
    background:var(--cream);
    border-radius:38px;
    box-shadow: var(--shadow);
    overflow:hidden;
    position:relative;
    min-height:844px;
    display:flex;
    flex-direction:column;
    border:1px solid rgba(120,110,95,0.12);
  }

  /* ---------- top bar ---------- */
  .topbar{
    padding:26px 22px 14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-shrink:0;
  }
  .greeting-eyebrow{font-size:13px; color:var(--ink-soft); font-weight:500;}
  .greeting-name{font-size:22px; margin-top:2px;}
  .bell-wrap{position:relative;}
  .icon-btn{
    width:46px; height:46px; border-radius:50%;
    background:var(--card); border:none;
    display:flex; align-items:center; justify-content:center;
    box-shadow:var(--shadow-sm); cursor:pointer; color:var(--ink);
    transition:transform .15s ease;
  }
  .icon-btn:active{transform:scale(0.92);}
  .icon-btn.ringing svg{animation:wiggle .5s ease;}
  @keyframes wiggle{
    0%,100%{transform:rotate(0);}
    20%{transform:rotate(-14deg);}
    40%{transform:rotate(11deg);}
    60%{transform:rotate(-8deg);}
    80%{transform:rotate(5deg);}
  }
  .badge-dot{
    position:absolute; top:2px; right:2px;
    width:11px; height:11px; border-radius:50%;
    background:var(--rose); border:2px solid var(--cream);
  }

  /* ---------- scroll area / screens ---------- */
  .screens{flex:1; overflow-y:auto; padding:4px 22px 110px; scrollbar-width:none;}
  .screens::-webkit-scrollbar{display:none;}
  .screen{display:none; animation:enter .32s ease;}
  .screen.active{display:block;}
  @keyframes enter{
    from{opacity:0; transform:translateY(10px);}
    to{opacity:1; transform:translateY(0);}
  }

  .section-label{
    font-size:12.5px; font-weight:700; color:var(--ink-faint);
    margin:26px 0 12px; display:flex; align-items:center; gap:8px;
  }
  .section-label:first-child{margin-top:6px;}

  .card{
    background:var(--card); border-radius:var(--radius-md);
    padding:20px; box-shadow:var(--shadow-sm);
  }

  /* ---------- shield / breathing ring ---------- */
  .shield-card{
    background:linear-gradient(160deg, var(--sage-soft), var(--card) 65%);
    border-radius:var(--radius-lg);
    padding:26px 22px 22px;
    text-align:center;
    box-shadow:var(--shadow);
    position:relative;
    overflow:hidden;
  }
  .shield-title{font-size:14px; font-weight:600; color:var(--ink-soft);}
  .ring-wrap{
    position:relative; width:196px; height:196px; margin:16px auto 6px;
  }
  .ring-wrap svg{width:100%; height:100%; transform:rotate(-90deg);}
  .ring-bg{fill:none; stroke:var(--cream-deep); stroke-width:14;}
  .ring-fg{
    fill:none; stroke:var(--sage); stroke-width:14; stroke-linecap:round;
    transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1);
  }
  .ring-center{
    position:absolute; inset:0; display:flex; flex-direction:column;
    align-items:center; justify-content:center;
  }
  .ring-center .num{font-family:'Manrope'; font-weight:800; font-size:46px; line-height:1;}
  .ring-center .lbl{font-size:12px; color:var(--ink-soft); font-weight:600; margin-top:2px;}
  @media (prefers-reduced-motion: no-preference){
    .breathe{animation:breathe 4.2s ease-in-out infinite;}
  }
  @keyframes breathe{
    0%,100%{transform:scale(1);}
    50%{transform:scale(1.035);}
  }
  .shield-note{font-size:13px; color:var(--ink-soft); margin-top:8px; padding:0 10px;}

  .trust-row{display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 18px;}
  .trust-chip{
    display:flex; align-items:center; gap:6px; padding:7px 12px 7px 8px;
    background:var(--sage-soft); color:var(--sage); border-radius:20px;
    font-size:11.5px; font-weight:700;
  }
  .trust-chip svg{flex-shrink:0;}

  .promo-scroll{
    display:flex; gap:12px; overflow-x:auto; margin:0 -2px 22px; padding:2px 2px 4px;
    scroll-snap-type:x mandatory; scrollbar-width:none;
  }
  .promo-scroll::-webkit-scrollbar{display:none;}
  .promo-card{
    flex:0 0 auto; width:220px; scroll-snap-align:start; border-radius:var(--radius-md);
    padding:16px; color:#fff; position:relative; overflow:hidden; box-shadow:var(--shadow-sm);
  }
  .promo-card.p1{background:linear-gradient(135deg, var(--sage), #103733);}
  .promo-card.p2{background:linear-gradient(135deg, var(--sky), #1c5bb0);}
  .promo-card.p3{background:linear-gradient(135deg, var(--peach), #c94c2a);}
  .promo-eyebrow{font-size:10.5px; font-weight:700; opacity:0.85;}
  .promo-title{font-size:14.5px; font-weight:800; font-family:'Manrope'; margin-top:4px; line-height:1.3;}
  .promo-cta{display:inline-flex; align-items:center; gap:4px; font-size:11.5px; font-weight:700; margin-top:10px; opacity:0.95;}

  .quickstats{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:16px;}
  .qstat{
    background:var(--card); border-radius:var(--radius-sm); padding:14px 8px;
    text-align:center; box-shadow:var(--shadow-sm);
  }
  .qstat .qicon{width:30px; height:30px; margin:0 auto 6px; border-radius:50%; display:flex; align-items:center; justify-content:center;}
  .qstat .qval{font-family:'Manrope'; font-weight:800; font-size:18px;}
  .qstat .qlbl{font-size:10.5px; color:var(--ink-soft); font-weight:600; margin-top:2px;}

  .teaser-row{display:flex; flex-direction:column; gap:12px; margin-top:18px;}
  .teaser{
    display:flex; align-items:center; gap:14px; padding:16px;
    border-radius:var(--radius-md); cursor:pointer; border:none; width:100%;
    text-align:left; box-shadow:var(--shadow-sm); transition:transform .15s ease;
  }
  .teaser:active{transform:scale(0.98);}
  .teaser-icon{width:44px; height:44px; border-radius:14px; flex-shrink:0; display:flex; align-items:center; justify-content:center;}
  .teaser-title{font-weight:700; font-size:14.5px;}
  .teaser-sub{font-size:12.5px; color:var(--ink-soft); margin-top:2px; line-height:1.35;}
  .teaser-arrow{margin-left:auto; color:var(--ink-faint); flex-shrink:0;}

  /* ---------- track screen ---------- */
  .field-card{margin-bottom:16px;}
  .field-head{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
  .field-icon{width:38px; height:38px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
  .field-title{font-size:15.5px; font-weight:700;}
  .field-sub{font-size:12px; color:var(--ink-soft);}

  .row-line{display:flex; align-items:center; justify-content:space-between; padding:11px 0; border-top:1px solid var(--cream-deep);}
  .row-line:first-of-type{border-top:none;}
  .row-line-label{font-size:13.5px; font-weight:600;}
  .stepper{display:flex; align-items:center; gap:12px;}
  .step-btn{
    width:30px; height:30px; border-radius:50%; border:none; cursor:pointer;
    background:var(--cream-deep); color:var(--ink); font-size:17px; font-weight:700;
    display:flex; align-items:center; justify-content:center; transition:transform .12s ease;
  }
  .step-btn:active{transform:scale(0.88);}
  .step-val{font-family:'Manrope'; font-weight:800; font-size:16px; min-width:20px; text-align:center;}

  .chip-row{display:flex; gap:8px;}
  .chip{
    padding:7px 14px; border-radius:20px; border:1.5px solid var(--cream-deep);
    background:transparent; font-size:12.5px; font-weight:700; color:var(--ink-soft);
    cursor:pointer; transition:all .15s ease;
  }
  .chip.on{background:var(--sky); border-color:var(--sky); color:#fff;}

  .slider-wrap{padding-top:4px;}
  .face-row{display:flex; align-items:center; gap:14px;}
  .face-box{width:52px; height:52px; flex-shrink:0;}
  input[type=range]{
    -webkit-appearance:none; width:100%; height:8px; border-radius:6px;
    background:var(--cream-deep); outline:none;
  }
  input[type=range]::-webkit-slider-thumb{
    -webkit-appearance:none; width:24px; height:24px; border-radius:50%;
    background:var(--peach); border:4px solid var(--card); box-shadow:var(--shadow-sm); cursor:pointer;
  }
  input[type=range]::-moz-range-thumb{
    width:24px; height:24px; border-radius:50%; background:var(--peach);
    border:4px solid var(--card); box-shadow:var(--shadow-sm); cursor:pointer;
  }
  .slider-scale{display:flex; justify-content:space-between; font-size:10.5px; color:var(--ink-faint); margin-top:6px; font-weight:600;}

  .bristol-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:6px;}
  .bristol-btn{
    background:var(--cream-deep); border:2px solid transparent; border-radius:14px;
    padding:10px 6px 8px; cursor:pointer; text-align:center; transition:all .15s ease;
  }
  .bristol-btn.on{background:var(--sage-soft); border-color:var(--sage);}
  .bristol-btn svg{width:26px; height:26px;}
  .bristol-num{font-family:'Manrope'; font-weight:800; font-size:12px; margin-top:3px;}
  .bristol-desc{font-size:9px; color:var(--ink-soft); line-height:1.15; margin-top:1px; font-weight:600;}

  .save-btn{
    width:100%; padding:16px; border:none; border-radius:18px;
    background:var(--sage); color:#fff; font-family:'Manrope'; font-weight:700; font-size:15px;
    cursor:pointer; margin-top:6px; transition:transform .15s ease;
  }
  .save-btn:active{transform:scale(0.98);}

  .toast{
    position:absolute; bottom:100px; left:50%; transform:translateX(-50%) translateY(20px);
    background:var(--ink); color:var(--cream); padding:12px 22px; border-radius:16px;
    font-size:13px; font-weight:600; opacity:0; pointer-events:none; transition:all .3s ease;
    z-index:60; white-space:nowrap;
  }
  .toast.show{opacity:1; transform:translateX(-50%) translateY(0);}

  /* ---------- insights ---------- */
  .insight-card{
    background:linear-gradient(155deg, var(--lavender-soft), var(--card) 70%);
    border-radius:var(--radius-lg); padding:20px; box-shadow:var(--shadow);
  }
  .insight-top{display:flex; gap:12px; align-items:flex-start;}
  .insight-icon{
    width:40px; height:40px; border-radius:12px; background:var(--lavender);
    color:#fff; display:flex; align-items:center; justify-content:center; flex-shrink:0;
  }
  .insight-text{font-size:14px; line-height:1.5; font-weight:500;}

  .chart-card{margin-top:16px;}
  .chart-legend{display:flex; gap:16px; margin-bottom:10px;}
  .legend-item{display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:600; color:var(--ink-soft);}
  .legend-dot{width:9px; height:9px; border-radius:50%;}
  .chart-svg{width:100%; height:150px; overflow:visible;}
  .chart-line{fill:none; stroke-width:2.75; stroke-linecap:round; stroke-linejoin:round;}
  .chart-dot{transition:opacity .3s ease;}

  .env-card{margin-top:16px; display:flex; align-items:center; gap:16px;}
  .gauge-wrap{position:relative; width:74px; height:44px; flex-shrink:0;}
  .env-details{flex:1;}
  .env-row{display:flex; justify-content:space-between; font-size:13px; font-weight:600; margin-bottom:4px;}
  .env-note{font-size:11.5px; color:var(--ink-soft); margin-top:6px; line-height:1.4;}

  /* ---------- timeline ---------- */
  .day-hero{text-align:center; padding:8px 0 6px;}
  .day-hero .num{font-family:'Manrope'; font-weight:800; font-size:52px; line-height:1;}
  .day-hero .lbl{font-size:13px; color:var(--ink-soft); font-weight:600;}

  .tl{position:relative; margin-top:22px; padding-left:6px;}
  .tl-item{display:flex; gap:16px; position:relative; padding-bottom:34px;}
  .tl-item:last-child{padding-bottom:4px;}
  .tl-line{
    position:absolute; left:22px; top:46px; bottom:-4px; width:3px;
    background:var(--cream-deep); border-radius:2px; overflow:hidden;
  }
  .tl-item:last-child .tl-line{display:none;}
  .tl-line-fill{width:100%; background:var(--sage); height:0%; transition:height 1.1s cubic-bezier(.4,0,.2,1); border-radius:2px;}
  .tl-icon{
    width:44px; height:44px; border-radius:50%; flex-shrink:0; display:flex; align-items:center; justify-content:center;
    box-shadow:var(--shadow-sm); position:relative; z-index:2; color:#fff;
  }
  .tl-icon.pending{background:var(--cream-deep); color:var(--ink-faint); box-shadow:none;}
  .tl-body{flex:1; padding-top:5px;}
  .tl-stage{font-size:11px; font-weight:700; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.04em;}
  .tl-title{font-size:15px; font-weight:700; margin-top:2px;}
  .tl-desc{font-size:12.5px; color:var(--ink-soft); margin-top:4px; line-height:1.45;}
  .tl-current-badge{
    display:inline-block; margin-top:8px; font-size:10.5px; font-weight:700;
    background:var(--sage); color:#fff; padding:3px 10px; border-radius:10px;
  }

  /* ---------- alerts / notification center ---------- */
  .template-card{
    display:flex; align-items:center; gap:14px; padding:16px;
    border-radius:var(--radius-md); box-shadow:var(--shadow-sm); margin-bottom:12px;
    border-left:5px solid var(--tone,var(--sage));
  }
  .template-icon{
    width:42px; height:42px; border-radius:13px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center; color:#fff; background:var(--tone,var(--sage));
  }
  .template-title{font-size:14px; font-weight:700;}
  .template-sub{font-size:12px; color:var(--ink-soft); margin-top:2px; line-height:1.35;}
  .send-btn{
    flex-shrink:0; border:none; background:var(--cream-deep); color:var(--ink);
    font-size:11.5px; font-weight:700; padding:9px 13px; border-radius:14px; cursor:pointer;
  }
  .send-btn:active{transform:scale(0.94);}

  .auto-row{
    display:flex; align-items:center; justify-content:space-between;
    background:var(--card); border-radius:var(--radius-md); padding:16px; box-shadow:var(--shadow-sm); margin:16px 0 20px;
  }
  .auto-label{font-size:13.5px; font-weight:700;}
  .auto-sub{font-size:11.5px; color:var(--ink-soft); margin-top:2px;}
  .switch{width:46px; height:27px; border-radius:20px; background:var(--cream-deep); position:relative; cursor:pointer; border:none; flex-shrink:0;}
  .switch::after{content:''; position:absolute; width:21px; height:21px; border-radius:50%; background:#fff; top:3px; left:3px; box-shadow:0 2px 4px rgba(0,0,0,0.2); transition:left .2s ease;}
  .switch.on{background:var(--sage);}
  .switch.on::after{left:22px;}

  .log-item{display:flex; align-items:center; gap:12px; padding:11px 0; border-top:1px solid var(--cream-deep);}
  .log-item:first-child{border-top:none;}
  .log-dot{width:8px; height:8px; border-radius:50%; flex-shrink:0; background:var(--tone,var(--sage));}
  .log-text{font-size:12.5px; font-weight:600; flex:1;}
  .log-time{font-size:10.5px; color:var(--ink-faint); flex-shrink:0;}
  .empty-log{font-size:12.5px; color:var(--ink-faint); text-align:center; padding:18px 0;}

  /* ---------- push banner ---------- */
  .push-banner{
    position:absolute; top:14px; left:14px; right:14px; z-index:80;
    background:var(--card); border-radius:20px; padding:14px 16px; box-shadow:0 16px 32px -10px rgba(0,0,0,0.35);
    display:flex; gap:12px; align-items:flex-start;
    transform:translateY(-140%); transition:transform .45s cubic-bezier(.34,1.4,.64,1);
    border:1px solid rgba(120,110,95,0.1);
  }
  .push-banner.show{transform:translateY(0);}
  .push-icon{width:38px; height:38px; border-radius:11px; flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff; background:var(--tone,var(--sage));}
  .push-app{font-size:10px; font-weight:700; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.04em; display:flex; justify-content:space-between;}
  .push-title{font-size:13.5px; font-weight:700; margin-top:2px;}
  .push-body{font-size:12px; color:var(--ink-soft); margin-top:2px; line-height:1.35;}
  .push-close{background:none; border:none; color:var(--ink-faint); cursor:pointer; padding:2px; flex-shrink:0;}

  /* ---------- bottom nav ---------- */
  .navbar{
    position:absolute; bottom:0; left:0; right:0;
    background:var(--card); display:flex; justify-content:space-around;
    padding:12px 6px calc(14px + env(safe-area-inset-bottom));
    box-shadow:0 -8px 20px -14px rgba(0,0,0,0.25); z-index:40;
  }
  .navbtn{
    background:none; border:none; display:flex; flex-direction:column; align-items:center; gap:3px;
    color:var(--ink-faint); cursor:pointer; padding:4px 10px; border-radius:14px; transition:all .18s ease;
  }
  .navbtn.active{color:var(--sage); background:var(--sage-soft);}
  .navbtn span{font-size:10px; font-weight:700;}

  /* ---------- report overlay ---------- */
  .report-overlay{
    position:absolute; inset:0; background:var(--cream); z-index:100;
    display:none; flex-direction:column; padding:26px 22px; overflow-y:auto;
  }
  .report-overlay.open{display:flex;}
  .report-head{display:flex; justify-content:space-between; align-items:center; margin-bottom:20px;}
  .report-close{background:var(--cream-deep); border:none; width:36px; height:36px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--ink);}
  .report-block{background:var(--card); border-radius:18px; padding:16px; margin-bottom:12px; box-shadow:var(--shadow-sm);}
  .report-block h3{font-size:13px; margin-bottom:8px;}
  .report-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
  .report-stat .n{font-family:'Manrope'; font-weight:800; font-size:20px;}
  .report-stat .l{font-size:11px; color:var(--ink-soft);}
  .print-btn{
    margin-top:8px; width:100%; padding:15px; border:none; border-radius:18px;
    background:var(--sage); color:#fff; font-family:'Manrope'; font-weight:700; cursor:pointer;
  }

  @media print{
    body.print-mode > *:not(.shell){display:none;}
    body.print-mode{background:#fff; padding:0; align-items:stretch;}
    body.print-mode .shell{box-shadow:none; border:none; border-radius:0; min-height:auto; max-width:100%;}
    body.print-mode .shell > *:not(.report-overlay){display:none;}
    body.print-mode .report-overlay{position:static; display:flex;}
    body.print-mode .report-close, body.print-mode .print-btn{display:none;}
  }

  ::selection{background:var(--sage-soft);}

/* ---------- standalone printable report page ---------- */
.report-page-wrap{
  min-height:100dvh; display:flex; justify-content:center;
  background:var(--cream-deep); padding:32px 16px;
}
.report-page{
  width:100%; max-width:460px; background:var(--cream);
  border-radius:var(--radius-lg); padding:28px 24px; box-shadow:var(--shadow);
}
@media print{
  .report-page-wrap{background:#fff; padding:0; min-height:auto;}
  .report-page{box-shadow:none; border-radius:0; max-width:100%; padding:0;}
  .print-btn{display:none;}
}

/* ---------- auth pages ---------- */
.auth-wrap{
  min-height:100dvh; display:flex; align-items:center; justify-content:center;
  background:var(--cream-deep); padding:24px;
}
.auth-card{
  width:100%; max-width:380px; background:var(--card); border-radius:var(--radius-lg);
  padding:32px 26px; box-shadow:var(--shadow);
}
.auth-title{font-size:22px; margin-bottom:4px;}
.auth-sub{font-size:13px; color:var(--ink-soft); margin-bottom:24px;}
.auth-field{margin-bottom:16px;}
.auth-field label{display:block; font-size:12.5px; font-weight:700; margin-bottom:6px; color:var(--ink-soft);}
.auth-field input{
  width:100%; padding:13px 14px; border-radius:12px; border:1.5px solid var(--cream-deep);
  background:var(--cream); font-family:'Inter'; font-size:14px; color:var(--ink);
}
.auth-field input:focus{outline:none; border-color:var(--sage);}
.auth-btn{
  width:100%; padding:15px; border:none; border-radius:16px; background:var(--sage); color:#fff;
  font-family:'Manrope'; font-weight:700; font-size:15px; cursor:pointer; margin-top:6px;
}
.auth-error{
  background:var(--rose-soft); color:var(--rose); font-size:12.5px; font-weight:600;
  padding:10px 12px; border-radius:10px; margin-bottom:16px;
}
.auth-switch{text-align:center; font-size:13px; color:var(--ink-soft); margin-top:18px;}
.auth-switch a{color:var(--sage); font-weight:700; text-decoration:none;}

/* ---------- push enable card + logout ---------- */
.push-card{
  display:flex; align-items:center; gap:14px; padding:16px; border-radius:var(--radius-md);
  background:var(--sage-soft); box-shadow:var(--shadow-sm); margin-bottom:18px;
}
.push-card-icon{
  width:40px; height:40px; border-radius:12px; background:var(--sage); color:#fff;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.push-card-title{font-size:13.5px; font-weight:700;}
.push-card-sub{font-size:11.5px; color:var(--ink-soft); margin-top:2px;}
.push-card-btn{
  flex-shrink:0; border:none; background:var(--sage); color:#fff; font-size:11.5px; font-weight:700;
  padding:9px 14px; border-radius:14px; cursor:pointer;
}
.push-card.on{background:var(--card); border:1.5px solid var(--sage-soft);}
.push-card.on .push-card-btn{background:var(--cream-deep); color:var(--ink-soft);}

.logout-link{
  font-size:11.5px; font-weight:700; color:var(--ink-faint); text-decoration:none;
  display:block; margin-top:2px;
}
