@import url('https://fonts.googleapis.com/css2?family=Lora:wght@500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{
  --bg:oklch(97.3% 0.009 75); --surface:oklch(100% 0 0); --surface-2:oklch(98.3% 0.006 75);
  --text:oklch(23% 0.02 60); --text-2:oklch(46% 0.02 60); --text-3:oklch(62% 0.014 65);
  --border:oklch(90.5% 0.01 70); --border-soft:oklch(94% 0.008 70);
  --accent:oklch(60% 0.14 40); --accent-hover:oklch(53% 0.15 40); --accent-soft:oklch(94% 0.035 45);
  --sage:oklch(63% 0.09 150); --sage-soft:oklch(94% 0.03 150); --sage-line:oklch(85% 0.05 150);
  --amber:oklch(58% 0.13 65); --amber-soft:oklch(95% 0.045 75); --amber-line:oklch(85% 0.08 70);
  --danger:oklch(55% 0.14 25); --danger-soft:oklch(95% 0.03 25); --danger-line:oklch(86% 0.06 25);
  --sidebar:oklch(26% 0.016 55); --sidebar-2:oklch(31% 0.018 55); --sidebar-text:oklch(88% 0.01 60); --sidebar-text-dim:oklch(62% 0.015 60);
  --radius:12px; --radius-sm:8px;
  --shadow: 0 1px 2px oklch(20% 0.02 60 / 0.04), 0 8px 24px oklch(20% 0.02 60 / 0.06);
}
*{box-sizing:border-box;}
body{margin:0;font-family:'Manrope',system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:14.5px;}
h1,h2,h3{font-family:'Lora',Georgia,serif;margin:0;letter-spacing:-0.01em;}
a{color:var(--accent);text-decoration:none;} a:hover{color:var(--accent-hover);}
.icon{width:18px;height:18px;flex-shrink:0;}

/* App shell */
/* height (not min-height) keeps the sidebar pinned to the viewport — with
   min-height, a tall page (long table, long list) grows .app-shell past
   100vh, and the sidebar (a stretched flex sibling) grows with it, pushing
   its Settings/Logout footer off-screen until the whole page is scrolled to
   the bottom. Bounding the shell to the viewport instead makes .content-body
   scroll on its own (via its existing overflow:auto) while the sidebar stays put. */
.app-shell{display:flex;height:100vh;}
.sidebar{display:flex;flex-direction:column;width:248px;flex-shrink:0;background:var(--sidebar);color:var(--sidebar-text);padding:22px 16px;overflow-y:auto;}
.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 26px;}
.sidebar-brand span{font-family:'Lora',serif;font-size:21px;font-weight:600;color:#fff;}
.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:8px;color:var(--sidebar-text);font-weight:500;font-size:14px;}
.nav-item:hover{background:var(--sidebar-2);text-decoration:none;color:#fff;}
.nav-item.active{background:var(--sidebar-2);color:#fff;font-weight:600;}
.nav-item.disabled{color:var(--sidebar-text-dim);cursor:default;}
.nav-item.disabled:hover{background:none;color:var(--sidebar-text-dim);}
.badge-soon{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:99px;background:oklch(40% 0.02 55);color:var(--sidebar-text-dim);}
.sidebar-divider{height:1px;background:oklch(40% 0.02 55);margin:12px 4px;}
.sidebar-footer{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--sidebar-2);}
.org-avatar{width:32px;height:32px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;background:linear-gradient(135deg, var(--accent), oklch(68% 0.12 60));}

.content{flex:1;display:flex;flex-direction:column;min-width:0;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 32px;border-bottom:1px solid var(--border-soft);flex-shrink:0;}
.content-body{flex:1;overflow:auto;padding:28px 32px;}

/* Reusable bits */
.avatar{border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;}
.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow);margin-bottom:16px;overflow-x:auto;}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;}
.stat-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);}
.stat-label{font-size:12.5px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:0.04em;}
.stat-value{font-family:'Lora',serif;font-size:28px;font-weight:600;margin-top:10px;}

.badge{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:99px;letter-spacing:0.02em;}
.badge.accent{background:var(--accent-soft);color:var(--accent);}
.badge.sage{background:var(--sage-soft);color:var(--sage);}
.badge.amber{background:var(--amber-soft);color:oklch(42% 0.1 60);}
.badge.danger{background:var(--danger-soft);color:var(--danger);}
.badge.muted{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);}

.btn{display:inline-flex;align-items:center;gap:7px;background:var(--accent);color:#fff;padding:9px 16px;border-radius:9px;border:none;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;}
.btn:hover{background:var(--accent-hover);text-decoration:none;color:#fff;}
.btn.secondary{background:transparent;color:var(--text);border:1px solid var(--border);}
.btn.secondary:hover{background:var(--surface-2);color:var(--text);}
.btn.danger{background:transparent;color:var(--danger);border:1px solid var(--danger-line);}
.btn.small{padding:6px 12px;font-size:12.5px;}
form.inline{display:inline;}

table{width:100%;border-collapse:collapse;font-size:13.5px;}
th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--border-soft);}
th{font-size:11.5px;text-transform:uppercase;letter-spacing:0.04em;color:var(--text-3);font-weight:700;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:var(--surface-2);}

.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;}
.form-grid.single{grid-template-columns:1fr;}
.field{display:flex;flex-direction:column;gap:5px;}
.field.full{grid-column:1/-1;}
label{font-size:12.5px;font-weight:600;color:var(--text-2);}
input,select,textarea{font-family:inherit;font-size:14px;padding:9px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);line-height:1.4;}
select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23888' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:11px 7px;padding-right:32px;}
textarea{resize:vertical;min-height:70px;}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent);}
.form-actions{margin-top:18px;display:flex;gap:10px;}

/* Help tips: a small "?" circle next to a field label or a page title.
   The bubble is position:fixed (viewport-relative, not tied to any
   scrolling ancestor) with its exact position computed in JS on
   hover/focus/tap — see positionTip() in layout.ejs — because a table
   header's "?" commonly sits inside a `.card` with overflow-x:auto,
   and an ordinary position:absolute bubble gets silently clipped to
   nothing by that ancestor's (forced-on) overflow-y:auto. Visibility
   is driven entirely by the shared .open class the script toggles, so
   mouse, keyboard, and touch all go through the same code path. */
.help-tip{
  display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  width:15px;height:15px;border-radius:50%;margin-left:5px;
  border:1.3px solid var(--text-3);color:var(--text-3);
  font-size:10px;font-weight:700;line-height:1;
  cursor:help;position:relative;vertical-align:middle;
  -webkit-tap-highlight-color:transparent;
}
.help-tip::before{
  content:attr(data-tip);
  position:fixed;top:var(--tip-top,-9999px);left:var(--tip-left,-9999px);
  width:max-content;max-width:min(240px,70vw);
  background:var(--sidebar);color:var(--sidebar-text);
  font-size:12px;font-weight:400;line-height:1.45;letter-spacing:0;text-transform:none;
  padding:9px 11px;border-radius:8px;text-align:left;white-space:normal;
  box-shadow:0 6px 20px rgba(0,0,0,0.2);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .12s ease;
  z-index:9000;
}
.help-tip::after{
  content:'';position:fixed;top:var(--tip-arrow-top,-9999px);left:var(--tip-arrow-left,-9999px);
  border:5px solid transparent;
  opacity:0;visibility:hidden;transition:opacity .12s ease;z-index:9000;
}
.help-tip.open::before,.help-tip.open::after{opacity:1;visibility:visible;}
.help-tip.arrow-up::after{border-bottom-color:var(--sidebar);}
.help-tip.arrow-down::after{border-top-color:var(--sidebar);}
th .help-tip{margin-left:4px;text-transform:none;}

/* Page-level help: a bigger "?" pinned to the top-right of .topbar. */
.page-help{
  width:22px;height:22px;font-size:12px;border-width:1.6px;margin-left:0;flex-shrink:0;
}

.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;flex-wrap:wrap;}
.page-header .subtitle{color:var(--text-2);margin-top:4px;font-size:13.5px;}
.empty-state{color:var(--text-3);font-style:italic;padding:20px 0;text-align:center;}
.search-box{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:9px 13px;}
.search-box input{border:none;background:none;padding:0;font-size:13.5px;flex:1;}
.search-box input:focus{outline:none;}

