

/* ==== LIFE VAULT expiry & reminders ====================================== */
#expMount.exp-root{ font-family:'Nunito',system-ui,sans-serif; }
#expMount .exp-sec{
  margin-top:22px; background:#fff !important; border:1px solid #E8E4DC !important;
  border-radius:20px; padding:18px 20px;
}
#expMount .exp-sechrow{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
#expMount .exp-sech{
  margin:0; font-family:'Playfair Display',Georgia,serif; font-size:1.1rem; font-weight:700;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#expMount .exp-filters{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }
#expMount .exp-filter{
  cursor:pointer; font:inherit; font-size:.78rem; font-weight:700; border-radius:999px;
  padding:9px 14px; min-height:42px;
  background:#fff !important; border:1px solid #E4DFD2 !important;
  color:#3F4753 !important; -webkit-text-fill-color:#3F4753 !important;
}
#expMount .exp-filter.on{
  background:#4E6640 !important; border-color:#4E6640 !important;
  color:#fff !important; -webkit-text-fill-color:#fff !important;
}
#expMount .exp-list{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
#expMount .exp-row{
  display:flex; align-items:flex-start; gap:12px; flex-wrap:wrap;
  background:#FBFAF8; border:1px solid #EFEAE0; border-radius:14px; padding:13px 15px;
}
#expMount .exp-rb{ flex:1; display:flex; flex-direction:column; gap:2px; min-width:200px; }
#expMount .exp-rn{ font-size:.92rem; font-weight:700;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#expMount .exp-rw{ font-size:.8rem;
  color:#4A5462 !important; -webkit-text-fill-color:#4A5462 !important; }
