

/* ==== LIFE VAULT Reminder Calendar ======================================= */
#calMount.cal-root{ font-family:'Nunito',system-ui,sans-serif; }
#calMount .cal-cta{
  display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap;
  margin-top:20px; padding:18px 20px;
  background:#fff !important; border:1px solid #E8E4DC !important; border-radius:20px;
}
#calMount .cal-ctab{ flex:1; min-width:240px; }
#calMount .cal-ctah{
  margin:0 0 4px; font-family:'Playfair Display',Georgia,serif; font-size:1.12rem; font-weight:700;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#calMount .cal-ctas{ margin:0 0 12px; font-size:.88rem;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#calMount .cal-prev{ display:flex; flex-direction:column; gap:4px;
  background:#F4F6F1; border:1px solid #E2E8DD; border-radius:14px; padding:12px 14px; }
#calMount .cal-prevm{
  font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:#4E5A49 !important; -webkit-text-fill-color:#4E5A49 !important;
}
#calMount .cal-prow{ display:flex; gap:10px; align-items:baseline; font-size:.84rem;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calMount .cal-prow span:first-child{ min-width:56px;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#calMount .cal-prow span:nth-child(2){ flex:1; }
#calMount .cal-prevnone{ margin:0; font-size:.82rem;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#calMount .cal-panel{ padding-top:4px; }
#calMount .cal-back, #calMount .cal-btn, #calMount .cal-mini, #calMount .cal-arw,
#calMount .cal-mode, #calMount .cal-lensb{
  cursor:pointer; font:inherit; font-weight:800; border-radius:999px;
  background:#fff !important; border:1px solid #E4DFD2 !important;
  color:#3F4753 !important; -webkit-text-fill-color:#3F4753 !important;
}
#calMount .cal-back{ font-size:.84rem; padding:10px 18px; min-height:44px; margin-bottom:14px; }
#calMount .cal-btn{ font-size:.86rem; padding:12px 20px; min-height:48px; }
#calMount .cal-mini{ font-size:.76rem; padding:9px 14px; min-height:42px; }
#calMount .cal-arw{ width:42px; min-height:42px; font-size:1.05rem; }
#calMount .cal-mode, #calMount .cal-lensb{ font-size:.8rem; padding:10px 15px; min-height:44px; }
#calMount .cal-mode.on, #calMount .cal-lensb.on, #calMount .cal-btn.is-primary{
  background:#4E6640 !important; border-color:#4E6640 !important;
  color:#fff !important; -webkit-text-fill-color:#fff !important;
}
#calMount button:focus-visible, #calSheet button:focus-visible, #calSheet .cal-i:focus-visible{
  outline:3px solid #CF9E3F; outline-offset:2px;
}
#calMount .cal-h{
  margin:0 0 4px; font-family:'Playfair Display',Georgia,serif; font-size:1.5rem; font-weight:700;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#calMount .cal-sub{ margin:0 0 16px; font-size:.92rem;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#calMount .cal-bar{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
#calMount .cal-nav{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#calMount .cal-range{ font-weight:800; font-size:.9rem; min-width:130px; text-align:center;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calMount .cal-modes, #calMount .cal-lens{ display:flex; gap:8px; flex-wrap:wrap; }
#calMount .cal-lens{ margin-bottom:12px; }
#calMount .cal-insight{
  margin:0 0 14px; padding:12px 14px; background:#F4F6F1; border:1px solid #E2E8DD; border-radius:14px;
  font-size:.86rem; line-height:1.55;
  color:#3F4753 !important; -webkit-text-fill-color:#3F4753 !important;
}
/* month grid */
#calMount .cal-grid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
#calMount .cal-dow{
  text-align:center; font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding-bottom:4px;
  color:#565E6B !important; -webkit-text-fill-color:#565E6B !important;
}
#calMount .cal-cell{
  min-height:92px; background:#fff; border:1px solid #EAE6DE; border-radius:12px; padding:7px 6px;
  display:flex; flex-direction:column; gap:4px;
}
#calMount .cal-cell.is-empty{ background:transparent; border:0; min-height:0; }
#calMount .cal-cell.is-today{ background:#F6FAF4; border-color:#A9C99B; border-width:2px; }
#calMount .cal-num{ font-size:.78rem; font-weight:800;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calMount .cal-pip{
  display:flex; flex-direction:column; gap:1px; text-align:left; cursor:pointer; font:inherit;
  border-radius:8px; padding:4px 6px; min-height:34px; border:1px solid transparent;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#calMount .cal-pip.is-expiry { background:#FBECEF; border-color:#EDCFD6; }