/* Auth pages (no sidebar) */
.auth-shell{display:flex;min-height:100vh;}
.auth-brand{width:46%;position:relative;background:var(--sidebar);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:52px;color:#fff;}
.auth-form{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;}
.auth-form-inner{width:100%;max-width:380px;}

/* Mobile top bar + off-canvas sidebar drawer (hidden on desktop) */
.mobile-topbar{display:none;}
.sidebar-backdrop{display:none;}

/* Generic centered modal, used for the Family/Individual choice popup */
.modal-backdrop{display:none; position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:60; align-items:center; justify-content:center; padding:20px;}
.modal-backdrop.open{display:flex;}
.modal-box{background:var(--surface); border-radius:var(--radius); box-shadow:var(--shadow); padding:28px; max-width:440px; width:100%; text-align:center;}
.modal-choice{display:flex; gap:14px; margin-top:20px;}
.modal-choice a{flex:1; display:flex; flex-direction:column; align-items:center; gap:8px; padding:22px 14px; border:2px solid var(--border-soft); border-radius:var(--radius); color:var(--text); font-weight:700;}
.modal-choice a:hover{border-color:var(--accent); background:var(--accent-soft);}
.modal-choice .icon{width:28px;height:28px;color:var(--accent);}
.calendar-grid-view{display:grid; grid-template-columns:repeat(7,1fr);}
.calendar-agenda-view{display:none;}

@media (max-width: 900px){
  .app-shell{display:block;}
  .mobile-topbar{
    display:flex; align-items:center; gap:14px; padding:14px 18px;
    background:var(--sidebar); color:#fff; position:sticky; top:0; z-index:30;
  }
  .mobile-topbar button{background:none;border:none;color:#fff;padding:4px;display:flex;cursor:pointer;}
  .mobile-topbar span{font-family:'Lora',serif;font-size:17px;font-weight:600;}

  .sidebar{
    position:fixed; top:0; left:0; height:100vh; z-index:50;
    transform:translateX(-100%); transition:transform 0.2s ease-out;
    box-shadow:2px 0 24px rgba(0,0,0,0.25);
  }
  .sidebar.open{transform:translateX(0);}
  .sidebar-backdrop{
    display:none; position:fixed; inset:0; background:rgba(0,0,0,0.4); z-index:40;
  }
  .sidebar-backdrop.open{display:block;}

  .content{width:100%;}
  .topbar{flex-wrap:wrap; gap:10px; padding:16px 18px;}
  .topbar h1{font-size:19px !important; width:100%;}
  .search-box{width:auto !important; flex:1; min-width:0;}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .form-grid{grid-template-columns:1fr;}
  .content-body{padding:20px 18px;}
  .auth-brand{display:none;}
  .auth-form{width:100%;}
}

/* A 7-column week grid can't fit a phone screen at any sensible size, so phones
   (not tablets) get a simple day-by-day agenda list instead — same data, no grid. */
@media (max-width: 640px){
  .calendar-grid-view{display:none;}
  .calendar-agenda-view{display:block;}
}

/* ============================================================
   MyGathering visual redesign preview
   Global overrides only — application behavior/routes unchanged.
   ============================================================ */
:root{
  --bg:#f4f7f5;
  --surface:#ffffff;
  --surface-2:#f7faf8;
  --text:#173328;
  --text-2:#5d756a;
  --text-3:#82938b;
  --border:#d9e4de;
  --border-soft:#e8efeb;
  --accent:#1f6b4b;
  --accent-hover:#195a3f;
  --accent-soft:#e8f3ed;
  --sage:#3f8464;
  --sage-soft:#edf6f1;
  --sage-line:#cfe3d7;
  --amber:#a8752d;
  --amber-soft:#fbf3e6;
  --amber-line:#ecd6b1;
  --danger:#a6443d;
  --danger-soft:#fff0ef;
  --danger-line:#efc8c5;
  --sidebar:#10251d;
  --sidebar-2:#1a362b;
  --sidebar-text:#dce8e2;
  --sidebar-text-dim:#8fa59a;
  --radius:14px;
  --radius-sm:10px;
  --shadow:0 1px 2px rgba(16,37,29,.03),0 10px 30px rgba(16,37,29,.055);
}
body{background:var(--bg);color:var(--text);}
.app-shell{background:var(--bg);}
.sidebar{width:var(--sidebar-width,238px);padding:16px 12px 14px;background:linear-gradient(180deg,#10251d 0%,#0e211a 100%);border-right:1px solid rgba(255,255,255,.04);}
.sidebar-brand{padding:3px 7px 22px;gap:11px;}
.sidebar-logo-mark{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#2f8b63,#1f6b4b);display:grid;place-items:center;box-shadow:0 8px 22px rgba(0,0,0,.19);color:#fff;flex:none;}
.sidebar-logo-mark svg{width:22px;height:22px;}
.sidebar-brand-copy{display:flex;flex-direction:column;line-height:1.05;min-width:0;}
.sidebar-brand-copy span{font-family:'Lora',serif;font-size:20px!important;font-weight:700!important;letter-spacing:-.03em;}
.sidebar-brand-copy small{font-family:'Manrope',system-ui,sans-serif;color:var(--sidebar-text-dim);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-top:5px;}
.nav-item{border-radius:10px;padding:10px 11px;font-size:13.5px;color:#b9cbc2;transition:background .15s ease,color .15s ease,transform .15s ease;}
.nav-item .icon{width:17px;height:17px;opacity:.88;}
.nav-item:hover{background:rgba(255,255,255,.075);color:#fff;transform:translateX(1px);}
.nav-item.active{background:linear-gradient(90deg,rgba(47,139,99,.34),rgba(47,139,99,.13));box-shadow:inset 3px 0 0 #66ad87;color:#fff;font-weight:700;}
.sidebar-divider{background:rgba(255,255,255,.07);margin:12px 3px;}
.sidebar-footer{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.06);padding:11px;border-radius:13px;align-items:flex-start;}
.org-avatar{background:linear-gradient(135deg,#2f8b63,#c79b55);box-shadow:0 5px 14px rgba(0,0,0,.16);}
.sidebar-user-meta{font-size:11px;color:var(--sidebar-text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.sidebar-user-actions{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#8fa59a;}
.sidebar-user-actions span{padding:2px 6px;border:1px solid rgba(255,255,255,.1);border-radius:999px;}
.sidebar-user-actions a{color:#a9bbb2;text-transform:none;letter-spacing:0;font-size:10.5px;text-decoration:none;}
.sidebar-user-actions a:hover{color:#fff;}
.mobile-topbar{background:#10251d;box-shadow:0 6px 20px rgba(16,37,29,.13);}
.content{background:var(--bg);}
.topbar{padding:11px var(--space-page-x,22px);background:rgba(255,255,255,.78);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-soft);min-height:var(--toolbar-h,62px);}
.topbar h1{font-family:'Lora',serif;font-weight:650;letter-spacing:-.025em;color:var(--text);}
.content-body{padding:var(--space-page-y,18px) var(--space-page-x,22px) 32px;}
.card{border-radius:16px;border-color:var(--border-soft);box-shadow:var(--shadow);padding:var(--space-card,15px 16px);background:#fff;margin-bottom:var(--space-gap,14px);}
.card h2,.card h3{color:#19362a;}
.stat-grid{gap:14px;}
.stat-card{position:relative;overflow:hidden;border-radius:16px;padding:19px 20px;border:1px solid var(--border-soft);box-shadow:var(--shadow);background:linear-gradient(180deg,#fff 0%,#fbfdfc 100%);}
.stat-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(#2f8b63,#7ab796);}
.stat-label{font-size:11px;color:#6b8076;letter-spacing:.07em;font-weight:800;}
.stat-value{font-family:'Lora',serif;font-size:31px;color:#173328;margin-top:9px;letter-spacing:-.03em;}
.btn{background:#1f6b4b;border-radius:10px;padding:10px 16px;box-shadow:0 3px 9px rgba(31,107,75,.13);}
.btn:hover{background:#195a3f;transform:translateY(-1px);}
.btn.secondary{box-shadow:none;background:#fff;border-color:#d6e1db;color:#3f594d;}
.btn.secondary:hover{background:#f3f7f5;color:#173328;}
.search-box{background:#f7faf8;border-color:#dce6e0;border-radius:10px;}
input,select,textarea{border-color:#d7e2dc;border-radius:10px;background:#fff;transition:border-color .15s ease,box-shadow .15s ease;}
input:focus,select:focus,textarea:focus{outline:none;border-color:#6ca589;box-shadow:0 0 0 3px rgba(31,107,75,.1);}
table{font-size:13px;}
th{background:#fbfcfb;color:#74877e;font-size:10.5px;letter-spacing:.07em;}
th,td{padding:var(--table-cell-y,8px) var(--table-cell-x,10px);border-color:#edf1ef;}
tr:hover td{background:#f8fbf9;}
.badge{font-size:10.5px;padding:4px 9px;}
.badge.accent{background:#e8f3ed;color:#1f6b4b;}
.page-header{margin-bottom:20px;}
.page-header .subtitle{font-size:13px;line-height:1.55;}
.empty-state{padding:30px 0;color:#899890;}
.help-tip{border-color:#91a49a;color:#7b8f84;}
.auth-shell{background:#fff;}
.auth-brand{background:linear-gradient(150deg,#10251d,#1f5e43);}
.auth-form{background:#fbfdfc;}
.auth-form-inner{max-width:410px;}

@media(max-width:900px){
  .sidebar{width:272px;}
  .content-body{padding:20px 16px 36px;}
  .topbar{padding:16px 16px;}
}


/* ============================================================
   MyGathering color lift — preview v2
   Adds a restrained secondary palette while keeping forest green primary.
   ============================================================ */
:root{
  --sky:#4d7899;
  --sky-soft:#edf4f8;
  --sky-line:#cfe0e9;
  --gold:#b98535;
  --gold-soft:#fbf3e5;
  --gold-line:#ead6ad;
  --plum:#765b77;
  --plum-soft:#f5eff6;
  --plum-line:#dfcfe1;
  --coral:#ad6557;
  --coral-soft:#fbefec;
  --coral-line:#ebd0ca;
}
body{background:linear-gradient(145deg,#f4f7f5 0%,#f6f8f7 50%,#f7f4ef 100%);}
.sidebar{background:
  radial-gradient(circle at 115% 2%,rgba(78,126,153,.22),transparent 26%),
  radial-gradient(circle at -12% 92%,rgba(185,133,53,.12),transparent 27%),
  linear-gradient(180deg,#10251d 0%,#0d2119 100%);}
.sidebar-logo-mark{background:linear-gradient(135deg,#2f8b63 0%,#427b83 58%,#b98535 125%);}
.org-avatar{background:linear-gradient(135deg,#2f8b63 0%,#4d7899 55%,#c39750 125%);}
.topbar{background:linear-gradient(110deg,rgba(255,255,255,.86),rgba(241,247,244,.88) 64%,rgba(246,241,232,.72));}
.search-box{background:linear-gradient(135deg,#f7faf8,#f2f7fa);}

/* Give the four overview/stat cards their own quiet identity. */
.stat-grid .stat-card:nth-child(1){background:linear-gradient(145deg,#fff 0%,#f2faf6 100%);border-color:#d9eae0;}
.stat-grid .stat-card:nth-child(1):before{background:linear-gradient(#2f8b63,#78b99a);}
.stat-grid .stat-card:nth-child(2){background:linear-gradient(145deg,#fff 0%,var(--sky-soft) 100%);border-color:var(--sky-line);}
.stat-grid .stat-card:nth-child(2):before{background:linear-gradient(#4d7899,#8cafc3);}
.stat-grid .stat-card:nth-child(3){background:linear-gradient(145deg,#fff 0%,var(--gold-soft) 100%);border-color:var(--gold-line);}
.stat-grid .stat-card:nth-child(3):before{background:linear-gradient(#b98535,#d5ad68);}
.stat-grid .stat-card:nth-child(4){background:linear-gradient(145deg,#fff 0%,var(--plum-soft) 100%);border-color:var(--plum-line);}
.stat-grid .stat-card:nth-child(4):before{background:linear-gradient(#765b77,#a987a9);}

.badge.sky{background:var(--sky-soft);color:#426d8e;border:1px solid var(--sky-line);}
.badge.gold{background:var(--gold-soft);color:#91651f;border:1px solid var(--gold-line);}
.badge.plum{background:var(--plum-soft);color:#6c4f6e;border:1px solid var(--plum-line);}
.badge.coral{background:var(--coral-soft);color:#985548;border:1px solid var(--coral-line);}

/* A little more color in tables and utility surfaces without becoming busy. */
table tr:nth-child(even) td{background:#fcfdfc;}
table tr:nth-child(even):hover td,table tr:hover td{background:#f6faf8;}
.card[style*="repeat(4,1fr)"]>div:nth-child(1){background:#f1f8f4!important;border-color:#d9e9df!important;}
.card[style*="repeat(4,1fr)"]>div:nth-child(2){background:var(--sky-soft)!important;border-color:var(--sky-line)!important;}
.card[style*="repeat(4,1fr)"]>div:nth-child(3){background:var(--gold-soft)!important;border-color:var(--gold-line)!important;}
.card[style*="repeat(4,1fr)"]>div:nth-child(4){background:var(--plum-soft)!important;border-color:var(--plum-line)!important;}
.preview-ribbon{background:linear-gradient(135deg,#fff7e8,#f1f7fa)!important;border-color:#dfd4b9!important;}

/* ============================================================
   MyGathering form system — preview v3
   Full local-preview forms for each major module.
   ============================================================ */
.preview-back-link{display:inline-flex;align-items:center;gap:6px;color:#5e786c;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.preview-back-link:hover{color:var(--accent)}
.preview-form-subtitle{font-size:12px;color:var(--text-3);margin-top:5px;max-width:760px;line-height:1.5}
.preview-form-top-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.preview-form-page{background:radial-gradient(circle at 90% 3%,rgba(77,120,153,.06),transparent 24%),radial-gradient(circle at 5% 85%,rgba(185,133,53,.055),transparent 26%)}
.preview-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px;align-items:start;max-width:1240px;margin:0 auto}
.preview-form-main{min-width:0}
.preview-form-section{padding:0;overflow:hidden}
.preview-section-heading{display:flex;gap:12px;align-items:flex-start;padding:18px 21px 15px;border-bottom:1px solid var(--border-soft)}
.preview-section-heading h2{font-size:16px;letter-spacing:-.02em}
.preview-section-heading p{font-size:11px;color:var(--text-3);margin:4px 0 0;line-height:1.5}
.preview-section-number{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;font-size:11px;font-weight:900;flex:none;background:var(--accent-soft);color:var(--accent)}
.section-tone-2 .preview-section-number{background:var(--sky-soft);color:var(--sky)}
.section-tone-3 .preview-section-number{background:var(--gold-soft);color:#956a24}
.section-tone-4 .preview-section-number{background:var(--plum-soft);color:var(--plum)}
.preview-form-grid{padding:20px 21px 23px;gap:17px 18px}
.preview-form-grid label{color:#496257;font-size:11.5px;font-weight:800;letter-spacing:.01em}
.preview-form-grid input,.preview-form-grid select,.preview-form-grid textarea{min-height:42px;padding:10px 12px;font-size:13px}
.preview-form-grid textarea{min-height:110px}
.preview-field-hint{font-size:10.5px;color:var(--text-3);line-height:1.45;margin-top:2px}
.preview-input-wrap{display:flex;align-items:stretch}
.preview-input-wrap input{width:100%}
.preview-input-wrap.has-prefix input{border-top-left-radius:0;border-bottom-left-radius:0}
.preview-input-prefix{display:flex;align-items:center;padding:0 11px;background:#f2f6f4;border:1px solid #d7e2dc;border-right:0;border-radius:10px 0 0 10px;color:#698078;font-size:12px;font-weight:700;white-space:nowrap}
.preview-toggle-row{display:flex!important;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--border-soft);border-radius:12px;padding:13px 14px;background:#fafcfb;color:var(--text)!important;cursor:pointer}
.preview-toggle-row span:first-child{display:flex;flex-direction:column;gap:3px}
.preview-toggle-row strong{font-size:12.5px}.preview-toggle-row small{font-size:10.5px;color:var(--text-3);font-weight:500}
.preview-switch{position:relative;width:42px;height:24px;flex:none}.preview-switch input{position:absolute;opacity:0;width:1px;height:1px}.preview-switch i{position:absolute;inset:0;background:#ccd9d2;border-radius:999px;transition:.18s}.preview-switch i:before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.16);transition:.18s}.preview-switch input:checked+i{background:#2f8b63}.preview-switch input:checked+i:before{transform:translateX(18px)}
.preview-radio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.preview-radio-card{position:relative;border:1px solid #d9e4de;border-radius:11px;padding:11px 12px;background:#fff;cursor:pointer;color:#496257!important}.preview-radio-card input{position:absolute;opacity:0}.preview-radio-card:has(input:checked){border-color:#7eb195;background:#f0f8f4;box-shadow:0 0 0 2px rgba(47,139,99,.07)}.preview-radio-card span{font-size:12px;font-weight:700}
.preview-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.preview-check-card{display:flex!important;align-items:center;gap:8px;border:1px solid #dde7e2;border-radius:10px;padding:10px 11px;background:#fff;color:#4e665b!important;cursor:pointer}.preview-check-card input{width:15px;height:15px;min-height:0;accent-color:#2f8b63}.preview-check-card span{font-size:11px;font-weight:700;line-height:1.25}.preview-check-card:has(input:checked){background:#eef7f2;border-color:#b9d6c6}
.preview-chip-list{display:flex;flex-wrap:wrap;gap:8px}.preview-chip{font-size:10.5px;font-weight:800;padding:7px 10px;border-radius:999px;border:1px solid}.chip-1{background:var(--sage-soft);border-color:var(--sage-line);color:#3b7559}.chip-2{background:var(--sky-soft);border-color:var(--sky-line);color:#426d8e}.chip-3{background:var(--gold-soft);border-color:var(--gold-line);color:#91651f}.chip-4{background:var(--plum-soft);border-color:var(--plum-line);color:#6c4f6e}
.preview-slot-builder{display:flex;flex-direction:column;gap:9px}.preview-slot-row{display:grid;grid-template-columns:24px minmax(0,1fr) 135px auto;gap:8px;align-items:center}.preview-slot-row input{min-width:0}.preview-slot-grip{color:#9cafA5;font-weight:900;letter-spacing:-3px;cursor:grab}.preview-slot-builder>.btn{align-self:flex-start;margin-top:3px}
.preview-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.preview-plan-card{position:relative;display:flex!important;flex-direction:column;gap:4px;border:1px solid #dbe5e0;border-radius:13px;padding:15px 14px;background:#fff;cursor:pointer;color:var(--text)!important;min-height:112px}.preview-plan-card input{position:absolute;opacity:0}.preview-plan-card strong{font-family:'Lora',serif;font-size:18px}.preview-plan-card small{font-size:10.5px;color:var(--text-3);font-weight:600}.preview-plan-name{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#60786d}.preview-plan-card.selected,.preview-plan-card:has(input:checked){border-color:#81b299;background:linear-gradient(145deg,#fff,#eef8f3);box-shadow:0 0 0 2px rgba(31,107,75,.07)}.preview-plan-dot{position:absolute;right:12px;top:12px;width:12px;height:12px;border-radius:50%;border:2px solid #c7d7cf}.preview-plan-card:has(input:checked) .preview-plan-dot{border:4px solid #2f8b63}
.preview-file-drop{display:flex!important;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:1.5px dashed #b9cec3;border-radius:14px;min-height:150px;background:linear-gradient(145deg,#fbfdfc,#f4f9f6);cursor:pointer;color:var(--text)!important}.preview-file-drop input{position:absolute;opacity:0;pointer-events:none}.preview-file-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:var(--accent-soft);color:var(--accent);font-size:20px;font-weight:400;margin-bottom:8px}.preview-file-drop strong{font-size:12.5px}.preview-file-drop small{font-size:10.5px;color:var(--text-3);margin-top:4px}
.preview-readonly{min-height:42px;display:flex;align-items:center;padding:10px 12px;border:1px solid #e0e7e3;background:#f7f9f8;border-radius:10px;color:#65796f;font-size:12.5px;font-weight:700}
.preview-sticky-actions{position:sticky;bottom:0;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;margin-top:18px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border:1px solid #dce7e1;border-radius:14px;box-shadow:0 14px 36px rgba(16,37,29,.12)}.preview-sticky-actions>div:first-child{display:flex;flex-direction:column;gap:2px}.preview-sticky-actions strong{font-size:11.5px}.preview-sticky-actions span{font-size:10px;color:var(--text-3)}.preview-action-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.preview-form-aside{position:sticky;top:18px}.preview-aside-card{overflow:hidden!important}.preview-aside-card h3{font-size:15px;margin:0 0 7px}.preview-aside-card p{font-size:11.5px;color:var(--text-2);line-height:1.6;margin:0}.preview-aside-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:17px;font-weight:900;margin-bottom:13px}.accent-sky .preview-aside-icon{background:var(--sky-soft);color:var(--sky)}.accent-gold .preview-aside-icon{background:var(--gold-soft);color:#996d28}.accent-plum .preview-aside-icon{background:var(--plum-soft);color:var(--plum)}.accent-coral .preview-aside-icon{background:var(--coral-soft);color:var(--coral)}.preview-aside-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.preview-aside-list li{position:relative;padding-left:18px;font-size:11px;color:var(--text-2);line-height:1.4}.preview-aside-list li:before{content:'✓';position:absolute;left:0;top:0;color:#2f8b63;font-weight:900}.preview-danger-zone{border-color:#f0d7d3}.preview-danger-zone .btn{margin-top:12px}
.preview-save-banner{display:flex;align-items:center;gap:11px;background:linear-gradient(135deg,#eef8f3,#f9fcfa);border:1px solid #cce3d6;border-radius:13px;padding:12px 15px;margin-bottom:14px;color:#2f6f52}.preview-save-banner>span{width:28px;height:28px;border-radius:9px;background:#dff1e7;display:grid;place-items:center;font-weight:900}.preview-save-banner strong{display:block;font-size:12px}.preview-save-banner div div{font-size:10.5px;color:#6d867a;margin-top:2px}
.preview-secondary-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-2px 0 14px}.preview-secondary-actions>span{font-size:9.5px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;color:var(--text-3);margin-right:2px}.preview-secondary-actions a{display:inline-flex;padding:6px 10px;border:1px solid #dbe5e0;background:#fff;border-radius:999px;font-size:10.5px;font-weight:800;color:#587064;box-shadow:0 1px 2px rgba(16,37,29,.03)}.preview-secondary-actions a:hover{border-color:#b9d4c6;background:#f3f8f5;color:#1f6b4b}

@media(max-width:1100px){.preview-form-layout{grid-template-columns:1fr}.preview-form-aside{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.preview-form-aside .card{margin:0}.preview-danger-zone{grid-column:1/-1}}
@media(max-width:760px){.preview-form-top-actions{width:100%;justify-content:flex-start}.preview-radio-grid,.preview-plan-grid,.preview-check-grid{grid-template-columns:1fr}.preview-slot-row{grid-template-columns:18px 1fr}.preview-slot-row input:nth-of-type(2),.preview-slot-row .btn{grid-column:2}.preview-form-aside{grid-template-columns:1fr}.preview-sticky-actions{position:static;align-items:flex-start;flex-direction:column}.preview-action-buttons{width:100%}.preview-action-buttons .btn{flex:1;justify-content:center}.preview-section-heading,.preview-form-grid{padding-left:16px;padding-right:16px}}

/* Dashboard "START HERE → User Guide" banner */
.start-here{display:flex;align-items:center;gap:14px;padding:15px 20px;margin-bottom:18px;border-radius:16px;background:linear-gradient(135deg,#10251d,#1f6b4b);color:#fff;box-shadow:var(--shadow);text-decoration:none;}
.start-here:hover{color:#fff;filter:brightness(1.08);}
.start-here-label{flex-shrink:0;background:#e1c184;color:#10251d;font-size:12px;font-weight:900;letter-spacing:.09em;padding:6px 11px;border-radius:8px;}
.start-here-arrow{font-size:22px;font-weight:800;color:#e1c184;line-height:1;}
.start-here-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.start-here-text strong{font-family:'Lora',serif;font-size:18px;}
.start-here-text small{font-size:12.5px;color:rgba(255,255,255,.75);}
.start-here .icon{width:26px;height:26px;color:#e1c184;}
@media(max-width:640px){.start-here{flex-wrap:wrap;gap:10px;padding:14px 16px}.start-here .icon{display:none}}

/* Events: Calendar / List toggle */
.view-toggle{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface);}
.view-toggle a{padding:7px 14px;font-size:13px;font-weight:700;color:var(--text-2);}
.view-toggle a.active{background:var(--sage-soft);color:#19362a;}
.event-list-day{display:flex;gap:16px;padding:14px 4px;border-bottom:1px solid var(--border-soft);}
.event-list-day:last-child{border-bottom:0;}
.event-list-date{width:64px;flex-shrink:0;text-align:center;}
.event-list-date .dow{font-size:10.5px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;}
.event-list-date .dom{font-family:'Lora',serif;font-size:24px;font-weight:600;}
.event-list-date.today .dom{color:var(--accent);}
.event-list-items{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;}
.event-list-item{display:grid;grid-template-columns:130px 1fr;gap:12px;align-items:baseline;padding:9px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--border-soft);color:var(--text);}
.event-list-item:hover{border-color:var(--sage-line);color:var(--text);}
.event-list-item .time{font-size:12.5px;font-weight:700;color:var(--text-2);}
.event-list-item .title{font-weight:700;}
.event-list-item .meta{font-size:12px;color:var(--text-3);margin-top:2px;}
@media(max-width:640px){.event-list-item{grid-template-columns:1fr;gap:2px}.event-list-date{width:44px}}

/* Giving report */
@media print{.sidebar,.mobile-topbar,.topbar .btn,.no-print{display:none!important}.app-shell{height:auto;display:block}.content-body{overflow:visible}.card{box-shadow:none;break-inside:avoid}}

/* Sign-up sheet slot rows: Item | Name | Date | Capacity | actions */
.slot-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) minmax(0,1.2fr) 145px 80px 250px;gap:8px;align-items:center;}
/* The last column is a fixed width on every row (header, each slot, Add a
   slot) — sized to fit "0/1 claimed · Save · Delete". With "auto" each row
   sized it to its own buttons, so the columns drifted out of line. */
.slot-row.slot-head > span{white-space:nowrap;}
.slot-actions{justify-content:flex-end;}
.slot-row.slot-head{font-size:11px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;padding:6px 0;border-bottom:1px solid var(--border-soft);}
.slot-row input,.slot-row select{width:100%;min-width:0;}
.slot-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
@media(max-width:900px){.slot-row{grid-template-columns:1fr 1fr}.slot-row.slot-head{display:none}.slot-actions{grid-column:1/-1}}
.event-list-item.cancelled{opacity:.7;}
.event-list-item.cancelled .title{text-decoration:line-through;}

/* People → Safety & Medical: items with inline Edit forms */
.safety-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:4px 0;}
.safety-item{padding:9px 12px;background:var(--surface-2);border-radius:8px;font-size:13px;}
.safety-actions{display:flex;gap:6px;align-items:center;flex-shrink:0;}
.safety-edit{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 12px;margin:4px 0 8px;border:1px solid var(--sage-line);border-radius:8px;background:#fff;}
.safety-edit[hidden]{display:none;}
.safety-edit input[type=text],.safety-edit input[type=tel]{flex:1;min-width:130px;}
.safety-edit select{flex:0 1 140px;}
.safety-check{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:500;}
.safety-check input{width:auto;}
.safety-edit-actions{display:flex;gap:6px;}
.safety-row[hidden]{display:none;}

/* Groups → Add members checklist */
.bulk-add-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px;}
.bulk-add-toolbar input[type=search]{flex:1;min-width:180px;}
.bulk-add-list{max-height:320px;overflow-y:auto;border:1px solid var(--border-soft);border-radius:10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:2px;padding:6px;background:var(--surface-2);}
.bulk-add-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:7px;font-size:13.5px;font-weight:500;color:var(--text);cursor:pointer;}
.bulk-add-item:hover{background:#fff;}
.bulk-add-item[hidden]{display:none;}
.bulk-add-item input{width:auto;margin:0;}
.bulk-add-item:has(input:checked){background:var(--sage-soft);font-weight:700;}
.bulk-add-footer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end;margin-top:10px;}
.bulk-add-footer #selected-count{margin-right:auto;}

/* Top bars: title on the left, every button/help icon grouped on the right.
   Without this, space-between spreads 3+ items out and a lone button ends
   up floating in the middle of the bar. */
.topbar{gap:10px;}
.topbar > h1:first-child{margin-right:auto;}

/* Check-In: one-click list */
.ci-roster-note{max-width:760px;margin:0 auto 14px;padding:11px 15px;border-radius:10px;background:var(--sage-soft);border:1px solid var(--sage-line);font-size:13.5px;color:#19362a;}
.ci-roster-note a{font-weight:700;margin-left:6px;}
.ci-family{border:1px solid var(--border-soft);border-radius:12px;padding:10px 12px;margin-bottom:12px;}
.ci-family[hidden],.ci-row[hidden]{display:none;}
.ci-family-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:2px 2px 8px;border-bottom:1px solid var(--border-soft);margin-bottom:4px;}
.ci-row{display:flex;align-items:center;gap:12px;padding:10px 6px;border-bottom:1px solid var(--border-soft);}
.ci-row:last-child{border-bottom:0;}
.card > .ci-row{border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;margin-bottom:8px;}
.ci-row.done{background:var(--sage-soft);border-radius:10px;}
.ci-who{flex:1;min-width:0;}
.ci-name{font-weight:700;font-size:15px;}
.ci-age{font-weight:500;font-size:12.5px;color:var(--text-3);}
.ci-status{font-size:12.5px;color:var(--text-3);margin-top:2px;}
.ci-row.done .ci-status{color:var(--sage);font-weight:700;}
.ci-code{font-size:15px;color:var(--accent);letter-spacing:.04em;}
.ci-medical{flex-shrink:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ci-btn{flex-shrink:0;min-width:110px;justify-content:center;}
.ci-btn:disabled{background:transparent;color:var(--sage);border:1px solid var(--sage-line);cursor:default;box-shadow:none;}
.ci-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:14px;background:#10251d;color:#fff;padding:12px 18px;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.25);font-size:14px;font-weight:600;max-width:calc(100% - 32px);}
.ci-toast[hidden]{display:none;}
.ci-toast a{color:#e1c184;}
.ci-toast button{background:none;border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:8px;padding:5px 12px;font-weight:700;cursor:pointer;}
.ci-toast [hidden]{display:none;}
@media(max-width:640px){.ci-row{flex-wrap:wrap}.ci-medical{order:3;max-width:none}.ci-btn{min-width:96px}}

/* Name tags: every allergy / medical note, severe ones highlighted */
.tag-flag{display:flex;align-items:flex-start;gap:8px;background:var(--amber-soft);border:1px solid var(--amber-line);border-radius:9px;padding:9px 12px;text-align:left;margin-top:8px;font-size:12.5px;color:oklch(42% 0.1 60);}
.tag-flag .icon{width:16px;height:16px;flex-shrink:0;margin-top:1px;color:var(--amber);}
.tag-flag.severe{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger);}
.tag-flag.severe .icon{color:var(--danger);}
.tag-flag-notes{font-weight:500;font-size:11.5px;margin-top:2px;}
@media print{.tag-flag,.tag-flag.severe{border-width:2px;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Phones: the title takes its own line, and the buttons under it stay on
   the right (matching desktop) instead of dropping to the left edge. */
@media (max-width: 900px){
  .topbar > h1:first-child{margin-right:0;}
  .topbar > h1:first-child + *{margin-left:auto;}
}

/* Phones: check-in rows as a grid — avatar, name, button on one line, any
   allergy badge on its own line underneath (full width, not squeezed). */
@media (max-width: 640px){
  .ci-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;column-gap:12px;row-gap:6px;align-items:center;}
  .ci-row > .avatar{grid-column:1;grid-row:1;}
  .ci-who{grid-column:2;grid-row:1;}
  .ci-btn{grid-column:3;grid-row:1;min-width:0;padding-left:14px;padding-right:14px;}
  .ci-medical{grid-column:2 / 4;grid-row:2;justify-self:start;max-width:100%;white-space:normal;order:0;}
  .ci-family{padding:8px 10px;}
  .ci-family-head{flex-wrap:wrap;}
  .ci-toast{left:12px;right:12px;transform:none;justify-content:space-between;flex-wrap:wrap;bottom:14px;}
}
.ci-code{white-space:nowrap;}
@media (max-width: 640px){
  .ci-row.done .ci-btn{display:none;}
  .ci-row.done .ci-who{grid-column:2 / 4;}
}

/* Sign-up sheet header: which event it's for */
.linked-event{display:flex;align-items:flex-start;gap:8px;margin-top:8px;font-size:13.5px;color:var(--text-2);line-height:1.5;}
.linked-event .icon{width:16px;height:16px;color:var(--sage);flex-shrink:0;margin-top:2px;}
.linked-event.muted{color:var(--text-3);font-size:12.5px;}

/* Sign-up slot fields: each input sits in a <label class="slot-field">.
   On desktop the column headings label them; on phones (headings hidden)
   each field shows its own small label, with Item and Name on full lines. */
.slot-field{display:block;min-width:0;margin:0;}
.slot-field-label{display:none;}
.page-header .btn{white-space:nowrap;}
@media(max-width:900px){
  .slot-row{grid-template-columns:1fr 110px;row-gap:10px;}
  .slot-row .slot-field:nth-of-type(1),.slot-row .slot-field:nth-of-type(2),.slot-row .slot-field:nth-of-type(3){grid-column:1 / -1;}
  .slot-field-label{display:block;font-size:11px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;}
  .slot-actions{grid-column:1 / -1;justify-content:flex-end;}
}

/* Sign-up sheet: the shareable link, copyable and openable */
.share-link-box{background:var(--surface-2);border:1px solid var(--border-soft);padding:12px 14px;border-radius:10px;font-size:13px;}
.share-link-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.share-link-hint{color:var(--text-3);font-size:12.5px;}
.share-link-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.share-link-row input{flex:1;min-width:200px;font-family:ui-monospace,Menlo,monospace;font-size:13px;background:#fff;}
.share-link-row .btn{white-space:nowrap;}

/* Supplies request form */
.supplies-card{max-width:760px;}
.supply-head,.supply-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) 100px 40px;gap:8px;align-items:center;}
.supply-head{font-size:11px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;padding:14px 0 6px;border-bottom:1px solid var(--border-soft);margin-bottom:6px;}
.supply-row{padding:4px 0;}
.supply-field{display:block;min-width:0;margin:0;}
.supply-field select,.supply-field input{width:100%;min-width:0;}
.supply-field-label{display:none;}
.supply-remove{padding-left:0;padding-right:0;justify-content:center;}
@media(max-width:700px){
  .supply-head{display:none;}
  .supply-row{grid-template-columns:1fr 90px 40px;border:1px solid var(--border-soft);border-radius:10px;padding:10px;margin-bottom:8px;}
  .supply-row .supply-field:nth-of-type(1),.supply-row .supply-field:nth-of-type(2){grid-column:1 / -1;}
  .supply-field-label{display:block;font-size:11px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;}
  .supply-remove{align-self:end;}
}

/* Supply category list */
.category-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-soft);flex-wrap:wrap;}
.category-rename{display:flex;gap:8px;flex:1;min-width:220px;}
.category-rename input{flex:1;min-width:0;}
.category-uses{font-size:12px;color:var(--text-3);min-width:80px;}
.category-add{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.category-add input{flex:1;min-width:200px;}

/* Public sign-up page */
.public-slot{border:1px solid var(--border-soft);border-radius:10px;padding:14px 16px;margin-bottom:12px;}
.public-slot.full{opacity:.75;}
.public-slot-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.public-slot-cat{font-size:11px;font-weight:800;color:var(--sage);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;}
.public-slot-date{font-size:12.5px;color:var(--text-3);margin-top:2px;}
.public-slot-already{font-size:12.5px;color:var(--text-2);margin-top:8px;}
.public-slot-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.public-slot-form input{min-width:0;}
.public-slot .badge{white-space:nowrap;flex-shrink:0;}
.supply-head{margin-top:6px;}
@media(max-width:700px){#supply-rows{margin-top:14px;}}

/* Sign-up sheet: requested supplies table + sign-ups list/form */
.supply-table td,.supply-table th{padding:8px 10px;}
.request-add{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.request-add select,.request-add input[type=text]{flex:1 1 160px;min-width:0;}
.signup-add{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;align-items:end;}
.signup-add .slot-field[hidden]{display:none;}
.signup-label{display:block;font-size:11px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;}
.signup-add input,.signup-add select{width:100%;min-width:0;}
.signup-add input[readonly]{background:var(--surface-2);color:var(--text-2);}
.signup-add-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;}
@media(max-width:700px){
  .signup-add{grid-template-columns:1fr 1fr;}
  .signup-add .slot-field:first-child{grid-column:1 / -1;}
  .supply-table{font-size:13px;}
  .supply-table td,.supply-table th{padding:7px 6px;}
}
.public-qty{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-2);}
.public-qty select{width:auto;}

/* Phones: each requested supply / sign-up becomes a small stacked card
   instead of a table wider than the screen. */
@media(max-width:700px){
  .supply-table,.supply-table tbody{display:block;}
  .supply-table tr:first-child{display:none;}
  .supply-table tr{display:grid;grid-template-columns:1fr auto;column-gap:10px;row-gap:2px;padding:10px 2px;border-bottom:1px solid var(--border-soft);}
  .supply-table td{display:block;padding:0 !important;border:0 !important;text-align:left !important;}
  .supply-table td:nth-child(2){grid-column:1;grid-row:1;font-size:11px;font-weight:800;color:var(--sage);text-transform:uppercase;letter-spacing:.05em;}
  .supply-table td:nth-child(3){grid-column:1;grid-row:2;font-weight:700;font-size:14.5px;}
  .supply-table td:nth-child(1){font-size:12px;color:var(--text-3);}
  .supply-table td:last-child{grid-column:2;grid-row:2 / span 3;align-self:center;}
  /* Requested: date on row 3; Needed/Covered top-right */
  .supply-table.req td:nth-child(1){grid-column:1;grid-row:3;}
  .supply-table.req td:nth-child(4){display:none;}
  .supply-table.req td:nth-child(5){grid-column:2;grid-row:1;justify-self:end;}
  /* Sign-ups: who on row 3, date on row 4; quantity top-right */
  .supply-table.sig td:nth-child(4){grid-column:1;grid-row:3;font-size:13px;}
  .supply-table.sig td:nth-child(1){grid-column:1;grid-row:4;}
  .supply-table.sig td:nth-child(5){grid-column:2;grid-row:1;justify-self:end;font-size:13px;}
  .supply-table.sig td:nth-child(5)::before{content:'Qty ';font-weight:500;color:var(--text-3);}
}
@media(max-width:700px){.signup-add .slot-field:nth-child(3),.signup-add .slot-field:nth-child(4){grid-column:1 / -1;}}

/* Supplies requested: inline edit */
.supply-table tr[hidden]{display:none !important;}
.request-edit{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.5fr) 150px 90px auto;gap:8px;align-items:end;padding:10px;background:var(--surface-2);border:1px solid var(--sage-line);border-radius:10px;}
.request-edit label{display:block;min-width:0;margin:0;}
.request-edit select,.request-edit input{width:100%;min-width:0;}
.request-edit-actions{display:flex;gap:6px;}
.request-edit-note{grid-column:1 / -1;font-size:12px;color:var(--text-3);}
.supply-table td > .inline{display:inline;}
@media(max-width:700px){
  .supply-table tr.request-edit-row{display:block;padding:8px 0;}
  .supply-table tr.request-edit-row td{display:block;}
  .request-edit{grid-template-columns:1fr 1fr;}
  .request-edit label:nth-of-type(1),.request-edit label:nth-of-type(2){grid-column:1 / -1;}
  .request-edit-actions{grid-column:1 / -1;justify-content:flex-end;}
}
.signup-edit{grid-template-columns:minmax(0,1.3fr) minmax(0,1.4fr) minmax(0,1.2fr) 90px auto;}
.signup-edit-for{grid-column:1 / -1;font-size:13px;font-weight:700;color:#19362a;}
.signup-edit-for .signup-label{display:inline;margin-right:6px;}
.request-edit label[hidden]{display:none;}
@media(max-width:700px){
  .signup-edit{grid-template-columns:1fr 110px;}
  .signup-edit label{grid-column:1 / -1;}
  .signup-edit label:last-of-type{grid-column:auto;}
  .signup-edit .signup-edit-name{grid-column:1;}
}

/* Search: dashboard dropdown + results page */
.dash-search{position:relative;}
.dash-search input{width:100%;min-width:0;}
.dash-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:300px;z-index:50;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 34px rgba(16,37,29,.14);padding:6px;max-height:420px;overflow-y:auto;}
.dash-search-results[hidden]{display:none;}
.dash-search-head{font-size:10.5px;font-weight:800;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;padding:8px 10px 4px;}
.dash-search-results a{display:flex;flex-direction:column;padding:7px 10px;border-radius:8px;color:var(--text);}
.dash-search-results a:hover,.dash-search-results a.active{background:var(--sage-soft);color:var(--text);}
.dash-search-results a strong{font-size:13.5px;}
.dash-search-results a em{font-style:normal;font-size:11px;color:var(--text-3);}
.dash-search-results a small{font-size:12px;color:var(--text-3);}
.dash-search-results a.dash-search-all{font-size:12.5px;font-weight:700;color:var(--sage);border-top:1px solid var(--border-soft);margin-top:4px;border-radius:0 0 8px 8px;}
.dash-search-empty{padding:12px 10px;font-size:13px;color:var(--text-3);}
.search-page-form{display:flex;gap:10px;align-items:center;max-width:640px;}
.search-page-form .search-box{flex:1;}
.search-page-form .search-box input{width:100%;font-size:15px;}
.search-section-title{font-size:15px;margin-bottom:8px;}
.search-section-title span{color:var(--text-3);font-weight:500;}
.search-result{display:flex;align-items:center;gap:12px;padding:9px 6px;border-bottom:1px solid var(--border-soft);color:var(--text);}
.search-result:last-child{border-bottom:0;}
.search-result:hover{background:var(--surface-2);color:var(--text);}
.search-result-text{display:flex;flex-direction:column;min-width:0;}
.search-result-text small{font-size:12.5px;color:var(--text-3);}
.search-result-icon{width:34px;height:34px;border-radius:9px;background:var(--sage-soft);color:var(--sage);display:grid;place-items:center;font-weight:800;flex-shrink:0;}
@media(max-width:640px){.dash-search{width:100% !important;}.dash-search-results{min-width:0;}}
/* Keep the top bar (and the search dropdown inside it) above the page's cards. */
.topbar{position:relative;z-index:30;}
@media(max-width:640px){.dash-search-results{min-width:calc(100vw - 36px);}}

/* Check-In: compact layout — one pinned toolbar, slim rows, two columns on
   wide screens, so far more people fit on one screen. */
.ci-toolbar{max-width:1180px;margin:0 auto 12px;padding:10px 14px;display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;position:sticky;top:0;z-index:20;}
.ci-toolbar-event{display:flex;gap:8px;align-items:flex-end;flex:1 1 320px;min-width:0;}
.ci-toolbar-event .field{flex:1;min-width:0;}
.ci-toolbar-event label{font-size:11px;margin-bottom:3px;}
.ci-toolbar-event select{padding-top:7px;padding-bottom:7px;}
.ci-toolbar-search{flex:1 1 280px;padding:7px 11px;}
.ci-toolbar-search input{font-size:14.5px;width:100%;}
.ci-toolbar-note{flex-basis:100%;font-size:12px;color:var(--text-3);margin:0;}
.ci-roster-note{max-width:1180px;padding:8px 13px;margin-bottom:10px;}
.ci-list-card{max-width:1180px;margin:0 auto 12px;padding:12px 14px;}
.ci-list-title{font-size:14px;margin-bottom:8px;}
.ci-grid{display:grid;grid-template-columns:1fr;gap:6px 14px;}
@media(min-width:1100px){.ci-grid{grid-template-columns:1fr 1fr;align-items:start;}}
.ci-family{padding:6px 10px;margin-bottom:0;}
.ci-family-head{padding:2px 2px 5px;margin-bottom:2px;}
.ci-family-head > div{font-size:14px !important;}
.ci-row{gap:10px;padding:5px 4px;}
.ci-grid > .ci-row{border:1px solid var(--border-soft);border-radius:9px;padding:5px 10px;margin-bottom:0;}
.ci-row > .avatar{width:30px !important;height:30px !important;font-size:11px !important;}
.ci-name{font-size:14px;line-height:1.25;}
.ci-age{font-size:12px;}
.ci-status{font-size:11.5px;margin-top:0;line-height:1.3;}
.ci-status:empty{display:none;}
.ci-btn{min-width:92px;padding:6px 12px;font-size:13px;}
.ci-medical{font-size:10.5px;padding:2px 8px;}
@media(max-width:640px){
  .ci-toolbar{position:static;}
  .ci-toolbar-event,.ci-toolbar-search{flex-basis:100%;}
}
.ci-list-card[hidden]{display:none;}
.ci-age{white-space:nowrap;}
@media(max-width:640px){.ci-name{font-size:14.5px;}.ci-btn{min-width:84px;padding:6px 10px;}}
.all-covered-banner{background:var(--sage-soft);border:1px solid var(--sage-line);color:#19362a;font-weight:700;border-radius:10px;padding:12px 14px;margin-bottom:14px;font-size:14px;}

/* Category dropdown with "Other (add new…)" */
.choice-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.choice-field select,.choice-field .choice-new{width:100%;min-width:0;}
.choice-field .choice-new[hidden]{display:none;}
.profile-saved{background:var(--sage-soft);border:1px solid var(--sage-line);border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13.5px;color:#19362a;}
.profile-saved ul{margin:6px 0 0;padding-left:18px;}
.profile-links{font-size:13px;color:var(--text-2);margin-bottom:14px;word-break:break-all;}
.profile-links span{color:var(--text-3);word-break:normal;}

/* ===== Member portal (/<church>/…) ===== */
.portal-body{background:var(--bg);min-height:100vh;display:flex;flex-direction:column;}
.portal-shell{width:min(1040px,calc(100% - 32px));margin:0 auto;}
.portal-header{background:#10251d;color:#fff;box-shadow:0 6px 20px rgba(16,37,29,.13);}
.portal-header-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0;flex-wrap:wrap;}
.portal-brand{display:flex;align-items:center;gap:10px;color:#fff;font-family:'Lora',serif;font-size:20px;font-weight:700;}
.portal-brand:hover{color:#fff;}
.portal-brand svg{width:24px;height:24px;color:#e1c184;flex-shrink:0;}
.portal-header-actions{display:flex;align-items:center;gap:14px;font-size:13px;}
.portal-header-actions a{color:#cfe2d7;font-weight:600;}
.portal-header-actions a:hover{color:#fff;}
.portal-who{color:rgba(255,255,255,.75);}
.portal-staff-link{border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:5px 10px;}
.portal-nav{display:flex;gap:4px;overflow-x:auto;padding-bottom:10px;scrollbar-width:none;}
.portal-nav a{color:rgba(255,255,255,.78);font-size:14px;font-weight:600;padding:7px 12px;border-radius:8px;white-space:nowrap;}
.portal-nav a:hover{color:#fff;background:rgba(255,255,255,.08);}
.portal-nav a.active{color:#10251d;background:#e1c184;}
.portal-main{flex:1;padding:24px 0 30px;}
.portal-footer{font-size:12px;color:var(--text-3);padding:18px 0 24px;text-align:center;}
.portal-title{font-size:26px;margin-bottom:4px;}
.portal-sub{color:var(--text-2);font-size:14px;margin:0 0 16px;}
.portal-card{background:#fff;border:1px solid var(--border-soft);border-radius:14px;box-shadow:var(--shadow);padding:18px 20px;margin-bottom:14px;}
.portal-card h1{font-size:24px;margin-bottom:4px;}
.portal-card h2{font-size:17px;margin-bottom:10px;}
.portal-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.portal-narrow{max-width:480px;margin-left:auto;margin-right:auto;}
.portal-form{display:flex;flex-direction:column;gap:12px;}
.portal-form label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:700;color:var(--text-2);}
.portal-form input,.portal-form select,.portal-form textarea{width:100%;font-weight:400;}
.portal-form .btn{justify-content:center;}
.portal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;}
.portal-form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;}
.portal-check{flex-direction:row !important;align-items:center;gap:8px !important;font-weight:600 !important;}
.portal-check input{width:auto;}
.portal-alert{border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:14px;font-weight:600;background:var(--surface-2);border:1px solid var(--border);}
.portal-alert.ok{background:var(--sage-soft);border-color:var(--sage-line);color:#19362a;}
.portal-alert.danger{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger);}
.portal-fine{font-size:12.5px;color:var(--text-3);font-weight:500;}
.portal-empty{color:var(--text-3);font-size:14px;margin:0;}
.portal-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:14px 0 18px;}
.portal-tile{background:#fff;border:1px solid var(--border-soft);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:3px;color:var(--text);box-shadow:var(--shadow);}
.portal-tile:hover{border-color:var(--sage-line);color:var(--text);}
.portal-tile span{font-size:12.5px;color:var(--text-3);}
.portal-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;align-items:start;}
.portal-day{padding:8px 0;border-bottom:1px solid var(--border-soft);}
.portal-day:last-of-type{border-bottom:0;}
.portal-day-label{font-size:12px;font-weight:800;color:var(--sage);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;}
.portal-item{padding:4px 0;font-size:14px;}
.portal-item.cancelled .portal-item-title{text-decoration:line-through;opacity:.6;}
.portal-time{display:inline-block;min-width:118px;color:var(--text-2);font-weight:600;font-size:13px;}
.portal-item-title{font-weight:700;}
.portal-more{display:inline-block;margin-top:10px;font-weight:700;font-size:13px;}
.portal-row{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.portal-slot{border-top:1px solid var(--border-soft);padding:10px 0;}
.portal-slot.full{opacity:.75;}
.portal-cat{display:block;font-size:11px;font-weight:800;color:var(--sage);text-transform:uppercase;letter-spacing:.05em;}
.portal-inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px;}
.portal-inline-form input[type=text]{flex:1 1 200px;}
.portal-qty{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-2);}
.portal-qty select{width:auto;}
.portal-changes{margin:6px 0 10px;padding-left:18px;font-size:13px;color:var(--text-2);}
.portal-summary{cursor:pointer;font-weight:700;color:var(--sage);font-size:14px;}
.portal-search{width:100%;margin-bottom:12px;}
.portal-directory{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;}
.portal-dir-entry{border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;font-size:14px;}
.portal-dir-entry[hidden]{display:none;}
@media(max-width:700px){
  .portal-grid,.portal-form-grid{grid-template-columns:1fr;}
  .portal-who{display:none;}
  .portal-time{min-width:0;display:block;}
  .portal-title{font-size:22px;}
}
.portal-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.portal-stats div{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;}
.portal-stats strong{font-family:'Lora',serif;font-size:22px;}
.portal-stats span{font-size:12px;color:var(--text-3);}
@media(max-width:640px){.portal-stats{grid-template-columns:1fr 1fr;}}
.update-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.update-table td,.update-table th{padding:6px 8px;font-size:13px;}
.portal-status-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}.portal-status-line > div{flex-basis:100%;}
@media(max-width:700px){.portal-tiles{grid-template-columns:1fr 1fr;gap:8px;}.portal-tile{padding:11px 12px;}.portal-tile span{font-size:11.5px;}}
.giving-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px;}
.giving-summary div{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;}
.giving-summary div:first-child{background:var(--sage-soft);border-color:var(--sage-line);}
.giving-summary strong{font-family:'Lora',serif;font-size:20px;}
.giving-summary span{font-size:12px;color:var(--text-3);}
.portal-gifts{width:100%;border-collapse:collapse;font-size:14px;}
.portal-gifts th,.portal-gifts td{padding:8px 6px;border-bottom:1px solid var(--border-soft);text-align:left;}
.portal-gifts th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);}
@media(max-width:600px){.portal-gifts{font-size:13px;}.portal-gifts th,.portal-gifts td{padding:7px 4px;}}
@media(max-width:600px){.giving-summary{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;}.giving-summary strong{font-size:17px;}}

/* ===== Portal: online giving ===== */
.give-amount{display:flex;align-items:center;border:1px solid var(--border);border-radius:10px;background:#fff;padding:0 12px;}
.give-amount span{font-size:22px;font-weight:700;color:var(--text-3);}
.give-amount input{border:0 !important;box-shadow:none !important;font-size:24px;font-weight:700 !important;padding:10px 8px;background:transparent;}
.give-amount:focus-within{border-color:var(--sage);box-shadow:0 0 0 3px var(--sage-soft);}
.give-quick{display:flex;gap:8px;flex-wrap:wrap;margin-top:-4px;}
.give-quick .btn{flex:1;min-width:60px;justify-content:center;}
.portal-form label.give-cover{flex-direction:row;align-items:flex-start;gap:10px;font-weight:600;font-size:13.5px;color:var(--text);background:var(--surface-2);border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;}
.portal-form label.give-cover input{width:auto;margin-top:2px;}
.give-total{font-size:15px;color:var(--text-2);text-align:right;}
.give-total strong{font-size:18px;color:var(--text);}
.give-thanks{text-align:center;}
.give-thanks-icon{width:52px;height:52px;border-radius:50%;background:var(--sage-soft);color:var(--sage);font-size:28px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:4px auto 10px;}
.give-thanks p{color:var(--text-2);}
.settings-connect-status{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
/* Portal: on phones the page menu wraps instead of running off the edge */
@media(max-width:700px){.portal-nav{flex-wrap:wrap;overflow-x:visible;gap:4px 2px;}.portal-nav a{font-size:13.5px;padding:6px 10px;}}
/* Portal home tiles: 3 across on wider screens so rows come out even */
@media(min-width:701px){.portal-tiles{grid-template-columns:repeat(3,1fr);}}

/* ===== Portal: announcements ===== */
.announce-card{margin-top:14px;}
.announce-card .portal-card-head .portal-more{margin-top:0;}
.announce-list{display:flex;flex-direction:column;}
.announce-item{display:block;padding:11px 0;border-top:1px solid var(--border-soft);color:var(--text);}
.announce-item:first-child{border-top:0;padding-top:4px;}
.announce-item:hover strong{color:var(--sage);}
.announce-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.announce-top strong{font-size:14.5px;}
.announce-date{margin-left:auto;font-size:12.5px;color:var(--text-3);font-weight:600;white-space:nowrap;}
.announce-preview{font-size:13.5px;color:var(--text-2);margin-top:3px;}
.portal-back{display:inline-block;font-weight:700;font-size:13px;margin-bottom:10px;}
.announce-full h1{font-size:22px;margin-bottom:2px;}
.announce-full .announce-date{margin:0 0 14px;}
.announce-body{white-space:pre-line;font-size:15px;line-height:1.6;color:var(--text);overflow-wrap:anywhere;}
@media(max-width:700px){.announce-top .announce-date{margin-left:0;width:100%;order:3;font-size:12px;}}
.portal-time{min-width:150px;margin-right:8px;}@media(max-width:700px){.portal-time{min-width:0;margin-right:0;}}
.supply-table tr.slot-past td{color:var(--text-3);}

/* ===== People: move to another family ===== */
.move-choice{display:flex;flex-direction:column;gap:8px;}
.move-option{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--border);border-radius:10px;cursor:pointer;background:var(--surface-2);}
.move-option input{width:auto;margin-top:3px;}
.move-option:has(input:checked){border-color:var(--sage);background:var(--sage-soft);}
.move-option small{display:block;font-size:12.5px;color:var(--text-3);font-weight:500;margin-top:2px;}
.move-panel{padding:4px 4px 10px 32px;}
.move-also{display:flex;flex-wrap:wrap;gap:8px 18px;}
.move-also label{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;}
.move-also input{width:auto;}
@media(max-width:700px){.move-panel{padding-left:4px;}}

/* ===== Dashboard: Coming Up (events & groups with sign-up coverage) ===== */
.coming-up-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.coming-up-table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:700;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap;}
.coming-up-table td{padding:10px;border-bottom:1px solid var(--border-soft);vertical-align:middle;}
.coming-up-table tr:last-child td{border-bottom:0;}
.coming-up-table .cu-when{white-space:nowrap;}
.coming-up-table .cu-when span{color:var(--text-3);font-weight:600;margin-left:6px;}
.coming-up-table .cu-name a{font-weight:700;color:var(--text);}
.coming-up-table .cu-name a:hover{color:var(--sage);}
.coming-up-table .cu-name{min-width:170px;}
.coming-up-table .cu-kind{margin-left:6px;font-size:10.5px;white-space:nowrap;}
.coming-up-table .cu-leader,.coming-up-table .cu-sheet{white-space:nowrap;}
.coming-up-table .cu-coverage{white-space:nowrap;}
.coming-up-table .cu-none{color:var(--text-3);}
.coming-up-table tr.is-cancelled .cu-name a,.coming-up-table tr.is-cancelled .cu-name{text-decoration:line-through;opacity:.65;}

@media(max-width:1100px){ /* MG-06: the sidebar leaves ~780px at 1024, so compact rows there too */
  .coming-up-table thead{display:none;}
  .coming-up-table,.coming-up-table tbody,.coming-up-table tr,.coming-up-table td{display:block;width:100%;}
  .coming-up-table tr{padding:10px 0;border-bottom:1px solid var(--border-soft);}
  .coming-up-table tr:last-child{border-bottom:0;}
  .coming-up-table td{padding:2px 0;border:0;}
  .coming-up-table td[data-label]{display:flex;gap:8px;font-size:13px;}
  .coming-up-table td[data-label]::before{content:attr(data-label);min-width:104px;color:var(--text-3);font-size:12px;font-weight:600;}
  .coming-up-table .cu-name{font-size:14.5px;margin:2px 0 4px;}
  .coming-up-table td.cu-empty{display:none;}
}
/* Dashboard: recent members (left) and visitors (right) */
.recent-split{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.recent-split .card{margin-bottom:0;}
@media(max-width:1100px){.recent-split{grid-template-columns:1fr;}}

/* ============================================================
   MyGathering member portal redesign — preview v4
   Church-branded member experience, aligned with the approved
   MyGathering workspace palette. Production behavior is unchanged.
   ============================================================ */
.portal-body{
  --portal-ink:#173328;--portal-muted:#677e73;--portal-line:#dce8e1;--portal-soft:#f5f9f7;
  --portal-green:#1f6b4b;--portal-green-2:#2f8b63;--portal-sky:#4d7899;--portal-gold:#b98535;
  --portal-plum:#765b77;--portal-coral:#ad6557;
  background:
    radial-gradient(circle at 4% 8%,rgba(77,120,153,.055),transparent 23%),
    radial-gradient(circle at 95% 22%,rgba(185,133,53,.055),transparent 21%),
    linear-gradient(145deg,#f5f8f6 0%,#f7f9f8 52%,#f8f5f0 100%);
  color:var(--portal-ink);min-height:100vh;display:flex;flex-direction:column;
}
.portal-accent-bar{height:4px;background:linear-gradient(90deg,#2f8b63 0 36%,#4d7899 36% 58%,#b98535 58% 79%,#765b77 79% 100%);}
.portal-shell{width:min(1180px,calc(100% - 40px));margin:0 auto;}
.portal-header{background:linear-gradient(145deg,#10251d 0%,#123127 58%,#173b31 100%);color:#fff;box-shadow:0 10px 34px rgba(16,37,29,.16);position:relative;z-index:20;}
.portal-header:after{content:'';position:absolute;right:4%;top:0;width:260px;height:100%;pointer-events:none;background:radial-gradient(circle,rgba(77,120,153,.22),transparent 68%);opacity:.75;}
.portal-header-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 0 15px;flex-wrap:wrap;}
.portal-brand{display:flex;align-items:center;gap:12px;color:#fff;min-width:0;}
.portal-brand:hover{color:#fff;}
.portal-brand-mark{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;flex:none;background:linear-gradient(135deg,#2f8b63,#4d7899 68%,#b98535 125%);box-shadow:0 8px 22px rgba(0,0,0,.2),inset 0 0 0 1px rgba(255,255,255,.12);}
.portal-brand-mark svg{width:23px;height:23px;color:#fff;}
.portal-brand-copy{display:flex;flex-direction:column;min-width:0;line-height:1.15;}
.portal-brand-copy strong{font-family:'Lora',Georgia,serif;font-size:20px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:430px;}
.portal-brand-copy small{font-size:9.5px;color:#9eb7aa;text-transform:uppercase;letter-spacing:.095em;font-weight:800;margin-top:5px;}
.portal-header-actions{display:flex;align-items:center;gap:10px;font-size:12px;position:relative;z-index:1;}
.portal-user-chip{display:flex;align-items:center;gap:9px;padding:6px 10px 6px 7px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);}
.portal-user-avatar{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,#4d7899,#765b77);font-size:12px;font-weight:900;color:#fff;}
.portal-user-chip>span:last-child{display:flex;flex-direction:column;line-height:1.1;}
.portal-user-chip small{font-size:8.5px;color:#9db1a7;text-transform:uppercase;letter-spacing:.06em;font-weight:800;}
.portal-user-chip strong{font-size:11px;color:#fff;margin-top:3px;}
.portal-header-link{color:#c8dbd1;font-weight:700;padding:7px 5px;}.portal-header-link:hover{color:#fff;}
.portal-staff-link{color:#dbe9e2!important;border:1px solid rgba(255,255,255,.19);border-radius:10px;padding:8px 11px!important;background:rgba(255,255,255,.04);font-size:11px;font-weight:700;}
.portal-staff-link:hover{background:rgba(255,255,255,.09);color:#fff!important;}
.portal-nav-wrap{position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.065);background:rgba(0,0,0,.055);}
.portal-nav{display:flex;gap:3px;overflow-x:auto;padding:8px 0 10px;scrollbar-width:none;}
.portal-nav::-webkit-scrollbar{display:none;}
.portal-nav a{display:flex;align-items:center;gap:7px;color:#b9cec3;font-size:12px;font-weight:700;padding:8px 11px;border-radius:9px;white-space:nowrap;transition:.15s ease;border:1px solid transparent;}
.portal-nav a svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;opacity:.88;}
.portal-nav a:hover{color:#fff;background:rgba(255,255,255,.075);}
.portal-nav a.active{color:#fff;background:linear-gradient(135deg,rgba(47,139,99,.38),rgba(77,120,153,.25));border-color:rgba(255,255,255,.085);box-shadow:inset 0 -2px 0 #d7b873;}
.portal-main{flex:1;padding:30px 0 46px;}
.portal-footer{margin-top:auto;border-top:1px solid #e0e8e4;background:rgba(255,255,255,.72);backdrop-filter:blur(10px);}
.portal-footer-inner{padding:22px 0 26px;display:flex;justify-content:space-between;align-items:center;gap:18px;color:#7c8f86;font-size:10.5px;}
.portal-footer-inner>div:first-child{display:flex;flex-direction:column;gap:3px}.portal-footer-inner strong{color:#536d60;}.portal-footer-inner span{color:#8a9992;}

.portal-title{font-size:31px;letter-spacing:-.035em;color:#173328;margin-bottom:5px;}
.portal-sub{color:#687f74;font-size:13.5px;line-height:1.55;margin:0 0 19px;max-width:760px;}
.portal-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:19px;}
.portal-eyebrow,.portal-section-kicker{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.11em;font-weight:900;color:#6b8879;margin-bottom:6px;}
.portal-section-kicker{font-size:8.5px;margin-bottom:4px;}

.portal-card{background:rgba(255,255,255,.96);border:1px solid #e1eae5;border-radius:18px;box-shadow:0 1px 2px rgba(16,37,29,.025),0 12px 34px rgba(16,37,29,.05);padding:21px 22px;margin-bottom:16px;overflow:hidden;}
.portal-card h1{font-size:28px;letter-spacing:-.03em;margin-bottom:5px;}.portal-card h2{font-size:18px;letter-spacing:-.02em;margin-bottom:11px;}.portal-card h3{font-size:15px;}
.portal-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:8px;}
.portal-card-head h2{margin-bottom:0;}.portal-card-featured{position:relative;}.portal-card-featured:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(#2f8b63,#4d7899);}
.portal-narrow{max-width:560px;margin-left:auto;margin-right:auto;}
.portal-more{display:inline-flex;align-items:center;gap:5px;margin-top:0;font-weight:800;font-size:11px;color:#48725f;padding:6px 8px;border-radius:8px;}.portal-more:hover{background:#f0f6f3;color:#1f6b4b;}
.portal-fine{font-size:11.5px;color:#82938b;font-weight:500;line-height:1.5;}.portal-empty{color:#82938b;font-size:13px;line-height:1.55;margin:8px 0;}
.portal-back{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:11px;margin-bottom:13px;color:#577467;}

.portal-welcome{position:relative;min-height:250px;border-radius:24px;padding:31px 34px;margin-bottom:18px;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,.7fr);align-items:center;background:
  radial-gradient(circle at 90% 20%,rgba(77,120,153,.22),transparent 31%),
  radial-gradient(circle at 80% 105%,rgba(185,133,53,.18),transparent 35%),
  linear-gradient(135deg,#143127 0%,#1b4b3a 58%,#1d5341 100%);box-shadow:0 18px 42px rgba(16,37,29,.14);}
.portal-welcome:before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(to right,#000,transparent 75%);}
.portal-welcome-copy{position:relative;z-index:1;max-width:690px;}.portal-welcome .portal-eyebrow{color:#a9cbbb;}.portal-welcome h1{font-family:'Lora',serif;color:#fff;font-size:38px;line-height:1.06;letter-spacing:-.045em;margin:0 0 11px;}.portal-welcome p{color:#c3d7cd;font-size:13.5px;line-height:1.65;max-width:620px;margin:0;}.portal-welcome-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px;}.portal-welcome .btn{background:#fff;color:#173328;box-shadow:none;}.portal-welcome .btn:hover{background:#edf4f0;color:#173328;}.portal-welcome .btn.secondary{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:#fff;}.portal-welcome .btn.secondary:hover{background:rgba(255,255,255,.11);}
.portal-welcome-art{position:relative;min-height:190px;display:grid;place-items:center;}.portal-welcome-mark{position:relative;z-index:3;width:92px;height:92px;border-radius:30px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(47,139,99,.96),rgba(77,120,153,.92) 65%,rgba(185,133,53,.84) 125%);color:#fff;box-shadow:0 20px 46px rgba(0,0,0,.22),inset 0 0 0 1px rgba(255,255,255,.16);transform:rotate(-3deg);}.portal-welcome-mark svg{width:48px;height:48px;}.portal-orbit{position:absolute;border:1px solid rgba(255,255,255,.15);border-radius:50%;}.orbit-one{width:180px;height:180px;}.orbit-two{width:240px;height:240px;border-color:rgba(215,184,115,.13);}

.portal-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-bottom:18px;}
.portal-quick-card{min-height:94px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px;border-radius:16px;background:#fff;border:1px solid #e3ebe7;box-shadow:0 7px 22px rgba(16,37,29,.04);color:#173328;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;}.portal-quick-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(16,37,29,.075);color:#173328;}.portal-quick-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;}.portal-quick-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}.portal-quick-card>span:nth-child(2){display:flex;flex-direction:column;min-width:0;}.portal-quick-card strong{font-size:12.5px;color:#244338;}.portal-quick-card small{font-size:10.5px;line-height:1.35;color:#82938b;margin-top:3px;}.portal-quick-card>b{font-size:16px;color:#9aaba3;font-weight:500;}.tone-sage .portal-quick-icon{background:#edf6f1;color:#347657}.tone-sage:hover{border-color:#cee3d7}.tone-sky .portal-quick-icon{background:#edf4f8;color:#4d7899}.tone-sky:hover{border-color:#cfe0e9}.tone-gold .portal-quick-icon{background:#fbf3e5;color:#9f7027}.tone-gold:hover{border-color:#ead6ad}.tone-plum .portal-quick-icon{background:#f5eff6;color:#765b77}.tone-plum:hover{border-color:#dfcfe1}.tone-coral .portal-quick-icon{background:#fbefec;color:#ad6557}.tone-coral:hover{border-color:#ebd0ca}
.portal-home-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr);gap:15px;align-items:start;}.portal-home-grid .portal-signup-summary{grid-column:2;}.portal-home-grid .portal-upcoming-card{grid-column:2;grid-row:1;}.portal-home-grid .announce-card{grid-row:1 / span 2;min-height:100%;}

.announce-list{display:flex;flex-direction:column;}.announce-item{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 3px;border-top:1px solid #edf1ef;color:#173328;}.announce-item:first-child{border-top:0;}.announce-item:hover{color:#173328;background:linear-gradient(90deg,rgba(237,246,241,.72),transparent);}.announce-dot{width:7px;height:7px;border-radius:50%;background:#d4ded9;}.announce-dot.new{background:#3f8464;box-shadow:0 0 0 4px #edf6f1;}.announce-copy{min-width:0;}.announce-top{display:flex;align-items:center;gap:7px;min-width:0;}.announce-top strong{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.announce-date{margin-left:auto;color:#93a29a;font-size:9.5px;font-weight:700;white-space:nowrap;}.announce-preview{font-size:11.5px;color:#71877c;margin-top:4px;line-height:1.45;}.announce-arrow{color:#a3b1aa;font-size:15px;}.announce-full .announce-date{margin:0 0 18px;display:block;}.announce-body{white-space:pre-line;line-height:1.75;color:#405b4e;font-size:14px;}

.portal-day{padding:10px 0;border-bottom:1px solid #edf1ef;}.portal-day:last-of-type{border-bottom:0;}.portal-day-label{font-size:9.5px;font-weight:900;color:#4c7965;text-transform:uppercase;letter-spacing:.075em;margin-bottom:6px;}.portal-item{padding:5px 0;font-size:13px;}.portal-item.cancelled .portal-item-title{text-decoration:line-through;opacity:.62;}.portal-time{display:inline-block;min-width:116px;color:#74897f;font-weight:700;font-size:10.5px;}.portal-item-title{font-weight:800;color:#2d493c;}.portal-item-modern{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 0;}.portal-item-modern .portal-time{min-width:0;}.portal-commitment{display:flex;gap:10px;align-items:flex-start;padding:9px 0;border-top:1px solid #edf1ef;}.portal-commitment:first-of-type{border-top:0;}.portal-commitment-check{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;flex:none;background:#edf6f1;color:#347657;font-size:11px;font-weight:900;}.portal-commitment>span:last-child{display:flex;flex-direction:column;gap:2px;}.portal-commitment strong{font-size:11.5px;color:#2f4b3e;}.portal-commitment small{font-size:9.8px;color:#899a91;}

.portal-form{display:flex;flex-direction:column;gap:14px;}.portal-form label{display:flex;flex-direction:column;gap:6px;font-size:11px;font-weight:800;color:#587064;letter-spacing:.01em;}.portal-form input,.portal-form select,.portal-form textarea{width:100%;font-weight:500;min-height:42px;border-radius:11px;border-color:#d9e4de;padding:10px 12px;}.portal-form textarea{min-height:135px;}.portal-form input:focus,.portal-form select:focus,.portal-form textarea:focus{border-color:#6fa68a;box-shadow:0 0 0 3px rgba(31,107,75,.09);}.portal-form .btn{justify-content:center;}.portal-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 15px;margin-top:14px;}.portal-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;padding-top:3px;}.portal-check{flex-direction:row!important;align-items:flex-start;gap:9px!important;font-weight:700!important;color:#3e5b4d!important;}.portal-check input{width:auto;min-height:0;margin-top:2px;accent-color:#2f8b63;}.portal-summary{cursor:pointer;font-weight:800;color:#356e54;font-size:12px;padding:8px 0;}.portal-summary::marker{color:#7fa894;}
.portal-alert{border-radius:13px;padding:12px 14px;margin-bottom:16px;font-size:12px;font-weight:700;background:#f5f7f6;border:1px solid #dce5e0;color:#50675c;box-shadow:0 4px 15px rgba(16,37,29,.025);}.portal-alert.ok{background:linear-gradient(135deg,#edf7f1,#f8fcfa);border-color:#cbe3d5;color:#285f47;}.portal-alert.danger{background:linear-gradient(135deg,#fff0ef,#fff8f7);border-color:#efc8c5;color:#9b3f38;}

.portal-search{width:100%;margin-bottom:16px;min-height:44px;padding-left:14px;border-radius:12px;background:#fbfcfb;}.portal-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;}.portal-dir-entry{position:relative;border:1px solid #e1e9e5;border-radius:15px;padding:15px 16px;font-size:12.5px;background:linear-gradient(145deg,#fff,#fbfcfb);min-height:112px;box-shadow:0 4px 15px rgba(16,37,29,.025);}.portal-dir-entry:before{content:'';display:block;width:29px;height:4px;border-radius:99px;background:linear-gradient(90deg,#2f8b63,#4d7899);margin-bottom:10px;}.portal-dir-entry strong{font-family:'Lora',serif;font-size:15px;color:#27463a;}.portal-dir-entry .portal-fine{margin-top:3px;}.portal-dir-entry a{color:#4d7899;font-weight:700;}.portal-dir-entry[hidden]{display:none;}

.portal-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}.portal-slot{border-top:1px solid #e8efeb;padding:14px 0;}.portal-slot:first-of-type{border-top:0;}.portal-slot.full{opacity:.7;}.portal-cat{display:block;font-size:8.5px;font-weight:900;color:#4b7b65;text-transform:uppercase;letter-spacing:.075em;margin-bottom:3px;}.portal-inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:11px;padding:10px;border-radius:11px;background:#f7faf8;border:1px solid #e5ede9;}.portal-inline-form input[type=text]{flex:1 1 210px;}.portal-qty{display:flex;align-items:center!important;flex-direction:row!important;gap:7px!important;font-size:10.5px!important;font-weight:800!important;color:#61786d!important;}.portal-qty select{width:auto;min-height:34px;padding:6px 30px 6px 9px;}.portal-changes{margin:8px 0 11px;padding:11px 13px 11px 28px;font-size:11.5px;color:#6f6351;background:#fbf5ea;border:1px solid #ecd9b9;border-radius:11px;line-height:1.55;}

.portal-gifts{width:100%;border-collapse:collapse;font-size:12px;}.portal-gifts th,.portal-gifts td{padding:11px 8px;border-bottom:1px solid #edf1ef;text-align:left;}.portal-gifts th{font-size:9.5px;text-transform:uppercase;letter-spacing:.065em;color:#82938b;background:#fbfcfb;}.giving-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px;margin-top:15px;}.giving-summary>div{display:flex;flex-direction:column;padding:14px;border:1px solid #e1e9e5;border-radius:13px;background:#f8fbf9;}.giving-summary>div:nth-child(2){background:#edf4f8;border-color:#cfe0e9}.giving-summary>div:nth-child(3){background:#fbf3e5;border-color:#ead6ad}.giving-summary>div:nth-child(4){background:#f5eff6;border-color:#dfcfe1}.giving-summary strong{font-family:'Lora',serif;font-size:20px;color:#214336}.giving-summary span{font-size:9.5px;color:#7f9188;margin-top:4px;font-weight:700;}
.give-amount{display:flex;align-items:stretch}.give-amount>span{display:flex;align-items:center;padding:0 12px;border:1px solid #d7e2dc;border-right:0;border-radius:11px 0 0 11px;background:#f6f9f7;color:#638073;font-weight:800}.give-amount input{border-radius:0 11px 11px 0;font-size:20px;font-family:'Lora',serif;font-weight:700;}.give-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.give-quick .btn{justify-content:center}.portal-form label.give-cover{flex-direction:row;align-items:flex-start;gap:10px;font-weight:700;font-size:11.5px;color:#355244;background:#f5f9f7;border:1px solid #dfe9e4;border-radius:12px;padding:12px}.portal-form label.give-cover input{width:auto;min-height:0;margin-top:2px;accent-color:#2f8b63}.give-total{padding:11px 13px;border-radius:11px;background:#edf6f1;color:#356a51;font-size:12px;}.give-thanks{text-align:center;padding:35px 28px}.give-thanks-icon{width:54px;height:54px;margin:0 auto 14px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#2f8b63,#4d7899);color:#fff;font-size:22px;font-weight:900;box-shadow:0 12px 28px rgba(31,107,75,.18)}

/* Portal sign-in becomes a branded welcome screen instead of a plain form card. */
.portal-body:not(:has(.portal-nav)) .portal-main{display:grid;place-items:center;padding-top:46px;padding-bottom:58px}.portal-login-shell{display:grid;grid-template-columns:1.05fr .95fr;max-width:900px;margin:0 auto;border-radius:23px;overflow:hidden;background:#fff;border:1px solid #e0e9e4;box-shadow:0 22px 58px rgba(16,37,29,.11)}.portal-login-brand{padding:36px 34px;background:radial-gradient(circle at 90% 15%,rgba(77,120,153,.22),transparent 32%),linear-gradient(145deg,#143127,#1e5742);color:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:430px}.portal-login-brand h1{font-size:34px;line-height:1.08;letter-spacing:-.04em;margin:12px 0}.portal-login-brand p{color:#c7d9d0;line-height:1.65;font-size:12.5px;max-width:390px}.portal-login-points{display:grid;gap:10px;margin-top:24px}.portal-login-point{display:flex;align-items:center;gap:9px;color:#dce8e2;font-size:11px;font-weight:700}.portal-login-point i{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.09);font-style:normal;color:#d7b873}.portal-login-form{padding:35px 34px;display:flex;flex-direction:column;justify-content:center}.portal-login-form h2{font-size:24px;margin-bottom:5px}.portal-login-form .portal-sub{margin-bottom:20px}.portal-login-form .portal-form{gap:13px}.portal-login-form .btn{min-height:42px}.portal-login-help{margin-top:15px;padding-top:14px;border-top:1px solid #edf1ef;color:#87978f;font-size:10.5px;line-height:1.55}

/* Calendar page timeline */
.portal-calendar-card .portal-day{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;padding:16px 0}.portal-calendar-card .portal-day-label{margin:2px 0 0;color:#426d58}.portal-calendar-card .portal-item{position:relative;padding:2px 0 13px 20px}.portal-calendar-card .portal-item:before{content:'';position:absolute;left:1px;top:8px;width:7px;height:7px;border-radius:50%;background:#4d7899;box-shadow:0 0 0 4px #edf4f8}.portal-calendar-card .portal-item:after{content:'';position:absolute;left:4px;top:16px;bottom:-3px;width:1px;background:#dfe7e3}.portal-calendar-card .portal-item:last-child:after{display:none}.portal-calendar-card .portal-time{display:block;min-width:0;margin:0 0 2px;font-size:9.5px}.portal-calendar-card .portal-item-title{font-size:12.5px}.portal-calendar-card .portal-fine{margin-top:2px}

.portal-preview-switcher{position:fixed;right:16px;bottom:16px;z-index:2000;max-width:520px;display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:8px 9px;border-radius:13px;background:rgba(16,37,29,.95);box-shadow:0 12px 30px rgba(0,0,0,.18);backdrop-filter:blur(12px)}.portal-preview-switcher strong{font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;color:#d4b36e;margin:0 5px}.portal-preview-switcher a{font-size:9.5px;font-weight:800;color:#c9d9d1;padding:5px 7px;border-radius:7px}.portal-preview-switcher a:hover{background:rgba(255,255,255,.08);color:#fff}

@media(max-width:980px){.portal-shell{width:min(100% - 30px,920px)}.portal-welcome{grid-template-columns:1fr minmax(180px,.45fr)}.portal-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-home-grid{grid-template-columns:1fr}.portal-home-grid .announce-card,.portal-home-grid .portal-upcoming-card,.portal-home-grid .portal-signup-summary{grid-column:auto;grid-row:auto}.portal-directory{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.portal-shell{width:min(100% - 24px,720px)}.portal-header-inner{padding:14px 0 12px}.portal-brand-mark{width:36px;height:36px;border-radius:11px}.portal-brand-copy strong{font-size:16px;max-width:230px}.portal-brand-copy small{font-size:8px}.portal-user-chip{display:none}.portal-header-link{font-size:10.5px}.portal-staff-link{font-size:9.5px;padding:6px 8px!important}.portal-nav{gap:2px;padding:7px 0}.portal-nav a{font-size:10.5px;padding:7px 9px}.portal-nav a svg{width:14px;height:14px}.portal-main{padding:20px 0 34px}.portal-welcome{grid-template-columns:1fr;min-height:0;padding:25px 23px}.portal-welcome h1{font-size:31px}.portal-welcome-art{display:none}.portal-quick-grid{grid-template-columns:1fr 1fr}.portal-quick-card{min-height:84px;padding:12px;grid-template-columns:36px minmax(0,1fr) auto}.portal-quick-icon{width:36px;height:36px;border-radius:10px}.portal-title{font-size:26px}.portal-form-grid{grid-template-columns:1fr}.portal-row{flex-wrap:wrap}.portal-directory{grid-template-columns:1fr}.portal-calendar-card .portal-day{grid-template-columns:1fr;gap:5px}.portal-card{padding:18px 17px;border-radius:16px}.portal-login-shell{grid-template-columns:1fr;max-width:560px}.portal-login-brand{min-height:0;padding:25px 24px}.portal-login-brand h1{font-size:28px}.portal-login-points{grid-template-columns:1fr 1fr}.portal-login-form{padding:26px 24px}.portal-footer-inner{align-items:flex-start;flex-direction:column}.portal-preview-switcher{left:10px;right:10px;bottom:10px;justify-content:center}.portal-preview-switcher strong{width:100%;text-align:center;margin-bottom:2px}}
@media(max-width:520px){.portal-shell{width:min(100% - 18px,500px)}.portal-header-actions{gap:5px}.portal-staff-link{display:none}.portal-nav a span{display:none}.portal-nav a{padding:8px 10px}.portal-nav a svg{width:17px;height:17px}.portal-welcome{padding:23px 20px;border-radius:20px}.portal-welcome h1{font-size:28px}.portal-welcome-actions .btn{width:100%;justify-content:center}.portal-quick-grid{grid-template-columns:1fr}.portal-home-grid{gap:11px}.portal-login-points{grid-template-columns:1fr}.give-quick{grid-template-columns:1fr 1fr}.portal-gifts{font-size:10.5px}.portal-gifts th,.portal-gifts td{padding:8px 4px}.portal-preview-switcher a{font-size:8.5px;padding:4px 6px}}
/* Dashboard: recent members/visitors as columns */
.recent-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.recent-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:700;padding:6px 6px;border-bottom:1px solid var(--border);white-space:nowrap;}
.recent-table td{padding:8px 6px;border-bottom:1px solid var(--border-soft);vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.recent-table tr:last-child td{border-bottom:0;}
/* email takes whatever room is left and trims with …; the rest size to their content */
.recent-table td.rt-email{width:100%;max-width:0;}
.recent-table .rt-name a{color:var(--text);font-weight:700;font-size:13px;}
.recent-table .rt-email a,.recent-table .rt-phone a{color:var(--text-2);}
.recent-table .rt-email a:hover,.recent-table .rt-phone a:hover{color:var(--sage);}
.recent-table .rt-added,.recent-table .rt-age{color:var(--text-3);}
@media(max-width:520px){.recent-table th:nth-child(5),.recent-table td.rt-added{display:none;}}
/* Dashboard: five stat cards; the fifth (Absent) is coral */
.stat-grid.stat-grid-5{grid-template-columns:repeat(5,minmax(0,1fr));}
.stat-grid .stat-card:nth-child(5){background:linear-gradient(145deg,#fff 0%,var(--coral-soft) 100%);border-color:var(--coral-line);}
.stat-grid .stat-card:nth-child(5):before{background:linear-gradient(#ad6557,#cf8f82);}
.stat-note{font-size:11.5px;color:var(--text-3);margin-top:4px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.stat-note a{font-weight:600;}
@media(max-width:1180px){.stat-grid.stat-grid-5{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:700px){.stat-grid.stat-grid-5{grid-template-columns:repeat(2,minmax(0,1fr));}.stat-grid.stat-grid-5 .stat-card:nth-child(5){grid-column:1 / -1;}}
/* People: "who was present/absent" filter banner (from the Dashboard cards) */
.attendance-filter{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 14px;border-radius:12px;margin-bottom:16px;font-size:13.5px;border:1px solid var(--sage-line);background:var(--sage-soft);}
.attendance-filter.absent{border-color:var(--coral-line);background:var(--coral-soft);}
/* Dashboard stat cards open their tab: a full-card link sits under the ? tip and inline links */
.stat-card:has(.stat-link){cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;}
.stat-card:has(.stat-link):hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(16,37,29,.10);}
.stat-link{position:absolute;inset:0;z-index:1;border-radius:inherit;}
.stat-link:focus-visible{outline:2px solid var(--sage);outline-offset:2px;}
.stat-card .help-tip,.stat-card .stat-note a{position:relative;z-index:2;}
/* Giving: records on the left under the filter; Record a gift + Funds on the right */
.giving-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start;}
.giving-main .card,.giving-side .card{margin-bottom:0;}
.giving-side{display:flex;flex-direction:column;gap:20px;position:sticky;top:16px;}
.giving-records{overflow-x:auto;}
.giving-record-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;}
.giving-record-fields .field{margin:0;}
.giving-record-fields .field:nth-child(1),.giving-record-fields .field:nth-child(2),.giving-record-fields .field:nth-child(6){grid-column:1 / -1;}
.giving-record-fields label{font-size:12px;}
@media(max-width:1100px){.giving-layout{grid-template-columns:1fr;}.giving-side{position:static;}}
.giving-record-fields .field{min-width:0;}.giving-record-fields input,.giving-record-fields select{width:100%;min-width:0;box-sizing:border-box;}
.giving-side-card{overflow:hidden;}
.giving-side-card form,.giving-side-card form > input,.giving-side-card div > form{min-width:0;}
.giving-side-card input[type="text"]{min-width:0;width:100%;}
.giving-side-card .btn.small{padding-left:9px;padding-right:9px;flex:none;}
.giving-main,.giving-side{min-width:0;}
/* Prayer List: who needs prayer / submitted by */
.prayer-section{border:1px solid var(--border-soft);border-radius:12px;padding:12px 14px;margin-bottom:14px;background:var(--surface-2);}
.prayer-section-title{font-size:13px;font-weight:700;color:var(--text-2);margin-bottom:8px;}
.prayer-mode{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:10px;}
.prayer-mode label{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;}
.prayer-mode input{width:auto;}
.prayer-person-info{font-size:12.5px;color:var(--text-3);margin-top:6px;}
.prayer-contact{font-size:12.5px;color:var(--text-3);margin-top:4px;}
/* Portal: who is this prayer for? */
.portal-prayer-for{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border:1px solid #dce8e1;border-radius:13px;background:#f6faf8;}
.portal-prayer-for-title{font-size:11px;font-weight:800;color:#587064;}
.portal-prayer-choices{display:flex;gap:16px;flex-wrap:wrap;}
.portal-form .portal-prayer-choices label{flex-direction:row;align-items:center;gap:6px;font-size:13px;color:#173328;}
.portal-form .portal-prayer-choices input{width:auto;}
.portal-prayer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(max-width:520px){.portal-prayer-grid{grid-template-columns:1fr;}}
.portal-prayer-for[hidden],.portal-prayer-panel[hidden],.prayer-panel[hidden],.prayer-for[hidden],.prayer-for-other[hidden],.prayer-submitter-other[hidden]{display:none!important;}
/* Dashboard: Prayer Needs — one row per request; long text trims with … */
.prayer-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.prayer-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:700;padding:7px 8px;border-bottom:1px solid var(--border);white-space:nowrap;}
.prayer-table td{padding:9px 8px;border-bottom:1px solid var(--border-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;}
.prayer-table tr:last-child td{border-bottom:0;}
.prayer-table td.pt-request{width:100%;max-width:0;}
.prayer-table td.pt-address{max-width:170px;}
.prayer-table td.pt-email{max-width:170px;}
.prayer-table td.pt-who a,.prayer-table td.pt-who{font-weight:700;color:var(--text);}
.prayer-table td.pt-request a{color:var(--text-2);}
.prayer-table td.pt-when{color:var(--text-3);}
.prayer-table td a:hover{color:var(--sage);}
.prayer-needs{overflow:hidden;}
@media(max-width:1180px){.prayer-table th:nth-child(4),.prayer-table td.pt-address{display:none;}}
@media(max-width:800px){
  .prayer-table thead{display:none;}
  .prayer-table,.prayer-table tbody,.prayer-table tr,.prayer-table td{display:block;width:100%;max-width:none;}
  .prayer-table tr{padding:10px 0;border-bottom:1px solid var(--border-soft);}
  .prayer-table tr:last-child{border-bottom:0;}
  .prayer-table td{padding:1px 0;border:0;white-space:normal;}
  .prayer-table td.pt-request{max-width:none;}
  .prayer-table td.pt-address{display:flex;}
  .prayer-table td[data-label]{display:flex;gap:8px;font-size:12.5px;}
  .prayer-table td[data-label]::before{content:attr(data-label);min-width:96px;color:var(--text-3);font-weight:600;}
  .prayer-table td.pt-empty{display:none!important;}
  .prayer-table td.pt-address,.prayer-table td.pt-email{max-width:none;overflow-wrap:anywhere;}
  .prayer-table td.pt-who{font-size:14px;margin:2px 0;}
}
/* Portal Prayer & Contact: form + encouragement side by side; stacked on phones */
.portal-contact-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.7fr);gap:15px;align-items:start;}
@media(max-width:760px){.portal-contact-grid{grid-template-columns:1fr;}}
/* Address fields: Street / Ste-Apt / City / State / ZIP (every address form) */
.address-fields,.portal-address{border:0;padding:0;margin:0;min-width:0;display:grid;grid-template-columns:minmax(0,2.4fr) minmax(0,1fr);gap:10px 12px;grid-column:1 / -1;}
.address-fields legend,.portal-address legend{font-size:12.5px;font-weight:700;color:var(--text-2);margin-bottom:6px;padding:0;}
.address-fields label,.portal-address label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--text-2);min-width:0;}
.address-fields input,.address-fields select,.portal-address input,.portal-address select{width:100%;min-width:0;box-sizing:border-box;}
.address-fields .af-city,.portal-address .af-city{grid-column:1;}
.address-fields .af-state,.portal-address .af-state{grid-column:2;display:grid;grid-template-columns:1fr;}
.address-fields .af-zip,.portal-address .af-zip{grid-column:1 / -1;max-width:180px;}
@media(min-width:900px){
  .address-fields{grid-template-columns:repeat(6,minmax(0,1fr));}
  .address-fields .af-street{grid-column:1 / span 4;}.address-fields .af-line2{grid-column:5 / span 2;}
  .address-fields .af-city{grid-column:1 / span 3;}.address-fields .af-state{grid-column:4 / span 1;}
  .address-fields .af-zip{grid-column:5 / span 2;max-width:none;}
}
}
.portal-address label span,.address-fields label span{font-size:inherit;}
/* Supply Categories: edit names, one Save button */
.category-row .category-name{flex:1;min-width:180px;}
.category-name.is-changed{border-color:var(--gold, #b98535);background:#fffaf0;}
.category-save{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:12px 0 16px;flex-wrap:wrap;}
.category-unsaved{font-size:12.5px;font-weight:600;color:#9a6a1e;}
.category-add{margin-top:6px;}
/* "Module not included" page */
.module-locked{max-width:620px;padding:28px 30px;}
.module-locked.has-image{max-width:1180px;display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1.3fr);gap:28px;align-items:center;}
.module-locked h2{font-size:22px;margin:12px 0 8px;}
.module-locked p{color:var(--text-2);font-size:14px;line-height:1.55;}
.module-locked-price{font-size:26px !important;font-weight:800;color:var(--text) !important;margin:14px 0 !important;}
.module-locked-price span{font-size:14px;font-weight:600;color:var(--text-3);}
.module-locked-note{font-size:12.5px !important;color:var(--text-3) !important;margin-top:12px;}
/* Billing: plan by size + add-on modules */
.billing-hero{background:linear-gradient(145deg,#fff 0%,var(--gold-soft,#fbf4e7) 100%);border-color:var(--gold-line,#ecd9b4);}
.billing-hero h2{font-size:20px;margin-bottom:6px;}.billing-hero p{color:var(--text-2);font-size:14px;line-height:1.55;margin:0;}
.billing-summary{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;}
.billing-label{font-size:11.5px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;}
.billing-big{font-size:19px;font-weight:700;margin:4px 0;}
.billing-sub{font-size:13px;color:var(--text-2);margin-top:4px;}
.billing-warn{color:#9a4b3e;font-weight:600;}
.billing-modules-now>div{font-size:13.5px;margin-top:6px;}
.billing-step{font-size:15px;margin:22px 0 10px;}.billing-step span{font-weight:500;color:var(--text-3);font-size:13px;}
.billing-plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.billing-plan{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;cursor:pointer;margin:0;position:relative;padding:18px 12px;transition:border-color .15s ease,box-shadow .15s ease;}
.billing-plan input{position:absolute;opacity:0;pointer-events:none;}
.billing-plan:has(input:checked){border-color:var(--sage);box-shadow:0 0 0 2px var(--sage-soft),var(--shadow);}
.billing-plan.is-disabled{opacity:.55;cursor:not-allowed;}
.billing-plan-name{font-weight:700;font-size:14px;}
.billing-plan-price{font-size:24px;font-weight:800;}.billing-plan-price small{font-size:12.5px;font-weight:600;color:var(--text-3);}
.billing-plan-note{font-size:11.5px;color:var(--text-3);}.billing-plan-note.good{color:var(--sage);font-weight:700;}
.billing-addons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.billing-addon{margin:0;}.billing-addon.is-disabled{opacity:.6;}
.billing-addon-head{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.billing-addon-head .billing-plan-price{font-size:18px;}
.billing-addon p{font-size:13px;color:var(--text-2);margin:6px 0 10px;line-height:1.5;}
.billing-yesno{display:flex;gap:18px;flex-wrap:wrap;}
.billing-yesno label{display:flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;cursor:pointer;}
.billing-yesno input{width:auto;}
.billing-total{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;}
.billing-fine{font-size:12.5px;color:var(--text-3);margin:4px 0 0;}
@media(max-width:1000px){.billing-plans{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:700px){.billing-summary,.billing-addons{grid-template-columns:1fr;}}
/* Platform Admin: per-church module switches */
.pa-module{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;margin-top:4px;}
.pa-module select{width:auto;font-size:12px;padding:3px 6px;}
.pa-on{color:var(--sage);}.pa-off{color:var(--text-3);}
.btn .btn-addon-tag{font-size:10px;padding:1px 7px;margin-left:2px;}
.topbar .btn:has(.btn-addon-tag){white-space:nowrap;}.btn .btn-addon-tag{white-space:nowrap;}

.module-locked-features{list-style:none;padding:0;margin:4px 0 6px;display:grid;gap:7px;}
.module-locked-features li{display:flex;gap:9px;align-items:flex-start;font-size:14px;color:var(--text);font-weight:600;}
.module-locked-features li:before{content:'✓';color:var(--sage);font-weight:900;}
.module-locked-shot{margin:0;}
.module-locked-shot img{width:100%;height:auto;display:block;border-radius:14px;border:1px solid var(--border-soft);box-shadow:0 18px 44px rgba(16,37,29,.16);}
.module-locked-shot figcaption{font-size:11.5px;color:var(--text-3);text-align:center;margin-top:8px;}
@media(max-width:980px){.module-locked.has-image{grid-template-columns:1fr;}}
/* Home: Announcements lines up with Coming Up (the older top margin predates the redesign) */
.portal-home-grid .announce-card{margin-top:0;}

/* ============================================================
   MG-01 Core Tasks
   ============================================================ */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.task-page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap;}
.task-page-head h2{font-size:19px;letter-spacing:-.02em;}
.task-page-head p{font-size:13px;color:var(--text-2);margin:4px 0 0;}
.task-alert{border-radius:12px;padding:11px 14px;margin-bottom:14px;font-size:13.5px;font-weight:600;border:1px solid;}
.task-alert.ok{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;}
.task-alert.error{background:var(--coral-soft);border-color:var(--coral-line);color:#8f4a3e;}
.task-muted{color:var(--text-3);font-size:12.5px;}

/* summary cards */
.task-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;}
.task-stat{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-radius:16px;border:1px solid var(--border-soft);background:#fff;color:var(--text);position:relative;overflow:hidden;box-shadow:0 1px 2px rgba(16,37,29,.03),0 10px 30px rgba(16,37,29,.055);transition:transform .15s ease,box-shadow .15s ease;}
.task-stat:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;}
.task-stat span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);}
.task-stat strong{font-size:28px;font-weight:800;line-height:1;}
.task-stat:hover{transform:translateY(-2px);color:var(--text);}
.task-stat.is-active{box-shadow:0 0 0 2px var(--accent),0 10px 30px rgba(16,37,29,.08);}
.task-stat.sky{background:linear-gradient(145deg,#fff,var(--sky-soft));border-color:var(--sky-line);}.task-stat.sky:before{background:#4d7899;}
.task-stat.coral{background:linear-gradient(145deg,#fff,var(--coral-soft));border-color:var(--coral-line);}.task-stat.coral:before{background:#ad6557;}
.task-stat.gold{background:linear-gradient(145deg,#fff,var(--gold-soft));border-color:var(--gold-line);}.task-stat.gold:before{background:#b98535;}
.task-stat.green{background:linear-gradient(145deg,#fff,#f0f8f4);border-color:var(--sage-line);}.task-stat.green:before{background:#2f8b63;}

/* tabs + filters */
.task-board{padding:0;overflow:visible;}
.task-tabs{display:flex;gap:4px;padding:14px 16px 0;overflow-x:auto;scrollbar-width:none;}
.task-tabs a{padding:8px 14px;border-radius:10px;font-size:13px;font-weight:700;color:var(--text-2);white-space:nowrap;}
.task-tabs a:hover{background:var(--surface-2);color:var(--text);}
.task-tabs a.active{background:var(--sage-soft);color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);}
.task-filters{padding:12px 16px 14px;border-bottom:1px solid var(--border-soft);}
.task-filter-toggle{display:none;}
.task-filter-fields{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.task-filter-fields label{margin:0;}
.task-filter-fields select,.task-filter-fields input{min-height:38px;font-size:13px;padding:7px 10px;width:auto;}
.task-filter-search input{width:220px;}

/* list */
.task-table{display:flex;flex-direction:column;}
.task-row{display:grid;grid-template-columns:44px minmax(0,2.3fr) minmax(0,1.3fr) minmax(0,1fr) 88px minmax(0,1.1fr) 104px 56px;align-items:center;gap:10px;padding:10px 16px;min-height:58px;border-bottom:1px solid var(--border-soft);position:relative;}
.task-row:last-child{border-bottom:0;}
.task-row.task-head{min-height:0;padding-top:9px;padding-bottom:9px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);background:var(--surface-2);}
.task-row.is-overdue:before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#ad6557;}
.task-row.is-done .tc-title a,.task-row.is-done{color:var(--text-3);}
.task-group-label{padding:12px 16px 6px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);border-bottom:1px solid var(--border-soft);}
.tc-title{display:flex;flex-direction:column;min-width:0;}
.tc-title a{font-weight:700;font-size:14px;color:var(--text);}
.tc-title a:hover{color:var(--accent);}
.tc-title small,.tc-related small{font-size:11.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tc-related{display:flex;flex-direction:column;min-width:0;font-size:13px;}
.tc-related a{font-weight:700;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tc-assignee{display:flex;align-items:center;gap:7px;font-size:13px;min-width:0;}
.task-avatar{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#2f8b63,#4d7899);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;flex:none;}
.tc-due{font-size:12.5px;font-weight:600;color:var(--text-2);}
.tc-due.due-overdue,.due-overdue{color:#9a4b3e;font-weight:800;}
.tc-due.due-today,.due-today{color:#8a6420;font-weight:800;}
.tc-action a{font-weight:800;font-size:12.5px;color:var(--accent);}
.task-check{width:24px;height:24px;border-radius:7px;border:2px solid #b7c9bf;background:#fff;cursor:pointer;display:grid;place-items:center;padding:0;font-size:13px;font-weight:900;color:#fff;}
.task-check:hover,.task-check:focus-visible{border-color:var(--accent);background:var(--sage-soft);}
.task-check.is-checked{background:var(--accent);border-color:var(--accent);cursor:default;}
.task-check.is-disabled{opacity:.35;cursor:not-allowed;}
.task-status{display:inline-flex;align-items:center;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;border:1px solid;white-space:nowrap;}
.task-status.s-open{background:var(--sky-soft);border-color:var(--sky-line);color:#426d8e;}
.task-status.s-in_progress{background:var(--gold-soft);border-color:var(--gold-line);color:#8a6420;}
.task-status.s-waiting{background:var(--plum-soft);border-color:var(--plum-line);color:#6a4f6b;}
.task-status.s-completed{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;}
.task-status.s-canceled{background:#f2f4f3;border-color:#dde4e0;color:#7b8b83;}
.task-empty{text-align:center;padding:40px 20px 44px;}
.task-empty strong{font-family:'Lora',serif;font-size:18px;display:block;margin-bottom:6px;}
.task-empty p{color:var(--text-2);font-size:13.5px;margin:0 auto 14px;max-width:420px;}

/* complete dialog */
.task-dialog{border:0;border-radius:18px;padding:0;width:min(480px,calc(100vw - 32px));box-shadow:0 30px 80px rgba(16,37,29,.3);}
.task-dialog::backdrop{background:rgba(16,37,29,.45);}
.task-dialog-form{padding:22px 22px 18px;display:flex;flex-direction:column;gap:12px;}
.task-dialog-form h2{font-size:19px;}
.task-dialog-sub{margin:-6px 0 0;color:var(--text-2);font-size:13.5px;font-weight:600;}
.task-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:800;color:#496257;}
.task-field em{font-weight:500;font-style:normal;color:var(--text-3);}
.task-field textarea{min-height:100px;font-weight:400;}
.task-dialog-actions{display:flex;justify-content:flex-end;gap:10px;}
@media (prefers-reduced-motion: reduce){.task-stat,.task-stat:hover{transition:none;transform:none;}}

/* form */
.task-req{color:#ad6557;}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:#c98b7f;box-shadow:0 0 0 3px rgba(173,101,87,.12);}
.task-field-error{font-size:12px;font-weight:700;color:#9a4b3e;}
.task-combo{position:relative;}
.task-combo input{width:100%;}
.task-combo-list{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);list-style:none;margin:0;padding:6px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 34px rgba(16,37,29,.14);max-height:260px;overflow:auto;}
.task-combo-list li{padding:9px 10px;border-radius:8px;cursor:pointer;font-size:13.5px;}
.task-combo-list li small{color:var(--text-3);margin-left:6px;}
.task-combo-list li:hover,.task-combo-list li.active{background:var(--sage-soft);}
.task-sticky-copy{font-size:12.5px;color:var(--text-2);}
.task-sticky-buttons{display:flex;gap:10px;}
.task-note{white-space:pre-line;align-items:flex-start;font-weight:500;}
.task-danger{max-width:1240px;margin:22px auto 0;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-color:var(--coral-line);}
.task-danger h3{font-size:15px;}.task-danger p{font-size:12.5px;color:var(--text-2);margin:4px 0 0;}

/* detail */
.task-crumb{font-size:11.5px;font-weight:700;color:var(--text-3);margin-bottom:2px;}
.task-crumb a{color:var(--text-3);}.task-crumb a:hover{color:var(--accent);}
.task-detail-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px;}
.task-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.task-detail-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.task-more{position:relative;}
.task-more summary{list-style:none;cursor:pointer;}
.task-more summary::-webkit-details-marker{display:none;}
.task-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:180px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 34px rgba(16,37,29,.14);padding:6px;display:flex;flex-direction:column;}
.task-more-menu a,.task-more-menu button{display:block;width:100%;text-align:left;padding:9px 11px;border-radius:8px;font-size:13px;font-weight:600;color:var(--text);background:none;border:0;cursor:pointer;font-family:inherit;}
.task-more-menu a:hover,.task-more-menu button:hover{background:var(--surface-2);}
.task-more-menu button.danger{color:#9a4b3e;}
.task-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start;}
.task-detail-main .card{margin-bottom:16px;}
.task-h{font-size:16px;margin-bottom:10px;}
.task-description{white-space:pre-line;font-size:14px;line-height:1.6;color:var(--text);}
.task-completion{margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--sage-soft);border:1px solid var(--sage-line);display:flex;flex-direction:column;gap:4px;font-size:13px;}
.task-completion strong{color:#2f6f52;}
.task-related-card{display:flex;flex-direction:column;gap:2px;padding:13px 15px;border-radius:12px;border:1px solid var(--sky-line);background:var(--sky-soft);color:var(--text);max-width:420px;}
.task-related-card:hover{color:var(--text);border-color:#4d7899;}
.task-related-kind{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:#426d8e;}
.task-related-card strong{font-size:15px;}
.task-related-go{font-size:12px;font-weight:700;color:#426d8e;}
.task-timeline{list-style:none;margin:0;padding:0;}
.task-timeline li{display:grid;grid-template-columns:18px 1fr;gap:10px;padding:8px 0;font-size:13px;position:relative;}
.task-timeline li:not(:last-child):after{content:'';position:absolute;left:5px;top:22px;bottom:-8px;width:2px;background:var(--border-soft);}
.task-dot{width:12px;height:12px;border-radius:50%;background:#c9d6cf;margin-top:3px;}
.task-timeline li.is-complete .task-dot{background:#2f8b63;}
.task-timeline time{display:block;font-size:11.5px;color:var(--text-3);margin-top:2px;}
.task-timeline-note{font-style:italic;color:var(--text-2);margin-top:3px;}
.task-summary-card{background:linear-gradient(160deg,#fff,#f1f8f4);border-color:var(--sage-line);position:sticky;top:16px;}
.task-summary-card dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 14px;font-size:13.5px;}
.task-summary-card dt{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding-top:2px;}
.task-summary-card dd{margin:0;font-weight:600;}

/* dashboard My Tasks */
.dash-tasks-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.dash-tasks-head h3{font-size:16px;}
.dash-tasks-head p{font-size:12px;color:var(--text-3);margin:2px 0 0;}
.dash-tasks-actions{display:flex;gap:12px;align-items:center;}
.dash-tasks-actions a:not(.btn){font-size:13px;font-weight:700;}
.dash-task-counts{display:flex;gap:8px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);margin-bottom:4px;}
.dash-task-counts a{font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;border:1px solid;}
.dash-task-counts .c-today{background:var(--sky-soft);border-color:var(--sky-line);color:#426d8e;}
.dash-task-counts .c-overdue{background:var(--coral-soft);border-color:var(--coral-line);color:#9a4b3e;}
.dash-task-counts .c-week{background:var(--gold-soft);border-color:var(--gold-line);color:#8a6420;}
.dash-task-counts .c-unassigned{background:#f2f4f3;border-color:#dde4e0;color:#5d756a;}
.dash-task{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-soft);}
.dash-task:last-child{border-bottom:0;}
.dash-task-main{display:flex;flex-direction:column;min-width:0;}
.dash-task-main a{font-weight:700;font-size:13.5px;color:var(--text);}
.dash-task-main a:hover{color:var(--accent);}
.dash-task-main small{font-size:11.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dash-task-side{display:flex;align-items:center;gap:10px;flex:none;font-size:12.5px;font-weight:700;}
.dash-task-empty{padding:14px 0 4px;font-size:13.5px;color:var(--text-2);font-weight:600;}

/* responsive */
@media(max-width:1180px){.task-row{grid-template-columns:44px minmax(0,2fr) minmax(0,1.2fr) minmax(0,.9fr) 82px minmax(0,1fr) 100px 48px;}}
@media(max-width:1000px){.task-summary{grid-template-columns:repeat(2,minmax(0,1fr));}.task-detail{grid-template-columns:1fr;}.task-summary-card{position:static;order:-1;}}
@media(max-width:1100px){
  .task-row.task-head{display:none;}
  .task-row{grid-template-columns:36px 1fr;grid-auto-rows:auto;gap:4px 10px;padding:12px 14px;align-items:start;}
  .task-row>span:not(.tc-check):not(.tc-title){grid-column:2;}
  .task-row .tc-check{grid-row:1 / span 7;padding-top:2px;}
  .task-row [data-label]{display:flex;gap:8px;align-items:center;font-size:12.5px;}
  .task-row [data-label]:before{content:attr(data-label);min-width:78px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);}
  .tc-related{flex-direction:row !important;gap:6px;}
  .tc-action{justify-self:start;}
  .tc-action a{display:inline-block;padding:8px 0;}
  .task-check{width:30px;height:30px;}
}
@media(max-width:700px){
  .task-filter-toggle{display:inline-flex;}
  .task-filter-fields{display:none;flex-direction:column;align-items:stretch;margin-top:10px;}
  .task-filters.is-open .task-filter-fields{display:flex;}
  .task-filter-fields select,.task-filter-fields input,.task-filter-search input{width:100%;min-height:42px;}
  .task-page-head .btn{width:100%;justify-content:center;}
  .task-sticky-copy{display:none;}
  .task-sticky-buttons{width:100%;}.task-sticky-buttons .btn{flex:1;justify-content:center;}
  .dash-task{flex-direction:column;align-items:flex-start;gap:6px;}
}
@media(max-width:520px){.task-stat strong{font-size:24px;}.task-detail-actions{width:100%;}.task-detail-actions>.btn{flex:1;justify-content:center;}}
.preview-form-section.task-section-open{overflow:visible;}
.task-scope-chip{margin-top:10px;font-size:12.5px;font-weight:700;color:#426d8e;background:var(--sky-soft);border:1px solid var(--sky-line);border-radius:999px;padding:5px 12px;display:inline-block;}
.task-restricted{font-weight:700;color:var(--text-3);font-style:italic;}
.task-related-card.is-restricted{background:#f4f6f5;border-color:#dde4e0;}.task-related-card.is-restricted strong{color:var(--text-3);font-style:italic;}
/* Tasks: the complete control is a 40x40 tap area with a smaller visible box inside */
.task-check{width:40px;height:40px;padding:0;border:0;background:transparent;border-radius:10px;display:grid;place-items:center;cursor:pointer;color:#fff;}
.task-check::before{content:'';box-sizing:border-box;width:22px;height:22px;border:2px solid #b7c9bf;border-radius:7px;background:#fff;display:grid;place-items:center;font-size:13px;font-weight:900;line-height:1;color:#fff;transition:background .12s ease,border-color .12s ease;}
.task-check:hover::before{border-color:var(--accent);background:var(--sage-soft);}
.task-check:hover,.task-check:focus-visible{background:rgba(47,139,99,.06);}
.task-check:focus-visible{outline:2px solid var(--accent);outline-offset:1px;}
.task-check.is-checked{cursor:default;}
.task-check.is-checked::before{content:'✓';background:var(--accent);border-color:var(--accent);}
.task-check.is-disabled{opacity:.35;cursor:not-allowed;}
@media(max-width:1100px){
  .task-check,.task-check{width:44px;height:44px;}
  .task-row{grid-template-columns:48px 1fr;}
  .task-row .tc-check{padding-top:0;margin-left:-4px;}
  .tc-action a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;margin-left:-14px;border-radius:10px;}
  .tc-action a:hover{background:var(--surface-2);}
}
@media(max-width:700px){
  .dash-task-side a{display:inline-flex;align-items:center;min-height:40px;padding:0 12px;border-radius:10px;}
  .task-tabs a{min-height:40px;display:inline-flex;align-items:center;}
}
@media (prefers-reduced-motion: reduce){.task-check::before{transition:none;}}

/* ============================================================
   MG-02 Care & Follow-Up (add-on: care_package)
   Reuses the MG-01 task-* summary cards, tabs, filters, dialogs and form.
   ============================================================ */
.care-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;border:1px solid;white-space:nowrap;}
.care-chip.t-sky{background:var(--sky-soft);border-color:var(--sky-line);color:#426d8e;}
.care-chip.t-sage{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;}
.care-chip.t-gold{background:var(--gold-soft);border-color:var(--gold-line);color:#8a6420;}
.care-chip.t-plum{background:var(--plum-soft);border-color:var(--plum-line);color:#6a4f6b;}
.care-chip.t-coral{background:var(--coral-soft);border-color:var(--coral-line);color:#985548;}
.care-chip.t-muted{background:#f2f4f3;border-color:#dde4e0;color:#5d756a;}
.care-lock{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:999px;background:var(--plum-soft);border:1px solid var(--plum-line);color:#6a4f6b;white-space:nowrap;}
.care-lock svg{width:11px;height:11px;}
.care-status{display:inline-flex;align-items:center;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;border:1px solid;white-space:nowrap;}
.care-status.s-open{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;}
.care-status.s-monitoring{background:var(--plum-soft);border-color:var(--plum-line);color:#6a4f6b;}
.care-status.s-completed{background:#f2f4f3;border-color:#dde4e0;color:#7b8b83;}
.care-due-overdue{color:#9a4b3e;font-weight:800;}
.care-due-today{color:#426d8e;font-weight:800;}
.care-due-none,.care-due-closed{color:var(--text-3);}
.care-mine{display:inline-flex !important;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--text-2);min-height:38px;padding:0 4px;cursor:pointer;}
.care-mine input{width:auto;min-height:0 !important;}

/* list */
.care-table{display:flex;flex-direction:column;}
.care-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,2fr) minmax(0,1fr) 84px minmax(0,1.1fr) 104px 52px;align-items:center;gap:10px;padding:10px 16px;min-height:62px;border-bottom:1px solid var(--border-soft);position:relative;}
.care-row:last-child{border-bottom:0;}
.care-row.care-thead{min-height:0;padding-top:9px;padding-bottom:9px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);background:var(--surface-2);}
.care-row.is-overdue{background:linear-gradient(90deg,rgba(248,236,233,.7),transparent 40%);}
.care-row.is-overdue:before,.care-row.is-today:before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#ad6557;}
.care-row.is-today:before{background:#4d7899;}
.care-row.is-done{color:var(--text-3);}
.cc-subject,.cc-summary{display:flex;flex-direction:column;min-width:0;}
.cc-subject a{font-weight:700;font-size:14px;color:var(--text);}
.cc-subject a:hover{color:var(--accent);}
.cc-subject small,.cc-summary small{font-size:11.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cc-summary span{font-size:13px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.cc-type{display:flex;flex-wrap:wrap;gap:4px;align-items:center;}

/* detail */
.care-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.care-head-main h2{font-size:26px;letter-spacing:-.02em;margin:0;}
.care-head-main p{font-size:13.5px;color:var(--text-2);margin:4px 0 10px;}
.care-actions{justify-content:flex-end;}
.btn.care-btn-plum{background:#7a5a7c;border-color:#7a5a7c;color:#fff;}
.btn.care-btn-plum:hover{background:#6a4f6b;border-color:#6a4f6b;color:#fff;}
.care-detail{display:grid;grid-template-columns:minmax(0,65fr) minmax(300px,35fr);gap:18px;align-items:start;}
.care-detail .card{margin-bottom:16px;}
.care-sub{font-size:12.5px;color:var(--text-3);margin:-4px 0 10px;}
.care-facts{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px;}
.care-facts dt{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin-bottom:3px;}
.care-facts dd{margin:0;font-size:13.5px;font-weight:700;}
.care-facts-wide{grid-column:1/-1;}
.care-facts-wide dd{font-weight:500;}
.care-timeline{list-style:none;margin:0;padding:0;}
.care-timeline li{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--border-soft);}
.care-timeline li:last-child{border-bottom:0;padding-bottom:0;}
.care-tl-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:13px;font-weight:900;background:var(--plum-soft);color:#6a4f6b;}
.care-tl-icon.t-green{background:var(--sage-soft);color:#2f6f52;}
.care-tl-icon.t-sky{background:var(--sky-soft);color:#426d8e;}
.care-tl-icon.t-gold{background:var(--gold-soft);color:#8a6420;}
.care-tl-icon.t-muted{background:#f2f4f3;color:#5d756a;}
.care-tl-body{min-width:0;}
.care-tl-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13.5px;}
.care-tl-top time{font-size:11.5px;color:var(--text-3);white-space:nowrap;}
.care-tl-line{font-size:12.5px;color:var(--text-2);margin-top:2px;}
.care-tl-note{font-size:13px;color:var(--text);margin-top:4px;white-space:pre-line;line-height:1.55;overflow-wrap:anywhere;}
.care-followup{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;border-left:3px solid #c9d6cf;background:var(--surface-2);font-size:13px;margin-bottom:12px;}
.care-followup strong{font-size:14.5px;}
.care-followup.s-overdue{background:var(--coral-soft);border-color:#ad6557;}.care-followup.s-overdue strong{color:#9a4b3e;}
.care-followup.s-today{background:var(--sky-soft);border-color:#4d7899;}.care-followup.s-today strong{color:#426d8e;}
.care-followup.s-upcoming{background:#f3f8f5;border-color:#2f8b63;}
.care-followup span{color:var(--text-2);}
.btn.care-full{width:100%;justify-content:center;}
.care-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.care-new-link{font-weight:800;font-size:13.5px;min-height:40px;display:inline-flex;align-items:center;padding:0 6px;}
.care-task{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border-soft);}
.care-task-main{display:flex;flex-direction:column;min-width:0;}
.care-task-main a{font-weight:700;font-size:13.5px;color:var(--text);}
.care-task-main a:hover{color:var(--accent);}
.care-task-main small{font-size:12px;color:var(--text-3);}
.care-subject{display:flex;flex-direction:column;gap:3px;font-size:13.5px;}
.care-subject>span{color:var(--text-3);}
.care-contact{display:flex;flex-direction:column;gap:2px;margin-top:8px;font-size:12.5px;overflow-wrap:anywhere;}
.care-people-link{margin-top:10px;font-weight:800;min-height:40px;display:inline-flex;align-items:center;}
.care-warn{padding:11px 13px;border-radius:12px;background:var(--gold-soft);border:1px solid var(--gold-line);color:#7a5a1f;font-size:13px;}
.care-dialog select,.care-dialog input{font-weight:400;}
.care-form-intro{max-width:1240px;margin:0 auto 14px;font-size:13.5px;color:var(--text-2);}
.care-form-layout{grid-template-columns:minmax(0,1fr);}
.task-linkbtn{background:none;border:0;padding:0 2px;font:inherit;font-weight:800;color:var(--accent);cursor:pointer;text-decoration:underline;}
.dash-task-counts .c-active{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;}
.pa-beta{font-size:10px;padding:1px 6px;vertical-align:1px;}
.team-care-perm{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--border-soft);}
.team-care-nested{margin:4px 0 2px 24px;display:flex;flex-direction:column;gap:3px;}
.team-perm-help{font-size:12px;color:var(--text-3);margin-left:24px;}
.team-care-nested .team-perm-help{margin-left:24px;}

@media(max-width:1180px){.care-row{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.7fr) minmax(0,.9fr) 80px minmax(0,1fr) 100px 48px;}}
/* tablet and phone: the list becomes stacked cards; the case page stacks in the approved order */
@media(max-width:1100px){
  .care-row.care-thead{display:none;}
  .care-row{grid-template-columns:1fr auto;gap:6px 12px;padding:14px 16px;align-items:start;}
  .care-row>span{grid-column:1 / -1;}
  .care-row .cc-subject{grid-column:1;grid-row:1;}
  .care-row [data-label="Priority"]{grid-column:2;grid-row:1;justify-self:end;}
  .care-row [data-label]{display:flex;gap:8px;align-items:center;font-size:12.5px;}
  .care-row [data-label]:before{content:attr(data-label);min-width:104px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);}
  .care-row [data-label="Priority"]:before{display:none;}
  .care-row .tc-action a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;margin-left:-14px;border-radius:10px;}
  .care-detail{display:flex;flex-direction:column;align-items:stretch;gap:0;}
  .care-detail-main,.care-detail-side{display:contents;}
  .care-sec-followup{order:1;}.care-sec-overview{order:2;}.care-sec-tasks{order:3;}.care-sec-timeline{order:4;}.care-sec-subject{order:5;}
  .care-facts{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:700px){
  .care-head-main h2{font-size:22px;}
  .care-actions{width:100%;justify-content:stretch;}
  .care-actions>.btn{flex:1 1 140px;justify-content:center;min-height:44px;}
  .care-mine{min-height:42px;}
  .care-row [data-label]:before{min-width:96px;}
}
@media(max-width:520px){
  .care-facts{grid-template-columns:1fr 1fr;gap:12px;}
  /* dialogs become a bottom sheet on phones */
  .care-dialog{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:18px 18px 0 0;max-height:92vh;}
  .care-dialog .task-dialog-actions .btn{flex:1;justify-content:center;min-height:44px;}
}

/* ============================================================
   MG-03 Visitor Follow-Up (inside Care & Follow-Up)
   Reuses MG-01/MG-02 task-*, care-* patterns.
   ============================================================ */
.care-subnav{display:flex;gap:6px;margin:0 0 16px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--border-soft);padding-bottom:2px;}
.care-subnav a{padding:9px 14px;font-size:13px;font-weight:800;color:var(--text-2);border-radius:10px 10px 0 0;white-space:nowrap;min-height:40px;display:inline-flex;align-items:center;}
.care-subnav a:hover{color:var(--text);background:var(--surface-2);}
.care-subnav a.active{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);}
.vf-head-actions{display:flex;gap:8px;flex-wrap:wrap;}
.vf-setup-banner{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-color:var(--gold-line);background:linear-gradient(145deg,#fff,var(--gold-soft));margin-bottom:16px;}
.vf-setup-banner p{margin:4px 0 0;font-size:13px;color:var(--text-2);}
.vf-status{display:inline-flex;align-items:center;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;border:1px solid;white-space:nowrap;}
.vf-status.s-active{background:var(--sky-soft);border-color:var(--sky-line);color:#426d8e;}
.vf-status.s-connected{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;}
.vf-status.s-closed{background:#f2f4f3;border-color:#dde4e0;color:#7b8b83;}
.vf-due-overdue{color:#9a4b3e;font-weight:800;}
.vf-due-today{color:#8a6420;font-weight:800;}
.vf-due-upcoming{color:#426d8e;font-weight:700;}
.vf-due-none{color:var(--text-3);}
.vf-flag{display:inline-flex;font-size:10.5px;font-weight:800;padding:1px 7px;border-radius:999px;background:var(--gold-soft);border:1px solid var(--gold-line);color:#8a6420;}

/* progress rail */
.vf-rail.compact{display:inline-flex;gap:4px;align-items:center;vertical-align:middle;margin-right:6px;}
.vf-dot{width:14px;height:6px;border-radius:999px;background:#dde6e1;}
.vf-dot.done{background:#2f8b63;}
.vf-dot.current{background:#4d7899;}
.vf-rail.is-closed .vf-dot.done{background:#a9b8b0;}
.vf-rail-text{font-size:12px;font-weight:700;color:var(--text-2);white-space:nowrap;}
.vf-rail.full{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;counter-reset:none;}
.vf-rail.full li{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 12px;border-radius:12px;border:1px solid var(--border-soft);background:#fff;font-size:12.5px;font-weight:700;color:var(--text-3);position:relative;}
.vf-step-dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:900;background:#eef3f0;color:var(--text-3);}
.vf-rail.full li.done{border-color:var(--sage-line);background:#f3f9f5;color:#2f6f52;}
.vf-rail.full li.done .vf-step-dot{background:#2f8b63;color:#fff;}
.vf-rail.full li.current{border-color:#4d7899;box-shadow:0 0 0 2px var(--sky-soft);color:#426d8e;}
.vf-rail.full.is-closed li.done{background:#f4f6f5;border-color:#dde4e0;color:#7b8b83;}
.vf-rail.full.is-closed li.done .vf-step-dot{background:#a9b8b0;}
.vf-rail-facts{margin:0;font-size:13px;color:var(--text-2);}

/* overview list */
.vf-table{display:flex;flex-direction:column;}
.vf-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1.5fr) 52px 76px 76px minmax(0,1.2fr) minmax(0,.9fr) 92px 48px;align-items:center;gap:10px;padding:10px 16px;min-height:58px;border-bottom:1px solid var(--border-soft);position:relative;}
.vf-row:last-child{border-bottom:0;}
.vf-row.vf-thead{min-height:0;padding-top:9px;padding-bottom:9px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);background:var(--surface-2);}
.vf-row.is-overdue{background:linear-gradient(90deg,rgba(248,236,233,.7),transparent 40%);}
.vf-row.is-overdue:before,.vf-row.is-today:before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#ad6557;}
.vf-row.is-today:before{background:#b98535;}
.vf-row.is-done{color:var(--text-3);}
.vf-progress{display:flex;align-items:center;flex-wrap:wrap;gap:2px;min-width:0;}
.vf-num{font-weight:800;}
.vf-row>span{font-size:13px;}

/* detail */
.vf-detail{display:grid;grid-template-columns:minmax(0,65fr) minmax(300px,35fr);grid-template-areas:"progress next" "timeline summary" "timeline contact" "timeline tasks" "timeline rest";gap:0 18px;align-items:start;}
.vf-detail>.card{margin-bottom:16px;}
.vf-sec-progress{grid-area:progress;}.vf-sec-next{grid-area:next;}.vf-sec-summary{grid-area:summary;}.vf-sec-contact{grid-area:contact;}.vf-sec-tasks{grid-area:tasks;}.vf-sec-timeline{grid-area:timeline;}
.care-followup.s-closed{background:#f4f6f5;}
.vf-mini-h{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:16px 0 6px;}
.vf-visits,.vf-members{list-style:none;margin:0;padding:0;}
.vf-visits li,.vf-members li{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:7px 0;border-top:1px solid var(--border-soft);font-size:13px;}
.vf-visits li span{color:var(--text-3);font-size:12.5px;}
.vf-members li span{display:flex;flex-direction:column;gap:2px;font-size:12.5px;overflow-wrap:anywhere;}
.vf-dialog{width:min(600px,calc(100vw - 32px));}
.vf-dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.vf-rv-subject{display:grid;grid-template-columns:140px 1fr;gap:12px;}
.vf-rv-subject em{font-style:normal;font-weight:500;color:var(--text-3);font-size:12px;}

/* settings */
.vf-warnings{border-color:var(--gold-line);background:var(--gold-soft);margin-bottom:16px;font-size:13px;color:#6f5320;}
.vf-warnings ul{margin:6px 0 0;padding-left:18px;}
.vf-switch{display:flex !important;align-items:center;gap:12px;cursor:pointer;font-weight:500 !important;min-height:44px;}
.vf-switch input{position:absolute;opacity:0;width:1px;height:1px;}
.vf-switch-ui{flex:none;width:44px;height:26px;border-radius:999px;background:#cfdad4;position:relative;transition:background .15s ease;}
.vf-switch-ui:after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .15s ease;}
.vf-switch input:checked+.vf-switch-ui{background:var(--accent);}
.vf-switch input:checked+.vf-switch-ui:after{transform:translateX(18px);}
.vf-switch input:focus-visible+.vf-switch-ui{outline:2px solid var(--accent);outline-offset:2px;}
.vf-switch strong{display:block;font-size:14px;color:var(--text);}
.vf-switch small{display:block;font-size:12px;color:var(--text-3);}
.vf-switch.small{min-height:40px;gap:8px;}
.vf-switch.small .vf-switch-ui{width:38px;height:22px;}
.vf-switch.small .vf-switch-ui:after{width:16px;height:16px;}
.vf-switch.small input:checked+.vf-switch-ui:after{transform:translateX(16px);}
.vf-switch-text{font-size:12.5px;font-weight:800;color:var(--text-2);}
.vf-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:6px;}
.vf-service{display:flex !important;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fff;cursor:pointer;font-weight:500 !important;min-height:44px;}
.vf-service input{width:20px !important;height:20px;margin-top:2px;flex:none;accent-color:var(--accent);}
.vf-service span{display:flex;flex-direction:column;gap:2px;min-width:0;}
.vf-service strong{font-size:13.5px;color:var(--text);overflow-wrap:anywhere;}
.vf-service small{font-size:12px;color:var(--text-3);}
.vf-service em{font-style:normal;font-size:11px;font-weight:800;color:var(--text-3);}
.vf-service.is-on{border-color:var(--accent);background:var(--sage-soft);}
.vf-service.is-on em{color:var(--accent);}
.vf-service:focus-within{outline:2px solid var(--accent);outline-offset:1px;}
.vf-check{display:flex !important;align-items:center;gap:8px;font-weight:600 !important;font-size:13.5px;min-height:40px;cursor:pointer;}
.vf-check input{width:18px !important;height:18px;accent-color:var(--accent);}
.vf-check small{font-weight:500;color:var(--text-3);}
.vf-rules-card{max-width:1240px;margin:18px auto 0;}
.vf-rules{display:flex;flex-direction:column;margin-top:8px;}
.vf-rule{display:grid;grid-template-columns:96px minmax(0,2fr) 110px minmax(0,1.2fr) minmax(0,1.2fr) 84px 60px;gap:10px;align-items:center;padding:10px 4px;border-top:1px solid var(--border-soft);font-size:13px;}
.vf-rule-head{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);border-top:0;}
.vf-rule.is-off .vf-rule-main,.vf-rule.is-off>span:not(:first-child){color:var(--text-3);}
.vf-rule-main{display:flex;flex-direction:column;min-width:0;}
.vf-rule-main small{font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;}
.vf-linkbtn{background:none;border:0;font:inherit;font-weight:800;color:var(--accent);cursor:pointer;min-height:40px;padding:0 8px;border-radius:8px;}
.vf-linkbtn:hover{background:var(--surface-2);}
.vf-toggle-form{margin:0;}
.vf-safety{max-width:1240px;margin:18px auto 0;border-color:var(--sky-line);background:var(--sky-soft);font-size:13px;}
.vf-safety p{margin:4px 0 0;color:var(--text-2);line-height:1.6;}
.vf-people-card{border-color:var(--sky-line);}
.vf-people-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:0 0 12px;}
.vf-people-facts dt{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);}
.vf-people-facts dd{margin:0;font-size:13.5px;font-weight:700;}

@media(max-width:1180px){.vf-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1.4fr) 44px 70px 70px minmax(0,1.1fr) minmax(0,.8fr) 88px 44px;}}
@media(max-width:1100px){
  .vf-row.vf-thead{display:none;}
  .vf-row{grid-template-columns:1fr auto;gap:6px 12px;padding:14px 16px;align-items:start;}
  .vf-row>span{grid-column:1 / -1;}
  .vf-row .cc-subject{grid-column:1;grid-row:1;}
  .vf-row [data-label="Status"]{grid-column:2;grid-row:1;justify-self:end;}
  .vf-row [data-label]{display:flex;gap:8px;align-items:center;font-size:12.5px;flex-wrap:wrap;}
  .vf-row [data-label]:before{content:attr(data-label);min-width:104px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);}
  .vf-row [data-label="Status"]:before{display:none;}
  .vf-row .tc-action a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;margin-left:-14px;border-radius:10px;}
  .vf-detail{display:flex;flex-direction:column;align-items:stretch;}
  .vf-services{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:900px){
  .vf-rule-head{display:none;}
  .vf-rule{grid-template-columns:1fr auto;gap:4px 12px;padding:12px;border:1px solid var(--border-soft);border-radius:12px;margin-bottom:10px;}
  .vf-rule>span{grid-column:1 / -1;}
  .vf-rule [data-label="Enabled"]{grid-column:2;grid-row:1;justify-self:end;}
  .vf-rule .vf-rule-main{grid-column:1;grid-row:1;}
  .vf-rule [data-label]:not([data-label="Enabled"]):not(.vf-rule-main){display:flex;gap:8px;align-items:center;}
  .vf-rule [data-label]:not([data-label="Enabled"]):not(.vf-rule-main):before{content:attr(data-label);min-width:78px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);}
  .vf-rule .tc-action{justify-self:start;}
}
@media(max-width:700px){
  .vf-head-actions{width:100%;}
  .vf-head-actions .btn{flex:1 1 140px;justify-content:center;min-height:44px;}
  .vf-rail.full{grid-template-columns:repeat(2,minmax(0,1fr));}
  .vf-rv-subject,.vf-dialog-grid{grid-template-columns:1fr;}
  .vf-services{grid-template-columns:1fr;}
}
@media(max-width:520px){.vf-dialog{width:100vw;max-width:100vw;}}
@media (prefers-reduced-motion: reduce){.vf-switch-ui,.vf-switch-ui:after{transition:none;}}
@media(max-width:900px){
  .vf-page .task-filter-toggle,.vf-detail-page .btn.small,.vf-people-card .btn.small,.dash-visitors .btn.small{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
}
.vf-rules-card .care-card-head{flex-wrap:wrap;}
.vf-rules-card .care-card-head .btn{white-space:nowrap;}
@media(max-width:700px){.vf-rules-card .care-card-head .btn{width:100%;justify-content:center;min-height:44px;}}

/* ============================================================
   MG-04 Pastoral Care (inside Care & Follow-Up)
   Reuses task-*, care-*, vf-* patterns; plum stays restrained.
   ============================================================ */
.task-stat.plum{background:linear-gradient(145deg,#fff,var(--plum-soft));border-color:var(--plum-line);}.task-stat.plum:before{background:#765b77;}
.dash-task-counts .c-plum{background:var(--plum-soft);border-color:var(--plum-line);color:#6a4f6b;}
.pc-dash-tasks{font-size:12.5px;color:var(--text-2);margin:6px 0 2px;}

/* overview list */
.pc-table{display:flex;flex-direction:column;}
.pc-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.5fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,1.3fr) 120px 48px;align-items:center;gap:10px;padding:10px 16px;min-height:58px;border-bottom:1px solid var(--border-soft);position:relative;font-size:13px;}
.pc-table.no-tasks .pc-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1.1fr) minmax(0,1.7fr) minmax(0,1fr) minmax(0,1fr) 120px 48px;}
.pc-row:last-child{border-bottom:0;}
.pc-row.pc-thead{min-height:0;padding-top:9px;padding-bottom:9px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);background:var(--surface-2);}
.pc-row.is-overdue{background:linear-gradient(90deg,rgba(248,236,233,.7),transparent 40%);}
.pc-row.is-overdue:before,.pc-row.is-today:before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#ad6557;}
.pc-row.is-today:before{background:#4d7899;}
.pc-row.is-done{color:var(--text-3);}
.pc-context{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;}
.pc-nexttask{display:flex;flex-direction:column;min-width:0;}
.pc-nexttask a{font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pc-nexttask small{font-size:11.5px;color:var(--text-3);}
.pc-prio{display:flex;gap:4px;flex-wrap:wrap;align-items:center;}

/* detail */
.pc-facts dd{font-weight:600;}
.pc-history dd{color:var(--text-2);font-weight:500;}
.pc-footnote{margin:12px 0 0;font-size:11.5px;color:var(--text-3);}
.pc-empty{font-size:13px;color:var(--text-2);margin:0 0 10px;}
.pc-empty strong{display:block;color:var(--text);}
.pc-anchor-missing{margin:8px 0;}
.pc-transition-card{border-color:var(--gold-line);background:linear-gradient(160deg,#fff,var(--gold-soft));}
.pc-related{font-size:13px;color:var(--text-2);margin:0 0 10px;}
.pc-related a{font-weight:800;display:inline-flex;min-height:36px;align-items:center;}
.pc-offer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.pc-offer span{font-weight:500;}
.pc-section .preview-section-number{background:var(--plum-soft);color:#6a4f6b;}

/* Care Plan preview */
.pc-plan{max-width:1240px;}
.pc-plan-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;font-size:15px;}
.pc-proposed{border:1px solid var(--border-soft);border-radius:14px;padding:14px 16px;margin:0 0 12px;background:#fbfdfc;min-width:0;}
.pc-proposed legend{display:flex;flex-direction:column;gap:2px;padding:0 4px;}
.pc-proposed legend span{font-size:12.5px;color:var(--text-3);font-weight:500;}
.pc-item{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr);gap:10px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--border-soft);}
.pc-item:first-of-type{border-top:0;}
.pc-item.is-off{opacity:.55;}
.pc-item.is-done{opacity:.8;}
.pc-item-check{display:flex !important;gap:12px;align-items:flex-start;cursor:pointer;min-height:44px;font-weight:500 !important;}
.pc-item-check input{width:22px !important;height:22px;margin-top:2px;flex:none;accent-color:var(--accent);}
.pc-item-check span{display:flex;flex-direction:column;}
.pc-item-check strong{font-size:14px;color:var(--text);}
.pc-item-check small{font-size:12px;color:var(--text-3);}
.pc-item-fields{display:grid;grid-template-columns:150px minmax(0,1fr) 120px;gap:10px;}
.pc-item-fields input,.pc-item-fields select{min-height:42px;}
.pc-item-done{display:flex;gap:12px;align-items:center;}
.pc-item-done a{font-weight:800;font-size:13px;}
.pc-item-note{grid-column:1 / -1;margin:0;font-size:12px;color:#8a6420;}
.pc-missing{padding:26px 10px;}

/* settings */
.pc-rule-group{max-width:1240px;margin:0 auto 16px;}
.pc-group-actions{display:flex;gap:8px;align-items:center;}
.pc-rule{grid-template-columns:96px minmax(0,2.2fr) 96px 84px minmax(0,1.1fr) 70px 60px;}
.pc-order{display:flex;gap:2px;}
.pc-order .vf-linkbtn{min-width:36px;padding:0 6px;}
.pc-order .vf-linkbtn:disabled{opacity:.3;cursor:default;}

/* bereavement wizard */
.pc-steps{list-style:none;margin:0 auto 14px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:1240px;}
.pc-steps li{text-align:center;font-size:12px;font-weight:800;padding:8px 6px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--text-3);}
.pc-steps li.is-current{background:var(--sage-soft);border-color:var(--sage-line);color:var(--accent);}
.pc-steps li.is-done{color:#2f6f52;}
.pc-wizard-actions{justify-content:space-between;}
.pc-confirm{margin-bottom:12px;}

@media(max-width:1180px){.pc-row{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.3fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,1.2fr) 110px 44px;}}
@media(max-width:1100px){
  .pc-row.pc-thead{display:none;}
  .pc-row,.pc-table.no-tasks .pc-row{grid-template-columns:1fr auto;gap:6px 12px;padding:14px 16px;align-items:start;}
  .pc-row>span{grid-column:1 / -1;}
  .pc-row .cc-subject{grid-column:1;grid-row:1;}
  .pc-row .pc-prio{grid-column:2;grid-row:1;justify-self:end;}
  .pc-row [data-label]{display:flex;gap:8px;align-items:center;font-size:12.5px;flex-wrap:wrap;}
  .pc-row [data-label]:before{content:attr(data-label);min-width:96px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);}
  .pc-row .pc-prio:before{display:none;}
  .pc-row .pc-nexttask{flex-direction:row;}
  .pc-row .tc-action a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;margin-left:-14px;border-radius:10px;}
  /* pastoral case detail stacks: summary, details, follow-up, plan, tasks, timeline, subject */
  .care-detail.is-pastoral .care-sec-overview{order:1;}
  .care-detail.is-pastoral .care-sec-pastoral{order:2;}
  .care-detail.is-pastoral .care-sec-followup{order:3;}
  .care-detail.is-pastoral .care-sec-plan{order:4;}
  .care-detail.is-pastoral .care-sec-transition{order:5;}
  .care-detail.is-pastoral .care-sec-tasks{order:6;}
  .care-detail.is-pastoral .care-sec-timeline{order:7;}
  .care-detail.is-pastoral .care-sec-subject{order:8;}
  .care-detail.is-pastoral .care-sec-related,.care-detail .care-sec-related{order:9;}
  .pc-item{grid-template-columns:1fr;}
}
@media(max-width:900px){
  .pc-rule{grid-template-columns:1fr auto;}
  .pc-rule .pc-order{justify-self:start;}
}
@media(max-width:700px){
  .pc-item-fields{grid-template-columns:1fr 1fr;}
  .pc-item-fields label:nth-child(2){grid-column:1 / -1;order:3;}
  .pc-steps{gap:4px;}.pc-steps li{font-size:11px;padding:8px 2px;}
  .pc-wizard-actions,.pc-plan-actions{position:static;}
  .pc-wizard-actions .btn,.pc-plan-actions .btn{min-height:44px;flex:1;justify-content:center;}
  .pc-group-actions .btn{min-height:44px;}
  .pc-offer .btn{width:100%;justify-content:center;min-height:44px;}
}
@media(max-width:900px){
  .pc-page .task-filter-toggle,.care-sec-plan .btn.small,.care-sec-transition .btn.small,.care-sec-pastoral .btn.small{min-height:44px;display:inline-flex;align-items:center;justify-content:center;}
}
.pc-row .care-chip{white-space:normal;max-width:100%;}
@media(max-width:900px){.pc-group-actions .btn{min-height:44px;display:inline-flex;align-items:center;}}
/* MG-04 QA: Pastoral Settings controls get a full ~44×44px tap area on iPad/phone
   (the arrow/text stays compact; only the hit area grows). */
@media(max-width:1100px){
  .pc-settings-page .vf-linkbtn{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;}
  .pc-settings-page .pc-order{gap:4px;}
  .pc-settings-page .pc-order .vf-linkbtn{min-width:44px;padding:0;}
  .pc-settings-page .vf-switch.small{min-height:44px;}
}
@media(max-width:1100px){.pc-item-fields input,.pc-item-fields select{min-height:44px;}}
@media(max-width:520px){.pc-item-fields{grid-template-columns:minmax(0,1fr);}.pc-item-fields label:nth-child(2){order:0;grid-column:auto;}}

/* ===== MG-05 Workflow Automation ===== */
.badge.green{background:var(--sage-soft);color:#2f6f52;border:1px solid var(--sage-line);}
.au-page .btn{min-height:44px;}
.au-page .btn.small{min-height:44px;min-width:44px;justify-content:center;}
.au-muted{font-size:12px;color:var(--text-3);margin:8px 0 0;line-height:1.5;}
.au-note{font-size:12px;color:#6a4f6b;background:var(--plum-soft);border:1px solid var(--plum-line);border-radius:10px;padding:9px 11px;margin:10px 0 0;line-height:1.5;}
.au-full{width:100%;justify-content:center;}
.au-stack{display:flex;flex-direction:column;gap:12px;}
.au-h3{font-size:13px;font-weight:800;margin:16px 0 8px;color:var(--text-2);}
.au-form-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;}
.au-inline-form{display:flex;gap:8px;align-items:flex-end;margin:10px 0 14px;flex-wrap:wrap;}
.au-inline-form .task-field{flex:1;min-width:200px;}
.au-plain{margin:0;padding-left:18px;font-size:13px;color:var(--text-2);line-height:1.8;}
.au-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start;}
.au-side{display:flex;flex-direction:column;gap:16px;min-width:0;}
.au-stats .task-stat small{font-size:11.5px;color:var(--text-3);font-weight:600;}
.au-pill{display:inline-flex;align-items:center;font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;border:1px solid;vertical-align:middle;}
.au-pill.p-active{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;}
.au-pill.p-paused{background:var(--gold-soft);border-color:var(--gold-line);color:#8a6420;}
.au-pill.p-draft{background:var(--sky-soft);border-color:var(--sky-line);color:#426d8e;}
.au-pill.p-archived{background:var(--surface-2);border-color:var(--border);color:var(--text-2);}
.au-paused-banner{display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--gold-soft);border-color:var(--gold-line);margin-bottom:16px;flex-wrap:wrap;}
.au-paused-banner span{display:block;font-size:12.5px;color:var(--text-2);margin-top:3px;}
.au-first-run{max-width:760px;margin:10px auto;text-align:left;padding:30px;}
.au-first-run h2{font-size:22px;letter-spacing:-.02em;margin:8px 0 10px;}
.au-first-run>p{color:var(--text-2);line-height:1.6;}
.au-first-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--sage-soft);color:var(--accent);font-size:22px;}
.au-first-list{margin:16px 0 20px;padding-left:18px;display:flex;flex-direction:column;gap:9px;font-size:13.5px;color:var(--text-2);line-height:1.55;}
.au-empty{text-align:center;padding:24px 12px;color:var(--text-2);}
.au-empty p{margin:6px 0 14px;font-size:13px;}
.au-wf-list{display:flex;flex-direction:column;margin-top:10px;}
.au-wf-row{display:grid;grid-template-columns:minmax(0,2.2fr) 1.1fr .6fr .6fr .6fr 1.2fr auto;gap:12px;align-items:center;padding:12px 4px;border-top:1px solid var(--border-soft);}
.au-wf-row small{display:block;font-size:11.5px;color:var(--text-3);margin-top:3px;}
.au-wf-main a{color:var(--text);}
.au-wf-num strong{font-size:17px;}
.au-wf-num.is-alert strong{color:var(--coral);}
.au-foot-link{font-size:12.5px;margin:12px 0 0;}
.au-activity{display:flex;flex-direction:column;gap:12px;margin-top:8px;}
.au-act{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--text);line-height:1.45;}
a.au-act{padding:6px;margin:-6px;border-radius:10px;min-height:44px;}
a.au-act:hover{background:var(--surface-2);}
.au-act small{color:var(--text-3);font-size:11.5px;}
.au-dot{width:9px;height:9px;border-radius:50%;background:var(--sage);flex:none;margin-top:5px;}
.au-dot.coral{background:var(--coral);}.au-dot.gold{background:var(--gold);}
.au-danger{border-color:var(--coral-line);}
/* library */
.au-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.au-template{display:flex;flex-direction:column;gap:8px;}
.au-template h2{font-size:17px;margin:0;}
.au-template form{margin-top:auto;}
.au-template-cat{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);}
.au-template-trigger{font-size:13px;font-weight:700;color:var(--text-2);margin:0;}
.au-template-facts{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:6px;}
.au-template-facts li{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-soft);color:var(--text-2);}
.au-blank-form{display:flex;flex-direction:column;gap:10px;}
/* builder */
.au-builder-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:16px;flex-wrap:wrap;}
.au-builder-title{flex:1;min-width:260px;display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;}
.au-builder-title .au-muted{grid-column:1/-1;margin:0;}
.au-builder-actions{display:flex;gap:8px;flex-wrap:wrap;}
.au-dirty{font-weight:800;color:#8a6420;margin-left:6px;}
.au-builder{display:grid;grid-template-columns:200px minmax(0,1fr) 360px;gap:16px;align-items:start;}
.au-palette{position:sticky;top:16px;}
.au-palette-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;}
.au-palette-btn{display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 12px;border-radius:11px;border:1px solid var(--border);background:var(--surface-2);font:inherit;font-size:13px;font-weight:700;color:var(--text);cursor:pointer;text-align:left;}
.au-palette-btn:hover{border-color:var(--accent);}
.au-ico{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none;background:var(--sage-soft);color:var(--accent);font-weight:900;font-size:14px;}
.t-wait .au-ico{background:var(--gold-soft);color:#8a6420;}
.t-condition .au-ico{background:var(--plum-soft);color:var(--plum);}
.t-send_email .au-ico{background:var(--sky-soft);color:var(--sky);}
.t-end .au-ico{background:var(--surface-2);color:var(--text-2);}
.au-flow{min-width:0;}
.au-card{position:relative;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--border-soft);border-radius:16px;padding:14px 16px;box-shadow:0 1px 2px rgba(16,37,29,.03),0 8px 24px rgba(16,37,29,.05);}
.au-card.au-trigger{grid-template-columns:auto minmax(0,1fr) auto;border-color:var(--sage-line);background:linear-gradient(145deg,#fff,#f3f9f6);}
.au-card.is-selected{box-shadow:0 0 0 2px var(--accent),0 8px 24px rgba(16,37,29,.08);}
.au-num{font-size:11px;font-weight:800;color:var(--text-3);min-width:16px;}
.au-card-main{min-width:0;display:flex;flex-direction:column;gap:2px;}
.au-card-main small{font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--text-3);}
.au-card-main strong{font-size:14.5px;overflow-wrap:anywhere;}
.au-card-main span{font-size:12px;color:var(--text-2);overflow-wrap:anywhere;}
.au-card-act{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.au-icon-btn{width:44px;height:44px;border-radius:11px;border:1px solid var(--border);background:#fff;font:inherit;font-size:15px;font-weight:800;color:var(--text-2);cursor:pointer;}
.au-icon-btn:disabled{opacity:.35;cursor:default;}
.au-icon-btn.danger{color:var(--coral);}
.au-branches{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;padding-top:4px;}
.au-branch{font-size:12px;padding:5px 10px;border-radius:999px;border:1px solid;overflow-wrap:anywhere;}
.au-branch b{font-weight:900;letter-spacing:.04em;}
.task-field .au-branch{align-self:flex-start;}
.au-branch.yes{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;}
.au-branch.no{background:var(--coral-soft);border-color:var(--coral-line);color:#8f4a3e;}
.au-gap{display:flex;justify-content:center;padding:6px 0;position:relative;}
.au-gap:before{content:'';position:absolute;left:50%;top:0;bottom:0;border-left:2px dotted var(--border);}
.au-add{position:relative;min-height:44px;padding:0 16px;border-radius:999px;border:1px dashed var(--border);background:var(--bg);font:inherit;font-size:12.5px;font-weight:800;color:var(--text-2);cursor:pointer;}
.au-add:hover{border-color:var(--accent);color:var(--accent);}
.au-insert-menu{position:relative;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;background:#fff;border:1px solid var(--border);border-radius:14px;padding:8px;box-shadow:0 10px 30px rgba(16,37,29,.12);max-width:100%;}
.au-editor{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;}
.au-editor-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;}
.au-editor-close{display:none;}
#au-editor-body{display:flex;flex-direction:column;gap:12px;}
#au-editor-body input,#au-editor-body select,#au-editor-body textarea{min-height:44px;}
.au-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.au-checks{display:flex;flex-wrap:wrap;gap:4px 14px;font-weight:600;}
.au-checks .vf-check,#au-editor-body .vf-check{min-height:44px;display:flex;align-items:center;gap:8px;font-weight:600;}
.au-esc{border:1px solid var(--gold-line);background:var(--gold-soft);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:10px;}
.au-tokens{display:flex;flex-wrap:wrap;gap:6px;}
.au-token{min-height:44px;min-width:44px;padding:0 10px;border-radius:999px;border:1px solid var(--sky-line);background:var(--sky-soft);color:#426d8e;font:inherit;font-size:12px;font-weight:700;cursor:pointer;}
.au-preview{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:#fff;font-size:13px;line-height:1.55;overflow-wrap:anywhere;}
.au-preview-head{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px;}
.au-preview-body{margin-top:8px;}
.au-preview-body p{margin:0 0 10px;}
.au-validation{margin-top:6px;}
.au-val-head{font-size:13px;font-weight:800;color:#8f4a3e;margin-bottom:6px;}
.au-val-list{margin:0;padding-left:18px;font-size:12.5px;color:#8f4a3e;line-height:1.55;display:flex;flex-direction:column;gap:4px;}
.au-val-warn{margin:10px 0 0;padding-left:18px;font-size:12.5px;color:#8a6420;line-height:1.55;}
.au-val-card{border-color:var(--coral-line);}
.au-sheet-backdrop{position:fixed;inset:0;background:rgba(16,37,29,.45);z-index:60;}
/* review / detail */
.au-review-steps{margin:12px 0 0;padding-left:22px;display:flex;flex-direction:column;gap:10px;}
.au-review-steps li{font-size:13.5px;padding-left:4px;}
.au-review-steps small{display:block;color:var(--text-2);font-size:12px;margin-top:2px;}
.au-review-steps li.t-condition::marker{color:var(--plum);}
.au-dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:9px 14px;font-size:13.5px;}
.au-dl dt{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding-top:2px;}
.au-dl dd{margin:0;font-weight:600;overflow-wrap:anywhere;}
.au-ack{align-items:flex-start;gap:9px;font-weight:700;line-height:1.45;display:flex;padding:10px;border-radius:10px;background:var(--gold-soft);border:1px solid var(--gold-line);}
.au-ack input{margin-top:3px;width:20px;height:20px;flex:none;}
.au-ack.is-error{border-color:var(--coral);}
.au-publish-form{display:flex;flex-direction:column;gap:12px;}
.au-tab-body{padding:16px 18px 18px;}
.au-run-list{display:flex;flex-direction:column;}
.au-run-row{display:grid;grid-template-columns:minmax(0,1.6fr) auto minmax(0,1.4fr);gap:12px;align-items:center;padding:12px 6px;border-top:1px solid var(--border-soft);color:var(--text);min-height:44px;}
a.au-run-row:hover{background:var(--surface-2);}
.au-run-main strong{display:block;overflow-wrap:anywhere;}
.au-run-main small,.au-run-next small{color:var(--text-3);font-size:11.5px;overflow-wrap:anywhere;}
/* run timeline */
.au-timeline{list-style:none;margin:10px 0 0;padding:0;position:relative;}
.au-timeline:before{content:'';position:absolute;left:15px;top:6px;bottom:6px;border-left:2px solid var(--border-soft);}
.au-timeline li{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:0 0 18px;}
.au-timeline li>div{min-width:0;}
.au-timeline p{margin:3px 0;font-size:13px;color:var(--text-2);overflow-wrap:anywhere;}
.au-timeline small{font-size:11.5px;color:var(--text-3);}
.au-tl-dot{position:relative;width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--sage-soft);color:var(--accent);font-weight:900;font-size:13px;}
.au-timeline li.s-needs_attention .au-tl-dot{background:var(--coral-soft);color:var(--coral);}
.au-timeline li.s-waiting .au-tl-dot,.au-timeline li.s-waiting_approval .au-tl-dot{background:var(--gold-soft);color:#8a6420;}
.au-srstatus{font-weight:800;}
.au-srstatus.s-needs_attention{color:#8f4a3e;}
.au-msg{border:1px solid var(--border-soft);border-radius:12px;padding:10px 12px;margin:8px 0;background:var(--surface-2);}
.au-msg-head{font-size:13px;}
.au-msg summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--accent);min-height:44px;display:flex;align-items:center;}
.au-attention-card{border-color:var(--coral-line);background:linear-gradient(145deg,#fff,var(--coral-soft));}
.au-attention-card>form,.au-approval-card>form{margin-top:10px;}
.au-approval-card{border-color:var(--gold-line);}
.au-approval-card .au-preview{margin:10px 0;}
/* email editor */
.au-email-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start;}
.au-email-preview{position:sticky;top:16px;}
/* Care Case card */
.au-case-run{padding:10px 0;border-top:1px solid var(--border-soft);}
.au-case-run:first-of-type{border-top:0;}
.au-case-run-head{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap;}
.au-case-run small{color:var(--text-3);font-size:11.5px;}
.au-case-reason{font-size:12px;color:#8f4a3e;margin:6px 0 0;}
.au-case-approval{margin-top:8px;border:1px solid var(--gold-line);background:var(--gold-soft);border-radius:12px;padding:8px 10px;}
.au-case-approval summary{cursor:pointer;font-weight:800;font-size:12.5px;min-height:44px;display:flex;align-items:center;}
.au-case-approval .au-preview{margin:8px 0;font-size:12.5px;}
.au-case-actions{display:flex;gap:8px;flex-wrap:wrap;}
.au-case-actions .btn{min-height:44px;}
.au-case-start{margin-top:10px;display:flex;flex-direction:column;gap:8px;}
.au-case-start select{min-height:44px;}
.au-case-card .care-full{min-height:44px;}
@media(max-width:1280px){.au-builder{grid-template-columns:minmax(0,1fr) 340px;}.au-palette{display:none;}}
@media(max-width:1100px){
  .au-builder{grid-template-columns:minmax(0,1fr);}
  .au-editor{position:fixed;top:0;right:0;bottom:0;margin:0;width:min(440px,100vw);max-height:none;z-index:61;border-radius:18px 0 0 18px;transform:translateX(105%);transition:transform .2s ease;visibility:hidden;}
  .au-editor.is-open{transform:none;visibility:visible;}
  .au-editor-close{display:inline-flex;}
  .au-validation{display:none;}
  .au-builder-page:after{content:'';display:block;}
  .au-grid{grid-template-columns:minmax(0,1fr);}
  .au-email-grid{grid-template-columns:minmax(0,1fr);}
  .au-email-preview{position:static;}
}
@media(max-width:1100px){.au-builder-page .au-flow{padding-bottom:6px;}}
@media(max-width:900px){
  .au-wf-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;padding:14px 4px;}
  .au-wf-main{grid-column:1/-1;}
  .au-wf-status{grid-column:1/-1;}
  .au-wf-last{grid-column:1/-1;}
  .au-wf-act{grid-column:1/-1;}
  .au-wf-act .btn{width:100%;justify-content:center;}
  .au-run-row{grid-template-columns:minmax(0,1fr) auto;}
  .au-run-next{grid-column:1/-1;}
}
@media(max-width:640px){
  .au-builder-title{grid-template-columns:1fr;}
  .au-builder-actions{width:100%;}
  .au-builder-actions .btn{flex:1 1 auto;justify-content:center;}
  .au-card{grid-template-columns:auto minmax(0,1fr);padding:12px;}
  .au-card .au-num{display:none;}
  .au-card-act{grid-column:1/-1;justify-content:flex-start;}
  .au-card.au-trigger{grid-template-columns:auto minmax(0,1fr);}
  .au-editor{width:100vw;border-radius:0;}
  .au-row2{grid-template-columns:1fr;}
  .au-first-run{padding:20px;}
  .au-paused-banner .btn,.au-first-run .btn{width:100%;justify-content:center;}
  .au-form-actions .btn{flex:1;justify-content:center;}
}
/* MG-05 Dashboard Automation card: new controls meet the 44px touch target */
.dash-automation .dash-task-counts a{min-height:44px;display:inline-flex;align-items:center;}
.dash-automation .dash-tasks-actions a{min-height:44px;display:inline-flex;align-items:center;}
/* MG-05: on stacked Care Case layouts the Automation card sits after the operational details */
@media(max-width:1100px){
  .care-sec-automation{order:3;}
  .care-detail.is-pastoral .care-sec-automation{order:5;}
}

/* MG-05 final QA: every new Automation control has a ~44×44px hit area */
.au-case-card .btn,.au-case-card .btn.small,.au-case-card select,.au-case-card summary{min-height:44px;}
.au-case-card .btn.small{min-width:44px;justify-content:center;}
.au-page .vf-check,.au-page label.vf-check{min-height:44px;display:flex;align-items:center;gap:8px;}
.au-page .vf-check input[type=checkbox],.au-page .vf-check input[type=radio]{width:20px;height:20px;flex:none;}
.au-page .au-foot-link a,.au-page .task-crumb a{display:inline-flex;align-items:center;min-height:44px;}
.au-page .task-tabs a{min-height:44px;display:inline-flex;align-items:center;}
.au-page .au-template-cat{display:inline-block;}
.au-esc-attention{border-color:var(--coral-line);background:var(--coral-soft);}
.au-esc-attention .au-case-actions{margin-top:8px;}
.vf-anchor-form{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-soft);}
.vf-anchor-form select,.vf-anchor-form .btn{min-height:44px;}
.vf-anchor-form .btn{align-self:flex-start;}
.au-page input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.au-page select,.au-page textarea{min-height:44px;}

/* ===== MG-06 Reports, Dashboard, Connect ===== */
.rp-topbar{align-items:flex-start;flex-wrap:wrap;gap:12px;}
.rp-title{min-width:0;flex:1 1 320px;}
.rp-title h1{font-size:23px;overflow-wrap:anywhere;}
.rp-title p{margin:4px 0 0;font-size:13px;color:var(--text-2);overflow-wrap:anywhere;}
.rp-back{display:inline-flex;align-items:center;min-height:32px;font-size:13px;font-weight:700;margin-bottom:2px;}
.rp-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;}
.rp-actions form{margin:0;}
.rp-page{max-width:1400px;}
.rp-muted{color:var(--text-3);font-size:12.5px;margin:6px 0 0;}
.rp-note{font-size:13px;color:var(--text-2);margin:0 0 12px;}
.rp-empty{text-align:center;padding:30px 22px;}
.rp-empty p{margin:0 0 12px;color:var(--text-2);}
.rp-empty h2{font-size:18px;margin-bottom:8px;}
/* hub */
.rp-hub-search{display:flex;gap:8px;max-width:520px;margin-bottom:12px;}
.rp-hub-search input{flex:1;min-width:0;min-height:44px;}
.rp-hub-search .btn{min-height:44px;}
.rp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
.rp-chips a{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--text);font-weight:700;font-size:13px;}
.rp-chips a.active{background:var(--accent-soft);border-color:var(--sage-line);color:var(--accent);}
.rp-section{margin-bottom:22px;}
.rp-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.rp-section-head h2{font-size:18px;}
.rp-section-head span{font-size:12.5px;color:var(--text-3);}
.rp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.rp-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.rp-card{display:flex;flex-direction:column;margin:0;overflow:visible;}
.rp-card h3{font-size:16.5px;margin:4px 0 6px;}
.rp-card h3 a{color:var(--text);}
.rp-card p{margin:0 0 14px;color:var(--text-2);font-size:13px;line-height:1.5;flex:1;}
.rp-card-cat{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.rp-card-foot{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.rp-run{min-height:44px;}
.rp-teaser{background:var(--surface-2);}
.rp-pill{display:inline-flex;align-items:center;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;background:var(--sage-soft);color:#2f6f52;border:1px solid var(--sage-line);text-transform:none;letter-spacing:0;}
.rp-pill.team{background:var(--sky-soft);color:#426d8e;border-color:var(--sky-line);}
.rp-pill.addon{background:var(--gold-soft);color:#8a6420;border-color:var(--gold-line);}
.rp-manage{position:relative;}
.rp-manage summary{list-style:none;cursor:pointer;}
.rp-manage summary::-webkit-details-marker{display:none;}
.rp-manage[open]{flex-basis:100%;display:flex;flex-direction:column;gap:10px;padding-top:6px;}
.rp-manage[open] summary{align-self:flex-start;}
.rp-manage-form{display:flex;flex-direction:column;gap:10px;}
.rp-manage-form .btn,.rp-manage form .btn{min-height:40px;align-self:flex-start;}
/* detail */
.rp-explain{padding:14px 18px;}
.rp-explain strong{font-size:13px;}
.rp-explain p{margin:4px 0 0;font-size:13.5px;color:var(--text-2);line-height:1.5;}
.rp-explain p.rp-muted{font-size:12.5px;color:var(--text-3);}
.rp-save{position:relative;}
.rp-save summary{list-style:none;cursor:pointer;}
.rp-save summary::-webkit-details-marker{display:none;}
.rp-save-form{position:absolute;right:0;top:calc(100% + 6px);z-index:40;width:min(340px,calc(100vw - 32px));display:flex;flex-direction:column;gap:10px;margin:0;}
.rp-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:16px 18px;overflow:visible;}
.rp-filters .field{flex:1 1 170px;min-width:0;}
.rp-filters .field span{font-size:12px;font-weight:700;color:var(--text-2);}
.rp-filters select,.rp-filters input{width:100%;min-height:44px;}
.rp-filters .rp-int{flex:0 1 110px;}
.rp-custom{display:flex;gap:12px;flex:2 1 300px;}
.rp-custom[hidden]{display:none;}
.rp-custom .field{flex:1 1 140px;}
.rp-filter-actions{display:flex;gap:8px;}
.rp-filter-actions .btn{min-height:44px;}
.rp-filter-toggle,.rp-sheet-head,.rp-sheet-backdrop{display:none;}
.rp-active{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 14px;font-size:12.5px;color:var(--text-3);}
.rp-chip{display:inline-flex;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-soft);color:var(--text-2);font-weight:600;}
.rp-metrics,.dash-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;}
.rp-metric,.dash-metric{position:relative;display:flex;flex-direction:column;gap:4px;margin:0;border-top:4px solid var(--sage);color:var(--text);min-width:0;overflow:visible;}
a.rp-metric:hover,a.dash-metric:hover{color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.04),0 10px 26px rgba(23,51,40,.1);}
.rp-metric.t1,.dash-metric.t-sky{border-top-color:var(--sky);}
.rp-metric.t2,.dash-metric.t-gold{border-top-color:var(--gold);}
.rp-metric.t3,.dash-metric.t-plum{border-top-color:var(--plum);}
.dash-metric.t-coral{border-top-color:#c97a6a;}
.dash-metric.t-sage{border-top-color:var(--sage);}
.rp-metric-label,.dash-metric-label{font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);}
.rp-metric strong,.dash-metric strong{font-size:28px;font-weight:800;line-height:1.15;overflow-wrap:anywhere;}
.rp-metric-note,.dash-metric-note{font-size:12.5px;color:var(--text-3);overflow-wrap:anywhere;}
.dash-metric-link{position:relative;z-index:2;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;min-height:32px;}
.rp-charts{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;margin-bottom:16px;}
.rp-charts.two{grid-template-columns:repeat(2,minmax(0,1fr));}
.rp-chart{margin:0;overflow:hidden;min-width:0;}
.rp-chart figcaption{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.rp-chart figcaption strong{font-size:14.5px;}
.rp-chart figcaption span{font-size:12.5px;color:var(--text-3);}
.rp-vbars{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:8px;align-items:end;height:220px;}
.rp-vbar{display:flex;flex-direction:column;align-items:stretch;height:100%;min-width:0;color:var(--text);text-align:center;}
.rp-vbar-val{font-size:11.5px;font-weight:800;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rp-vbar-col{flex:1;display:flex;align-items:flex-end;border-bottom:1px solid var(--border);}
.rp-vbar-col span{display:block;width:100%;background:linear-gradient(180deg,#cfe3d7,#e6f1ea);border-radius:6px 6px 0 0;}
a.rp-vbar:hover .rp-vbar-col span{background:linear-gradient(180deg,#9cc4ad,#cfe3d7);}
.rp-vbar-lab{font-size:11px;color:var(--text-3);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rp-hbars{display:flex;flex-direction:column;gap:6px;}
.rp-hbar{display:grid;grid-template-columns:minmax(0,34%) minmax(0,1fr) auto;gap:10px;align-items:center;min-height:32px;color:var(--text);}
.rp-hbar-lab{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rp-hbar-track{height:12px;background:var(--surface-2);border-radius:99px;overflow:hidden;}
.rp-hbar-track span{display:block;height:100%;background:#9cc4ad;border-radius:99px;}
.rp-hbar-val{font-size:12.5px;font-weight:800;}
.rp-details{overflow:visible;}
.rp-details-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.rp-details-head h2{font-size:17px;}
.rp-count{font-size:12.5px;color:var(--text-3);font-weight:600;}
.rp-table-wrap{overflow-x:auto;}
.rp-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.rp-table th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);font-weight:800;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap;}
.rp-table td{padding:11px 10px;border-bottom:1px solid var(--border-soft);vertical-align:top;overflow-wrap:anywhere;}
.rp-table td.primary{font-weight:700;}
.rp-table .num{text-align:right;white-space:nowrap;}
.rp-cards{display:none;list-style:none;margin:0;padding:0;}
.rp-pager{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;}
.rp-per label{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2);}
.rp-per select{min-height:44px;}
.rp-pages{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--text-2);}
.rp-pages .btn{min-height:44px;}
/* print page */
.rp-print{max-width:1000px;margin:0 auto;padding:28px;font-size:12.5px;color:#111;}
.rp-print header{border-bottom:2px solid #333;padding-bottom:10px;margin-bottom:16px;}
.rp-print-church{font-weight:800;font-size:13px;}
.rp-print h1{font-size:22px;margin:4px 0;}
.rp-print h2{font-size:15px;margin:18px 0 6px;}
.rp-print p{margin:3px 0;}
.rp-print-metrics th{text-align:left;padding:3px 16px 3px 0;}
.rp-print .rp-table th,.rp-print .rp-table td{padding:5px 6px;}
@media print{.rp-no-print{display:none!important}.rp-print{padding:0}.rp-print .rp-table tr{break-inside:avoid}}
/* dashboard */
.dash-topbar{flex-wrap:wrap;gap:12px;align-items:center;}
.dash-hello{flex:1 1 240px;min-width:0;}
.dash-hello h1{font-size:23px;}
.dash-hello p{margin:3px 0 0;font-size:13px;color:var(--text-2);}
.dash-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.dash-head-actions .dash-search{width:260px;}
.dash-head-actions .btn{min-height:40px;}
.dash-section{margin-bottom:8px;}
.dash-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin:4px 0 10px;}
.dash-section-head h2{font-size:18px;}
.dash-section-head span{font-size:12.5px;color:var(--text-3);}
.dash-metrics.n1{grid-template-columns:minmax(0,1fr);max-width:360px;}
.dash-metrics.n2{grid-template-columns:repeat(2,minmax(0,1fr));}
.dash-metrics.n3{grid-template-columns:repeat(3,minmax(0,1fr));}
.dash-caught-up{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;font-size:14px;}
.dash-foot-links{display:flex;gap:16px;flex-wrap:wrap;margin:-6px 0 12px;font-size:13px;font-weight:700;}
.dash-foot-links a{display:inline-flex;align-items:center;min-height:32px;}
.dash-journey{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 6px;color:var(--text);}
.dash-journey-step{display:flex;flex-direction:column;gap:4px;min-width:0;}
.dash-journey-bar{height:10px;border-radius:99px;background:var(--surface-2);overflow:hidden;}
.dash-journey-bar span{display:block;height:100%;background:var(--sky);border-radius:99px;}
.dash-journey-lab{font-size:12px;color:var(--text-3);}
.dash-journey-step strong{font-size:18px;}
/* customize */
.dc-form{max-width:820px;overflow:visible;}
.dc-list{list-style:none;margin:0;padding:0;}
.dc-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-soft);}
.dc-check{display:flex;gap:12px;align-items:center;min-height:44px;cursor:pointer;flex:1;min-width:0;}
.dc-check input{width:22px;height:22px;flex-shrink:0;}
.dc-check span{display:flex;flex-direction:column;min-width:0;}
.dc-check small{color:var(--text-3);font-size:12.5px;}
.dc-move{display:flex;gap:6px;flex-shrink:0;}
.dc-move .btn{min-height:44px;min-width:44px;justify-content:center;}
.dc-move .btn[disabled]{opacity:.4;cursor:default;}
.dc-actions{display:flex;gap:8px;margin-top:14px;}
.dc-actions .btn,.dc-reset .btn{min-height:44px;}
.dc-reset{margin-top:6px;}
/* connect */
.connect-subnav{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 30px;border-bottom:1px solid var(--border-soft);background:#fff;}
.connect-label{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin-right:6px;}
.connect-subnav a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:10px;font-weight:700;font-size:13.5px;color:var(--text-2);}
.connect-subnav a:hover{background:var(--surface-2);color:var(--text);}
.connect-subnav a.active{background:var(--accent-soft);color:var(--accent);}
.connect-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.connect-card{margin:0;display:flex;flex-direction:column;overflow:visible;}
.connect-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;}
.connect-card-head h2{font-size:18px;}
.connect-big{font-size:28px;font-weight:800;}
.connect-list{list-style:none;margin:12px 0;padding:0;flex:1;}
.connect-list li{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px solid var(--border-soft);font-size:13.5px;min-width:0;}
.connect-list li span{color:var(--text-3);font-size:12.5px;}
.connect-actions{display:flex;gap:8px;flex-wrap:wrap;}
.connect-actions .btn{min-height:44px;}

@media (max-width:1100px){
  .rp-metrics,.dash-metrics,.dash-metrics.n3{grid-template-columns:repeat(2,minmax(0,1fr));}
  .rp-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .connect-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:900px){
  .rp-charts.two{grid-template-columns:minmax(0,1fr);}
  .rp-grid-2{grid-template-columns:minmax(0,1fr);}
  .dash-head-actions{width:100%;}
  .dash-head-actions .dash-search{flex:1 1 220px;width:auto;}
  .rp-actions .btn,.rp-actions summary.btn,.dash-head-actions .btn{min-height:44px;}
  .connect-subnav{padding:8px 16px;}
  /* filters collapse into a bottom sheet */
  .rp-filter-toggle{display:inline-flex;min-height:44px;margin-bottom:10px;}
  .rp-filter-wrap .rp-filters{display:none;}
  .rp-filter-wrap.open .rp-filters{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:1001;margin:0;max-height:85vh;overflow-y:auto;border-radius:18px 18px 0 0;flex-direction:column;align-items:stretch;padding:16px 16px calc(16px + env(safe-area-inset-bottom));}
  .rp-filter-wrap.open .rp-sheet-backdrop{display:block;position:fixed;inset:0;z-index:1000;background:rgba(20,30,25,.35);}
  .rp-filter-wrap.open .rp-sheet-head{display:flex;justify-content:space-between;align-items:center;}
  .rp-sheet-close{min-width:44px;min-height:44px;border:none;background:none;font-size:26px;cursor:pointer;color:var(--text-2);}
  .rp-filters .field,.rp-custom{flex:0 0 auto;}
  .rp-filter-actions{flex-direction:column;}
  .rp-filter-actions .btn{width:100%;justify-content:center;}
  /* tables become cards */
  .rp-table-wrap{display:none;}
  .rp-cards{display:flex;flex-direction:column;gap:8px;}
  .rp-row-card{border:1px solid var(--border-soft);border-radius:12px;padding:10px 12px;background:#fff;}
  .rp-row-main{font-weight:700;font-size:14px;overflow-wrap:anywhere;}
  .rp-row-main a{display:inline-flex;align-items:center;min-height:32px;}
  .rp-row-sub{font-size:13px;color:var(--text-2);margin-top:2px;overflow-wrap:anywhere;}
  .rp-row-sub span{color:var(--text-3);}
  .rp-row-card details summary{min-height:44px;display:flex;align-items:center;font-size:13px;font-weight:700;color:var(--accent);cursor:pointer;}
  .rp-row-card dl{display:grid;grid-template-columns:minmax(0,40%) minmax(0,1fr);gap:4px 10px;margin:0 0 6px;font-size:13px;}
  .rp-row-card dt{color:var(--text-3);}
  .rp-row-card dd{margin:0;overflow-wrap:anywhere;}
}
@media (max-width:640px){
  .rp-grid,.connect-grid{grid-template-columns:minmax(0,1fr);}
  .rp-metrics,.dash-metrics,.dash-metrics.n2,.dash-metrics.n3{grid-template-columns:minmax(0,1fr);}
  .rp-metric strong,.dash-metric strong{font-size:24px;}
  .rp-actions{width:100%;}
  .rp-actions > *{flex:1 1 auto;}
  .rp-actions .btn,.rp-actions summary.btn{width:100%;justify-content:center;}
  .rp-save-form{position:fixed;left:16px;right:16px;top:auto;bottom:16px;width:auto;}
  .rp-vbars{height:180px;gap:4px;}
  .rp-vbar-val{font-size:10px;}
  .rp-vbar-lab{font-size:10px;}
  .rp-hbar{grid-template-columns:minmax(0,40%) minmax(0,1fr) auto;}
  .rp-hub-search{max-width:none;}
  .dash-journey{grid-template-columns:repeat(2,minmax(0,1fr));}
  .dc-row{flex-direction:column;align-items:stretch;}
  .dc-move{justify-content:flex-end;}
  .dc-move-text{display:inline;}
  .rp-pager{flex-direction:column;align-items:stretch;}
  .rp-pages{justify-content:space-between;}
}
/* MG-06 tablet/phone touch targets (~44px) for the new screens */
@media (max-width:1100px){
  .rp-chips a,.rp-card-foot .btn,.rp-actions .btn,.rp-actions summary.btn,.rp-save-form .btn,.rp-manage summary.btn,
  .dash-head-actions .btn,.dash-page .dash-tasks-actions .btn,.dash-page .dash-tasks-actions a,.connect-actions .btn{min-height:44px;}
  .dash-metric-link,.dash-foot-links a,.rp-back{min-height:44px;}
  .rp-card h3 a{display:inline-flex;align-items:center;min-height:44px;}
  .dash-page .dash-task-counts a{min-height:44px;display:inline-flex;align-items:center;}
  .dash-page .dash-task-side a,.dash-page .dash-task-main > a{display:inline-flex;align-items:center;min-height:44px;}
}
.rp-manage-form input,.rp-manage-form select,.rp-manage-form .btn,.rp-manage form .btn,.rp-save-form input,.rp-save-form select{min-height:44px;}
.rp-manage-form .field{min-width:0;width:100%;}
@media (max-width:640px){.recent-table td.rt-email a{display:block;overflow:hidden;text-overflow:ellipsis;}.recent-table th:nth-child(2),.recent-table td.rt-age{display:none;}}
@media (max-width:640px){
  .dash-metrics,.dash-metrics.n2,.dash-metrics.n3,.rp-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .dash-metrics.n1{grid-template-columns:minmax(0,1fr);max-width:none;}
  .dash-metric,.rp-metric{padding:14px 14px;}
  .dash-metric strong,.rp-metric strong{font-size:22px;}
  .dash-metric-label,.rp-metric-label{font-size:10.5px;letter-spacing:.04em;}
}
@media (max-width:359px){.dash-metrics,.rp-metrics{grid-template-columns:minmax(0,1fr);}}
@media (max-width:640px){
  .rp-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;}
  .rp-actions .btn,.rp-actions summary.btn{padding-left:8px;padding-right:8px;font-size:13px;}
  .rp-actions form .btn{width:100%;}
}
.rp-print-partial{margin:8px 0 0;padding:6px 10px;border:1px solid #999;border-radius:6px;}

/* ===== MG-07 Billing & Plan + Platform Admin billing ===== */
.bp-page,.pa-page{max-width:1400px;}
.bp-topbar{align-items:flex-start;flex-wrap:wrap;gap:12px;}
.bp-settings{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.bp-settings .btn{min-height:40px;}
.bp-banner{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid var(--border-soft);border-radius:16px;padding:14px 18px;margin-bottom:14px;}
.bp-banner strong{font-size:15px;}
.bp-banner p{margin:4px 0 0;font-size:13.5px;line-height:1.5;}
.bp-banner form{margin:0;}
.bp-banner .btn{min-height:44px;}
.tone-sage{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;}
.tone-sky{background:var(--sky-soft);border-color:var(--sky-line);color:#426d8e;}
.tone-gold{background:var(--gold-soft);border-color:var(--gold-line);color:#8a6420;}
.tone-coral{background:var(--coral-soft);border-color:var(--coral-line);color:#985548;}
.tone-plum{background:var(--plum-soft);border-color:var(--plum-line);color:#6a4f6b;}
.bp-status{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:800;padding:4px 11px;border-radius:999px;border:1px solid;white-space:nowrap;}
.bp-pill{display:inline-flex;align-items:center;font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;border:1px solid var(--border-soft);background:var(--surface-2);color:var(--text-2);}
.bp-label{display:block;font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--text-2);margin:0 0 6px;font-family:inherit;}
.bp-fine{font-size:12.5px;color:var(--text-3);margin:6px 0 0;}
.bp-h{font-size:18px;margin:22px 0 10px;}
.bp-h span{font-size:13px;font-weight:500;color:var(--text-3);font-family:inherit;}
.bp-hero{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:flex-start;overflow:visible;}
.bp-hero-main{min-width:0;flex:1 1 320px;}
.bp-hero-main h2{font-size:26px;margin:10px 0 6px;overflow-wrap:anywhere;}
.bp-hero-main p{margin:0;color:var(--text-2);font-size:13.5px;}
.bp-hero-mods{margin-top:6px!important;}
.bp-hero-total{text-align:right;min-width:0;}
.bp-hero-total strong{display:block;font-size:30px;font-weight:800;}
.bp-plans{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.bp-plan{position:relative;display:flex;flex-direction:column;gap:6px;margin:0;cursor:pointer;min-height:112px;overflow:visible;}
.bp-plan input{position:absolute;opacity:0;width:1px;height:1px;}
.bp-plan:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);}
.bp-plan:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px;}
.bp-plan.is-disabled{opacity:.55;cursor:not-allowed;}
.bp-plan-name{font-weight:800;font-size:14.5px;}
.bp-plan-price{font-size:24px;font-weight:800;}
.bp-plan-note{font-size:12.5px;color:var(--text-3);}
.bp-plan-note.good{color:#2f6f52;font-weight:700;}
.bp-addons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.bp-addon{margin:0;overflow:visible;}
.bp-addon-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;}
.bp-addon h3{font-size:16.5px;}
.bp-addon-price{font-weight:800;font-size:16px;}
.bp-addon p{font-size:13px;color:var(--text-2);margin:6px 0 10px;}
.bp-yesno{display:inline-flex;border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.bp-yesno label{position:relative;display:flex;}
.bp-yesno input{position:absolute;opacity:0;width:1px;height:1px;}
.bp-yesno span{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;font-weight:700;font-size:13.5px;cursor:pointer;background:#fff;}
.bp-yesno input:checked + span{background:var(--accent-soft);color:var(--accent);}
.bp-yesno input:focus-visible + span{outline:3px solid var(--accent);outline-offset:-3px;}
.bp-yesno input:disabled + span{opacity:.55;cursor:not-allowed;}
.bp-total{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:16px;overflow:visible;}
.bp-total strong{display:block;font-size:28px;font-weight:800;}
.bp-total .btn,.bp-pay .btn,.bp-confirm .btn{min-height:48px;padding-left:22px;padding-right:22px;}
.bp-pay h2,.bp-next h2{font-size:17px;margin-bottom:6px;}
.bp-pay p,.bp-next p{font-size:13.5px;color:var(--text-2);}
.bp-pay form{margin:8px 0 0;}
.bp-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.bp-lines{margin:0;}
.bp-lines dl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 16px;margin:10px 0 0;font-size:14.5px;}
.bp-lines dd{margin:0;font-weight:700;text-align:right;}
.bp-lines .bp-sum{font-weight:800;border-top:1px solid var(--border-soft);padding-top:12px;}
.bp-estimate{margin-top:14px;}
.bp-estimate-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.bp-estimate-amount{display:block;font-size:28px;font-weight:800;margin:8px 0 6px;}
.bp-estimate p{font-size:13.5px;color:var(--text-2);margin:4px 0;}
.bp-confirm{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px;}
.bp-confirm form{margin:0;}
/* Platform Admin */
.pa-totals{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px;}
.pa-total{margin:0;display:flex;flex-direction:column;gap:4px;color:var(--text);overflow:visible;}
.pa-total strong{font-size:26px;font-weight:800;}
a.pa-total:hover{color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.04),0 10px 26px rgba(23,51,40,.1);}
.pa-commercial h2{font-size:16px;margin-bottom:6px;}
.pa-commercial ul{margin:0;padding-left:18px;font-size:13.5px;line-height:1.7;}
.pa-warn{color:#8a6420;background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:10px;padding:8px 12px;font-size:13px;margin:10px 0 0;}
.pa-warn-inline{color:#8a6420;font-size:12px;font-weight:700;}
.pa-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;overflow:visible;}
.pa-filters .field{flex:1 1 170px;min-width:0;}
.pa-filters input:not([type=checkbox]),.pa-filters select{width:100%;min-height:44px;}
.pa-check{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13.5px;}
.pa-check input{width:20px;height:20px;}
.pa-filter-actions{display:flex;gap:8px;}
.pa-filter-actions .btn,.pa-manage{min-height:44px;}
.pa-cards .pa-manage{margin-top:8px;width:100%;justify-content:center;}
.pa-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px;}
.pa-sec{margin:0;overflow:visible;min-width:0;}
.pa-sec h2,.pa-sec h3{font-size:16.5px;}
.pa-big{font-size:22px;font-weight:800;margin:4px 0 10px;overflow-wrap:anywhere;}
.pa-dl{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);gap:6px 12px;margin:0 0 12px;font-size:13.5px;}
.pa-dl dt{color:var(--text-3);}
.pa-dl dd{margin:0;overflow-wrap:anywhere;}
.pa-id{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pa-id code{font-size:12px;overflow-wrap:anywhere;}
.pa-copy{min-height:36px;}
.pa-sec form .btn,.pa-sec > a.btn{min-height:44px;}
.pa-override{display:flex;flex-direction:column;gap:10px;margin-top:10px;border-top:1px solid var(--border-soft);padding-top:12px;}
.pa-override input,.pa-override select{min-height:44px;}
.pa-override .btn{align-self:flex-start;}
.pa-seg{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px;}
.pa-seg legend{font-size:12px;font-weight:700;color:var(--text-2);margin-bottom:6px;}
.pa-seg label{position:relative;display:flex;}
.pa-seg input{position:absolute;opacity:0;width:1px;height:1px;}
.pa-seg span{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border:1px solid var(--border);border-radius:10px;font-weight:700;font-size:13px;cursor:pointer;background:#fff;}
.pa-seg input:checked + span{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);}
.pa-seg input:focus-visible + span{outline:3px solid var(--accent);outline-offset:2px;}
.pa-danger-zone{margin-bottom:14px;border-color:var(--coral-line);}
.pa-danger-zone p{font-size:13.5px;color:var(--text-2);}
.pa-history{list-style:none;margin:8px 0 0;padding:0;}
.pa-history li{display:grid;grid-template-columns:190px minmax(0,1fr) auto;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-soft);font-size:13.5px;}
.pa-when{color:var(--text-3);font-size:12.5px;}
.pa-what{font-weight:700;overflow-wrap:anywhere;}
.pa-who{color:var(--text-3);font-size:12.5px;text-align:right;}
.pa-delete{margin-top:14px;}
.pa-delete summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700;color:#985548;}
.pa-delete form{display:flex;flex-direction:column;gap:10px;}
.pa-delete input{min-height:44px;}
.pa-delete .btn{align-self:flex-start;min-height:44px;}
.pa-runbook{margin-top:14px;}
.billing-banner{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 24px;font-size:13.5px;font-weight:600;text-align:center;border-bottom:1px solid;}
.billing-banner a{display:inline-flex;align-items:center;min-height:32px;text-decoration:underline;color:inherit;font-weight:800;}
@media (max-width:1100px){
  .bp-plans{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pa-totals{grid-template-columns:repeat(3,minmax(0,1fr));}
  .bp-settings .btn,.billing-banner a{min-height:44px;}
  .pa-copy{min-height:44px;}
}
@media (max-width:900px){
  .bp-addons,.bp-compare,.pa-two{grid-template-columns:minmax(0,1fr);}
  .pa-history li{grid-template-columns:minmax(0,1fr);gap:2px;}
  .pa-who{text-align:left;}
}
@media (max-width:640px){
  .bp-plans{grid-template-columns:minmax(0,1fr);}
  .bp-plan{min-height:0;}
  .pa-totals{grid-template-columns:repeat(2,minmax(0,1fr));}
  .bp-hero-total{text-align:left;}
  .bp-yesno{display:flex;width:100%;}
  .bp-yesno label{flex:1;}
  .bp-yesno span{width:100%;}
  .bp-total{flex-direction:column;align-items:stretch;}
  .bp-total .btn,.bp-pay .btn,.bp-banner .btn,.bp-banner form{width:100%;justify-content:center;}
  .bp-confirm{flex-direction:column-reverse;}
  .bp-confirm .btn,.bp-confirm form{width:100%;justify-content:center;}
  .pa-seg{flex-direction:column;}
  .pa-seg span{width:100%;}
  .pa-override .btn,.pa-sec > a.btn,.pa-sec form .btn{align-self:stretch;width:100%;justify-content:center;}
  .pa-dl{grid-template-columns:minmax(0,1fr);}
  .pa-dl dt{margin-top:6px;}
  .pa-filter-actions{width:100%;}
  .pa-filter-actions .btn{flex:1;justify-content:center;}
}
.pa-sec h2.bp-label,.pa-sec h3.bp-label{font-size:11px;margin-bottom:6px;}
.pa-manage{white-space:nowrap;}
.pa-attention{border-color:var(--coral-line);background:var(--coral-soft);margin-bottom:14px;}
.pa-attention h2{font-size:16.5px;color:#985548;}
.pa-attention p{font-size:13.5px;}
.pa-total-attn{border-color:var(--coral-line);background:var(--coral-soft);}
.pa-totals{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}

/* ===== MG-08 Connect, Branded Communications & Emergency Alerts ===== */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.settings-tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap;}
.em-muted{color:var(--text-3);font-size:13px;}
.em-h2{font-size:16px;font-weight:700;margin:0 0 10px;color:var(--text);}
.em-notice{background:var(--sage-soft);border:1px solid var(--sage-line);color:#2f6f52;border-radius:12px;padding:11px 14px;margin-bottom:16px;font-weight:600;font-size:13.5px;}
.em-errors{background:var(--coral-soft);border:1px solid var(--coral-line);color:#8a4638;border-radius:12px;padding:11px 14px;margin-bottom:16px;font-size:13.5px;}
.em-errors ul{margin:6px 0 0 18px;padding:0;}
.em-warn{background:var(--gold-soft);border:1px solid var(--gold-line);color:#7d5717;border-radius:10px;padding:9px 12px;font-size:13px;margin:8px 0;}
.em-warn-box{background:var(--gold-soft);border:1px solid var(--gold-line);color:#7d5717;border-radius:12px;padding:11px 14px;margin-bottom:16px;font-size:13.5px;font-weight:600;}
.em-page .card,.cm-page .card,.br-page .card{margin-bottom:16px;}
.em-status-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.em-usage{margin:10px 0 0;}
.em-form .em-grid,.em-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;margin:12px 0;}
.em-grid-3{grid-template-columns:repeat(3,1fr);}
.em-switch,.em-radio{display:flex;gap:12px;align-items:flex-start;padding:10px 0;cursor:pointer;min-height:44px;}
.em-switch input,.em-radio input{width:22px;height:22px;flex:0 0 22px;margin-top:2px;accent-color:var(--accent);}
.em-switch span,.em-radio span{display:flex;flex-direction:column;gap:2px;font-size:14px;}
.em-switch small,.em-radio small{color:var(--text-3);font-size:12.5px;line-height:1.45;}
.em-fieldset{border:1px solid var(--border-soft);border-radius:14px;padding:12px 16px;margin:14px 0;}
.em-fieldset legend{font-weight:700;font-size:14px;padding:0 6px;}
.em-checks{display:flex;flex-wrap:wrap;gap:4px 18px;margin:6px 0;}
.em-check{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:13.5px;font-weight:600;cursor:pointer;}
.em-check input{width:20px;height:20px;accent-color:var(--accent);}
.em-narrow{max-width:360px;}
.em-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
.em-page .btn,.cm-page .btn,.br-page .btn,.ib-page .btn,.ib-detail .btn,.pref-page .btn{min-height:44px;}
.em-icon{min-width:44px;min-height:44px;justify-content:center;font-size:17px;padding:0!important;}
.em-danger{color:#9b4a3c!important;}
.em-order{background:var(--surface-2);border-radius:10px;padding:10px 12px;font-size:13.5px;}
.em-contact-list{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:10px;}
.em-contact{border:1px solid var(--border);border-radius:14px;padding:12px 14px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;}
.em-contact.em-off{opacity:.7;}
.em-contact-main{display:flex;gap:12px;align-items:flex-start;min-width:0;}
.em-num{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:800;flex:0 0 30px;}
.em-badges{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap;}
.em-contact-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.em-contact-actions form{margin:0;}
.em-edit{grid-column:1/-1;}
.em-edit summary,.em-add summary{cursor:pointer;min-height:44px;display:inline-flex;align-items:center;font-weight:700;color:var(--accent);}
.em-add summary.btn{color:var(--text);list-style:none;}
.em-add summary::-webkit-details-marker{display:none;}
.em-contact-form{border-top:1px solid var(--border-soft);margin-top:10px;padding-top:10px;}
.em-incident{border-top:1px solid var(--border-soft);padding:12px 0;}
.em-incident-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.em-attempts{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;}
.em-attempts li{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13.5px;background:var(--surface-2);border-radius:10px;padding:8px 10px;}
.emergency-banner{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;margin:0;padding:12px 30px;background:#fbe3dd;border-bottom:2px solid #d87363;color:#7d3326;font-size:14px;}
.emergency-banner a{font-weight:800;color:#7d3326;text-decoration:underline;min-height:44px;display:inline-flex;align-items:center;}
.emergency-banner.attention{background:#f7d3cb;}
.urgent-check,.portal-urgent{display:flex;gap:10px;align-items:flex-start;margin:0 0 18px;padding:12px 14px;border:1px solid var(--coral-line,#e8b8ad);background:#fdf3f0;border-radius:12px;cursor:pointer;}
.urgent-check input,.portal-urgent input{width:22px;height:22px;flex:0 0 22px;margin-top:2px;accent-color:#b45a48;}
.urgent-check span{display:flex;flex-direction:column;gap:3px;font-size:14px;}
.urgent-check small{color:var(--text-3);font-size:12.5px;}

/* Inbox */
.ib-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.ib-filter{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;border-radius:10px;border:1px solid var(--border);background:#fff;font-weight:700;font-size:13px;color:var(--text-2);}
.ib-filter.active{background:var(--accent-soft);border-color:transparent;color:var(--accent);}
.ib-count{background:#d87363;color:#fff;border-radius:999px;padding:1px 8px;font-size:12px;}
.ib-count-soft{background:var(--surface-2);color:var(--text-3);border-radius:999px;padding:1px 8px;font-size:12px;}
.ib-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;}
.ib-row{display:block;color:var(--text);padding:14px 16px;border-left:4px solid transparent;text-decoration:none;}
.ib-row:hover{border-color:var(--border);box-shadow:var(--shadow);}
.ib-row.ib-new{border-left-color:var(--accent);}
.ib-row.ib-high{border-left-color:#c89b3c;}
.ib-row.ib-emergency{border-left-color:#d87363;background:#fffaf8;}
.ib-row-top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.ib-from{font-weight:800;font-size:14.5px;}
.ib-when{color:var(--text-3);font-size:12.5px;}
.ib-badges{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0;}
.ib-preview{margin:0;color:var(--text-2);font-size:13.5px;overflow-wrap:anywhere;}
.ib-share-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;font-weight:600;}
.ib-back{display:inline-flex;align-items:center;min-height:44px;font-weight:700;margin-right:10px;}
.ib-detail-top{flex-wrap:wrap;}
.ib-priority{display:flex;flex-wrap:wrap;gap:10px;align-items:center;border-radius:12px;padding:12px 16px;margin-bottom:16px;font-size:14px;}
.ib-priority-emergency{background:#fbe3dd;border:1px solid #e3a597;color:#7d3326;}
.ib-priority-high{background:var(--gold-soft);border:1px solid var(--gold-line);color:#7d5717;}
.ib-detail-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;align-items:start;}
.ib-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:0 0 14px;}
.ib-facts div{min-width:0;}
.ib-facts dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-weight:700;}
.ib-facts dd{margin:2px 0 0;font-size:14px;overflow-wrap:anywhere;}
.ib-text{white-space:pre-wrap;font-size:15px;line-height:1.6;background:var(--surface-2);border-radius:12px;padding:14px 16px;overflow-wrap:anywhere;}
.ib-actions,.ib-em-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.ib-em-actions form,.ib-actions form{margin:0;}
.ib-prio-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--border-soft);margin-top:14px;padding-top:12px;}
.ib-prio-form label{font-weight:700;font-size:13px;}
.ib-prio-form select,.ib-prio-form input{min-height:44px;}
.ib-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.ib-timeline li{display:flex;flex-direction:column;gap:2px;font-size:13.5px;border-left:3px solid var(--border);padding-left:10px;}
.ib-tl-when{font-size:12px;color:var(--text-3);}
.connect-emergency{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:#fbe3dd;border:1px solid #e3a597;color:#7d3326;margin-bottom:16px;}
.connect-emergency .btn{min-height:44px;}
.connect-issue a{color:#9b4a3c;}

/* Prayer */
.pr-add summary{cursor:pointer;min-height:44px;display:flex;align-items:center;}
.pr-add[open] summary{margin-bottom:12px;}
.pr-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.pr-actions{display:flex;gap:6px;flex-shrink:0;flex-wrap:wrap;}
.pr-actions .btn{min-height:40px;}

/* Communications */
.cm-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;}
.cm-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;}
.cm-sub{margin:4px 0 0;}
.cm-top-actions{display:flex;gap:8px;flex-wrap:wrap;}
.cm-top-actions form{margin:0;}
.cm-subnav{display:flex;flex-wrap:wrap;gap:4px;align-items:center;border-bottom:1px solid var(--border);margin-bottom:18px;}
.cm-subnav a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font-weight:700;font-size:13.5px;color:var(--text-2);border-bottom:3px solid transparent;margin-bottom:-1px;}
.cm-subnav a.active{color:var(--accent);border-bottom-color:var(--accent);}
.cm-subnav .cm-brand-link{margin-left:auto;color:var(--accent);}
.cm-section{margin-bottom:16px;}
.cm-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.cm-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.cm-tpl{display:flex;flex-direction:column;gap:8px;margin:0!important;}
.cm-tpl h3{font-size:15px;margin:0;}
.cm-tpl p{margin:0;}
.cm-tpl .btn{align-self:flex-start;margin-top:auto;}
.cm-tpl-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;}
.cm-tpl-actions form{margin:0;}
.cm-tpl-art{height:74px;border-radius:10px;background:linear-gradient(135deg,#eaf3ed,#fbf4e4);display:flex;flex-direction:column;gap:6px;padding:12px;}
.cm-tpl-art span{display:block;height:8px;border-radius:4px;background:rgba(31,91,59,.25);}
.cm-tpl-art span:first-child{width:55%;height:10px;background:rgba(31,91,59,.55);}
.cm-tpl-art span:nth-child(3){width:35%;background:#c89b3c;}
.cm-art-event_invitation{background:linear-gradient(135deg,#eaf3f9,#f3edf5);}
.cm-art-prayer_update{background:linear-gradient(135deg,#f3edf5,#faf8fb);}
.cm-art-giving_letter{background:linear-gradient(135deg,#fbf4e4,#fff);}
.cm-draft-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.cm-draft-list li{display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--border-soft);padding:8px 0;}
.cm-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.cm-inline select,.cm-inline input{min-height:44px;flex:1 1 220px;min-width:0;}
.cm-inline form{margin:0;}
.cm-table-wrap{padding:0;overflow-x:auto;}
.cm-table{width:100%;border-collapse:collapse;}
.cm-table th,.cm-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border-soft);font-size:13.5px;vertical-align:top;}
.cm-table .num{text-align:right;white-space:nowrap;}
.cm-cards{display:none;flex-direction:column;gap:10px;}
.cm-card{display:flex;flex-direction:column;gap:6px;color:var(--text);margin:0!important;}
.cm-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;}
.cm-card-stats{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--text-2);}
.cm-footnote{margin-top:10px;}
/* editor */
.cm-seg{display:none;background:var(--surface-2);border-radius:12px;padding:4px;margin-bottom:14px;}
.cm-seg button{flex:1;min-height:44px;border:0;background:transparent;border-radius:9px;font-weight:700;font-size:14px;color:var(--text-2);cursor:pointer;}
.cm-seg button.active{background:#fff;color:var(--accent);box-shadow:0 1px 3px rgba(0,0,0,.08);}
.cm-editor-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;align-items:start;}
.cm-preview-col{position:sticky;top:16px;}
.cm-two{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;}
.cm-fields .field,.cm-block .field{margin-bottom:10px;}
.cm-blocks{display:flex;flex-direction:column;gap:12px;margin-bottom:12px;}
.cm-block{margin:0!important;}
.cm-block-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;}
.cm-block-title{font-size:15px;margin:0;outline:none;}
.cm-block-actions{display:flex;gap:6px;flex-wrap:wrap;}
.cm-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 6px;}
.cm-tool{min-width:44px;min-height:44px;padding:0 12px;border:1px solid var(--border);background:#fff;border-radius:9px;font-size:13.5px;cursor:pointer;color:var(--text);}
.cm-tool:hover{background:var(--surface-2);}
.cm-merge{min-height:44px;max-width:160px;}
.cm-image-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px;}
.cm-thumb{width:120px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--border);}
.cm-thumb-empty{display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text-3);background:var(--surface-2);}
.cm-add{display:flex;flex-direction:column;gap:10px;}
.cm-add-label{font-weight:700;font-size:14px;}
.cm-add-list{display:flex;flex-wrap:wrap;gap:8px;}
.cm-errors{background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:13.5px;color:#7d5717;}
.cm-errors ul{margin:6px 0 0 18px;padding:0;}
.cm-more{display:flex;flex-direction:column;gap:12px;align-items:flex-start;}
.cm-more details{width:100%;}
.cm-more summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700;}
.cm-preview{padding:12px!important;background:#e9eeeb!important;border-color:#dde5e0!important;}
.cm-preview-tabs{display:flex;gap:4px;background:#fff;border-radius:10px;padding:4px;margin-bottom:10px;}
.cm-preview-tabs button{flex:1;min-height:44px;border:0;background:transparent;border-radius:8px;font-weight:700;font-size:13px;color:var(--text-2);cursor:pointer;}
.cm-preview-tabs button.active{background:var(--accent-soft);color:var(--accent);}
.cm-preview-subject{font-size:13px;margin:0 4px 8px;overflow-wrap:anywhere;}
.cm-frame-wrap{background:#f4f6f5;border-radius:10px;overflow:hidden;display:flex;justify-content:center;}
.cm-frame-wrap iframe{width:100%;height:640px;border:0;background:#f4f6f5;display:block;}
.cm-frame-wrap[data-view="mobile"] iframe{width:375px;max-width:100%;}
.cm-text{white-space:pre-wrap;background:#fff;border-radius:10px;padding:14px;font-size:13px;max-height:640px;overflow:auto;margin:0;overflow-wrap:anywhere;}
.cm-preview-note{margin:8px 4px 0;}
.cm-dialog{border:0;border-radius:16px;padding:0;width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 48px);box-shadow:0 20px 60px rgba(0,0,0,.25);}
.cm-dialog::backdrop{background:rgba(20,30,25,.45);}
.cm-dialog-inner{padding:18px;display:flex;flex-direction:column;gap:10px;}
.cm-dialog-head{display:flex;justify-content:space-between;align-items:center;}
.cm-upload{align-self:flex-start;cursor:pointer;}
.cm-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;max-height:50vh;overflow:auto;}
.cm-asset{display:flex;flex-direction:column;gap:6px;border:2px solid var(--border);border-radius:12px;padding:6px;background:#fff;cursor:pointer;text-align:left;font-size:12px;min-height:44px;}
.cm-asset.chosen{border-color:var(--accent);}
.cm-asset img{width:100%;height:90px;object-fit:cover;border-radius:8px;}
.cm-asset span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cm-test{margin:0!important;}
/* review */
.cm-review-grid,.cm-detail-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:start;}
.cm-review-side,.cm-detail-side{position:sticky;top:16px;}
.cm-k{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-weight:700;margin-bottom:4px;}
.cm-v{margin:0 0 6px;font-size:16px;overflow-wrap:anywhere;}
.cm-aud-form{display:flex;flex-direction:column;}
.cm-aud-sub{margin:0 0 8px 34px;display:flex;flex-direction:column;gap:6px;}
.cm-aud-sub select,.cm-aud-sub input{min-height:44px;max-width:420px;}
.cm-aud-form > .btn{align-self:flex-start;margin-top:8px;}
.cm-search-results,.cm-chosen{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-width:520px;}
.cm-result{width:100%;min-height:44px;text-align:left;border:1px solid var(--border);background:#fff;border-radius:9px;padding:6px 10px;cursor:pointer;font-size:13.5px;}
.cm-chosen li{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--surface-2);border-radius:9px;padding:4px 4px 4px 10px;font-size:13.5px;}
.cm-counts{width:100%;border-collapse:collapse;font-size:14px;}
.cm-counts th{text-align:left;font-weight:600;color:var(--text-2);padding:7px 0;}
.cm-counts td{text-align:right;font-weight:700;padding:7px 0;}
.cm-counts tr{border-bottom:1px solid var(--border-soft);}
.cm-counts .cm-total th,.cm-counts .cm-total td{font-size:16px;color:var(--accent);font-weight:800;}
.cm-send-form{display:flex;flex-direction:column;gap:4px;}
.cm-when{max-width:320px;margin:4px 0 10px 34px;}
.cm-when input{min-height:44px;}
.cm-send-btn{align-self:flex-start;min-height:48px!important;font-size:15px;}
/* detail */
.cm-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px;}
.cm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-bottom:10px;}
.cm-stats div{background:var(--surface-2);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;}
.cm-stats strong{font-size:22px;}
.cm-stats span{font-size:12px;color:var(--text-3);}
.cm-rfilter select,.cm-rfilter input{flex:0 1 200px;}
.cm-rlist{list-style:none;margin:0;padding:0;}
.cm-rlist li{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--border-soft);padding:10px 0;}
.cm-r-main{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere;}
.cm-r-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;max-width:100%;}
.cm-restore summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:13px;font-weight:700;color:var(--accent);}
.cm-legacy{background:#fff;border-radius:10px;padding:14px;font-size:14px;line-height:1.55;overflow-wrap:anywhere;}
/* branding */
.br-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;align-items:start;}
.br-side{position:sticky;top:16px;display:flex;flex-direction:column;gap:0;}
.br-logos{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.br-logo{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
.br-logo form{margin:0;}
.br-logo-box{width:100%;min-height:110px;border:2px dashed var(--border);border-radius:12px;display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;background:#fafbfa;flex-wrap:wrap;text-align:center;}
.br-logo-box img{max-width:100%;max-height:90px;object-fit:contain;}
.br-mono{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;font-weight:800;font-size:15px;flex:0 0 44px;}
.br-upload label{cursor:pointer;}
.br-color{display:flex;gap:8px;align-items:center;}
.br-color input[type=color]{width:52px;height:44px;padding:2px;border:1px solid var(--border);border-radius:9px;background:#fff;flex:0 0 52px;}
.br-color input:not([type=color]){min-height:44px;flex:1;min-width:0;}
.br-social{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.br-social input{min-height:44px;}
.br-identity{margin-top:14px;background:var(--surface-2);border-radius:12px;padding:12px 14px;font-size:13.5px;}
.br-identity p{margin:4px 0 8px;overflow-wrap:anywhere;}
.br-portal{display:flex;align-items:center;gap:10px;background:#fff;border-radius:10px;padding:14px;}
.br-portal img{max-height:44px;max-width:220px;object-fit:contain;}
/* public preferences */
.pref-page{max-width:560px;margin:48px auto;padding:0 16px;}
.pref-brand{display:flex;align-items:center;gap:10px;background:#fff;border-radius:14px 14px 0 0;padding:16px 20px;border:1px solid var(--border);border-bottom:0;}
.pref-brand img{max-height:48px;max-width:240px;object-fit:contain;}
.pref-card h1{font-size:21px;margin:0 0 6px;}
.pref-switch{margin:14px 0;}
.pref-fine{margin-top:14px;}
.pref-powered{text-align:center;color:var(--text-3);font-size:12px;font-weight:700;margin-top:14px;}
/* member portal branding */
.portal-brand-logo{max-height:40px;max-width:190px;object-fit:contain;display:block;}
.portal-brand-copy-logo small{display:block;}
.portal-login-logo{background:#fff;border-radius:12px;padding:10px 14px;display:inline-block;margin-bottom:14px;}
.portal-login-logo img{max-height:52px;max-width:220px;display:block;object-fit:contain;}
.portal-urgent span{display:block;font-size:14px;}

@media (max-width: 1100px){
  .cm-gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
  .cm-summary{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 1023px){
  .cm-seg{display:flex;}
  .cm-editor-grid{grid-template-columns:1fr;}
  .cm-editor-grid[data-show="edit"] .cm-preview-col{display:none;}
  .cm-editor-grid[data-show="preview"] .cm-edit-col{display:none;}
  .cm-preview-col{position:static;}
  .ib-detail-grid,.cm-review-grid,.cm-detail-grid,.br-grid{grid-template-columns:1fr;}
  .cm-review-side,.cm-detail-side,.br-side{position:static;}
}
@media (max-width: 768px){
  .cm-table-wrap{display:none;}
  .cm-cards{display:flex;}
  .em-grid,.em-form .em-grid,.em-grid-3,.em-form .em-grid-3,.cm-two,.br-logos,.br-social,.ib-facts{grid-template-columns:1fr;}
  .em-contact{grid-template-columns:1fr;}
  .em-contact-actions{justify-content:flex-start;}
  .emergency-banner{padding:12px 16px;}
  .cm-subnav .cm-brand-link{margin-left:0;}
}
@media (max-width: 640px){
  .cm-gallery{grid-template-columns:1fr;}
  .cm-summary{grid-template-columns:1fr 1fr;}
  .cm-top-actions{width:100%;}
  .cm-top-actions .btn,.cm-top-actions form{flex:1 1 auto;}
  .cm-top-actions form .btn{width:100%;justify-content:center;}
  .pr-row{flex-direction:column;}
  .cm-r-side{align-items:flex-start;text-align:left;}
  .cm-aud-sub,.cm-when{margin-left:0;}
  .cm-frame-wrap iframe{height:560px;}
}

[hidden]{display:none!important;}
/* MG-08 touch targets on tablet/phone: every new control ≥ 44px tall */
@media (max-width: 1024px){
  .cm-top .btn,.cm-top button,.pr-page .btn,.cm-page input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]),.cm-page select,.cm-page textarea,
  .em-page input:not([type=checkbox]):not([type=radio]),.em-page select,.br-page input:not([type=checkbox]):not([type=radio]):not([type=file]),.br-page select,.br-page textarea,
  .ib-page input,.ib-page .btn,.ib-detail input,.ib-detail select,.pr-page input:not([type=checkbox]):not([type=radio]),.pr-page select,.pr-page textarea,.pref-page .btn{min-height:44px;}
  .cm-top .btn,.pr-page .btn,.ib-page .btn{display:inline-flex;align-items:center;}
}

/* ===== MG-8.5 Operations Center (Platform Admin only) ===== */
.po-page{max-width:1440px;}
/* Operations Center live strip (public/js/ops-live.js): text + colour, never colour alone */
.po-live{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:0 24px 10px;padding:6px 10px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface,#fff);font-size:12.5px;}
.po-live [hidden]{display:none;}
.po-live-state{font-weight:700;}
.po-live-state::before{content:'●';margin-right:5px;}
.po-live-state[data-tone=healthy]::before{color:var(--sage);} .po-live-state[data-tone=warning]::before{color:var(--amber);} .po-live-state[data-tone=critical]::before,.po-live-state[data-tone=unknown]::before{color:var(--danger);}
.po-live-item{padding:2px 8px;border-radius:999px;background:var(--surface-2,#f4f4f2);font-variant-numeric:tabular-nums;}
.po-live-item[data-tone=warning]{background:var(--amber-soft);color:oklch(42% 0.1 60);} .po-live-item[data-tone=critical]{background:var(--danger-soft);color:var(--danger);font-weight:600;}
.po-live-when{color:var(--text-3);margin-left:auto;}
.po-live-pause{border:1px solid var(--border);background:transparent;border-radius:999px;padding:3px 10px;font-size:12px;cursor:pointer;min-height:32px;}
.po-live-pause:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
@media (max-width:760px){ .po-live{margin:0 16px 10px;} .po-live-when{margin-left:0;width:100%;} .po-live-pause{min-height:44px;} }
.po-tabs{display:flex;gap:6px;overflow-x:auto;padding:0 24px 2px;margin:0 0 12px;scrollbar-width:thin;}
.po-tabs a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:10px;font-weight:700;font-size:13.5px;color:var(--text-2);border:1px solid transparent;}
.po-tabs a.active{background:var(--accent-soft);border-color:var(--sage-line);color:var(--accent);}
.po-subtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.po-subtabs a{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid var(--border);background:#fff;font-weight:700;font-size:13px;color:var(--text);}
.po-subtabs a.active{background:var(--accent-soft);border-color:var(--sage-line);color:var(--accent);}
.po-range{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:12px 16px;margin:0 24px 14px;overflow:visible;}
.po-range-chips{display:flex;flex-wrap:wrap;gap:6px;}
.po-chip{display:inline-flex;align-items:center;min-height:40px;padding:0 13px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--text);font-weight:700;font-size:13px;cursor:pointer;font-family:inherit;list-style:none;}
.po-chip::-webkit-details-marker{display:none;}
.po-chip.active{background:var(--accent-soft);border-color:var(--sage-line);color:var(--accent);}
.po-custom{position:relative;}
.po-custom-body{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:8px;}
.po-custom-body .field{min-width:150px;}
.po-custom-body input{min-height:44px;}
.po-compare{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:13px;font-weight:600;}
.po-compare input{width:20px;height:20px;}
.po-range-note{flex-basis:100%;margin:0;font-size:12px;color:var(--text-3);}
.po-flash{margin:0 24px 12px;}
.po-warn{color:#8f4a3e;font-weight:600;font-size:13px;margin:0;}
.po-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px;}
.po-metrics.three{grid-template-columns:repeat(3,minmax(0,1fr));}
.po-metric{display:flex;flex-direction:column;gap:4px;margin:0;border-top:4px solid var(--sage);color:var(--text);min-width:0;}
.po-metric:hover{box-shadow:0 8px 20px rgba(16,37,29,.07);}
.po-metric.warm{border-top-color:var(--gold);}
.po-metric.hot,.po-metric.state-critical{border-top-color:var(--danger);}
.po-metric.state-warning{border-top-color:var(--gold);}
.po-metric.state-unknown{border-top-color:#9aa3a0;}
.po-metric-label{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);}
.po-metric strong{font-size:24px;font-weight:800;line-height:1.2;overflow-wrap:anywhere;}
.po-metric strong.po-small-strong{font-size:16px;}
.po-metric-note{font-size:12px;color:var(--text-3);overflow-wrap:anywhere;}
.po-delta{font-size:12px;font-weight:700;color:var(--text-2);}
.po-delta.up{color:#8a6420;}.po-delta.down{color:#2f6f52;}
.po-state{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;padding:3px 10px;border-radius:999px;border:1px solid;white-space:nowrap;}
.po-state.healthy{background:var(--sage-soft);border-color:var(--sage-line);color:#2f6f52;}
.po-state.warning{background:var(--gold-soft);border-color:var(--gold-line);color:#8a6420;}
.po-state.critical{background:var(--danger-soft);border-color:var(--danger-line);color:var(--danger);}
.po-state.unknown{background:#f1f3f2;border-color:#d7dcda;color:#59625f;}
.po-dbpath{margin:14px 0;padding:12px 14px;border:1px solid var(--line,#e3e6e4);border-radius:12px;}
.po-dbpath h3{margin:0 0 6px;font-size:15px;}
.po-dbstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px 16px;margin:10px 0;} /* hotfix 2: was .po-dl, which collided with the existing .po-dl */
.po-dbstats div{min-width:0;}.po-dbstats dt{font-size:12px;color:#59625f;}.po-dbstats dd{margin:2px 0 0;font-weight:800;font-size:16px;}
.po-sev{display:inline-flex;font-size:11.5px;font-weight:800;padding:2px 9px;border-radius:999px;background:#f1f3f2;color:#59625f;text-transform:capitalize;}
.po-sev.critical{background:var(--danger-soft);color:var(--danger);}
.po-sev.warning,.po-sev.error{background:var(--gold-soft);color:#8a6420;}
.po-sec{margin-bottom:16px;min-width:0;}
.po-sec h2{font-size:17px;margin:0 0 10px;}
.po-sec-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.po-sec-head h2{margin:0;}
.po-sec-head a{font-size:13px;font-weight:700;}
.po-h3{font-size:14px;margin:16px 0 8px;}
.po-reasons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;}
.po-reasons li a{display:flex;gap:8px;align-items:flex-start;color:var(--text);font-size:13.5px;line-height:1.45;padding:6px 0;}
.po-reasons.compact li a{font-size:12.5px;padding:3px 0;}
.po-reasons li.lvl-critical a{color:var(--danger);}
.po-reasons li.lvl-warning a{color:#8a6420;}
.po-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px;}
.po-chart-card{margin:0 0 16px;min-width:0;overflow:hidden;}
.po-charts .po-chart-card{margin:0;}
.po-chart-card figcaption{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-size:13px;}
.po-chart-card figcaption span{color:var(--text-3);font-size:12px;}
.po-chart{width:100%;height:auto;display:block;}
.po-chart .po-bar{fill:var(--sage);}
.po-chart.tone-gold .po-bar{fill:var(--gold);}
.po-chart.tone-sky .po-bar{fill:var(--sky);}
.po-chart.tone-coral .po-bar{fill:var(--coral,#c9775f);}
.po-chart.tone-plum .po-bar{fill:var(--plum);}
.po-chart .po-hit{fill:transparent;}
.po-chart a:hover .po-bar,.po-chart a:focus .po-bar{opacity:.75;}
.po-chart a:focus{outline:none;}
.po-chart a:focus .po-hit{fill:rgba(31,107,75,.08);}
.po-chart .po-grid{stroke:var(--border-soft);stroke-width:1;}
.po-chart .po-axis{fill:var(--text-3);font-size:11px;font-family:inherit;}
.po-chart-empty{display:flex;align-items:center;justify-content:center;min-height:90px;border:1px dashed var(--border);border-radius:10px;color:var(--text-3);font-size:13px;}
.po-card-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.po-card-grid.wide{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));}
.po-hcard,.po-pcard{margin:0;display:flex;flex-direction:column;gap:10px;border-top:4px solid var(--sage);min-width:0;}
.po-hcard.state-warning,.po-pcard.state-warning{border-top-color:var(--gold);}
.po-hcard.state-critical,.po-pcard.state-critical{border-top-color:var(--danger);}
.po-hcard.state-unknown,.po-pcard.state-unknown{border-top-color:#9aa3a0;}
.po-hcard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.po-hcard-head h2{font-size:16px;margin:0;}
.po-hcard-name{font-weight:800;font-size:15.5px;color:var(--text);overflow-wrap:anywhere;}
.po-hcard-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 12px;margin:0;font-size:12.5px;}
.po-hcard-facts dt{color:var(--text-3);font-weight:600;}
.po-hcard-facts dd{margin:0;overflow-wrap:anywhere;}
.po-hcard-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;}
.po-hcard-actions .btn{min-height:40px;}
.po-conn{margin:0;font-size:13px;font-weight:600;color:var(--text-2);}
.po-dl{display:grid;grid-template-columns:minmax(120px,auto) minmax(0,1fr);gap:6px 14px;margin:0 0 12px;font-size:13.5px;}
.po-dl dt{color:var(--text-3);font-weight:600;}
.po-dl dd{margin:0;overflow-wrap:anywhere;}
.po-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.po-two>.po-sec{margin-bottom:16px;}
.po-code{font-size:12px;background:var(--surface-2);padding:1px 5px;border-radius:5px;overflow-wrap:anywhere;word-break:break-all;}
.po-pre{white-space:pre-wrap;word-break:break-word;font-size:12.5px;background:var(--surface-2);border:1px solid var(--border-soft);border-radius:10px;padding:12px;max-height:420px;overflow:auto;margin:0 0 10px;}
.po-clip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.po-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:13.5px;}
.po-inline-facts{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;}
.po-inline-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:0 0 12px;}
.po-inline-form .field{flex:1 1 180px;min-width:0;}
.po-inline-form .btn{min-height:44px;}
.po-inline-form input,.po-inline-form select{min-height:44px;}
.po-life{display:flex;flex-direction:column;gap:10px;margin-bottom:10px;}
.po-life .btn{min-height:44px;}
.po-lead{font-size:15px;font-weight:600;margin:0 0 12px;}
.po-group{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:12px;}
.po-group .field{flex:1 1 220px;}
.po-group input,.po-group select,.po-group .btn{min-height:44px;}
.po-check{width:22px;height:22px;}
.po-chips-tight{margin:0;}
.po-chips-tight a{min-height:40px;padding:0 12px;}
.po-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;padding:12px 16px;margin-bottom:14px;overflow:visible;}
.po-toolbar select{min-height:44px;}
.po-mini{display:inline-flex;align-items:center;min-height:36px;padding:0 10px;border-radius:999px;border:1px solid var(--border);font-size:12px;font-weight:700;color:var(--text-2);background:#fff;}
.po-mini.active{background:var(--accent-soft);border-color:var(--sage-line);color:var(--accent);}
.po-pager{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;}
.po-pager .btn{min-height:44px;}
.po-status{font-size:12px;font-weight:700;}
.po-status.s-failed,.po-status.s-hard_bounce,.po-status.s-soft_bounce,.po-status.s-blocked,.po-status.s-invalid,.po-status.s-error,.po-status.s-busy,.po-status.s-no_answer{color:var(--danger);}
.po-packet-actions{display:flex;gap:8px;flex-wrap:wrap;}
.po-packet-actions .btn{min-height:44px;}
.po-hidden-text{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
.po-copied{margin:6px 0 0;font-size:12.5px;font-weight:700;color:#2f6f52;min-height:1em;}
.po-timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:13.5px;}
.po-timeline li{border-left:3px solid var(--sage-line);padding-left:10px;}
.po-timeline time{color:var(--text-3);font-size:12px;}
.po-rules{display:flex;flex-direction:column;gap:12px;}
.po-rule{border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin:0;}
.po-rule.off{opacity:.7;background:var(--surface-2);}
.po-rule-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px;}
.po-rule-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end;}
.po-rule-grid input,.po-rule-grid select{min-height:44px;width:100%;}
.po-rule-notes{grid-column:span 3;}
.po-enabled{min-height:44px;display:inline-flex;align-items:center;gap:8px;}
.po-rule-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px;}
.po-rule-foot .btn{min-height:44px;}
.po-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end;margin-top:12px;}
.po-form-grid input,.po-form-grid select,.po-form-grid .btn{min-height:44px;width:100%;}
.pa-ops-entry{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;border-top:4px solid var(--sky);}
.pa-ops-entry h2{margin:0 0 4px;font-size:18px;}
.pa-ops-entry p{margin:0;color:var(--text-2);font-size:13.5px;}
.pa-ops-entry .btn{min-height:44px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
@media(max-width:1200px){.po-metrics{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:900px){.po-charts,.po-two{grid-template-columns:minmax(0,1fr);}.po-rule-grid,.po-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.po-rule-notes{grid-column:1/-1;}.po-metrics.three{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:640px){.po-metrics,.po-metrics.three{grid-template-columns:repeat(2,minmax(0,1fr));}.po-metric strong{font-size:19px;}.po-tabs{padding:0 16px 2px;}.po-range,.po-flash{margin-left:16px;margin-right:16px;}.po-dl{grid-template-columns:minmax(0,1fr);gap:2px;}.po-dl dd{margin-bottom:8px;}.po-card-grid,.po-card-grid.wide{grid-template-columns:minmax(0,1fr);}.po-chip{min-height:44px;}.po-chips-tight a{min-height:44px;}}
@media(max-width:420px){.po-metrics,.po-metrics.three,.po-rule-grid,.po-form-grid{grid-template-columns:minmax(0,1fr);}}

/* ============================================================
   MG-8.6 DENSITY SYSTEM — the single, final source for workspace spacing.
   Earlier layers (lines 1–300: original, "redesign", "refresh") set several generations of padding; the values
   below are the intended final ones and win by order. Legacy rules are kept where other pages depend on them.
   Operational/admin pages get the compact tokens; the Member Portal and marketing pages keep their own,
   roomier scale (their sections set their own sizes further down). Safety content keeps its spacing.
   ============================================================ */
:root{
  --sidebar-width:238px;
  --toolbar-h:62px;
  --space-page-x:22px;
  --space-page-y:18px;
  --space-card:15px 16px;
  --space-card-tight:12px 14px;
  --space-gap:14px;
  --space-section:18px;
  --table-cell-y:8px;
  --table-cell-x:10px;
}
/* The base declarations above (sidebar, .topbar, .content-body, .card, th/td) now read these tokens directly, so
   page-specific rules that come later (e.g. full-bleed list cards with padding:0) keep working. Only the sidebar
   chrome and banner are tuned here. */
@media(min-width:901px){
  .sidebar-brand{padding:2px 6px 16px;}
  .sidebar-logo-mark{width:34px;height:34px;border-radius:11px;}
  .sidebar-brand-copy span{font-size:18.5px!important;}
  .nav-item{padding:8px 10px;gap:10px;}
  .sidebar > a.nav-item{margin-bottom:4px!important;}
  .sidebar-footer{padding:9px 10px;}
  .topbar h1{font-size:22px;}
  .billing-banner{padding-top:7px!important;padding-bottom:7px!important;}
}

/* Page toolbar: title + one-line description + actions in ONE row (replaces separate intro blocks). */
.topbar .topbar-title{display:flex;flex-direction:column;gap:2px;min-width:0;margin-right:auto;}
.topbar .topbar-title h1{margin:0;}
.topbar .topbar-sub{margin:0;font-size:12.5px;color:var(--text-2);line-height:1.35;}
.topbar-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.topbar-actions form{margin:0;}

/* Compact status strip (task/care counters etc.): one row on desktop, wraps on tablet, 2-up on phones.
   Each item stays a link where it was one (clickable counters keep working). */
.stat-strip{display:grid;grid-template-columns:repeat(var(--strip-cols,4),minmax(0,1fr));gap:10px;margin-bottom:var(--space-gap);}
.stat-strip > *{margin:0;}

/* More ⋯ overflow menu — native <details>, so it works with keyboard/touch without script; the script in the
   layout only adds Escape / outside-click closing. Permissions stay server-enforced; destructive items keep their
   existing confirmation page/prompt. */
.more-menu{position:relative;display:inline-block;}
.more-menu > summary{list-style:none;cursor:pointer;}
.more-menu > summary::-webkit-details-marker{display:none;}
.more-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:9500;min-width:210px;background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 36px rgba(16,37,29,.14);padding:6px;display:flex;flex-direction:column;gap:2px;}
.more-menu-list a,.more-menu-list button{display:flex;align-items:center;gap:8px;width:100%;min-height:38px;padding:8px 11px;border-radius:8px;border:0;background:none;color:var(--text);font:inherit;font-size:13.5px;font-weight:600;text-align:left;cursor:pointer;}
.more-menu-list a:hover,.more-menu-list button:hover,.more-menu-list a:focus-visible,.more-menu-list button:focus-visible{background:var(--surface-2);}
.more-menu-list .danger{color:var(--danger);}
.more-menu-list form{margin:0;}
.more-menu-list hr{border:0;border-top:1px solid var(--border-soft);margin:4px 2px;}
.more-menu.align-left .more-menu-list{left:0;right:auto;}

/* Grouped section navigation (Settings): compact, grouped, wraps instead of a 9-button row. */
.section-nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0 0 var(--space-section);padding:0 0 8px;border-bottom:1px solid var(--border-soft);}
.section-nav-group{display:flex;align-items:center;gap:2px;}
.section-nav-group > span{font-size:10.5px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--text-3);margin-right:4px;}
.section-nav a{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border-radius:8px;font-size:13px;font-weight:700;color:var(--text-2);}
.section-nav a:hover{background:var(--surface-2);color:var(--text);}
.section-nav a[aria-current="page"]{background:var(--accent-soft);color:var(--accent);}

/* Compact directory list (Reports): whole row is the link. */
.dir-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px;margin:0 0 var(--space-section);padding:0;list-style:none;}
.dir-item{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px solid var(--border-soft);border-radius:12px;background:#fff;color:var(--text);min-height:44px;}
.dir-item:hover,.dir-item:focus-visible{border-color:var(--sage-line);box-shadow:0 6px 16px rgba(16,37,29,.07);}
.dir-item .dir-cat{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.dir-item strong{font-size:14.5px;}
.dir-item .dir-desc{font-size:12.5px;color:var(--text-2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}

/* Phones: every interactive control inside the page stays a comfortable 44 px touch target. */
@media(max-width:640px){
  .content .btn,.content button:not(.help-tip):not(.task-check),.content select,.content input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),
  .portal-shell .btn,.portal-shell button,.portal-shell select,.portal-shell input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]){min-height:44px;}
  .section-nav a,.more-menu-list a,.more-menu-list button{min-height:44px;}
  .topbar-actions{width:100%;}
}

/* MG-8.6 Care sub-navigation: four workflows + one Settings menu, so it wraps instead of scrolling (a scrolling
   container would clip the menu). The Settings summary looks like the other tabs. */
.care-subnav{overflow:visible;flex-wrap:wrap;margin-bottom:12px;}
.care-subnav a,.care-subnav-settings > summary{min-height:38px;padding:7px 13px;}
.care-subnav-settings > summary{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:800;color:var(--text-2);border-radius:10px 10px 0 0;white-space:nowrap;}
.care-subnav-settings > summary:hover{color:var(--text);background:var(--surface-2);}
.care-subnav-settings > summary.active{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);}
.care-subnav-settings{margin-left:auto;}
@media(max-width:640px){.care-subnav a,.care-subnav-settings > summary{min-height:44px;}.care-subnav-settings{margin-left:0;}}

/* MG-8.6 shared compaction of the older in-page intro block (kept on secondary pages like Automations) and of
   the status counters (Tasks, Care, Visitors, Pastoral, Automations all share .task-summary/.task-stat). */
.task-page-head{margin-bottom:12px;gap:12px;}
.task-page-head h2{font-size:17px;}
.task-page-head p{margin-top:2px;font-size:12.5px;}
.task-summary{gap:10px;margin-bottom:12px;}
.task-stat{flex-direction:row;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-radius:12px;min-height:48px;}
.task-stat strong{font-size:22px;}
@media(max-width:520px){.task-stat{padding:8px 12px;}.task-stat span{font-size:10px;}.task-stat strong{font-size:20px;}}

/* MG-8.6 Dashboard "At a Glance": Needs Attention + Church Pulse share one area with compact sub-headings.
   Colors/tones (urgency) are unchanged; cards are shorter; Needs Attention fits 5 across on wide screens. */
.dash-glance{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;}
.dash-glance .dash-section{margin:0;}
.dash-glance .dash-section-head{margin:0 0 6px;}
.dash-glance .dash-section-head h2{font-family:'Manrope',system-ui,sans-serif;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);}
.dash-glance .dash-metrics{margin-bottom:0;}
@media(min-width:901px){
  .dash-metrics{gap:10px;margin-bottom:12px;}
  .dash-metric{padding:11px 14px;gap:2px;}
  .dash-metric strong{font-size:23px;}
  .dash-metric-label{font-size:10.5px;}
  .dash-section-head{margin:2px 0 8px;}
  .dash-section-head h2{font-size:16.5px;}
  .dash-metrics.n5{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(min-width:1200px){.dash-metrics.n5{grid-template-columns:repeat(5,minmax(0,1fr));}}

/* MG-8.6 compact desktop rows for the shared Tasks / Care / Visitors / Pastoral boards (tablet and phone keep
   their existing card layouts and touch sizes). */
@media(min-width:1101px){
  .task-row,.care-row,.vf-row{min-height:46px;padding-top:6px;padding-bottom:6px;}
  .task-tabs{padding-top:10px;}
  .task-tabs a{padding:6px 12px;}
  .task-filters{padding:8px 16px 10px;}
}

/* MG-8.6 shared list pieces: a compact list-card heading, one toolbar row for segmented filters, row actions with
   a ⋯ menu, and phone-only hiding of secondary table columns (so tables never force sideways scrolling). */
.list-card{padding:0;}
.list-card-head{font-size:15px;padding:12px 16px 4px;margin:0;}
.list-card > .empty-state{padding:14px 16px;}
.people-toolbar{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-bottom:12px;}
.people-seg{display:flex;flex-wrap:wrap;gap:6px;}
.row-actions{white-space:nowrap;text-align:right;}
.row-actions > *{vertical-align:middle;}
.row-actions .more-menu{margin-left:4px;}
.people-search{width:250px;}
@media(max-width:900px){.people-search{width:auto;flex:1 1 200px;}}
@media(max-width:640px){
  .hide-sm{display:none;}
  .row-actions{white-space:normal;}
}

/* MG-8.6 Person profile: compact identity strip, sticky section jump bar, and a grid that becomes one column on
   tablets/phones (it used to stay two narrow columns and squeeze Safety & Medical). Safety & Medical keeps its own
   bordered card and inner spacing. */
.profile-back{margin-bottom:6px;}
.profile-strip{display:flex;align-items:center;gap:14px;padding:12px 16px;flex-wrap:wrap;}
.profile-avatar{width:52px;height:52px;border-radius:14px;font-size:19px;flex:none;}
.profile-id{flex:1 1 260px;min-width:0;}
.profile-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.profile-name h1{font-size:22px;margin:0 4px 0 0;}
.profile-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--text-2);margin-top:3px;}
.profile-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.profile-actions form{margin:0;}
.profile-nav{position:sticky;top:0;z-index:20;display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin:0 0 var(--space-gap);padding:6px;background:rgba(247,249,248,.94);backdrop-filter:blur(8px);border:1px solid var(--border-soft);border-radius:12px;}
.profile-nav a{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 11px;border-radius:8px;font-size:13px;font-weight:700;color:var(--text-2);}
.profile-nav a:hover,.profile-nav a:focus-visible{background:#fff;color:var(--text);}
.profile-nav-flag{font-size:11px;font-weight:800;color:#9a5b00;background:#fff3dc;border:1px solid #f0d79d;border-radius:999px;padding:1px 7px;}
.profile-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:var(--space-gap);align-items:start;}
.profile-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.profile-anchor{scroll-margin-top:60px;}
#contact,#giving,#visitor,#safety{scroll-margin-top:60px;}
@media(max-width:900px){.profile-grid{grid-template-columns:minmax(0,1fr);}}
@media(max-width:900px){.profile-nav{top:54px;}#contact,#giving,#visitor,#safety,.profile-anchor{scroll-margin-top:112px;}}
@media(max-width:640px){.profile-nav a{min-height:44px;}.profile-actions{width:100%;}}
@media(max-width:640px){.profile-id{flex:1 1 0;}.profile-avatar{width:44px;height:44px;font-size:16px;border-radius:12px;}.profile-name h1{font-size:20px;}}

/* MG-8.6 Giving workspace: totals + filters in one full-width row; numbers stay large and labeled. */
.giving-workspace{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 22px;}
.giving-totals{display:flex;gap:10px;flex-wrap:wrap;}
.giving-total{display:flex;flex-direction:column;gap:2px;min-width:150px;padding:8px 14px;border:1px solid var(--border-soft);border-radius:12px;background:linear-gradient(180deg,#fff,#f8fbf9);}
.giving-total span{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);}
.giving-total strong{font-family:'Lora',serif;font-size:24px;font-weight:600;color:#173328;letter-spacing:-.02em;line-height:1.15;}
.giving-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;flex:1 1 520px;}
.giving-filter .field{margin:0;flex:1 1 150px;min-width:0;}
.giving-filter .field:first-child{flex:2 1 220px;}
.giving-filter-actions{display:flex;gap:8px;}
th.num,td.num{text-align:right;}

/* MG-8.6 Connect: one navigation row. Connect areas are pill tabs; inside Communications its own sections follow a
   divider as lighter underline tabs (secondary level), with Branding settings at the end — no second tab bar. */
@media(min-width:901px){
  .connect-subnav{padding:6px var(--space-page-x);gap:4px;}
  .connect-subnav a{min-height:36px;padding:0 13px;}
}
.connect-divider{width:1px;align-self:stretch;margin:6px 8px;background:var(--border);}
.connect-sub{display:inline-flex;flex-wrap:wrap;gap:2px;}
.connect-subnav .connect-sub a{border-radius:0;background:none;box-shadow:inset 0 -2px 0 transparent;}
.connect-subnav .connect-sub a.active{background:none;color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);}
.connect-subnav .connect-aside{margin-left:auto;color:var(--accent);font-weight:700;}
@media(max-width:700px){.connect-divider{display:none;}.connect-sub{width:100%;}.connect-subnav .connect-aside{margin-left:0;}}

/* MG-8.6 Inbox: two-line rows on desktop (sender · badges · time, then preview). Emergency / high-priority rows keep
   their colored edge + tinted background; badges keep their text labels. */
.ib-list{gap:6px;}
.ib-list > .ib-row{margin:0;}
@media(min-width:901px){
  .ib-row{display:grid;grid-template-columns:minmax(150px,auto) minmax(0,1fr) auto;column-gap:12px;row-gap:3px;align-items:center;padding:9px 14px;}
  .ib-row-top{display:contents;}
  .ib-from{grid-column:1;grid-row:1;}
  .ib-badges{grid-column:2;grid-row:1;margin:0;}
  .ib-when{grid-column:3;grid-row:1;}
  .ib-preview{grid-column:1 / -1;grid-row:2;}
}

/* MG-8.6 Sign-up sheet: compact header card; low-frequency row actions in ⋯. */
.signup-head .page-header{margin-bottom:10px;}
.signup-head .page-header h1{font-size:22px;}
.supply-table .more-menu{margin-left:4px;}

/* MG-8.6 Reports hub: search + category chips in one row; compact directory entries. */
.rp-hub-bar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-bottom:14px;}
.rp-hub-bar .rp-hub-search{margin:0;flex:1 1 280px;max-width:380px;}
.rp-hub-bar .rp-chips{margin:0;gap:6px;}
@media(min-width:901px){.rp-hub-bar .rp-chips a{min-height:34px;padding:0 12px;}.rp-hub-bar .rp-hub-search input,.rp-hub-bar .rp-hub-search .btn{min-height:38px;}}
.dir-item.dir-teaser{background:var(--surface-2);}
.settings-nav{gap:4px 0;}
.settings-nav .section-nav-group{padding:0 8px;}
.settings-nav .section-nav-group:first-child{padding-left:0;}
.settings-nav .section-nav-group + .section-nav-group{border-left:1px solid var(--border-soft);}
@media(max-width:640px){.settings-nav .section-nav-group + .section-nav-group{border-left:0;}.settings-nav .section-nav-group{padding:0 4px 0 0;}}
.settings-nav-mobile{display:none;margin:0 0 12px;}
.settings-nav-mobile .more-menu-list a[aria-current="page"]{background:var(--accent-soft);color:var(--accent);}
@media(max-width:900px){.settings-nav{display:none;}.settings-nav-mobile{display:block;}.settings-nav-mobile > summary{width:100%;justify-content:space-between;}}

/* MG-8.6 Platform Admin: tab navigation (Operations Center is a peer destination), compact totals, collapsed
   Commercial modules reference. */
.pa-tabs{margin:10px 0 0;padding:0 var(--space-page-x) 2px;}
.pa-page .pa-total{padding:10px 14px;}
.pa-page .pa-total strong{font-size:22px;}
.pa-commercial > summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
.pa-commercial > summary::-webkit-details-marker{display:none;}
.pa-commercial > summary h2{margin:0;}
.pa-commercial > summary::before{content:'▸';color:var(--text-3);font-size:12px;}
.pa-commercial[open] > summary::before{content:'▾';}
.pa-commercial[open] > summary{margin-bottom:8px;}

/* MG-8.6 Operations Center: compact toolbar (back link + title + one-line description), a slim single-row period
   bar (no card) with the exact range as small secondary text, shorter metric cards (all ten kept, all links), and a
   capped Health Card summary (top 2 reasons; full list one click away). */
.po-topbar .po-back{min-height:0;margin:0;font-size:12px;}
.po-topbar h1{font-size:22px;}
.po-tabs{margin-top:8px;margin-bottom:8px;}
.po-range{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 var(--space-page-x) 10px;padding:0;background:none;border:0;box-shadow:none;}
.po-range-note{flex:1 1 auto;margin:0;text-align:right;font-size:11.5px;color:var(--text-3);}
@media(min-width:901px){
  .po-tabs a{min-height:38px;padding:0 12px;font-size:13px;}
  .po-range .po-chip{min-height:32px;padding:0 11px;font-size:12.5px;}
  .po-range .po-compare{min-height:32px;font-size:12.5px;}
  .po-metrics{gap:10px;margin-bottom:12px;}
  .po-metric{padding:10px 13px;gap:2px;}
  .po-metric strong{font-size:21px;}
  .po-metric-label{font-size:10.5px;}
  .po-metric-note{font-size:11.5px;}
  .po-hcard{gap:8px;padding:12px 14px;}
}
@media(max-width:900px){.po-range-note{text-align:left;flex-basis:100%;}}

/* MG-8.6 Member Portal (warm density — roomier than staff pages): welcome hero ~35% shorter, quick links as one
   compact row of six on wide screens, Announcements / Coming up start higher; inner pages get a compact heading
   (eyebrow + title on one line, one-line description). Colors, serif titles and friendly copy are unchanged. */
@media(min-width:761px){
  .portal-main{padding-top:20px;}
  .portal-welcome{min-height:0;padding:16px 26px;margin-bottom:12px;grid-template-columns:minmax(0,1.8fr) minmax(150px,.45fr);}
  .portal-welcome h1{font-size:30px;margin-bottom:4px;}
  .portal-welcome p{line-height:1.5;}
  .portal-welcome-art{min-height:96px;}
  .portal-welcome-mark{width:64px;height:64px;border-radius:22px;}
  .portal-welcome-actions{margin-top:10px;}
  .portal-quick-card{min-height:62px;padding:10px 12px;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;}
  .portal-quick-icon{width:34px;height:34px;border-radius:10px;}
  .portal-quick-grid{gap:8px;margin-bottom:14px;}
  .portal-page-heading{margin-bottom:12px;}
  .portal-page-heading .portal-eyebrow{display:inline-block;margin-bottom:2px;}
  .portal-title{font-size:25px;margin-bottom:2px;}
  .portal-page-heading .portal-sub{margin-bottom:0;}
}
@media(min-width:1100px){
  .portal-quick-grid{grid-template-columns:repeat(6,minmax(0,1fr));}
  .portal-quick-card{grid-template-columns:30px minmax(0,1fr);}
  .portal-quick-card > b{display:none;}
  .portal-quick-card small{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
}
@media(max-width:760px){.portal-welcome{padding:18px 18px;}.portal-welcome h1{font-size:26px;}.portal-welcome-actions{margin-top:12px;}.portal-quick-card{min-height:64px;}}

/* MG-8.6 shared form density (Task, Care, Bereavement, Visitor Settings forms): slimmer numbered section headers
   with the one-line guidance kept beside the heading, tighter field spacing, and 3 columns for short fields on wide
   screens (.full fields — descriptions, notes, consent/confidentiality text — still span the row). Phones unchanged. */
@media(min-width:901px){
  .preview-form-layout{gap:14px;}
  .preview-section-heading{align-items:center;padding:10px 16px 9px;}
  .preview-section-heading > div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}
  .preview-section-heading h2{font-size:15px;}
  .preview-section-heading p{margin:0;font-size:11.5px;}
  .preview-section-number{width:24px;height:24px;border-radius:8px;}
  .preview-form-grid{padding:13px 16px 15px;gap:11px 14px;}
  .preview-form-main > .card{margin-bottom:12px;}
}
@media(min-width:1300px){.preview-form-grid.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:640px){.content input[type=file]{min-height:44px;}}

/* MG-8.6 accessibility: every new interactive component shows a clear keyboard focus ring. */
.more-menu > summary:focus-visible,.more-menu-list a:focus-visible,.more-menu-list button:focus-visible,.dir-item:focus-visible,
.section-nav a:focus-visible,.profile-nav a:focus-visible,.connect-subnav a:focus-visible,.care-subnav a:focus-visible,
.care-subnav-settings > summary:focus-visible,.people-seg .btn:focus-visible,.po-tabs a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
@media(max-width:1199px){.dash-metrics.n5 > :last-child:nth-child(odd){grid-column:1 / -1;}}
@media(min-width:901px) and (max-width:1199px){.dash-metrics.n5 > :last-child:nth-child(odd){grid-column:auto;}}

/* ===== MG-09: installable member app (install card, App & Notifications page, install steps, safe areas) ===== */
.mg-app-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #dbe7e0;border-radius:16px;padding:12px 16px;margin:0 0 16px;box-shadow:0 8px 22px rgba(16,37,29,.06);}
.mg-app-card[hidden]{display:none;}
.mg-app-card-icon{width:46px;height:46px;border-radius:12px;flex:none;box-shadow:0 4px 12px rgba(16,37,29,.14);}
.mg-app-card-copy{flex:1;min-width:0;}
.mg-app-card-copy h2{font-size:15.5px;margin:0 0 2px;}
.mg-app-card-copy p{margin:0;color:#4f6459;font-size:13px;line-height:1.45;}
.mg-app-card-copy small{display:block;color:#7c8f86;font-size:11.5px;margin-top:2px;}
.mg-app-card-actions,.mg-app-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.mg-app-card-actions .btn,.mg-app-actions .btn{min-height:40px;}
.mg-app-card.is-installed{border-color:#bcd9c8;background:linear-gradient(135deg,#fff,#f1f8f4);}
.portal-footer-end{display:flex;flex-direction:column;align-items:flex-end;gap:4px;}
.portal-footer-app{font-weight:700;color:#3f594d;}
.portal-footer-app:hover{color:#1f6b4b;}

.mg-sheet{border:none;border-radius:20px;padding:0;max-width:min(440px,calc(100% - 32px));width:100%;box-shadow:0 24px 60px rgba(16,37,29,.28);color:inherit;}
.mg-sheet::backdrop{background:rgba(16,37,29,.45);}
.mg-sheet-inner{padding:22px 22px 18px;}
.mg-sheet h2{font-size:19px;margin:0 0 14px;}
.mg-steps{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:12px;}
.mg-steps[hidden]{display:none;}
.mg-steps li{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start;font-size:14.5px;line-height:1.5;}
.mg-steps small{display:block;color:#6b7f75;font-size:12.5px;margin-top:2px;}
.mg-step-n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e7f2ec;color:#1f6b4b;font-weight:800;font-size:14px;}
.mg-share-ico{width:18px;height:18px;vertical-align:-3px;fill:none;stroke:#1a73e8;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.mg-sheet-note{font-size:12.5px;color:#6b7f75;margin:0 0 14px;line-height:1.5;}
.mg-sheet-actions{display:flex;justify-content:flex-end;}
.mg-sheet-actions .btn{min-height:44px;min-width:110px;justify-content:center;}

.mg-app-page{display:grid;gap:0;max-width:760px;}
.mg-app-section h2{font-size:17px;margin:0 0 6px;}
.mg-app-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px;}
.mg-app-row .mg-app-card-icon{width:52px;height:52px;}
.mg-app-row-copy{min-width:0;flex:1;}
.mg-status{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14px;margin:2px 0 6px;color:#27392f;}
.mg-status-dot{width:10px;height:10px;border-radius:50%;background:#b5c2bb;flex:none;}
.mg-status-dot.on{background:#2f8b63;}
.mg-status-dot.ready{background:#c39750;}
.mg-status-dot.blocked{background:#c0453a;}
.mg-help-text{color:#5b6e64;font-size:13.5px;line-height:1.55;margin:0 0 12px;}
.mg-help-text[hidden],.mg-feedback[hidden],.mg-confirm[hidden]{display:none;}
.mg-feedback{margin:12px 0 0;padding:9px 12px;border-radius:10px;background:#f1f6f3;color:#27392f;font-size:13.5px;}
.mg-confirm{border:1px solid #d7e6dd;background:#f6faf8;border-radius:14px;padding:14px 16px;margin:6px 0 12px;}
.mg-confirm h3{font-size:15px;margin:0 0 8px;}
.mg-confirm ul{margin:0 0 12px;padding-left:18px;display:grid;gap:5px;font-size:13.5px;line-height:1.5;color:#3d5046;}
.mg-switches{display:grid;gap:8px;}
.mg-switch{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid #e3ebe6;border-radius:12px;cursor:pointer;min-height:56px;position:relative;}
.mg-switch input{position:absolute;opacity:0;width:1px;height:1px;}
.mg-switch-track{width:44px;height:26px;border-radius:13px;background:#cfd9d4;position:relative;transition:background .15s ease;flex:none;}
.mg-switch-track span{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s ease;}
.mg-switch input:checked + .mg-switch-track{background:#2f8b63;}
.mg-switch input:checked + .mg-switch-track span{transform:translateX(18px);}
.mg-switch input:focus-visible + .mg-switch-track{outline:3px solid #b98535;outline-offset:2px;}
.mg-switch-copy strong{display:block;font-size:14px;}
.mg-switch-copy small{display:block;color:#6b7f75;font-size:12.5px;line-height:1.4;}
.mg-switch-state{font-size:12px;font-weight:800;color:#5b6e64;min-width:26px;text-align:right;}
.mg-help{border-top:1px solid #edf1ef;padding:10px 0;}
.mg-help summary{cursor:pointer;font-weight:700;font-size:14px;min-height:28px;display:flex;align-items:center;}
.mg-help ol,.mg-help ul{margin:8px 0 4px;padding-left:20px;display:grid;gap:4px;font-size:13.5px;line-height:1.5;color:#3d5046;}
.mg-help p{font-size:13.5px;color:#3d5046;margin:6px 0 0;}
@media (prefers-reduced-motion: reduce){.mg-switch-track,.mg-switch-track span{transition:none;}}
@media (max-width:760px){
  .mg-app-card{flex-wrap:wrap;padding:12px 14px;}
  .mg-app-card-copy{flex:1 1 calc(100% - 64px);}
  .mg-app-card-actions{width:100%;}
  .mg-app-card-actions .btn,.mg-app-actions .btn{min-height:44px;flex:1 1 auto;justify-content:center;}
  .portal-footer-end{align-items:flex-start;}
  .portal-footer-app{display:inline-flex;align-items:center;min-height:44px;}
  .mg-help summary{min-height:44px;}
}
/* Installed app: keep content clear of the notch / home indicator. */
@supports (padding:max(0px)){
  .portal-header{padding-top:env(safe-area-inset-top);}
  .portal-footer{padding-bottom:env(safe-area-inset-bottom);}
  .portal-shell{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);}
}
.mg-settings-states{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0;}
.mg-settings-states>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border-soft);border-radius:10px;}
.mg-settings-states dt{font-size:13px;font-weight:600;color:var(--text-2);}
.mg-settings-states dd{margin:0;}

.mg-where{border:1px solid #e3ebe6;background:#fafcfb;border-radius:12px;padding:11px 14px;margin:4px 0 12px;font-size:13.5px;color:#3d5046;line-height:1.5;}
.mg-where p{margin:4px 0 6px;}
.mg-where ul{margin:0;padding-left:18px;display:grid;gap:4px;}

/* ===== MG-10: Migration Center (Settings → Administration → Import / Export) ===== */
.mc-actions{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px;}
.mc-actions a{padding:7px 12px;border-radius:999px;border:1px solid var(--border);background:#fff;font-size:13px;font-weight:600;color:var(--text-2);}
.mc-actions a.active,.mc-actions a[aria-current]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);}
.mc-actions a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.mc-hero{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;}
.mc-hero h2{font-size:18px;margin:0 0 6px;} .mc-hero p{margin:0;color:var(--text-2);font-size:13.5px;line-height:1.55;max-width:720px;}
.mc-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;}
.mc-card-head h2,.card>h2{font-size:16px;margin:0 0 8px;}
.mc-h3{font-size:14px;margin:16px 0 8px;}
.mc-muted{color:var(--text-3);font-size:12.5px;} .mc-empty{color:var(--text-3);font-size:13.5px;margin:4px 0;}
.mc-examples{color:var(--text-3);font-size:12.5px;margin-top:3px;line-height:1.4;overflow-wrap:anywhere;}
.mc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;}
.mc-table-wrap{overflow-x:auto;margin:4px 0 8px;}
.mc-table{width:100%;border-collapse:collapse;font-size:13px;}
.mc-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);}
.mc-table th,.mc-table td{padding:7px 9px;border-bottom:1px solid var(--border-soft);vertical-align:middle;}
.mc-table .num{text-align:right;font-variant-numeric:tabular-nums;} .mc-right{text-align:right;}
.mc-table tr.mc-needs{background:var(--amber-soft);} .mc-table tr.mc-total td{font-weight:700;border-top:2px solid var(--border);}
.mc-table select{min-width:200px;max-width:100%;}
.mc-state{white-space:nowrap;}
.mc-sources{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;}
.mc-source{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:16px;border:1px solid var(--border);border-radius:14px;background:#fff;cursor:pointer;font:inherit;min-height:120px;}
.mc-source:hover:not([disabled]){border-color:var(--accent);box-shadow:var(--shadow);} .mc-source:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.mc-source[disabled]{opacity:.6;cursor:not-allowed;}
.mc-source-name{font-weight:700;font-size:15px;} .mc-source-blurb{font-size:12.5px;color:var(--text-2);line-height:1.45;}
.mc-source-mode{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px;}
.mc-source-mode.oauth{background:var(--sage-soft);color:var(--sage);} .mc-source-mode.file{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);}
.mc-foot{margin-top:12px;}
.mc-jobhead{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0 0 10px;}
.mc-steps{list-style:none;display:flex;flex-wrap:wrap;gap:4px;margin:0 0 14px;padding:0;counter-reset:none;}
.mc-steps li{display:flex;align-items:center;gap:6px;padding:5px 10px 5px 5px;border-radius:999px;font-size:12px;font-weight:600;color:var(--text-3);background:var(--surface-2);}
.mc-steps li.done{color:var(--sage);background:var(--sage-soft);} .mc-steps li.current{color:#fff;background:var(--accent);}
.mc-step-n{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.7);color:inherit;font-size:11px;}
.mc-steps li.current .mc-step-n{background:rgba(255,255,255,.25);}
.mc-alert{padding:10px 14px;border-radius:10px;margin:0 0 12px;font-size:13.5px;font-weight:600;}
.mc-alert.err{background:var(--danger-soft,#fdecea);color:var(--danger);border:1px solid var(--danger-line);} .mc-alert.ok{background:var(--sage-soft);color:var(--sage);} .mc-alert.warn{background:var(--amber-soft);color:oklch(42% 0.1 60);}
.mc-progress h2{margin-bottom:4px;} .mc-note{font-size:13px;color:var(--text-2);}
.mc-bar{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden;margin-top:10px;}
.mc-bar span{display:block;height:100%;width:35%;background:var(--accent);border-radius:3px;animation:mc-slide 1.6s ease-in-out infinite;}
@keyframes mc-slide{0%{transform:translateX(-100%);}100%{transform:translateX(290%);}}
@media (prefers-reduced-motion: reduce){.mc-bar span{animation:none;width:100%;opacity:.4;}}
.mc-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;} .mc-gap{margin-top:12px;}
.mc-check{display:flex;gap:8px;align-items:flex-start;font-size:13.5px;margin:6px 0;} .mc-check input{width:auto;margin-top:3px;}
.mc-domains fieldset{border:0;padding:0;margin:0 0 8px;}
.mc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.mc-howto{margin:0 0 8px;padding-left:20px;display:grid;gap:4px;font-size:13.5px;line-height:1.5;}
.mc-upload{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0;}
.mc-file{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:600;}
.mc-sheet{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin:0 0 10px;font-size:13px;}
.mc-sheet label{display:flex;flex-direction:column;gap:4px;}
.mc-dry{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:6px 0 10px;}
.mc-dry-col{border:1px solid var(--border-soft);border-radius:12px;padding:10px 12px;}
.mc-dry-col h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px;}
.mc-dry-col.ok h3{color:var(--sage);} .mc-dry-col.review h3{color:oklch(42% 0.1 60);} .mc-dry-col.skip h3{color:var(--text-3);}
.mc-dry-col ul{margin:0;padding-left:16px;font-size:13px;display:grid;gap:3px;}
.mc-issues{list-style:none;padding:0;margin:4px 0 10px;display:grid;gap:6px;font-size:13px;}
.mc-issues li{display:flex;gap:8px;align-items:baseline;}
.mc-dup{border:1px solid var(--border-soft);border-radius:12px;padding:10px 12px;margin:0 0 8px;}
.mc-dup-in{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:4px;}
.mc-dup-opts{border:0;padding:0;margin:0 0 6px;}
.mc-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:700;}
.mc-conflicts{margin-top:6px;padding-top:6px;border-top:1px dashed var(--border-soft);}
.mc-confirm ul{margin:0 0 10px;padding-left:18px;display:grid;gap:4px;font-size:13.5px;}
.mc-good{color:var(--sage);font-weight:600;} .mc-bad{color:var(--danger);font-weight:600;}
.mc-danger{margin-top:12px;border-top:1px solid var(--border-soft);padding-top:10px;}
.mc-danger summary{cursor:pointer;font-weight:600;color:var(--danger);}
.mc-activity summary{cursor:pointer;font-weight:600;} .mc-activity ul{margin:8px 0 0;padding-left:18px;font-size:12.5px;display:grid;gap:3px;}
.mc-discard{margin-top:8px;}
@media (max-width:760px){
  .mc-dry{grid-template-columns:1fr;}
  .mc-actions a,.mc-dup .btn,.mc-row .btn,.mc-source,.mc-sheet .btn,.mc-upload .btn,.mc-table .btn{min-height:44px;display:inline-flex;align-items:center;}
  .mc-check{min-height:44px;align-items:center;} .mc-check input{margin-top:0;}
  .mc-table select{min-width:0;width:100%;min-height:44px;}
  .mc-activity summary,.mc-danger summary{min-height:44px;display:flex;align-items:center;}
}
.po-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 16px;margin:0;}
.po-kv dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:700;} .po-kv dd{margin:2px 0 0;font-weight:600;font-size:13.5px;}
/* MG-10 replacement migration (Scan & Validate → Confirm Replacement → progress → Welcome) */
.mc-intro{margin:0 0 12px;font-size:14px;color:var(--text-2);max-width:720px;}
.mc-ready{display:flex;gap:8px;align-items:center;color:var(--sage);font-size:15px;margin:10px 0;}
.mc-details{margin:10px 0;} .mc-details summary{cursor:pointer;font-weight:600;font-size:13.5px;min-height:32px;display:flex;align-items:center;}
.mc-details[open] summary{margin-bottom:6px;}
.mc-progress-list{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:0;max-width:560px;}
.mc-progress-list li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border-soft);font-size:13.5px;}
.mc-progress-list li span:last-child{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap;}
.mc-done-list{list-style:none;padding:0;margin:8px 0;display:grid;gap:4px;font-size:14px;} .mc-done-list span{color:var(--sage);font-weight:700;margin-right:4px;}
.mc-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 16px;margin:6px 0 10px;}
.mc-dl dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);font-weight:700;} .mc-dl dd{margin:2px 0 0;font-weight:600;font-variant-numeric:tabular-nums;}
.mc-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:6px 0 12px;}
.mc-compare>div{border:1px solid var(--border-soft);border-radius:12px;padding:10px 14px;}
.mc-compare .mc-h3{margin-top:4px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.mc-kv{list-style:none;padding:0;margin:0;display:grid;gap:4px;font-size:13.5px;} .mc-kv li{display:flex;justify-content:space-between;gap:10px;} .mc-kv strong{font-variant-numeric:tabular-nums;}
.mc-warn-tag{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:999px;background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger-line);}
.mc-alert.warn p{margin:0 0 6px;font-weight:500;} .mc-alert.warn p:last-child{margin:0;}
.mc-stay{margin:0 0 8px;padding-left:20px;display:grid;gap:3px;font-size:13.5px;}
.mc-confirm-form{display:grid;gap:10px;margin:14px 0 8px;padding:14px;border:1px solid var(--danger-line);border-radius:12px;background:var(--surface,#fff);max-width:640px;}
.mc-phrase{display:flex;flex-direction:column;gap:6px;font-size:13.5px;} .mc-phrase input{max-width:360px;min-height:44px;font-family:ui-monospace,monospace;letter-spacing:.04em;}
.mc-confirm-form .btn.danger{background:var(--danger);color:#fff;border-color:var(--danger);} .mc-confirm-form .btn.danger:hover{filter:brightness(.95);}
.mc-confirm-form .btn,.mc-restore .btn{min-height:44px;}
.mc-man{margin:0 0 8px;padding-left:20px;display:grid;gap:3px;font-size:13px;} .mc-man code{font-size:11.5px;color:var(--text-3);}
.mc-blocking li::before{content:'⚠';color:var(--danger);font-weight:700;}
.mc-values{margin:6px 0;}
@media (max-width:760px){
  .mc-details summary{min-height:44px;}
  .mc-phrase input{max-width:100%;}
  .mc-confirm-form .btn{width:100%;justify-content:center;}
}
.mc-spot{list-style:none;display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0 0 8px;}
.mc-spot a{display:inline-flex;align-items:center;padding:6px 10px;border:1px solid var(--border);border-radius:999px;font-size:12.5px;font-weight:600;}
@media (max-width:760px){
  .mc-card-head a,.mc-spot a{min-height:44px;display:inline-flex;align-items:center;}
  .po-packet details > summary{min-height:44px;display:flex;align-items:center;}
}

/* MG-10: links inside sentences still get a full 44 px tap area on phones */
@media (max-width: 767px) {
  a.mc-tap { display: inline-flex; align-items: center; min-height: 44px; padding: 0 2px; vertical-align: middle; }
}

/* MG-10: Planning Center giving comes from the donations export — make that path obvious */
.mc-alert.info{background:var(--sage-soft);color:var(--ink,#1d2a24);border:1px solid var(--line,#d9e2dc);font-weight:500;}
.mc-giving{border-left:4px solid var(--gold,#c9962b);}

/* Branding: live preview status */
.br-live{float:right;font-size:12px;color:var(--sage,#2f6b4f);font-weight:600}

/* ===================== MG-11 Messaging Center ===================== */
:root{--mgm-green:#103a2c;--mgm-green-2:#164a38;--mgm-green-3:#1f5a45;--mgm-gold:#c9962b;--mgm-urgent:#c2410c;--mgm-urgent-soft:#fff1ea;--mgm-w:720px;}
.mgm-i{display:inline-flex;width:18px;height:18px;flex-shrink:0;}
.mgm-i svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
/* docked inside the app: a flex sibling of the content, so the page reflows (left: placed before the content) */
.app-shell .mgm-dock,.app-shell > .mgm{order:3;}
.app-shell.mgm-left > .mgm{order:1;} .app-shell.mgm-left > main.content{order:2;}
.app-shell > .sidebar{order:0;}
.mgm{position:relative;display:flex;flex-direction:column;background:var(--surface);color:var(--text);min-height:0;}
.mgm-dock{width:var(--mgm-w);max-width:62vw;flex-shrink:0;height:100vh;border-left:1px solid var(--border);box-shadow:-8px 0 24px oklch(20% 0.02 60 / .06);}
.app-shell > .mgm.mgm-dock{width:var(--mgm-w);}
.app-shell.mgm-left > .mgm.mgm-dock{border-left:0;border-right:1px solid var(--border);box-shadow:8px 0 24px oklch(20% 0.02 60 / .06);}
body:not(:has(.app-shell)) > .mgm.mgm-dock{position:fixed;top:0;bottom:0;right:0;z-index:60;}
body:not(:has(.app-shell)) > .mgm.mgm-dock[data-side="left"]{right:auto;left:0;}
body.mgm-docked:not(:has(.app-shell)){padding-right:var(--mgm-w);} body.mgm-docked.mgm-left:not(:has(.app-shell)){padding-right:0;padding-left:var(--mgm-w);}
.mgm-page,.mgm-popout{flex:1;min-height:0;height:100%;} .mgm-popout-wrap{height:100vh;}
.mgm-head{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;background:var(--mgm-green);color:#fff;min-height:46px;}
.mgm-head-title{display:flex;align-items:center;gap:8px;font-family:'Lora',serif;font-size:17px;font-weight:600;}
.mgm-bcast{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.1);color:#fff;font-size:12.5px;font-weight:700;}
.mgm-bcast:hover{background:rgba(255,255,255,.18);color:#fff;}
.mgm-controls{display:flex;gap:2px;margin-left:6px;} .mgm-bcast + .mgm-controls{margin-left:4px;} .mgm-head-title + .mgm-controls{margin-left:auto;}
.mgm-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:inherit;cursor:pointer;}
.mgm-head .mgm-icon-btn:hover{background:rgba(255,255,255,.14);} .mgm-icon-btn:focus-visible{outline:2px solid var(--mgm-gold);outline-offset:1px;}
.mgm-flash{padding:8px 12px;font-size:13px;font-weight:600;background:var(--amber-soft);color:oklch(40% 0.1 60);border-bottom:1px solid var(--amber-line);}
.mgm-flash[data-tone="ok"]{background:var(--sage-soft);color:oklch(38% 0.08 150);} .mgm-flash[data-tone="info"]{background:var(--surface-2);color:var(--text-2);}
.mgm-body{flex:1;display:flex;min-height:0;}
/* green source rail */
.mgm-rail{display:flex;flex-direction:column;gap:2px;width:132px;flex-shrink:0;background:var(--mgm-green-2);color:#e6efe9;padding:8px 6px;overflow-y:auto;}
.mgm-rail-item{display:flex;align-items:flex-start;gap:8px;width:100%;padding:8px;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit;}
.mgm-rail-item:hover{background:rgba(255,255,255,.08);} .mgm-rail-item.active{background:rgba(255,255,255,.16);color:#fff;}
.mgm-rail-label{display:flex;flex-direction:column;min-width:0;} .mgm-rail-label strong{font-size:13px;} .mgm-rail-label small{font-size:10.5px;opacity:.75;line-height:1.25;margin-top:1px;}
.mgm-rail-fill{flex:1;}
.mgm-rail a.mgm-rail-item{text-decoration:none;color:inherit;} .mgm-rail-bcast{margin-top:6px;border-top:1px solid rgba(255,255,255,.12);border-radius:0 0 8px 8px;padding-top:10px;} .mgm-rail-bcast .mgm-i{color:var(--mgm-gold);}
.mgm[data-rail="icons"] .mgm-rail{width:52px;} .mgm[data-rail="icons"] .mgm-rail-label{display:none;}
.mgm[data-rail="hidden"] .mgm-rail{display:none;}
.mgm-rail-restore{display:none;} .mgm[data-rail="hidden"] .mgm-rail-restore{display:flex;align-items:center;justify-content:center;width:22px;border:0;background:var(--mgm-green-2);color:#fff;cursor:pointer;}
.mgm[data-rail="icons"] .mgm-rail-toggle .mgm-i{transform:rotate(180deg);}
/* conversation list */
.mgm-list{width:clamp(240px,calc(var(--mgm-w) * .37),300px);flex-shrink:0;border-right:1px solid var(--border-soft);display:flex;flex-direction:column;min-height:0;overflow-y:auto;background:var(--surface);}
.mgm-list-head{padding:12px 12px 6px;} .mgm-list-head h2{font-size:17px;}
.mgm-chips{display:flex;flex-wrap:wrap;gap:4px;padding:2px 10px 8px;}
.mgm-chip{border:1px solid var(--border);background:var(--surface);border-radius:99px;padding:3px 9px;font:inherit;font-size:12px;font-weight:600;color:var(--text-2);cursor:pointer;min-height:26px;}
.mgm-chip.on{background:var(--mgm-green);border-color:var(--mgm-green);color:#fff;}
.mgm-threads{list-style:none;margin:0;padding:0 6px 10px;}
.mgm-thread{display:flex;gap:9px;width:100%;padding:8px;border:0;border-radius:10px;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer;align-items:center;}
.mgm-thread:hover{background:var(--surface-2);} .mgm-thread.active{background:var(--sage-soft);}
.mgm-thread.urgent{background:var(--mgm-urgent-soft);}
.mgm-thread-main{display:flex;flex-direction:column;min-width:0;flex:1;}
.mgm-thread-top,.mgm-thread-bottom{display:flex;align-items:center;gap:6px;min-width:0;}
.mgm-thread-title{font-size:13.5px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mgm-thread time{font-size:11px;color:var(--text-3);flex-shrink:0;}
.mgm-preview{font-size:12.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;}
.mgm-thread.unread .mgm-thread-title{font-weight:800;} .mgm-thread.unread .mgm-preview{color:var(--text);font-weight:600;}
/* compact directory rows (Chit-Chat): [6 px dot in a fixed 14 px column] [name …] [urgent] [time] [unread] — no avatars */
.mgm-row{gap:6px;padding:6px 8px 6px 4px;min-height:36px;}
.mgm-row .mgm-thread-title{font-size:13.5px;font-weight:600;}
.mgm-row time{margin-left:auto;padding-left:4px;}
.mgm-row-sub{margin-left:auto;font-size:11.5px;color:var(--text-3);white-space:nowrap;flex-shrink:0;}
.mgm-pres-col{width:14px;flex:0 0 14px;display:flex;align-items:center;justify-content:center;}
.mgm-pres{width:6px;height:6px;border-radius:50%;background:#9ca6a8;box-shadow:none;}
.mgm-pres.on{background:#22a35a;}
.mgm-sec{display:flex;align-items:center;gap:8px;width:calc(100% - 12px);margin:6px 6px 2px;padding:6px 6px;border:0;border-top:1px solid var(--border-soft);background:transparent;font:inherit;color:var(--text);cursor:pointer;text-align:left;}
.mgm-sec-name{font-weight:800;font-size:13px;flex:1;}
.mgm-sec-count{font-size:12px;color:var(--text-3);font-weight:700;}
.mgm-sec-chev{display:inline-flex;width:14px;height:14px;color:var(--text-3);} .mgm-sec-chev svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;} .mgm-sec-chev.shut svg{transform:rotate(180deg);}
.mgm-sec-static{cursor:default;}
/* "Remove from Chit-Chat List": a small × on hover / keyboard focus (mouse screens); on touch screens it's in the conversation header */
.mgm-row-li{position:relative;}
.mgm-row-actions{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;gap:2px;}
.mgm-hide-btn{width:26px;height:26px;border:0;border-radius:7px;background:var(--surface-2);color:var(--text-2);display:none;align-items:center;justify-content:center;cursor:pointer;}
.mgm-hide-btn .mgm-i{width:14px;height:14px;}
.mgm-hide-btn:hover{background:var(--border);color:var(--text);}
@media (hover: hover){ .mgm-row-li:hover .mgm-hide-btn,.mgm-row-li:focus-within .mgm-hide-btn,.mgm-row-li:hover .mgm-row-star,.mgm-row-li:focus-within .mgm-row-star{display:inline-flex;} }
/* ★ favorites — the shared MyGathering star (gold #c99a06); person conversations only */
.mgm-star{border:0;background:transparent;color:#c99a06;cursor:pointer;line-height:1;align-items:center;justify-content:center;border-radius:7px;}
.mgm-star:hover,.mgm-star:focus-visible{background:var(--surface-2);}
.mgm-row-star{display:none;width:26px;height:26px;font-size:16px;background:var(--surface-2);}
.mgm-head-star{display:inline-flex;width:34px;height:34px;font-size:19px;flex-shrink:0;}
@media (max-width: 899px){ .mgm-head-star{width:44px;height:44px;font-size:22px;} }
.mgm-hide-btn:focus-visible{display:inline-flex;outline:2px solid var(--mgm-gold);}
.mgm-chat-head .mgm-close{color:var(--text-3);flex-shrink:0;} .mgm-chat-head .mgm-close:hover{color:var(--text);background:var(--surface-2);}
@media (max-width: 899px){ .mgm-chat-head .mgm-close{width:44px;height:44px;} }
/* touch screens have no hover: the list row's "Remove from Chit-Chat List" × is always there, with a full-size tap target */
@media (hover: none){ .mgm-row-li .mgm-hide-btn{display:inline-flex;width:44px;height:44px;flex-shrink:0;} .mgm-row-li:has(.mgm-hide-btn) > .mgm-row{padding-right:52px;} }
.mgm-sec:focus-visible{outline:2px solid var(--mgm-gold);outline-offset:-2px;}
.mgm-count{min-width:19px;height:19px;padding:0 6px;border-radius:99px;background:#c0392b;color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;}
.mgm-urgent-tag{display:inline-block;font-size:10px;font-weight:800;letter-spacing:.06em;color:var(--mgm-urgent);background:#ffe1d3;border-radius:4px;padding:1px 5px;}
.mgm-avatar{position:relative;flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--mgm-green-3);color:#fff;font-size:12.5px;font-weight:800;}
.mgm-av-group,.mgm-av-team,.mgm-av-event{background:#2f3f39;} .mgm-av-reply{background:var(--mgm-gold);}
.mgm-dot{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border-radius:50%;border:2px solid #fff;background:#9aa6a0;}
.mgm-dot.mgm-online{background:#22a35a;} .mgm-dot.mgm-recent{background:#d9a12b;}
.mgm-empty{padding:16px 12px;color:var(--text-3);font-size:13px;list-style:none;}
.mgm-hint{padding:0 12px;margin:2px 0 8px;font-size:12px;color:var(--text-3);}
.mgm-search-wrap{display:flex;align-items:center;gap:6px;margin:4px 10px 6px;padding:0 10px;border:1px solid var(--border);border-radius:9px;color:var(--text-3);}
.mgm-search{flex:1;border:0;padding:9px 0;font:inherit;background:transparent;min-width:0;} .mgm-search:focus{outline:none;}
/* active conversation */
.mgm-chat{flex:1;min-width:290px;display:flex;flex-direction:column;min-height:0;background:var(--surface-2);}
.mgm-chat-head{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--border-soft);}
.mgm-chat-title{display:flex;flex-direction:column;min-width:0;flex:1;} .mgm-chat-title strong{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mgm-chat-title small{font-size:12px;color:var(--text-3);} .mgm-chat-title small.mgm-online{color:#1d8a4c;font-weight:700;}
.mgm-source-link{font-size:12px;font-weight:700;white-space:nowrap;}
.mgm-back{display:none;}
.mgm-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;}
.mgm-msg{display:flex;flex-direction:column;align-items:flex-start;max-width:86%;}
.mgm-msg.mine{align-self:flex-end;align-items:flex-end;}
.mgm-sender{font-size:11.5px;font-weight:700;color:var(--text-2);margin:0 4px 2px;}
.mgm-bubble{padding:9px 12px;border-radius:14px 14px 14px 4px;background:var(--surface);border:1px solid var(--border-soft);white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.4;}
.mgm-msg.mine .mgm-bubble{background:var(--mgm-green-3);border-color:var(--mgm-green-3);color:#fff;border-radius:14px 14px 4px 14px;}
.mgm-msg.urgent .mgm-bubble{border:2px solid var(--mgm-urgent);background:var(--mgm-urgent-soft);color:var(--text);}
.mgm-msg.mine.urgent .mgm-bubble{background:#fbe6dc;}
.mgm-msg.pending .mgm-bubble{opacity:.7;}
.mgm-meta{display:flex;gap:8px;align-items:center;font-size:11px;color:var(--text-3);margin:3px 4px 0;}
.mgm-receipt{cursor:default;} .mgm-receipt[onclick]{cursor:pointer;text-decoration:underline;}
.mgm-sound-hint{position:absolute;left:50%;bottom:72px;transform:translateX(-50%);z-index:5;min-height:44px;max-width:calc(100% - 24px);padding:10px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font:inherit;font-size:13px;font-weight:600;box-shadow:0 6px 18px rgba(0,0,0,.14);cursor:pointer;}
.mgm-retry{border:0;background:none;color:var(--danger);font:inherit;font-size:11.5px;font-weight:700;cursor:pointer;padding:0;}
.mgm-offline-note{margin:0 12px 8px;padding:8px 10px;border-radius:9px;background:var(--amber-soft);font-size:12.5px;color:oklch(38% 0.08 60);}
.mgm-composer{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--surface);border-top:1px solid var(--border-soft);}
.mgm-input{width:100%;resize:none;border:1px solid var(--border);border-radius:10px;padding:9px 11px;font:inherit;font-size:14px;min-height:40px;max-height:140px;}
.mgm-input:focus{outline:2px solid var(--sage-line);border-color:var(--sage);}
.mgm-composer-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;}
.mgm-urgent-toggle{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:99px;padding:5px 11px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;min-height:32px;}
.mgm-urgent-toggle[aria-pressed="true"]{background:var(--mgm-urgent);border-color:var(--mgm-urgent);color:#fff;}
.mgm-send{width:40px;height:40px;border:0;border-radius:10px;background:var(--mgm-green);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.mgm-send:hover{background:var(--mgm-green-3);}
.mgm-placeholder{margin:auto;text-align:center;color:var(--text-3);padding:20px;} .mgm-placeholder .mgm-i{width:34px;height:34px;opacity:.5;}
.mgm-start,.mgm-settings{padding:6px 12px 14px;display:flex;flex-direction:column;gap:10px;} .mgm-start h2{font-size:17px;}
.mgm-check,.mgm-toggle{display:flex;gap:9px;align-items:flex-start;font-size:13px;} .mgm-toggle span{display:flex;flex-direction:column;} .mgm-toggle small{color:var(--text-3);font-size:11.5px;}
.mgm-check input,.mgm-toggle input{width:18px;height:18px;margin-top:1px;accent-color:var(--mgm-green-3);}
.mgm-field{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:700;color:var(--text-2);} .mgm-field select{font:inherit;padding:7px;border-radius:8px;border:1px solid var(--border);}
.mgm-sound{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-left:27px;} .mgm-sound select{font:inherit;padding:6px;border-radius:8px;border:1px solid var(--border);max-width:180px;}
.mgm-sound .mgm-icon-btn{border:1px solid var(--border);color:var(--mgm-green);}
.mgm-row{display:flex;gap:8px;flex-wrap:wrap;}
/* resize grip on the inside edge */
.mgm-grip{position:absolute;top:0;bottom:0;left:-4px;width:8px;cursor:col-resize;z-index:5;}
.mgm[data-side="left"] .mgm-grip{left:auto;right:-4px;}
.mgm-grip:hover,.mgm-grip:focus-visible,.mgm.mgm-resizing .mgm-grip{background:linear-gradient(90deg,transparent 3px,var(--mgm-gold) 3px,var(--mgm-gold) 5px,transparent 5px);outline:none;}
.mgm.mgm-resizing{user-select:none;}
/* minimized / popped-out pill */
.mgm-pill{position:fixed;right:18px;bottom:18px;z-index:70;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:0;border-radius:99px;background:var(--mgm-green);color:#fff;font:inherit;font-weight:700;box-shadow:var(--shadow);cursor:pointer;min-height:44px;}
.mgm-badge{min-width:19px;height:19px;padding:0 6px;border-radius:99px;background:#c0392b;color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;}
.nav-item .mgm-badge{margin-left:auto;}
/* Chit-Chat button: top of every page (Dashboard has its own). Pressed while open / popped out; glows while hidden with unread. */
.mgm-topstrip{display:flex;justify-content:flex-end;padding:10px 24px 0;flex-shrink:0;}
.mgm-topbtn{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:700;font-size:13.5px;text-decoration:none;}
.mgm-topbtn:hover{border-color:var(--mgm-green-3);color:var(--mgm-green);}
.mgm-topbtn .icon{width:17px;height:17px;}
.mgm-topbtn.mgm-on,.dash-chat.mgm-on{background:var(--mgm-green);border-color:var(--mgm-green);color:#fff;}
.dash-chat{display:inline-flex;align-items:center;gap:7px;} .dash-chat .icon{width:17px;height:17px;}
@media (max-width: 899px){ .mgm-topstrip{padding:8px 14px 0;} .mgm-topbtn{min-height:44px;} }
/* attention: a SLOW pulse (one cycle per 2.4 s — far below any flash threshold), until acknowledged */
@keyframes mgm-pulse{0%,100%{box-shadow:0 0 0 0 rgba(201,150,43,0)}50%{box-shadow:0 0 0 4px rgba(201,150,43,.55)}}
@keyframes mgm-pulse-urgent{0%,100%{box-shadow:0 0 0 0 rgba(194,65,12,0)}50%{box-shadow:0 0 0 5px rgba(194,65,12,.6)}}
.mgm-attn{animation:mgm-pulse 2.4s ease-in-out infinite;border-radius:8px;}
.mgm-attn.mgm-attn-urgent{animation-name:mgm-pulse-urgent;}
.mgm-thread.unread{animation:mgm-pulse 2.4s ease-in-out infinite;} .mgm-thread.unread.urgent{animation-name:mgm-pulse-urgent;}
.mgm-attn.mgm-static,.mgm-thread.unread.mgm-static{animation:none;box-shadow:0 0 0 2px var(--mgm-gold);} .mgm-attn.mgm-attn-urgent.mgm-static,.mgm-thread.unread.urgent.mgm-static{box-shadow:0 0 0 2px var(--mgm-urgent);}
@media (prefers-reduced-motion: reduce){.mgm-attn,.mgm-thread.unread{animation:none !important;box-shadow:0 0 0 2px var(--mgm-gold);} .mgm-attn.mgm-attn-urgent,.mgm-thread.unread.urgent{box-shadow:0 0 0 2px var(--mgm-urgent);}}
/* full page (phones / tablets): one pane at a time */
@media (max-width: 899px){
  .mgm-page .mgm-body{flex-direction:column;}
  .mgm-page .mgm-rail{display:flex;flex-direction:row;width:auto !important;overflow-x:auto;padding:6px;gap:4px;flex-shrink:0;}
  .mgm-page .mgm-rail-item{width:auto;flex-shrink:0;align-items:center;padding:7px 10px;}
  .mgm-page .mgm-rail-label small,.mgm-page .mgm-rail-fill,.mgm-page .mgm-rail-toggle,.mgm-page .mgm-rail-restore{display:none !important;}
  .mgm-page .mgm-rail-label{display:flex !important;}
  .mgm-page[data-pane="chat"] .mgm-rail{display:none;}
  .mgm-page .mgm-list{width:100%;border-right:0;}
  .mgm-page[data-pane="chat"] .mgm-list{display:none;}
  .mgm-page[data-pane="list"] .mgm-chat{display:none;}
  .mgm-page .mgm-chat{min-width:0;}
  .mgm-page .mgm-back{display:inline-flex;color:var(--text);}
}
/* pop-out window: list + conversation side by side unless the window itself is narrow */
@media (max-width: 639px){
  .mgm-popout .mgm-body{flex-direction:column;}
  .mgm-popout .mgm-rail{display:flex;flex-direction:row;width:auto !important;overflow-x:auto;padding:6px;gap:4px;flex-shrink:0;}
  .mgm-popout .mgm-rail-item{width:auto;flex-shrink:0;align-items:center;padding:7px 10px;}
  .mgm-popout .mgm-rail-label small,.mgm-popout .mgm-rail-fill,.mgm-popout .mgm-rail-toggle,.mgm-popout .mgm-rail-restore{display:none !important;}
  .mgm-popout .mgm-rail-label{display:flex !important;}
  .mgm-popout[data-pane="chat"] .mgm-rail{display:none;}
  .mgm-popout .mgm-list{width:100%;border-right:0;}
  .mgm-popout[data-pane="chat"] .mgm-list{display:none;}
  .mgm-popout[data-pane="list"] .mgm-chat{display:none;}
  .mgm-popout .mgm-chat{min-width:0;}
  .mgm-popout .mgm-back{display:inline-flex;color:var(--text);}
}
}
@media (max-width: 899px){ .mgm-page .mgm-list-head + .mgm-chips{overflow-x:auto;flex-wrap:nowrap;} }
/* phones / tablets: compact rows stay one line but every tap target is at least 44 px */
@media (max-width: 899px){ .mgm-page .mgm-row{min-height:44px;} .mgm-page .mgm-sec{min-height:44px;} .mgm-page .mgm-chip{min-height:44px;padding:4px 14px;} .mgm-page .mgm-chips{gap:6px;} }
.mgm-page-wrap{display:flex;flex-direction:column;padding:0 !important;overflow:hidden !important;} .mgm-page-wrap #mgm-page{flex:1;min-height:0;display:flex;flex-direction:column;}
.mgm-page .mgm-list-head,.mgm-popout .mgm-list-head{display:none;}
.mgm-bcast .mgm-i{color:#fff;}
/* settings use the wide pane */
.mgm[data-view="settings"] .mgm-list{display:none;}
.mgm-settings-wrap{overflow-y:auto;padding:12px 16px;max-width:620px;} .mgm-settings-back{float:right;margin:6px 0 0;}
/* compact dock (narrow screens / a narrow drag): icon rail, one pane at a time */
.mgm.mgm-compact .mgm-rail{width:52px;} .mgm.mgm-compact .mgm-rail-label{display:none;}
.mgm.mgm-compact[data-rail="hidden"] .mgm-rail{display:none;}
.mgm.mgm-compact .mgm-list{width:auto;flex:1;border-right:0;}
.mgm.mgm-compact[data-pane="chat"] .mgm-list{display:none;} .mgm.mgm-compact[data-pane="list"] .mgm-chat{display:none;}
.mgm.mgm-compact .mgm-chat{min-width:0;} .mgm.mgm-compact .mgm-back{display:inline-flex;color:var(--text);}
.mgm.mgm-compact .mgm-bcast span:not(.mgm-i){display:none;}
.mgm.mgm-compact[data-view="settings"] .mgm-chat{display:flex;}

/* ===== MG-11 broadcasts: how to send (Email / Text / both), text counter, two-channel counts, large-send ===== */
.cm-how-form{display:flex;flex-direction:column;gap:12px;}
.cm-how-form > .btn{align-self:flex-start;}
.cm-method{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.cm-method-opt{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--border);border-radius:12px;padding:12px;cursor:pointer;min-height:44px;background:#fff;}
.cm-method-opt input{width:20px;height:20px;flex:0 0 20px;margin-top:2px;accent-color:var(--accent);}
.cm-method-opt span{display:flex;flex-direction:column;gap:2px;font-size:14px;}
.cm-method-opt small{color:var(--text-3);font-size:12.5px;line-height:1.4;}
.cm-method-opt:has(input:checked){border-color:var(--accent);background:var(--sage-soft);}
.cm-method-opt.is-off,.em-radio.is-off{opacity:.55;cursor:not-allowed;}
.cm-sms-box{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--border-soft);padding-top:12px;}
.cm-sms-box[hidden]{display:none;}
.cm-sms-box textarea{width:100%;min-height:110px;font-size:15px;line-height:1.45;padding:10px 12px;border-radius:10px;border:1px solid var(--border);resize:vertical;}
.cm-sms-meter{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px;color:var(--text-2);font-weight:600;}
.cm-sms-meter.is-multi [data-k=segs]{color:#9a6a00;}
.cm-sms-unicode{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0;}
.cm-sms-unicode[hidden]{display:none;}
.cm-sms-preview summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;font-size:13.5px;}
.cm-sms-preview pre{white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border-radius:14px 14px 14px 4px;padding:10px 12px;margin:0;font:inherit;font-size:14px;max-width:360px;}
.cm-sms-test{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.cm-sms-test label{font-size:13.5px;font-weight:600;}
.cm-sms-test input{min-height:44px;max-width:220px;flex:1 1 160px;}
.cm-sms-pending{margin-bottom:6px;}
.cm-reach{margin:0 0 8px;font-size:15px;}
.cm-count-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px 24px;}
.cm-counts caption{text-align:left;font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:4px 0;}
.cm-large{border:1.5px solid var(--gold-line,#e5c96b);background:var(--gold-soft,#fdf6e3);border-radius:12px;padding:10px 12px;margin:6px 0;}
.cm-large.is-needed{box-shadow:0 0 0 3px rgba(229,201,107,.45);}
@media (max-width:760px){.cm-method{grid-template-columns:1fr;}}
.cm-ch-title{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:14px 0 4px;font-weight:800;}
.cm-stats a{display:flex;flex-direction:column;color:inherit;text-decoration:none;min-height:44px;}
.cm-sms-sent{padding:12px 14px;border-bottom:1px solid var(--border-soft);}
.cm-sms-bubble{white-space:pre-wrap;word-break:break-word;background:var(--surface-2);border-radius:14px 14px 14px 4px;padding:10px 12px;margin:6px 0 0;font:inherit;font-size:14px;}
.mgm-system{align-self:center;text-align:center;font-size:12.5px;color:var(--text-3);background:var(--surface-2);border-radius:999px;padding:5px 12px;margin:6px auto;max-width:90%;}
.mgm-sms-tag{font-size:10px;font-weight:800;letter-spacing:.08em;color:#2563a8;margin:0 2px 2px;}
.mgm-msg.sms .mgm-bubble{border:1.5px dashed rgba(37,99,168,.35);}
.cm-tpl-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;}
.cm-star{min-width:44px;min-height:44px;border:0;background:transparent;font-size:22px;line-height:1;color:#c99a06;cursor:pointer;border-radius:10px;}
.cm-star:hover,.cm-star:focus-visible{background:var(--surface-2);}
.cm-star-on{color:#c99a06;}
.cm-tpl.is-fav{border-color:#e5c96b;}
.cm-tpl-tags{margin:0 0 4px;display:flex;gap:4px;flex-wrap:wrap;}
.ms-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;align-items:start;max-width:1100px;}
.ms-card{display:flex;flex-direction:column;gap:8px;}
.ms-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.ms-inline input{min-height:44px;max-width:160px;}
.ms-status{border-radius:12px;padding:10px 12px;font-size:13.5px;margin:0 0 6px 34px;}
.ms-status.pending{background:#fdf6e3;border:1px solid #e5c96b;}
.ms-status.ok{background:var(--sage-soft);border:1px solid var(--sage-line);}
.ms-status.off{background:var(--surface-2);border:1px solid var(--border);}
.ms-add{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;}
.ms-add input{min-height:44px;flex:1 1 140px;}
#stop-list.ms-card{grid-column:1/-1;}
/* MG-11: dock header controls are full touch targets on tablet/phone widths and touch screens */
@media (max-width: 1024px), (pointer: coarse){
  .mgm .mgm-icon-btn{width:44px;height:44px;}
  .mgm .mgm-head-star{width:44px;height:44px;}
  .mgm .mgm-row,.mgm .mgm-sec{min-height:44px;}
  .mgm-head .mgm-bcast{min-height:44px;min-width:44px;justify-content:center;}
  .mgm .mgm-rail-item{min-height:44px;min-width:44px;}
  .mgm.mgm-compact .mgm-rail,.mgm[data-rail="icons"] .mgm-rail{width:58px;}
  .mgm .mgm-chip{min-height:44px;min-width:44px;}
  .mgm .mgm-urgent-toggle{min-height:44px;}
  .mgm .mgm-send{width:44px;height:44px;}
  .mgm.mgm-compact .mgm-head-title span{display:none;}
  .mgm.mgm-compact .mgm-controls{gap:0;}
  .mgm.mgm-compact .mgm-bcast span:not(.mgm-i){display:none;}
}
.cm-decline summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;font-size:13.5px;} .cm-decline form{margin:4px 0 10px;flex-wrap:wrap;} .cm-decline input{min-height:44px;flex:1 1 220px;}
.mh-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));}
.mh-lines{list-style:none;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px;}
.mh-lines li{border-left:3px solid var(--border);padding-left:8px;}
.mh-lines li.lvl-warning{border-color:#d9a400;} .mh-lines li.lvl-critical{border-color:#c0392b;} .mh-lines li.lvl-unknown{border-color:#8a94a6;} .mh-lines li.lvl-healthy{border-color:#3b8d5c;}
