/* GLO Reunion Planner – family app page. Everything is scoped to .glo-app so the theme can't leak in. */
.glo-app {
	--bg:#EEF2EE; --surface:#FFFFFF; --surface2:#F5F8F5; --line:#D5DDD6; --ink:#15201A; --muted:#58675D;
	--pine:#1E4A36; --river:#2C6E74; --river-soft:#DCEBEC; --ember:#C9771B; --ember-soft:#F7E6CF;
	--good:#2F7D4A; --good-soft:#DDF0E2; --warn:#A8650B; --warn-soft:#FBEBD2; --bad:#B23A32; --bad-soft:#F8DEDB;
	--nav:#17382A; --nav-ink:#D9E6DD; --nav-muted:#8FAA99; --on-pine:#FFFFFF;
	--radius:10px;
	--display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
	--body:"Public Sans", "Segoe UI", system-ui, sans-serif;
	--mono:"IBM Plex Mono", ui-monospace, Consolas, monospace;
	color-scheme: light;
}
@media (prefers-color-scheme: dark) {
	.glo-app {
		color-scheme: dark;
		--bg:#0F1512; --surface:#18211C; --surface2:#1D2822; --line:#2C3A32; --ink:#E4ECE6; --muted:#9BAEA2;
		--pine:#7FC39D; --river:#72B9BF; --river-soft:#1E3436; --ember:#E7A04A; --ember-soft:#3A2A15;
		--good:#6CC58A; --good-soft:#1C3325; --warn:#E6A74C; --warn-soft:#382A15; --bad:#EE8A80; --bad-soft:#3A1F1C;
		--nav:#0B110E; --nav-ink:#D9E6DD; --nav-muted:#7C9585; --on-pine:#0F1512;
	}
}
html.glo-app-html, html.glo-app-html body { margin:0; padding:0; background:var(--bg, #EEF2EE); }
body.glo-app-body { background:#EEF2EE; }
@media (prefers-color-scheme: dark) { body.glo-app-body { background:#0F1512; } }
.glo-app, .glo-app * { box-sizing:border-box; }
.glo-app { background:var(--bg); color:var(--ink); font-family:var(--body); font-size:15px; line-height:1.5; min-height:100vh; -webkit-font-smoothing:antialiased; }
.glo-app a { color:var(--river); text-decoration:none; }
.glo-app a:hover { text-decoration:underline; }
.glo-app h1, .glo-app h2, .glo-app h3, .glo-app h4 { font-family:var(--display); margin:0; color:var(--ink); letter-spacing:-.01em; text-wrap:balance; line-height:1.2; font-weight:700; }
.glo-app button, .glo-app input, .glo-app select, .glo-app textarea { font:inherit; color:inherit; }
.glo-app .num { font-family:var(--mono); font-variant-numeric:tabular-nums; }

/* shell */
.glo-app .shell { display:grid; grid-template-columns:240px minmax(0,1fr); min-height:100vh; background:linear-gradient(to right, var(--nav) 240px, transparent 240px); }
.glo-app .side { background:var(--nav); color:var(--nav-ink); padding:20px 14px; display:flex; flex-direction:column; gap:18px; position:sticky; top:0; height:100vh; overflow:auto; }
.admin-bar .glo-app .side { top:32px; height:calc(100vh - 32px); }
.glo-app .brand { display:flex; gap:10px; align-items:center; padding:0 6px; color:var(--nav-ink); }
.glo-app .brand:hover { text-decoration:none; }
.glo-app .brand b { font-family:var(--display); font-size:17px; display:block; line-height:1.15; }
.glo-app .brand span { font-size:12px; color:var(--nav-muted); }
.glo-app .who { padding:10px; border:1px solid #ffffff1f; border-radius:8px; font-size:13px; }
.glo-app .who b { display:block; color:var(--nav-ink); }
.glo-app .who span { color:var(--nav-muted); font-size:12px; }
.glo-app .navlist { display:grid; gap:2px; }
.glo-app .navlist a { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; color:var(--nav-ink); font-weight:500; }
.glo-app .navlist a:hover { background:#ffffff12; text-decoration:none; }
.glo-app .navlist a[aria-current="page"] { background:#ffffff1f; box-shadow:inset 3px 0 0 var(--ember); }
.glo-app .navlist a:focus-visible { outline:2px solid var(--ember); outline-offset:1px; }
.glo-app .navlist .count { margin-left:auto; font-size:11px; background:var(--ember); color:#1b1206; border-radius:99px; padding:0 7px; font-weight:700; }
.glo-app .navlabel { font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--nav-muted); padding:6px 10px 2px; }
.glo-app .side-foot { margin-top:auto; display:grid; gap:4px; font-size:13px; }
.glo-app .side-foot a { color:var(--nav-muted); padding:4px 10px; }
.glo-app main { padding:24px 28px 64px; min-width:0; }
.glo-app .top { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; justify-content:space-between; margin-bottom:18px; }
.glo-app .top h1 { font-size:28px; }
.glo-app .top p { margin:4px 0 0; color:var(--muted); }

/* layout */
.glo-app .grid { display:grid; gap:14px; }
.glo-app .g4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.glo-app .g3 { grid-template-columns:repeat(3,minmax(0,1fr)); }
.glo-app .g2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.glo-app .g21 { grid-template-columns:2fr 1fr; }
.glo-app .mt { margin-top:14px; }
.glo-app .card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:16px; min-width:0; }
.glo-app .card h2 { font-size:16px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.glo-app .card .sub { color:var(--muted); font-size:13px; margin:2px 0 12px; }
.glo-app .kpi .label { font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; font-weight:600; }
.glo-app .kpi .big { font-family:var(--display); font-size:30px; font-weight:700; line-height:1.1; margin-top:4px; font-variant-numeric:tabular-nums; }
.glo-app .kpi .big small { font-size:15px; color:var(--muted); font-weight:500; }
.glo-app .kpi .foot { font-size:12px; color:var(--muted); margin-top:6px; }
.glo-app .bar { height:8px; background:var(--surface2); border-radius:99px; overflow:hidden; margin-top:10px; border:1px solid var(--line); }
.glo-app .bar i { display:block; height:100%; background:var(--river); border-radius:99px; }
.glo-app .bar.ember i { background:var(--ember); }
.glo-app .pill { display:inline-block; font-size:12px; font-weight:600; border-radius:99px; padding:1px 9px; white-space:nowrap; }
.glo-app .p-yes { background:var(--good-soft); color:var(--good); }
.glo-app .p-maybe { background:var(--warn-soft); color:var(--warn); }
.glo-app .p-no { background:var(--surface2); color:var(--muted); }
.glo-app .p-none { background:var(--bad-soft); color:var(--bad); }
.glo-app .btn { display:inline-flex; align-items:center; gap:6px; cursor:pointer; border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:8px; padding:7px 12px; font-weight:600; font-size:14px; }
.glo-app .btn:hover { border-color:var(--river); text-decoration:none; }
.glo-app .btn.primary { background:var(--pine); border-color:var(--pine); color:var(--on-pine); }
.glo-app .btn.sm { padding:4px 9px; font-size:12px; }
.glo-app .btn:focus-visible { outline:2px solid var(--ember); outline-offset:2px; }
.glo-app .attn { display:grid; gap:8px; }
.glo-app .attn .row { display:flex; gap:12px; align-items:center; padding:10px 12px; border-radius:8px; background:var(--surface2); border-left:4px solid var(--warn); }
.glo-app .attn .row.bad { border-left-color:var(--bad); }
.glo-app .attn .row.ok { border-left-color:var(--good); }
.glo-app .attn .row div { flex:1; min-width:0; }
.glo-app .attn .row b { display:block; }
.glo-app .attn .row span { font-size:12px; color:var(--muted); }
.glo-app .tablewrap { overflow-x:auto; border:1px solid var(--line); border-radius:8px; background:var(--surface); }
.glo-app table { border-collapse:collapse; width:100%; font-size:13px; }
.glo-app th, .glo-app td { text-align:left; padding:9px 10px; border-bottom:1px solid var(--line); white-space:nowrap; vertical-align:middle; }
.glo-app th { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); background:var(--surface2); font-weight:600; }
.glo-app tr:last-child td { border-bottom:0; }
.glo-app td.r, .glo-app th.r { text-align:right; }
.glo-app td .muted { font-size:12px; }
.glo-app .meals { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; }
.glo-app .meal { background:var(--surface2); border:1px solid var(--line); border-radius:8px; padding:10px 12px; display:grid; gap:2px; }
.glo-app .meal .d { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:600; }
.glo-app .meal .h { font-family:var(--display); font-size:22px; font-weight:700; font-variant-numeric:tabular-nums; }
.glo-app .meal .m { font-size:12px; color:var(--muted); }
.glo-app .tabs { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px; align-items:center; }
.glo-app .tabs a { border:1px solid var(--line); background:var(--surface); color:var(--ink); border-radius:99px; padding:5px 12px; font-weight:600; font-size:13px; }
.glo-app .tabs a:hover { text-decoration:none; border-color:var(--river); }
.glo-app .tabs a[aria-current="true"] { background:var(--pine); color:var(--on-pine); border-color:var(--pine); }
.glo-app .tabs select { border:1px solid var(--line); background:var(--surface); border-radius:99px; padding:5px 10px; font-size:13px; }
.glo-app .stack { display:grid; gap:10px; }
.glo-app .split { display:flex; justify-content:space-between; gap:10px; align-items:baseline; }
.glo-app .muted { color:var(--muted); }
.glo-app .note { font-size:12px; color:var(--muted); background:var(--surface2); border:1px dashed var(--line); border-radius:8px; padding:8px 10px; }
.glo-app .hbar { display:grid; grid-template-columns:130px 1fr 60px; gap:10px; align-items:center; font-size:13px; padding:3px 0; }
.glo-app .hbar .track { height:10px; background:var(--surface2); border-radius:99px; overflow:hidden; border:1px solid var(--line); display:flex; }
.glo-app .hbar .track i { display:block; height:100%; }
.glo-app .legend { display:flex; gap:12px; flex-wrap:wrap; font-size:12px; color:var(--muted); margin-top:8px; }
.glo-app .legend i { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:5px; vertical-align:-1px; }
.glo-app .phone { max-width:420px; margin-inline:auto; display:grid; gap:12px; }
.glo-app .hero { background:var(--pine); color:var(--on-pine); border-radius:14px; padding:18px; display:grid; gap:4px; }
.glo-app .hero .cd { font-family:var(--display); font-size:36px; font-weight:700; line-height:1; }
.glo-app .hero span { font-size:13px; opacity:.9; }
.glo-app .empty { text-align:center; padding:28px 16px; color:var(--muted); }
.glo-app .chips { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.glo-app .soon { display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:13px; color:var(--muted); }
.glo-app .soon b { color:var(--ink); }
.glo-app .notice { border:1px solid var(--line); border-left:4px solid var(--good); border-radius:8px; padding:10px 14px; background:var(--surface); margin-bottom:14px; }

/* RSVP and directory forms from the shortcodes, restyled to match */
.glo-app .glo-front, .glo-app .glo-rsvp { --glo-line:var(--line); --glo-soft:var(--surface2); --glo-accent:var(--pine); --glo-warn:var(--warn); --glo-good:var(--good); --glo-bad:var(--bad); max-width:none; }
.glo-app .glo-front .glo-button { background:var(--pine); color:var(--on-pine); }
.glo-app .glo-front .glo-secondary { background:transparent; color:var(--pine); }
.glo-app .glo-field input, .glo-app .glo-field select, .glo-app .glo-field textarea, .glo-app .glo-counts input, .glo-app .glo-dir-search input, .glo-app .glo-dir-search select { background:var(--surface2); color:var(--ink); border:1px solid var(--line); }
.glo-app .glo-card-front, .glo-app .glo-box { background:var(--surface); }
.glo-app .glo-hero { display:none; }

/* account forms */
.glo-app a.who { display:block; color:var(--nav-ink); }
.glo-app a.who:hover { text-decoration:none; background:#ffffff0d; }
.glo-app label.glo-field > span, .glo-app fieldset.glo-field > legend { font-weight:600; font-size:13px; }
.glo-app .glo-field input:not([type=checkbox]):not([type=radio]), .glo-app .glo-field textarea { width:100%; padding:8px 10px; border-radius:8px; }
.glo-app .glo-field input[type=checkbox], .glo-app .glo-field input[type=radio] { width:auto; accent-color:var(--pine); }
.glo-app .grid.g21, .glo-app .grid.g2 { align-items:start; }
.glo-app .glo-field input:focus, .glo-app .glo-field textarea:focus { outline:2px solid var(--river); outline-offset:0; }
.glo-app .glo-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
@media (max-width:480px) { .glo-app .glo-two { grid-template-columns:1fr; } }

/* phone */
@media (max-width:1100px) { .glo-app .g4 { grid-template-columns:repeat(2,minmax(0,1fr)); } .glo-app .g21, .glo-app .g3 { grid-template-columns:1fr; } }
@media (max-width:780px) {
	.glo-app .shell { grid-template-columns:1fr; background:none; }
	.glo-app .side { position:sticky; top:0; height:auto; z-index:5; padding:10px 16px; gap:8px; }
	.admin-bar .glo-app .side { top:0; height:auto; }
	.glo-app .brand span, .glo-app .who, .glo-app .side-foot, .glo-app .navlabel { display:none; }
	.glo-app .navlist { display:flex; overflow-x:auto; gap:4px; padding-bottom:2px; }
	.glo-app .navlist a { white-space:nowrap; padding:6px 10px; }
	.glo-app .navlist a[aria-current="page"] { box-shadow:inset 0 -3px 0 var(--ember); }
	.glo-app main { padding:18px 16px 48px; }
	.glo-app .g4, .glo-app .g2 { grid-template-columns:1fr; }
	.glo-app .top h1 { font-size:23px; }
	.glo-app .hbar { grid-template-columns:90px 1fr 50px; }
}
@media (prefers-reduced-motion:reduce) { .glo-app * { transition:none !important; animation:none !important; } }