#calMount .cal-pip.is-renewal{ background:#EAF1F7; border-color:#C7DAEA; }
#calMount .cal-pip.is-payment{ background:#FBF3E4; border-color:#E8D8B8; }
#calMount .cal-pip.is-review { background:#F1EEF9; border-color:#D5CBEC; }
#calMount .cal-pip-t{ font-size:.68rem; font-weight:700; line-height:1.25;
  overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
#calMount .cal-pip-c{ font-size:.66rem; font-weight:800; }
#calMount .cal-more{ font-size:.64rem; font-weight:700;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
/* list */
#calMount .cal-list{ display:grid; gap:8px; }
#calMount .cal-item{
  display:flex; gap:12px; align-items:flex-start; text-align:left; width:100%; cursor:pointer; font:inherit;
  background:#FBFAF8 !important; border:1px solid #EFEAE0 !important; border-radius:14px; padding:13px 15px;
}
#calMount .cal-i-d{ flex:none; min-width:58px; font-size:.8rem; font-weight:800;
  color:#4E6640 !important; -webkit-text-fill-color:#4E6640 !important; }
#calMount .cal-i-b{ flex:1; display:flex; flex-direction:column; gap:4px; }
#calMount .cal-i-t{ font-size:.92rem; font-weight:700;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calMount .cal-i-m{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
#calMount .cal-i-c{ font-size:.8rem; font-weight:800;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calMount .cal-i-bud{ font-size:.7rem; font-weight:800; border-radius:999px; padding:3px 9px;
  background:#EDF3E9; color:#3C5230 !important; -webkit-text-fill-color:#3C5230 !important; }
.cal-tag{ border-radius:999px; padding:3px 9px; font-size:.68rem; font-weight:800;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
.cal-tag.is-expiry { background:#FBECEF; }
.cal-tag.is-renewal{ background:#EAF1F7; }
.cal-tag.is-payment{ background:#FBF3E4; }
.cal-tag.is-review { background:#F1EEF9; }
/* year */
#calMount .cal-year{ display:grid; gap:6px; }
#calMount .cal-yrow{
  display:grid; grid-template-columns:46px 1fr 76px 74px; gap:10px; align-items:center;
  cursor:pointer; font:inherit; text-align:left;
  background:#fff !important; border:1px solid #EAE6DE !important; border-radius:12px; padding:10px 12px; min-height:46px;
}
#calMount .cal-ym{ font-size:.78rem; font-weight:800;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calMount .cal-ybar{ height:10px; background:#EFEFEA; border-radius:999px; overflow:hidden; }
#calMount .cal-yfill{ display:block; height:100%; background:#8AA57C; }
#calMount .cal-yc{ font-size:.82rem; font-weight:800; text-align:right;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calMount .cal-yn{ font-size:.72rem; text-align:right;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
/* totals */
#calMount .cal-totals{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:14px; }
#calMount .cal-tot{
  display:flex; flex-direction:column; gap:2px;
  background:#fff; border:1px solid #E8E4DC; border-radius:16px; padding:14px 16px;
}
#calMount .cal-tot.is-next{ background:#FBFAF8; }
#calMount .cal-tl{ font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:#4E5A49 !important; -webkit-text-fill-color:#4E5A49 !important; }
#calMount .cal-tv{ font-family:'Playfair Display',Georgia,serif; font-size:1.5rem; font-weight:700;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calMount .cal-ts{ font-size:.76rem;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#calMount .cal-tbreak{ display:flex; flex-direction:column; gap:3px; margin-top:8px; padding-top:8px; border-top:1px solid #EFEAE0; }
#calMount .cal-tbreak span{ display:flex; justify-content:space-between; gap:10px; font-size:.8rem;
  color:#4A5462 !important; -webkit-text-fill-color:#4A5462 !important; }
#calMount .cal-tbreak strong{ color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calMount .cal-foot{ margin-top:16px; }
#calMount .cal-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; }
#calMount .cal-note{ margin:14px 0 0; font-size:.76rem; line-height:1.55;
  color:#6B7280 !important; -webkit-text-fill-color:#6B7280 !important; }
/* sheet */
#calSheet.cal-bg{
  position:fixed; inset:0; z-index:10015; background:rgba(30,36,30,.42);
  display:flex; align-items:center; justify-content:center; padding:20px;
  font-family:'Nunito',system-ui,sans-serif;
}
#calSheet .cal-box{
  position:relative; width:min(540px,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);
}
#calSheet .cal-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;
}
#calSheet .cal-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;
}
#calSheet .cal-bl{ margin:0 0 16px; font-size:.8rem; font-weight:800;
  color:#4E6640 !important; -webkit-text-fill-color:#4E6640 !important; }
