/* Still Kicking Mobility - Reminders */
.reminders-page{
  --reminder-mint:#bcefd7;
  --reminder-mint-strong:#70dda9;
  --reminder-blue:#c9e8ff;
  --reminder-lilac:#e6d7f7;
  --reminder-coral:#ff927d;
  --reminder-yellow:#ffe29a;
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding-bottom:24px;
}
.reminders-page,.reminders-page *{box-sizing:border-box}
.reminders-page-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:20px;
  margin:0 0 18px;
}
.reminders-page-head h1{font-size:clamp(30px,4vw,44px);line-height:1.02}
.reminders-page-head p{max-width:680px;margin:7px 0 0;color:var(--ink-soft);font-size:15px;line-height:1.5}
.reminders-page .reminder-new-top{min-height:46px;box-shadow:0 5px 0 rgba(32,48,44,.13)}
body.sk-staff-screen .staff-main .reminders-page .reminder-new-top{min-height:46px}
.reminder-new-top span{font-size:19px;line-height:1}
.reminder-editor-placeholder .btn{min-height:44px}
.reminder-offline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px;
  padding:12px 15px;
  border:1px solid #d88c5d;
  border-radius:14px;
  background:#fff0e5;
  color:#73391f;
  line-height:1.45;
}
.reminder-offline[hidden]{display:none}
.reminder-offline .btn{flex:0 0 auto;border-color:#a9603f;color:#73391f}
.reminder-toolbar{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.reminder-tabs{
  display:inline-grid;
  grid-template-columns:repeat(3,minmax(92px,1fr));
  gap:4px;
  padding:4px;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--surface-2);
}
.reminder-tab{
  min-height:44px;
  padding:8px 15px;
  border:1px solid transparent;
  border-radius:11px;
  background:transparent;
  color:var(--ink-soft);
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.reminder-tab:hover{color:var(--ink);background:rgba(255,255,255,.65)}
.reminder-tab.is-active{
  border-color:var(--line);
  background:var(--surface);
  color:var(--ink);
  box-shadow:0 2px 7px rgba(32,48,44,.09);
}
.reminder-scope{width:min(320px,100%);margin:0}
.reminder-scope label{margin-bottom:5px}
.reminder-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,390px);
  gap:24px;
  align-items:start;
}
.reminder-content{min-width:0}
.reminder-group{margin-bottom:25px}
.reminder-group>h2{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  padding:0 2px;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:900;
  color:var(--ink);
}
.reminder-group>h2 span{
  display:inline-grid;
  min-width:23px;
  height:23px;
  place-items:center;
  padding:0 7px;
  border-radius:999px;
  background:var(--surface-2);
  color:var(--ink-soft);
  font-size:11px;
}
.reminder-group.due-group>h2{color:#9b3f2d}
.reminder-group.due-group>h2 span{background:#ffe5df;color:#8f3525}
.reminder-list{display:grid;gap:12px}
.reminder-load-more{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:14px;
  padding:12px 14px;
  border:1px dashed var(--line);
  border-radius:14px;
  color:var(--ink-soft);
  font-size:12.5px;
  font-weight:750;
}
.reminder-card{
  position:relative;
  display:grid;
  grid-template-columns:42px minmax(0,1fr);
  gap:13px;
  padding:17px 18px 16px 14px;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:19px;
  background:var(--surface);
  box-shadow:0 3px 0 rgba(32,48,44,.035);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.reminder-card:hover{
  transform:translateY(-2px);
  border-color:#cec1ae;
  box-shadow:0 9px 22px rgba(32,48,44,.08);
}
.reminder-card.is-due{
  border-color:#e99a86;
  background:linear-gradient(135deg,#fff 0%,#fff8f4 100%);
  box-shadow:inset 4px 0 0 var(--reminder-coral),0 7px 22px rgba(184,92,60,.09);
}
.reminder-card-accent{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid #a8d6c1;
  border-radius:13px;
  background:var(--reminder-mint);
  color:#183d32;
  font-size:18px;
  font-weight:900;
}
.reminder-card.is-due .reminder-card-accent{border-color:#f2b0a2;background:#ffd7ce;color:#8b3424}
.reminder-card-body{min-width:0}
.reminder-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.reminder-card-heading{min-width:0}
.reminder-card h3{
  margin:1px 0 0;
  overflow-wrap:anywhere;
  font-family:var(--font-body);
  font-size:17px;
  font-weight:900;
  letter-spacing:-.01em;
}
.reminder-person{margin-top:2px;color:var(--ink-soft);font-size:12.5px;font-weight:800}
.reminder-status{
  flex:0 0 auto;
  padding:5px 9px;
  border:1px solid #d3c5e4;
  border-radius:999px;
  background:var(--reminder-lilac);
  color:#51396e;
  font-size:10.5px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.reminder-status.is-due{border-color:#f2b0a2;background:#ffe4dd;color:#8b3424}
.reminder-when{margin-top:7px;color:var(--ink);font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}
.reminder-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:5px;color:var(--ink-soft);font-size:12.5px;line-height:1.4}
.reminder-meta-dot{color:#b8aa98}
.reminder-delivery{font-weight:800}
.reminder-delivery.good,.reminder-delivery.sage{color:var(--sage-deep)}
.reminder-delivery.warn{color:#a33e2b}
.reminder-delivery.honey{color:var(--honey-text)}
.reminder-note{margin:11px 0 0;padding-top:10px;border-top:1px dashed var(--line);color:var(--ink-soft);font-size:13.5px;line-height:1.48;white-space:pre-wrap;overflow-wrap:anywhere}
.reminder-processing{margin:10px 0 0;color:var(--honey-text);font-size:12.5px;font-weight:750}
.reminder-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:13px}
.reminder-actions .btn{min-height:44px}
.reminder-text-action{
  min-height:44px;
  padding:7px 9px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:var(--sage-deep);
  font:inherit;
  font-size:13px;
  font-weight:850;
  cursor:pointer;
}
.reminder-text-action:hover{background:var(--surface-2)}
.reminder-text-action.is-danger{margin-left:auto;color:#a44631}
.reminder-editor,.reminder-editor-placeholder{
  position:sticky;
  top:94px;
  margin:0;
  padding:21px;
  border-radius:22px;
  box-shadow:0 13px 32px rgba(32,48,44,.08);
}
.reminder-editor{border-color:#c8dfd1;background:linear-gradient(180deg,#fff 0%,#fbfefa 100%)}
.reminder-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.reminder-editor h2,.reminder-editor-placeholder h2{font-size:24px}
.reminder-editor-close{flex:0 0 auto;width:44px;height:44px;font-size:25px;line-height:1}
.reminder-editor .field{margin-bottom:15px}
.reminder-field-label{margin:0 0 6px;color:var(--ink-soft);font-size:13px;font-weight:700}
.reminder-editor .field label span,.reminder-visit-settings .field label span{font-weight:600;color:var(--ink-soft)}
.reminder-editor .input{min-height:46px}
.reminder-editor textarea.input{min-height:86px;resize:vertical;line-height:1.45}
.reminder-readonly-value{min-height:46px;display:flex;align-items:center;padding:10px 13px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2);font-weight:800}
.reminder-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.reminder-field-help{margin-top:6px;color:var(--ink-soft);font-size:11.5px;line-height:1.42}
.reminder-weekdays{margin:0 0 15px;padding:0;border:0}
.reminder-weekdays legend{margin-bottom:7px;color:var(--ink-soft);font-size:13px;font-weight:800}
.reminder-weekdays>div{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.reminder-weekdays label{margin:0;cursor:pointer}
.reminder-weekdays input{position:absolute;opacity:0;pointer-events:none}
.reminder-weekdays span{
  min-height:44px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--ink-soft);
  font-size:11px;
  font-weight:900;
}
.reminder-weekdays input:checked+span{border-color:var(--sage-deep);background:var(--reminder-mint);color:#244a3d}
.reminder-weekdays input:focus-visible+span{outline:3px solid var(--honey-deep);outline-offset:2px}
.reminder-series-note{margin:1px 0 14px;padding:10px 12px;border:1px solid #d9c8ed;border-radius:12px;background:#f6effe;color:#58436e;font-size:12.5px;line-height:1.4}
.reminder-form-error{display:none;margin:4px 0 13px;padding:10px 12px;border:1px solid #e4a18f;border-radius:11px;background:#fff1ed;color:#7f3324;font-size:13px;line-height:1.42}
.reminder-form-error.is-visible{display:block}
.reminder-form-actions{display:flex;gap:8px;margin-top:4px}
.reminder-form-actions .btn{min-height:46px}
.reminder-emergency-copy,.reminder-private-note{margin:12px 0 0;color:var(--ink-soft);font-size:11.5px;line-height:1.45}
.reminder-editor-placeholder{text-align:center;background:linear-gradient(160deg,#fff 0%,#f1fff8 100%)}
.reminder-editor-placeholder p{margin:9px auto 17px;max-width:270px;color:var(--ink-soft);line-height:1.5}
.reminder-editor-placeholder .reminder-private-note{margin:14px auto 0;font-size:11.5px}
.reminder-editor-icon,.reminder-empty-art{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  margin:0 auto 14px;
  border:1px solid #9ad5ba;
  border-radius:18px;
  background:var(--reminder-mint);
  color:#23493c;
  font-size:25px;
  box-shadow:4px 4px 0 rgba(79,122,96,.12);
}
.reminder-empty,.reminder-load-error{
  min-height:290px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:30px;
  text-align:center;
  border-style:dashed;
  background:rgba(255,255,255,.7);
}
.reminder-empty h2,.reminder-load-error h2{font-size:24px}
.reminder-empty p,.reminder-load-error p{max-width:390px;margin:8px 0 17px;color:var(--ink-soft);line-height:1.5}
.reminder-load-error .reminder-empty-art{border-color:#e5aa99;background:#ffe4dc;color:#8d3a28}
.reminder-loading{min-height:250px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--ink-soft);font-weight:750}
.visit-reminder-settings{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(290px,420px);
  gap:24px;
  align-items:center;
  margin:25px 0 0;
  padding:20px 22px;
  border-color:#d8cae9;
  background:linear-gradient(135deg,#fff 0%,#faf5ff 100%);
}
.visit-reminder-settings h2{margin-top:2px;font-size:21px}
.visit-reminder-settings p{margin:6px 0 0;color:var(--ink-soft);font-size:13.5px;line-height:1.46}
.visit-reminder-settings form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end}
.visit-reminder-settings .field{margin:0}
.visit-reminder-settings .btn{min-height:44px}
.reminder-switch{min-height:44px;display:flex;align-items:center;gap:9px;margin:0;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);font-size:13px;cursor:pointer}
.reminder-switch input{width:19px;height:19px;accent-color:var(--sage-deep)}
.reminder-inline-error{color:#873725;font-size:13px;line-height:1.45}
.reminders-page button,.reminders-page .btn{transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease}
.reminders-page button:not([disabled]):active,.reminders-page .btn:not([disabled]):active{transform:translateY(1px)}
.reminders-page button[disabled]{cursor:not-allowed;opacity:.55}
.reminders-page .hidden{display:none!important}

/* The member workspace is intentionally narrower than the staff canvas even
   on a wide monitor. Keep its list and editor comfortably full-width instead
   of relying only on viewport media queries. */
.appwrap.narrow .reminder-layout{display:flex;flex-direction:column}
.appwrap.narrow .reminder-content,.appwrap.narrow .reminder-editor{width:100%}
.appwrap.narrow .reminder-editor{position:static;order:-1}
.appwrap.narrow .reminder-editor-placeholder{display:none}
.appwrap.narrow .visit-reminder-settings{grid-template-columns:1fr}
.appwrap.narrow .visit-reminder-settings form{grid-template-columns:1fr 1fr}
.appwrap.narrow .visit-reminder-settings form .btn{grid-column:1/-1;justify-self:start}

@media (hover:hover){
  .reminder-new-top:hover,.reminder-editor-placeholder .btn:hover,.reminder-form-actions .btn:first-child:hover{
    transform:translateY(-2px);
    box-shadow:0 7px 0 rgba(32,48,44,.12),0 12px 24px rgba(32,48,44,.1);
  }
}

@media (max-width:1099px){
  .reminder-layout{grid-template-columns:minmax(0,1fr) minmax(310px,360px);gap:18px}
  .visit-reminder-settings{grid-template-columns:1fr}
}

@media (max-width:820px){
  .reminder-layout{display:flex;flex-direction:column}
  .reminder-content,.reminder-editor,.reminder-editor-placeholder{width:100%}
  .reminder-editor,.reminder-editor-placeholder{position:static;order:-1}
  .reminder-editor-placeholder{display:none}
  .reminder-toolbar{align-items:stretch;flex-direction:column}
  .reminder-scope{width:100%}
  .visit-reminder-settings form{grid-template-columns:1fr 1fr}
  .visit-reminder-settings form .btn{grid-column:1/-1;justify-self:start}
}

@media (max-width:560px){
  .reminders-page{padding-bottom:calc(22px + env(safe-area-inset-bottom))}
  .reminders-page-head{align-items:stretch;flex-direction:column;gap:13px}
  .reminder-offline{align-items:stretch;flex-direction:column}
  .reminder-new-top{width:100%}
  .reminder-tabs{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}
  .reminder-tab{min-width:0;padding:8px 5px;font-size:12px}
  .reminder-card{grid-template-columns:36px minmax(0,1fr);gap:10px;padding:14px 13px 14px 11px;border-radius:16px}
  .reminder-card-accent{width:36px;height:36px;border-radius:11px;font-size:15px}
  .reminder-card-top{gap:7px}
  .reminder-card h3{font-size:16px}
  .reminder-status{padding:4px 7px;font-size:9.5px}
  .reminder-actions{display:grid;grid-template-columns:1fr 1fr}
  .reminder-actions .btn{width:100%}
  .reminder-text-action.is-danger{width:auto;margin-left:0;justify-self:start}
  .reminder-editor{padding:18px 15px}
  .reminder-form-grid{grid-template-columns:1fr}
  .reminder-weekdays>div{grid-template-columns:repeat(4,1fr)}
  .reminder-form-actions{display:grid;grid-template-columns:1fr}
  .visit-reminder-settings{padding:17px 15px}
  .visit-reminder-settings form{grid-template-columns:1fr}
  .visit-reminder-settings form .btn{grid-column:auto;width:100%}
  .appwrap.narrow .visit-reminder-settings form{grid-template-columns:1fr}
  .appwrap.narrow .visit-reminder-settings form .btn{grid-column:auto;justify-self:stretch}
}

body.bigtext .reminder-card h3{font-size:20px}
body.bigtext .reminder-when{font-size:17px}
body.bigtext .reminder-person{font-size:15px}
body.bigtext .reminder-status{font-size:13px}
body.bigtext .reminder-meta,body.bigtext .reminder-note,body.bigtext .reminder-processing{font-size:15px}
body.bigtext .reminder-tab,body.bigtext .reminder-text-action{font-size:15px}
body.bigtext .reminder-field-help,body.bigtext .reminder-emergency-copy{font-size:14px}

@media (prefers-reduced-motion:reduce){
  .reminders-page *,
  .reminders-page *::before,
  .reminders-page *::after{
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
  }
  .reminder-card:hover,.reminder-new-top:hover,.reminder-editor-placeholder .btn:hover{transform:none}
}

@media print{
  .reminder-new-top,.reminder-toolbar,.reminder-editor,.reminder-editor-placeholder,.reminder-actions,.visit-reminder-settings{display:none!important}
  .reminder-layout{display:block}
  .reminder-card{break-inside:avoid;box-shadow:none}
}