#expMount .exp-rmeta{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:5px; }
#expMount .exp-racts{ display:flex; gap:8px; flex-wrap:wrap; }
#expMount .exp-none{
  margin:0; padding:16px; background:#FBFAF8; border:1px dashed #E4DFD2; border-radius:12px;
  font-size:.86rem; color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important;
}
/* status: the WORD carries the meaning, colour only reinforces it */
.exp-badge{
  border-radius:999px; padding:4px 10px; font-size:.7rem; font-weight:800; white-space:nowrap;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
.exp-badge.is-ok{ background:#EDF3E9; }
.exp-badge.is-upcoming{ background:#EAF1F7; }
.exp-badge.is-renew{ background:#FBF3E4; }
.exp-badge.is-soon{ background:#FBECEF; }
.exp-badge.is-expired{ background:#F3E4E7; }
.exp-badge.is-none{ background:#F2F1ED; color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
.exp-rem{ font-size:.72rem; font-weight:700;
  color:#4E6640 !important; -webkit-text-fill-color:#4E6640 !important; }
.exp-inline{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:8px; }
.exp-inw{ font-size:.76rem; color:#4A5462 !important; -webkit-text-fill-color:#4A5462 !important; }
.exp-mini{
  cursor:pointer; font:inherit; font-size:.74rem; font-weight:800; border-radius:999px;
  padding:9px 13px; min-height:40px;
  background:#fff !important; border:1px solid #E4DFD2 !important;
  color:#3F4753 !important; -webkit-text-fill-color:#3F4753 !important;
}
.exp-mini:hover{ background:#F4F6F1 !important; border-color:#CFE0C8 !important; }
.exp-mini:focus-visible, .exp-filter:focus-visible, .exp-btn:focus-visible,
.exp-chip:focus-visible, .exp-i:focus-visible, .exp-rule:focus-within{
  outline:3px solid #CF9E3F; outline-offset:2px;
}
/* the sheet */
#expSheet.exp-bg{
  position:fixed; inset:0; z-index:10013; background:rgba(30,36,30,.42);
  display:flex; align-items:center; justify-content:center; padding:20px;
  font-family:'Nunito',system-ui,sans-serif;
}
#expSheet .exp-box{
  position:relative; width:min(560px,100%); max-height:88vh; overflow:auto;
  background:#FFFDF9; border:1px solid #E7E2D6; border-radius:24px; padding:26px 24px 20px;
  box-shadow:0 26px 64px rgba(30,36,30,.24);
}
#expSheet .exp-x{
  position:absolute; top:14px; right:14px; width:38px; height:38px; border-radius:50%;
  border:1px solid #E7E2D6; background:#fff; cursor:pointer;
  color:#3D4A3A !important; -webkit-text-fill-color:#3D4A3A !important;
}
#expSheet .exp-bt{
  margin:0 40px 4px 0; font-family:'Playfair Display',Georgia,serif; font-size:1.26rem; font-weight:700;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#expSheet .exp-bl{ margin:0 0 16px; font-size:.86rem; font-weight:700;
  color:#4E6640 !important; -webkit-text-fill-color:#4E6640 !important; }
#expSheet .exp-f{ margin-bottom:16px; }
#expSheet .exp-l{
  display:block; margin-bottom:6px; font-size:.72rem; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase;
  color:#4E5A49 !important; -webkit-text-fill-color:#4E5A49 !important;
}
#expSheet .exp-i{
  width:100%; box-sizing:border-box; min-height:46px; border:1px solid #E4DFD2; border-radius:12px;
  padding:11px 13px; font:inherit; font-size:.9rem; background:#fff;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#expSheet .exp-i.is-n{ width:90px; }
#expSheet .exp-hint, #expSheet .exp-nudge, #expSheet .exp-keep{
  margin:8px 0 0; font-size:.78rem; line-height:1.55;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important;
}
#expSheet .exp-nudge{
  padding:10px 12px; background:#F4F6F1; border:1px solid #E2E8DD; border-radius:12px;
  color:#4A5442 !important; -webkit-text-fill-color:#4A5442 !important;
}
#expSheet .exp-chips{ display:flex; gap:8px; flex-wrap:wrap; }
#expSheet .exp-chip{
  cursor:pointer; font:inherit; font-size:.8rem; font-weight:700; border-radius:999px;
  padding:10px 14px; min-height:44px; background:#fff; border:1px solid #E4DFD2;
  color:#3F4753 !important; -webkit-text-fill-color:#3F4753 !important;
}
#expSheet .exp-chip.on{ background:#4E6640; border-color:#4E6640;
  color:#fff !important; -webkit-text-fill-color:#fff !important; }
#expSheet .exp-chip.is-off{ opacity:.72; }
#expSheet .exp-toggle{
  display:flex; align-items:center; gap:10px; cursor:pointer; min-height:44px;
  font-size:.92rem; font-weight:700;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#expSheet .exp-toggle input{ width:22px; height:22px; accent-color:#4E6640; cursor:pointer; }
#expSheet .exp-rules{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
#expSheet .exp-rule{
  display:flex; align-items:center; gap:10px; cursor:pointer; min-height:46px;
  background:#fff; border:1px solid #E4DFD2; border-radius:12px; padding:10px 12px;
  font-size:.85rem; font-weight:600;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#expSheet .exp-rule.on{ background:#EDF3E9; border-color:#CFE0C8; }
#expSheet .exp-rule input{ width:20px; height:20px; accent-color:#4E6640; cursor:pointer; }
#expSheet .exp-custom{ display:flex; align-items:center; gap:10px; margin-top:10px; flex-wrap:wrap; }
#expSheet .exp-cw{ font-size:.85rem; color:#4A5462 !important; -webkit-text-fill-color:#4A5462 !important; }
#expSheet .exp-sched{
  margin-top:14px; padding:12px 14px; background:#F4F6F1; border:1px solid #E2E8DD; border-radius:14px;
  display:flex; flex-direction:column; gap:3px;
}
#expSheet .exp-sh{ font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  color:#4E5A49 !important; -webkit-text-fill-color:#4E5A49 !important; }
#expSheet .exp-srow{ font-size:.84rem; color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#expSheet .exp-foot{ display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap;
  margin-top:18px; padding-top:14px; border-top:1px solid #EFEAE0; }
#expSheet .exp-btn{
  cursor:pointer; font:inherit; font-size:.86rem; font-weight:800; border-radius:999px;
  padding:12px 22px; min-height:46px;
  background:#fff !important; border:1px solid #DDD7C9 !important;
  color:#3D4A3A !important; -webkit-text-fill-color:#3D4A3A !important;
}
#expSheet .exp-btn.is-primary{ background:#4E6640 !important; border-color:#4E6640 !important;
  color:#fff !important; -webkit-text-fill-color:#fff !important; }
.exp-toast{
  position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(12px); z-index:10014;
  background:#243447; color:#fff !important; -webkit-text-fill-color:#fff !important;
  padding:12px 20px; border-radius:999px; font-size:.85rem; font-weight:700;
  font-family:'Nunito',system-ui,sans-serif; opacity:0; pointer-events:none;
  transition:opacity .2s, transform .2s; max-width:90vw; text-align:center;
}
.exp-toast.on{ opacity:1; transform:translateX(-50%) translateY(0); }
@media (max-width:640px){
  #expSheet .exp-rules{ grid-template-columns:minmax(0,1fr); }
  #expSheet.exp-bg{ padding:0; align-items:flex-end; }
  #expSheet .exp-box{ width:100%; max-height:93vh; border-radius:24px 24px 0 0; }
  #expMount .exp-racts .exp-mini{ flex:1; }
}


#expMount .exp-sec.is-notice{ background:#FBF3E4 !important; border-color:#E8D8B8 !important; }
#expMount .exp-row.is-notice{ background:#fff; border-color:#EFE3CB; }