#calSheet .cal-drow{ display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid #F4F1EA; }
#calSheet .cal-drow span{ font-size:.8rem; color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#calSheet .cal-drow strong{ font-size:.9rem; text-align:right;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calSheet .cal-spread{
  display:flex; flex-direction:column; gap:4px; align-items:flex-start;
  margin-top:14px; padding:13px 15px; background:#F4F6F1; border:1px solid #E2E8DD; border-radius:14px;
}
#calSheet .cal-sp-t{ font-size:.88rem; font-weight:800;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important; }
#calSheet .cal-sp-s{ font-size:.82rem; margin-bottom:6px;
  color:#5A6472 !important; -webkit-text-fill-color:#5A6472 !important; }
#calSheet .cal-dacts, #calSheet .cal-foot2{ display:flex; gap:10px; flex-wrap:wrap;
  margin-top:16px; padding-top:14px; border-top:1px solid #EFEAE0; }
#calSheet .cal-foot2{ justify-content:flex-end; }
#calSheet .cal-btn, #calSheet .cal-mini{
  cursor:pointer; font:inherit; font-size:.84rem; font-weight:800; border-radius:999px;
  padding:11px 18px; min-height:46px;
  background:#fff !important; border:1px solid #DDD7C9 !important;
  color:#3D4A3A !important; -webkit-text-fill-color:#3D4A3A !important;
}
#calSheet .cal-btn.is-primary{ background:#4E6640 !important; border-color:#4E6640 !important;
  color:#fff !important; -webkit-text-fill-color:#fff !important; }
#calSheet .cal-f{ margin-bottom:14px; }
#calSheet .cal-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;
}
#calSheet .cal-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;
}
#calSheet .cal-toggle{
  display:flex; align-items:center; gap:10px; cursor:pointer; min-height:44px;
  font-size:.9rem; font-weight:700;
  color:#243447 !important; -webkit-text-fill-color:#243447 !important;
}
#calSheet .cal-toggle input{ width:22px; height:22px; accent-color:#4E6640; cursor:pointer; }
.cal-toast{
  position:fixed; left:50%; bottom:26px; transform:translateX(-50%) translateY(12px); z-index:10016;
  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;
}
.cal-toast.on{ opacity:1; transform:translateX(-50%) translateY(0); }
@media (max-width:900px){
  #calMount .cal-totals{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:640px){
  #calMount .cal-grid{ gap:4px; }
  #calMount .cal-cell{ min-height:74px; padding:5px 4px; }
  #calMount .cal-pip-t{ -webkit-line-clamp:1; }
  #calMount .cal-yrow{ grid-template-columns:40px 1fr 66px; }
  #calMount .cal-yn{ display:none; }
  #calSheet.cal-bg{ padding:0; align-items:flex-end; }
  #calSheet .cal-box{ width:100%; max-height:93vh; border-radius:24px 24px 0 0; }
  #calMount .cal-cta .cal-btn{ width:100%; }
}

