:root {
  --ink:#1d211e;
  --muted:#667068;
  --paper:#f2ede3;
  --card:#fffaf0;
  --line:#d8d0c2;
  --green:#245844;
  --lime:#ded46a;
  --orange:#df4e3d;
  --plum:#68445f;
  --gold:#edbd5a;
  --shadow:0 16px 45px rgba(43,52,45,.09);
}

* { box-sizing:border-box; }
[hidden] { display:none !important; }
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Atkinson Hyperlegible",Arial,sans-serif; }
button,input,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button:not(:disabled),a[href],[role="button"],summary,label { cursor:pointer; }
button:not(:disabled),a[href],summary { transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease,opacity .16s ease; }
button:not(:disabled):hover,a[href]:hover,summary:hover { transform:translateY(-1px); }
button:disabled { cursor:not-allowed; }
a { color:inherit; }
:focus-visible { outline:3px solid rgba(217,103,67,.48); outline-offset:3px; }
.page-shell { max-width:1500px; margin:0 auto; overflow-x:clip; }
.topbar { height:78px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 5vw; border-bottom:1px solid var(--line); background:var(--paper); }
.brand { display:flex; gap:12px; align-items:center; text-decoration:none; font-family:"IBM Plex Sans",sans-serif; font-size:18px; font-weight:600; }
.brand strong { font-weight:800; }
.brand-mark { display:block; width:31px; height:28px; position:relative; background:none; }
.brand-mark::before,.brand-mark::after { content:""; position:absolute; z-index:0; height:1px; background:var(--ink); transform-origin:left center; }
.brand-mark::before { width:24px; left:3px; top:12px; transform:rotate(-18deg); }.brand-mark::after { width:18px; left:8px; top:10px; transform:rotate(52deg); }
.brand-mark span { position:absolute; z-index:1; display:block; border-radius:50%; }
.brand-mark span:nth-child(1) { width:10px; height:10px; left:0; top:9px; background:var(--ink); }.brand-mark span:nth-child(2) { width:12px; height:8px; right:0; top:2px; border-radius:60% 40% 55% 45%; background:var(--orange); }.brand-mark span:nth-child(3) { width:9px; height:9px; left:16px; bottom:0; background:var(--gold); }
.desktop-nav { display:flex; gap:8px; }
.desktop-nav a { padding:9px 14px; border-radius:20px; text-decoration:none; color:var(--muted); font-weight:600; font-size:14px; }
.desktop-nav a:hover,.desktop-nav a.active { color:var(--green); background:rgba(31,91,70,.08); }
.mobile-only { display:none; }
.mobile-menu { display:none; }
.mobile-menu-button { width:42px; height:42px; align-items:center; justify-content:center; flex-direction:column; gap:4px; border:1px solid var(--line); border-radius:50%; background:var(--card); color:var(--ink); cursor:pointer; }
.mobile-menu-button span { width:17px; height:1.5px; border-radius:4px; background:currentColor; transition:transform .2s ease,opacity .2s ease; }
.mobile-menu-button[aria-expanded="true"] span:nth-child(1) { transform:translateY(5.5px) rotate(45deg); }.mobile-menu-button[aria-expanded="true"] span:nth-child(2) { opacity:0; }.mobile-menu-button[aria-expanded="true"] span:nth-child(3) { transform:translateY(-5.5px) rotate(-45deg); }
.account-controls { justify-self:end; display:flex; align-items:center; gap:10px; }
.sign-in-button,.hero-sign-in { border:0; border-radius:999px; padding:10px 18px; background:var(--green); color:white; cursor:pointer; font-size:13px; font-weight:800; }
.hero-sign-in { margin-top:24px; background:var(--ink); padding:13px 20px; }
.sign-in-button:hover,.hero-sign-in:hover,.primary-form-button:hover,.inline-form button:hover,.feedback-actions button:hover,.delivery-form .status-row button:hover,.admin-heading button:hover,.admin-actions a:hover,.owner-rule-actions button:hover,.source-row-actions button:hover { filter:brightness(.94); box-shadow:0 8px 20px rgba(36,88,68,.16); }
.user-menu { display:flex; align-items:center; gap:9px; }
.user-avatar { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--green); color:var(--lime); font-weight:800; }
.user-identity { display:flex; flex-direction:column; min-width:90px; }.user-identity strong { font-size:12px; }.user-identity small { color:var(--muted); font-size:10px; }
.sign-out-button { border:1px solid var(--line); background:transparent; border-radius:8px; padding:7px 9px; color:var(--muted); cursor:pointer; font-size:10px; font-weight:700; }
.hero { min-height:620px; display:block; padding:72px 7vw 78px; position:relative; }
.hero-public { max-width:980px; }
.eyebrow,.mini-eyebrow { margin:0 0 14px; color:var(--green); font-family:"IBM Plex Mono",monospace; text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:600; }
.hero h1 { margin:0; color:var(--orange); font-family:"IBM Plex Sans",sans-serif; font-size:clamp(46px,5.4vw,72px); font-weight:600; line-height:1; letter-spacing:-.038em; max-width:850px; }
.hero-manifesto { max-width:820px; margin:17px 0 0; color:var(--ink); font:700 clamp(28px,3.5vw,45px)/1.08 "IBM Plex Sans",sans-serif; letter-spacing:-.035em; }
.hero-copy { max-width:760px; margin:18px 0 0; color:var(--muted); font-size:17px; line-height:1.6; }
.hero-stats { margin:22px 0 0; color:var(--muted); font-size:15px; }.hero-stats strong { color:var(--green); }
.hero-status { width:fit-content; max-width:720px; margin:22px 0 0; padding:10px 14px; border-left:3px solid var(--orange); border-radius:0 8px 8px 0; color:var(--muted); background:rgba(255,250,240,.72); font-size:14px; line-height:1.5; }
.hero-status strong { color:var(--green); font-weight:700; }
.hero-points { max-width:790px; display:grid; gap:9px; margin:22px 0 0; padding:0; list-style:none; }
.hero-points li { display:grid; grid-template-columns:12px 1fr; align-items:baseline; gap:10px; color:var(--ink); font-size:14px; font-weight:700; }
.hero-points li::before { content:""; width:7px; height:7px; margin-top:3px; border-radius:50%; background:var(--orange); }
.hero-themes { margin:16px 0 0; color:var(--green); font-size:11px; font-weight:800; letter-spacing:.04em; }
.hero-privacy { margin:10px 0 0 4px; color:var(--muted); font-size:11px; }
.auth-signed-in .hero { min-height:auto; padding:50px 7vw 36px; }
.hero-member { max-width:1080px; }
.hero-member h1 { max-width:780px; color:var(--ink); font-size:clamp(38px,4.8vw,62px); }
.hero-member .hero-copy { max-width:690px; margin-top:14px; }
.member-journey-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:22px; }
.journey-card { min-height:128px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:10px; padding:19px; border:1px solid var(--line); border-radius:16px; background:#fff; color:var(--ink); text-align:left; text-decoration:none; box-shadow:0 12px 35px rgba(32,28,21,.06); cursor:pointer; font:inherit; }
.journey-card:hover { border-color:rgba(36,88,68,.5); background:#fff; box-shadow:0 18px 42px rgba(32,28,21,.1); transform:translateY(-2px); }
.journey-card strong { font:700 19px "IBM Plex Sans",sans-serif; letter-spacing:-.015em; }
.journey-card small { color:var(--muted); font-size:12px; line-height:1.45; }
.control-strip { display:flex; align-items:center; justify-content:center; gap:20px; padding:18px 5vw; background:var(--green); color:white; }
.auth-pending .member-app,.auth-pending .public-preview { visibility:hidden; }
.auth-pending .member-only { display:none; }
body.auth-signed-out .member-app,body.auth-signed-out .member-nav,body.auth-signed-out .mobile-filter-bar,body.auth-signed-out .member-only { display:none; }
.auth-signed-in .public-preview,.auth-signed-in .public-only { display:none; }
.auth-signed-in .member-app { display:block; }
.auth-signed-out .hero { min-height:680px; }
.auth-loading { position:fixed; z-index:200; inset:0; display:none; place-items:center; align-content:center; gap:12px; background:var(--paper); }.auth-pending .auth-loading { display:grid; }.auth-loading span { width:44px; height:44px; border:2px solid var(--line); border-top-color:var(--green); border-radius:50%; animation:spin .8s linear infinite; }.auth-loading p { color:var(--muted); font-size:12px; }
.preview-section { padding:56px 7vw 100px; border-top:1px solid var(--line); }
.preview-heading { display:flex; justify-content:space-between; align-items:end; gap:30px; }.preview-heading h2 { margin:0; font:700 clamp(30px,4vw,52px) "IBM Plex Sans",sans-serif; letter-spacing:-.025em; }.text-button { border:0; background:none; color:var(--green); cursor:pointer; font-weight:800; }
.preview-events { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:35px 0 0; }.preview-event-card { min-height:205px; padding:23px; border:1px solid var(--line); border-radius:16px; background:var(--card); box-shadow:var(--shadow); }.preview-date { display:flex; align-items:baseline; gap:8px; margin-bottom:24px; }.preview-date strong { font:700 32px "IBM Plex Sans",sans-serif; }.preview-date span { color:var(--muted); text-transform:uppercase; font-size:10px; letter-spacing:.1em; }.preview-event-card h3 { margin:12px 0 6px; font:700 19px "IBM Plex Sans",sans-serif; }.preview-event-card p { margin:0; color:var(--muted); font-size:12px; }
.preview-lock { display:grid; grid-template-columns:auto 1fr auto; gap:18px; align-items:center; margin-top:18px; padding:24px 28px; border-radius:16px; color:white; background:var(--green); }.preview-lock .lock-orbit { width:45px; height:45px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.35); border-radius:50%; color:var(--lime); }.preview-lock strong { font:700 17px "IBM Plex Sans",sans-serif; }.preview-lock p { margin:4px 0 0; color:rgba(255,255,255,.72); font-size:12px; }.preview-lock button { border:0; padding:11px 15px; border-radius:9px; background:var(--lime); color:var(--ink); cursor:pointer; font-weight:800; font-size:12px; }
.tier-preview { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:60px; background:var(--line); border:1px solid var(--line); }.tier-preview article { padding:27px; background:var(--paper); }.tier-preview article.tier-featured { background:var(--card); }.tier-preview span { color:var(--orange); text-transform:uppercase; font-size:9px; letter-spacing:.1em; font-weight:800; }.tier-preview h3 { margin:8px 0; font:700 21px "IBM Plex Sans",sans-serif; }.tier-preview p { margin:0; color:var(--muted); font-size:12px; line-height:1.55; }
.view-toggle { display:flex; gap:4px; padding:4px; background:rgba(255,255,255,.1); border-radius:12px; }
.view-toggle button { border:0; background:transparent; color:rgba(255,255,255,.72); padding:10px 14px; border-radius:9px; cursor:pointer; font-size:13px; font-weight:700; }
.view-toggle button.active { background:var(--card); color:var(--green); }
.control-actions { width:100%; max-width:920px; display:flex; gap:10px; }
.search-box { width:100%; display:flex; gap:10px; align-items:center; padding:0 16px; border:1px solid rgba(255,255,255,.3); border-radius:12px; background:rgba(255,255,255,.1); }
.search-box svg,.refresh-button svg,.icon-button svg { width:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.search-box input { width:100%; padding:12px 0; color:white; background:transparent; border:0; outline:none; font-size:14px; }
.search-box input::placeholder { color:rgba(255,255,255,.62); }
.refresh-button { display:flex; align-items:center; gap:8px; border:0; border-radius:10px; padding:0 14px; color:var(--ink); background:var(--lime); cursor:pointer; font-weight:800; font-size:13px; }
.refresh-button:disabled { cursor:not-allowed; opacity:.58; }
.refresh-button.loading svg { animation:spin .8s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.schedule-layout { display:grid; grid-template-columns:245px minmax(0,1fr); gap:60px; padding:56px 5vw 100px; }
.filters { align-self:start; position:sticky; top:20px; max-height:calc(100vh - 40px); overflow-y:auto; padding-right:8px; scrollbar-gutter:stable; }
.filters::-webkit-scrollbar { width:8px; }
.filters::-webkit-scrollbar-track { background:rgba(216,208,194,.42); border-radius:999px; }
.filters::-webkit-scrollbar-thumb { background:rgba(36,88,68,.38); border-radius:999px; }
.filters::-webkit-scrollbar-thumb:hover { background:rgba(36,88,68,.58); }
.filter-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:25px; }
.filter-heading h2 { margin:0; font:700 18px "IBM Plex Sans",sans-serif; }.filter-heading button { border:0; background:none; color:var(--green); cursor:pointer; font-size:12px; font-weight:800; }.filter-heading-actions { display:flex; align-items:center; gap:10px; }
.filter-backdrop { display:none; }
fieldset { border:0; border-top:1px solid var(--line); margin:0; padding:22px 0; }
legend { padding-top:20px; margin-bottom:12px; font-size:11px; text-transform:uppercase; letter-spacing:.12em; font-weight:800; color:var(--muted); }
fieldset label { display:flex; gap:10px; align-items:center; padding:6px 0; font-size:14px; cursor:pointer; }
fieldset input { appearance:none; width:17px; height:17px; border:1px solid #aca99f; border-radius:4px; display:grid; place-content:center; }
fieldset input:checked { border-color:var(--green); background:var(--green); }
fieldset input:checked::after { content:"✓"; color:white; font-size:11px; font-weight:800; }
.filter-help { margin:-4px 0 12px; color:var(--muted); font-size:11px; line-height:1.4; }
.category-group-filters { display:grid; grid-template-columns:1fr; gap:7px; }
.category-group-filters button { min-height:53px; display:grid; grid-template-columns:31px 1fr; gap:9px; align-items:center; padding:8px 10px; border:1px solid var(--line); border-radius:11px; background:var(--card); color:var(--ink); text-align:left; cursor:pointer; }
.category-group-filters button:hover { border-color:rgba(36,88,68,.55); }
.category-group-filters button[aria-pressed="true"] { border-color:var(--green); background:rgba(36,88,68,.09); box-shadow:inset 3px 0 var(--green); }
.category-group-filters button:disabled { cursor:not-allowed; opacity:.38; }
.category-group-filters .group-icon { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:var(--paper); color:var(--green); font:700 16px Georgia,serif; }
.category-group-filters button>span:last-child { display:flex; flex-direction:column; font-size:12px; font-weight:800; line-height:1.2; }
.category-group-filters small { margin-top:3px; color:var(--muted); font-size:9px; font-weight:500; }
.category-details { margin-top:13px; border:1px solid var(--line); border-radius:11px; background:rgba(255,250,240,.52); }
.category-details>summary { padding:11px 12px; color:var(--green); cursor:pointer; font-size:11px; font-weight:800; list-style-position:inside; }
.category-details[open]>summary { border-bottom:1px solid var(--line); }
#categoryFilters { padding:7px 12px 12px; }
.specific-category-group { padding:10px 0 5px; }
.specific-category-group>strong { display:block; margin-bottom:5px; color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.09em; }
.specific-category-group label { font-size:12px; }
.pill-filter { display:flex; flex-wrap:wrap; gap:6px; }
.pill-filter button { border:1px solid var(--line); border-radius:999px; padding:7px 10px; background:transparent; color:var(--muted); cursor:pointer; font-size:11px; font-weight:800; }
.pill-filter button:hover { border-color:rgba(36,88,68,.45); color:var(--green); background:rgba(36,88,68,.05); }
.pill-filter button.active { border-color:var(--green); background:var(--green); color:white; }
.date-range-filter button { flex:1 1 calc(50% - 6px); }
.filter-subheading { display:block; margin:15px 0 7px; color:var(--ink); font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.time-of-day-filter button { flex:1 1 calc(33.333% - 6px); }
.digest-card { margin-top:24px; padding:20px; border-radius:16px; background:var(--ink); color:white; box-shadow:var(--shadow); }
.digest-card .mini-eyebrow { color:var(--lime); margin-bottom:10px; }.digest-card strong,.digest-card span { display:block; }.digest-card span { margin:4px 0 18px; color:#aeb6b2; font-size:13px; }.digest-card a { color:var(--lime); font-size:12px; font-weight:800; text-decoration:none; }
.schedule-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:26px; }
.schedule-heading h2 { margin:0; font:700 clamp(28px,3vw,40px) "IBM Plex Sans",sans-serif; letter-spacing:-.025em; }.schedule-heading .mini-eyebrow { margin-bottom:8px; }.schedule-heading>p { color:var(--muted); font-size:13px; }
.schedule-status { text-align:right; }.schedule-status p { margin:0; color:var(--muted); font-size:12px; }.schedule-status #lastUpdated { margin-top:4px; font-size:10px; }
.week-group { margin-bottom:52px; }
.week-divider { display:flex; gap:10px; align-items:baseline; padding-bottom:12px; border-bottom:1px solid var(--ink); cursor:pointer; list-style:none; }
.week-divider::-webkit-details-marker { display:none; }.week-divider i { margin-left:auto; font-style:normal; font-size:18px; transition:transform .2s ease; }.week-group:not([open]) .week-divider i { transform:rotate(-90deg); }.week-group:not([open]) { margin-bottom:22px; }
.week-divider span { color:var(--orange); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.12em; }.week-divider strong { font:700 14px "IBM Plex Sans",sans-serif; }
.week-days { display:grid; gap:34px; padding-top:20px; }
.day-group { min-width:0; scroll-margin-top:90px; }
.day-divider { position:sticky; z-index:8; top:0; display:grid; grid-template-columns:50px minmax(0,1fr) auto; gap:13px; align-items:center; min-height:66px; padding:8px 14px 8px 8px; border:1px solid var(--line); border-left:4px solid var(--orange); border-radius:12px; background:rgba(255,250,240,.96); box-shadow:0 8px 24px rgba(38,46,41,.08); backdrop-filter:blur(12px); }
.day-number { width:43px; height:43px; display:grid; place-items:center; border-radius:9px; color:var(--card); background:var(--ink); font:700 22px "IBM Plex Sans",sans-serif; }
.day-label { min-width:0; display:flex; flex-direction:column; }.day-label small { margin-bottom:2px; color:var(--orange); font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.13em; }.day-label strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:700 17px "IBM Plex Sans",sans-serif; }
.day-count { color:var(--muted); font-size:11px; font-weight:700; white-space:nowrap; }
.day-events { min-width:0; }
.time-period { min-width:0; }.time-period+.time-period { margin-top:12px; }.time-period-heading { display:flex; align-items:center; gap:9px; padding:12px 8px 7px; border-bottom:1px solid rgba(216,208,194,.72); color:var(--muted); }.time-period-heading strong { color:var(--ink); font:700 12px "IBM Plex Sans",sans-serif; text-transform:uppercase; letter-spacing:.1em; }.time-period-heading span { font-size:10px; }
.event-card { display:grid; grid-template-columns:118px 88px minmax(0,1fr) 210px; gap:16px; align-items:center; padding:23px 8px; border-bottom:1px solid var(--line); position:relative; transition:background .2s ease; }
.event-card.saved { background:linear-gradient(90deg,rgba(215,240,110,.2),rgba(215,240,110,.03) 65%,transparent); box-shadow:inset 3px 0 var(--green); }
.event-datetime { align-self:stretch; display:flex; flex-direction:column; justify-content:center; padding-right:15px; border-right:1px solid var(--line); }.event-datetime span { color:var(--ink); text-transform:uppercase; font-size:10px; letter-spacing:.08em; font-weight:800; }.event-datetime strong { margin-top:5px; font:700 21px "IBM Plex Sans",sans-serif; color:var(--green); }.event-datetime small { margin-top:3px; color:var(--muted); font-size:10px; font-weight:700; }
.event-art { width:88px; height:88px; display:grid; place-items:center; overflow:hidden; border-radius:13px; color:#fff; background:linear-gradient(135deg,#315b4b,#94a861); box-shadow:inset 0 0 0 1px rgba(255,255,255,.2); }.event-art span { font:400 34px Georgia,serif; }.event-art img { width:100%; height:100%; object-fit:cover; }.event-art-live-music,.event-art-dance-nightlife { background:linear-gradient(135deg,#51356c,#c7708d); }.event-art-food-drink,.event-art-markets-makers,.event-art-festivals-culture { background:linear-gradient(135deg,#9c4e2e,#e7a74f); }.event-art-fitness-movement,.event-art-bike-run-walk { background:linear-gradient(135deg,#215b47,#89ae69); }.event-art-mindfulness-wellness { background:linear-gradient(135deg,#315b64,#91bdc4); }.event-art-sports-watch-parties,.event-art-watch-parties-fandom { background:linear-gradient(135deg,#71581f,#d7a844); }.event-art-art-film,.event-art-poetry-stories { background:linear-gradient(135deg,#4b506f,#a486ae); }
.event-meta { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }.event-meta span { display:inline-flex; padding:4px 7px; border-radius:5px; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.category-chip { background:#e5e1d9; }.category-chip.music-dance,.category-chip.live-music { background:#e6dcf4; color:#5b3977; }.category-chip.free-fitness,.category-chip.movement { background:#dff0d7; color:#35613a; }.category-chip.meditation { background:#dcebed; color:#315b64; }.category-chip.comedy { background:#f6dfd6; color:#883f28; }.category-chip.legion-fc,.category-chip.watch-party { background:#f0dfb8; color:#6f5318; }
.cost-chip.cost-free { color:#315b3a; background:var(--lime); }.cost-chip.cost-ticketed { color:#6c3d21; background:#f4d9c7; }.cost-chip.cost-donation { color:#59416f; background:#e7dcef; }.solo-chip { color:#52605b; border:1px solid #ccd0cd; background:transparent; }
.event-body h3 { margin:0 0 6px; font:700 19px "IBM Plex Sans",sans-serif; letter-spacing:-.01em; }.event-body h3 a { text-decoration:none; }.event-body h3 a:hover { color:var(--green); }.external-link { display:inline-block; margin-left:3px; color:var(--green); font-size:.72em; vertical-align:top; }.event-where { margin:0; font-size:12px; color:var(--muted); display:flex; gap:6px; flex-wrap:wrap; }
.event-summary { margin-top:9px; color:var(--muted); font-size:12px; }.event-summary summary { width:max-content; color:var(--green); cursor:pointer; font-size:11px; font-weight:800; }.event-summary p { margin:7px 0 0; line-height:1.5; }.event-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:9px; }.event-links a { color:var(--green); font-size:10px; font-weight:800; text-decoration:none; }.event-links a:hover { text-decoration:underline; }
.event-actions { display:flex; flex-direction:column; gap:7px; align-items:stretch; }
.event-save-row { min-height:38px; display:flex; align-items:center; justify-content:flex-end; }
.ticket-button,.calendar-button,.ics-button,.locked-feature-button,.save-button { display:flex; align-items:center; justify-content:center; gap:7px; min-height:36px; border-radius:8px; text-decoration:none; font-size:11px; font-weight:800; cursor:pointer; }
.save-button { width:38px; height:38px; min-height:0; padding:0; border:1px solid var(--line); border-radius:50%; color:var(--muted); background:transparent; font-size:20px; }.save-button:hover,.save-button.is-saved { border-color:var(--green); color:var(--green); background:#e8f0da; }
.ticket-button { min-height:43px; color:white; background:var(--green); box-shadow:0 5px 14px rgba(36,88,68,.16); }.ticket-button:hover { background:#174735; }
.calendar-group { display:grid; gap:5px; padding-top:2px; }.calendar-buttons { display:grid; grid-template-columns:1fr; gap:5px; }
.calendar-button,.ics-button { border:1px solid var(--line); color:var(--green); background:#fff; box-shadow:0 3px 10px rgba(38,46,41,.06); }.calendar-button:hover,.ics-button:hover { border-color:var(--green); background:#fff; box-shadow:0 5px 15px rgba(38,46,41,.1); }
.locked-feature-button { border:0; color:white; background:var(--green); }.feature-caption { color:#958f85; text-align:center; font-size:8px; }
.empty-state { padding:70px 20px; text-align:center; color:var(--muted); }.empty-state span { font-size:45px; }.empty-state h3 { margin:10px 0 4px; color:var(--ink); }
.sources-section,.settings-section { padding:95px 7vw; border-top:1px solid var(--line); }
.sources-section { background:var(--ink); color:white; }.section-intro { max-width:680px; }.section-intro h2 { margin:0; font:700 clamp(38px,5vw,64px) "IBM Plex Sans",sans-serif; letter-spacing:-.035em; }.section-intro>p:last-child { color:#9da6a1; line-height:1.6; }.sources-section .eyebrow { color:var(--lime); }
.source-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:48px; background:#47504c; border:1px solid #47504c; }.source-card { min-height:205px; padding:27px; background:var(--ink); }.source-card>div { display:flex; justify-content:space-between; gap:15px; }.source-card h3 { margin:0; font:700 19px "IBM Plex Sans",sans-serif; }.source-card span { color:var(--lime); font-size:10px; text-transform:uppercase; letter-spacing:.08em; white-space:nowrap; }.source-card p { color:#aeb6b2; font-size:13px; line-height:1.7; }
.settings-section { padding-bottom:120px; }.settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:45px; }.settings-card { display:flex; gap:18px; padding:28px; background:var(--card); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); }.settings-card.feedback-card { grid-column:1/-1; }.card-icon { flex:0 0 42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--lime); color:var(--green); font-size:18px; font-weight:800; }.settings-card h3 { margin:3px 0 8px; font:700 18px "IBM Plex Sans",sans-serif; }.settings-card p { margin:0 0 18px; color:var(--muted); line-height:1.55; font-size:13px; }.status-row { display:flex; gap:12px; align-items:center; font-size:11px; color:var(--muted); }.status { padding:5px 8px; border-radius:6px; font-weight:800; }.status.pending { color:#8a4e14; background:#f4e2c5; }.status.ready { color:#285c3a; background:#dcebd9; }
.settings-card.interests-card { grid-column:1/-1; }.interests-card>div:last-child { width:100%; }.interests-form { display:grid; gap:22px; }.interests-form fieldset,.alert-types { margin:0; padding:0; border:0; }.interests-form legend,.alert-types legend { margin-bottom:10px; font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }.interest-group-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }.interest-group-grid label,.preference-checklist label { display:flex; gap:8px; align-items:center; padding:9px 10px; border:1px solid var(--line); border-radius:9px; cursor:pointer; font-size:12px; }.preference-columns { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.preference-columns>div>strong { display:block; margin-bottom:8px; font-size:12px; }.preference-checklist { display:grid; grid-template-columns:1fr 1fr; gap:6px; max-height:265px; overflow:auto; }.interests-form>label,.preference-columns>label { display:grid; gap:7px; color:var(--ink); font-size:12px; font-weight:700; }.interests-form textarea,.interests-form select,.report-dialog textarea,.report-dialog select { width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:9px; background:var(--card); color:var(--ink); font:inherit; }.interests-form small { color:var(--muted); font-weight:400; }.alert-types { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }.alert-types legend { grid-column:1/-1; }.alert-types label { padding:9px; border:1px solid var(--line); border-radius:9px; }.delivery-trust { margin-top:14px!important; font-size:11px!important; }.report-event-button { margin-top:8px; padding:0; border:0; background:none; color:var(--muted); cursor:pointer; font-size:10px; text-decoration:underline; text-underline-offset:2px; }.report-dialog { display:grid; gap:13px; }.report-dialog h2 { margin-bottom:0; }.report-dialog label { display:grid; gap:6px; color:var(--ink); font-size:12px; font-weight:700; }.primary-form-button { min-height:44px; border:0; border-radius:10px; background:var(--green); color:white; cursor:pointer; font-weight:800; }.auth-dialog small a,.auth-dialog>small a { color:inherit; }
.quality-actions { display:flex; gap:5px; }.quality-actions button { padding:6px 8px; border:1px solid var(--line); border-radius:7px; background:var(--card); color:var(--green); cursor:pointer; font-size:10px; font-weight:800; }
.moderation-table { min-width:1120px; }.moderation-table td { vertical-align:top; }.moderation-table td:last-child { min-width:290px; }.moderation-note { width:100%; min-height:72px; resize:vertical; margin-bottom:7px; padding:8px 9px; border:1px solid var(--line); border-radius:8px; background:white; color:var(--ink); font:inherit; font-size:11px; }.moderation-note:focus { border-color:var(--green); outline:0; box-shadow:0 0 0 3px rgba(36,88,68,.1); }.moderation-actions { display:flex; gap:6px; }.moderation-actions button { flex:1; min-height:34px; border:1px solid var(--line); border-radius:8px; background:white; color:var(--ink); cursor:pointer; font-size:10px; font-weight:800; }.moderation-actions .approve-listing { border-color:var(--green); color:white; background:var(--green); }.moderation-actions .deny-listing { color:#8f2f24; }.quality-snapshot-heading { margin-top:34px; }
.sort-heading { border:0; padding:0; background:none; color:inherit; font:inherit; text-transform:inherit; letter-spacing:inherit; cursor:pointer; }
.sort-heading:hover,.sort-heading:focus { color:var(--green); text-decoration:underline; outline:0; }
.review-flag { display:inline-flex; margin:0 0 7px; padding:4px 7px; border-radius:999px; background:#efe7d7; color:var(--green); font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.review-flag-hard { background:#fde2d8; color:#8f2f24; }
.review-reason { display:block; line-height:1.45; }
.review-group-row td { background:#fff7e8; border-bottom-color:#e5cfa7; }
.review-group { display:flex; justify-content:space-between; gap:18px; align-items:center; }
.review-group strong,.review-group span { display:block; }
.review-group span { margin-top:3px; color:var(--muted); font-size:11px; }
.review-group-actions { display:flex; gap:6px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.review-group-actions input { min-width:240px; padding:8px 9px; border:1px solid var(--line); border-radius:8px; background:white; font-size:11px; }
.review-group-actions button { border:1px solid var(--line); border-radius:8px; padding:8px 10px; background:white; color:var(--ink); cursor:pointer; font-size:10px; font-weight:900; }
.review-group-actions button[data-group-decision="approved"] { border-color:var(--green); background:var(--green); color:white; }
.review-group-actions button[data-group-decision="denied"] { color:#8f2f24; }
.entitlement-list { display:flex; flex-wrap:wrap; gap:6px; }.entitlement { padding:6px 8px; border-radius:7px; font-size:10px; font-weight:800; }.entitlement.active { color:#285c3a; background:#dcebd9; }.entitlement.locked { color:#726b61; background:#e9e4dc; }
.delivery-form { display:grid; grid-template-columns:auto 1fr; gap:8px 10px; align-items:center; }.delivery-form>label { font-size:11px; font-weight:700; }.delivery-form>input { width:100%; min-width:0; padding:9px 10px; border:1px solid var(--line); border-radius:8px; background:white; }.delivery-schedule { grid-column:1/-1; display:flex; gap:12px; align-items:center; padding:10px 0; }.delivery-schedule label { font-size:11px; }.delivery-schedule input[type="time"] { margin-left:auto; border:1px solid var(--line); border-radius:8px; padding:6px; }.delivery-form .status-row { grid-column:1/-1; justify-content:space-between; }.delivery-form .status-row button { border:0; border-radius:8px; padding:8px 11px; background:var(--green); color:white; font-weight:800; font-size:11px; }.feature-lock { display:none; grid-column:1/-1; padding:10px; border-radius:8px; background:#efebe3; }.feature-lock strong,.feature-lock span { display:block; }.feature-lock strong { font-size:11px; }.feature-lock span { color:var(--muted); font-size:10px; }.feature-locked .delivery-form>*:not(.feature-lock) { opacity:.45; }.feature-locked .feature-lock { display:block; }
.reminder-timing { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:12px; }.reminder-timing select { padding:8px; border:1px solid var(--line); border-radius:8px; background:var(--card); }.delivery-history { margin-top:20px; padding-top:16px; border-top:1px solid var(--line); }.delivery-history>strong { display:block; margin-bottom:9px; font-size:11px; text-transform:uppercase; letter-spacing:.05em; }.delivery-history #deliveryHistory { display:grid; gap:6px; color:var(--muted); font-size:10px; }.delivery-history #deliveryHistory>div { display:grid; grid-template-columns:1fr auto auto; gap:9px; align-items:center; }.delivery-history #deliveryHistory strong { padding:3px 5px; border-radius:5px; text-transform:capitalize; }.delivery-sent { color:#285c3a; background:#dcebd9; }.delivery-failed { color:#8f2f24; background:#f4d9d3; }
.inline-form { display:flex; max-width:380px; }.inline-form input { flex:1; min-width:0; padding:10px 12px; border:1px solid var(--line); border-radius:9px 0 0 9px; outline:none; background:var(--card); }.inline-form button,.feedback-actions button { border:0; padding:10px 14px; border-radius:0 9px 9px 0; background:var(--green); color:white; cursor:pointer; font-weight:800; font-size:12px; }
.watchlist { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }.watchlist button { border:1px solid var(--line); padding:6px 8px; border-radius:20px; background:transparent; color:var(--muted); cursor:pointer; font-size:11px; }.watchlist button span { color:var(--orange); margin-left:4px; }
.feedback-card>div:last-child { width:100%; }.feedback-card textarea { width:100%; resize:vertical; padding:14px; border:1px solid var(--line); border-radius:10px; outline:none; background:var(--card); }.feedback-card textarea:focus,.inline-form input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(36,88,68,.1); }.feedback-actions { display:flex; align-items:center; justify-content:space-between; margin-top:10px; }.feedback-actions span { color:var(--green); font-size:12px; }.feedback-actions button { border-radius:9px; }
footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px 24px; padding:28px 5vw; border-top:1px solid var(--line); color:var(--muted); font-size:12px; }
footer a { color:var(--green); text-decoration:none; font-weight:800; }
.policy-page { width:min(760px,88vw); margin:0 auto; padding:90px 0 120px; }.policy-page h1 { margin:0 0 10px; font:700 clamp(44px,7vw,76px)/1 "IBM Plex Sans",sans-serif; letter-spacing:-.04em; }.policy-updated { color:var(--muted); font-size:12px; }.policy-page section { padding:28px 0; border-top:1px solid var(--line); }.policy-page section:first-of-type { margin-top:38px; }.policy-page h2 { margin:0 0 9px; font-size:20px; }.policy-page section p { margin:0; color:var(--muted); line-height:1.7; }.policy-page a { color:var(--green); }
.page-masthead { padding:76px 7vw 42px; border-bottom:1px solid var(--line); }
.page-masthead h1,.admin-heading h1 { margin:0; font:700 clamp(46px,6vw,78px)/1 "IBM Plex Sans",sans-serif; letter-spacing:-.035em; }
.page-masthead>p:last-child,.admin-heading>div>p:last-child { max-width:680px; margin:20px 0 0; color:var(--muted); font-size:16px; line-height:1.6; }
.page-gate { min-height:calc(100vh - 140px); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:70px 6vw; text-align:center; }
.page-gate h1 { max-width:760px; margin:0; font:700 clamp(42px,6vw,72px)/1.02 "IBM Plex Sans",sans-serif; letter-spacing:-.035em; }
.page-gate>p:not(.eyebrow) { max-width:590px; margin:20px 0 0; color:var(--muted); line-height:1.6; }
.page-gate .auth-symbol { margin-bottom:20px; }
.primary-link { display:inline-flex; margin-top:24px; padding:12px 18px; border-radius:999px; background:var(--green); color:white; text-decoration:none; font-weight:800; }
.standalone-section { border-top:0; }
.settings-section.standalone-section { padding-top:10px; }
.toast { position:fixed; z-index:100; left:50%; bottom:24px; transform:translate(-50%,30px); opacity:0; pointer-events:none; padding:12px 18px; border-radius:10px; color:white; background:var(--ink); box-shadow:var(--shadow); font-size:13px; transition:.25s ease; }.toast.show { opacity:1; transform:translate(-50%,0); }
.icon-button { border:0; background:none; color:var(--ink); }
.modal-open { overflow:hidden; }.auth-modal { position:fixed; z-index:300; inset:0; display:grid; place-items:center; padding:20px; background:rgba(21,28,25,.7); backdrop-filter:blur(8px); }.auth-modal[hidden] { display:none; }.auth-dialog { width:min(480px,100%); position:relative; padding:38px; border-radius:24px; background:var(--card); box-shadow:0 35px 100px rgba(0,0,0,.28); }.auth-close { position:absolute; top:14px; right:16px; border:0; background:none; color:var(--muted); cursor:pointer; font-size:25px; }.auth-symbol { width:48px; height:48px; display:grid; place-items:center; margin-bottom:24px; border-radius:50%; color:var(--green); background:var(--lime); }.auth-dialog h2 { margin:0; font:700 34px/1.08 "IBM Plex Sans",sans-serif; letter-spacing:-.025em; }.auth-dialog>p:not(.mini-eyebrow):not(.auth-status) { color:var(--muted); line-height:1.5; }.social-auth-buttons { display:grid; gap:9px; margin:24px 0 15px; }.social-auth-buttons button { display:flex; align-items:center; justify-content:center; gap:10px; min-height:46px; border:1px solid var(--line); border-radius:10px; background:white; cursor:pointer; font-weight:800; }.social-auth-buttons button:hover { border-color:var(--green); }.google-g { color:#4285f4; font-size:17px; }.apple-mark { color:#111; }.auth-status { min-height:18px; color:var(--green); font-size:11px; text-align:center; }.auth-dialog small { display:block; color:#969189; line-height:1.45; text-align:center; font-size:9px; }
.social-auth-buttons button:disabled { cursor:not-allowed; opacity:.48; }
.auth-signed-in:not(.auth-admin) #tierBadge { display:none; }
.admin-section { padding:95px 5vw 120px; border-top:1px solid var(--line); background:#e9e3d7; }.admin-heading { max-width:none; display:flex; justify-content:space-between; align-items:end; }.admin-heading>div { max-width:680px; }.admin-actions { display:flex; gap:8px; }.admin-heading button,.admin-actions a { border:0; border-radius:9px; padding:10px 13px; background:var(--green); color:white; cursor:pointer; font-weight:800; text-decoration:none; font-size:12px; }.admin-heading button:disabled { cursor:not-allowed; opacity:.45; }.admin-copy { max-width:760px; color:var(--muted); line-height:1.55; }.admin-table-wrap { margin-top:30px; overflow:auto; border:1px solid var(--line); border-radius:14px; background:var(--card); }.admin-table { width:100%; border-collapse:collapse; min-width:760px; }.admin-table th,.admin-table td { padding:14px 16px; border-bottom:1px solid var(--line); text-align:left; font-size:12px; }.admin-table th { color:var(--muted); text-transform:uppercase; letter-spacing:.08em; font-size:9px; }.admin-table td:first-child strong,.admin-table td:first-child small { display:block; }.admin-table td:first-child small { margin-top:3px; color:var(--muted); }.admin-table select { padding:7px 9px; border:1px solid var(--line); border-radius:7px; background:var(--card); }.save-user { border:0; border-radius:7px; padding:8px 12px; background:var(--ink); color:white; cursor:pointer; font-weight:800; }.save-user:disabled { opacity:.35; }.admin-status { color:var(--green); font-size:12px; }
.admin-section.standalone-section { min-height:calc(100vh - 78px); border-top:0; }
.admin-tool-nav { display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; padding:8px; border:1px solid #cbc5b9; border-radius:999px; background:rgba(255,253,248,.55); width:max-content; max-width:100%; }
.admin-tool-nav a { padding:9px 13px; border-radius:999px; color:var(--ink); text-decoration:none; font-size:12px; font-weight:800; }
.admin-tool-nav a.active { color:white; background:var(--ink); }
.admin-tool-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:26px; }
.admin-tool-card { min-height:220px; padding:22px; border:1px solid var(--line); border-radius:16px; background:var(--card); color:var(--ink); text-decoration:none; box-shadow:0 16px 42px rgba(35,40,36,.05); transition:transform .16s ease,box-shadow .16s ease; }
.admin-tool-card:hover { transform:translateY(-2px); box-shadow:0 22px 52px rgba(35,40,36,.09); }
.admin-tool-card span { display:block; color:var(--orange); font-family:"IBM Plex Mono",monospace; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.admin-tool-card strong { display:block; margin-top:28px; font:700 23px "IBM Plex Sans",sans-serif; letter-spacing:-.02em; }
.admin-tool-card p { margin:12px 0 0; color:var(--muted); font-size:13px; line-height:1.55; }
.owner-command-center { margin-top:42px; padding:28px; border:1px solid #cbc5b9; border-radius:18px; background:rgba(255,253,248,.62); box-shadow:0 18px 48px rgba(35,40,36,.06); }
.owner-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:24px; }
.owner-metrics article { min-height:132px; padding:18px; border:1px solid var(--line); border-radius:14px; background:var(--card); }
.owner-metrics span,.owner-metrics strong,.owner-metrics small { display:block; }
.owner-metrics span { color:var(--orange); font-family:"IBM Plex Mono",monospace; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.owner-metrics strong { margin-top:10px; font:700 34px "IBM Plex Sans",sans-serif; }
.owner-metrics small { margin-top:6px; color:var(--muted); font-size:11px; line-height:1.35; }
.owner-next-actions { margin-top:14px; padding:17px 18px; border:1px dashed #b9b0a1; border-radius:13px; background:#f8f3ea; }
.owner-next-actions strong { display:block; margin-bottom:8px; color:var(--green); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.owner-next-actions ul { margin:0; padding-left:18px; color:var(--ink); font-size:13px; line-height:1.6; }
.admin-subsection { margin-top:58px; padding-top:34px; border-top:1px solid #cbc5b9; }
.admin-subheading { display:flex; justify-content:space-between; align-items:end; gap:24px; }
.admin-subheading h2 { margin:0; font:700 clamp(28px,4vw,42px) "IBM Plex Sans",sans-serif; letter-spacing:-.025em; }
.admin-subheading>p { margin:0; color:var(--muted); font-size:11px; }
.admin-filter-bar { display:grid; grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(135px,.6fr)); gap:10px; margin-top:22px; padding:12px; border:1px solid var(--line); border-radius:14px; background:rgba(255,253,248,.72); }
.admin-filter-bar label { display:grid; gap:6px; color:var(--muted); font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.admin-filter-bar input,.admin-filter-bar select { width:100%; min-height:38px; padding:8px 10px; border:1px solid var(--line); border-radius:9px; background:white; color:var(--ink); font:12px "Atkinson Hyperlegible",sans-serif; text-transform:none; letter-spacing:0; }
.admin-metrics { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-top:26px; }
.admin-metrics article { padding:18px; border:1px solid var(--line); border-radius:12px; background:var(--card); }
.admin-metrics span,.admin-metrics strong { display:block; }.admin-metrics span { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.09em; font-weight:800; }.admin-metrics strong { margin-top:7px; font:700 28px "IBM Plex Sans",sans-serif; }
.source-health-table { min-width:1320px; }.source-health-table td { vertical-align:top; }.source-health-table td:nth-child(3) { max-width:260px; }
.source-url { display:block; overflow:hidden; color:var(--green); text-overflow:ellipsis; white-space:nowrap; text-decoration:none; font-weight:700; }
.health-chip { display:inline-flex; padding:5px 8px; border-radius:999px; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
.health-manual { color:#56511d; background:#eee8ac; }
.health-healthy { color:#285c3a; background:#dcebd9; }.health-stale { color:#795719; background:#f2e5b8; }.health-error { color:#813c2c; background:#f1d7d0; }.health-unknown { color:#625d55; background:#e8e3da; }
.source-error { display:block; max-width:190px; margin-top:5px; color:#9b4635; line-height:1.4; }
.source-priority-input { width:66px; padding:7px 8px; border:1px solid var(--line); border-radius:7px; background:white; }
.source-row-actions { display:grid; grid-template-columns:1fr; gap:6px; min-width:118px; }
.source-row-actions button { min-height:31px; border:1px solid var(--line); border-radius:7px; background:white; color:var(--ink); cursor:pointer; font-size:10px; font-weight:800; }
.source-row-actions button[data-save-source] { color:white; border-color:var(--green); background:var(--green); }
.source-row-actions button:disabled,.owner-rule-actions button:disabled { opacity:.45; cursor:not-allowed; }
.owner-rules-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:24px; }
.owner-rule-card { display:flex; flex-direction:column; min-height:430px; padding:19px; border:1px solid var(--line); border-radius:15px; background:var(--card); }
.owner-rule-card span { display:block; color:var(--orange); font-family:"IBM Plex Mono",monospace; font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.owner-rule-card strong { display:block; margin-top:7px; font:700 20px "IBM Plex Sans",sans-serif; }
.owner-rule-card p { min-height:58px; color:var(--muted); font-size:12px; line-height:1.5; }
.owner-rule-used-by { display:block; margin:-4px 0 12px; color:var(--green); font:700 10px "IBM Plex Mono",monospace; letter-spacing:.02em; text-transform:uppercase; }
.owner-rule-card textarea { flex:1; width:100%; min-height:220px; resize:vertical; padding:11px; border:1px solid var(--line); border-radius:10px; background:#fffdf8; color:var(--ink); font:11px/1.5 "IBM Plex Mono",monospace; }
.owner-rule-card textarea:focus,.admin-filter-bar input:focus,.admin-filter-bar select:focus { border-color:var(--green); outline:0; box-shadow:0 0 0 3px rgba(36,88,68,.1); }
.owner-rule-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:10px; }
.owner-rule-actions button { border:0; border-radius:9px; padding:9px 12px; background:var(--green); color:white; cursor:pointer; font-size:11px; font-weight:800; }
.owner-rule-actions small { color:var(--muted); font-size:10px; }
.moderation-note-shortcuts { display:flex; flex-wrap:wrap; gap:5px; margin:-2px 0 7px; }
.moderation-note-shortcuts button { border:1px solid var(--line); border-radius:999px; padding:5px 7px; background:#fffdf8; color:var(--muted); cursor:pointer; font-size:9px; font-weight:800; }

@media (max-width:900px) {
  .topbar { height:68px; min-height:68px; grid-template-columns:1fr auto; padding:0 5vw; background:var(--paper); }
  .desktop-nav { display:none; }
  .mobile-only { display:block; }
  .mobile-menu-button.mobile-only { display:flex; }
  .mobile-menu:not([hidden]) { position:fixed; z-index:240; inset:68px 0 0; display:grid; align-content:start; padding:28px 6vw; background:var(--ink); color:white; }
  .mobile-menu a { display:grid; grid-template-columns:32px 1fr; gap:12px; align-items:center; min-height:64px; border-bottom:1px solid rgba(255,255,255,.14); color:white; text-decoration:none; font:700 21px "IBM Plex Sans",sans-serif; }
  .mobile-menu a span { color:var(--lime); font:800 9px "IBM Plex Mono",sans-serif; letter-spacing:.12em; }
  .mobile-menu a.active { color:var(--lime); }
  body.mobile-menu-open,body.filters-open { overflow:hidden; }
  .mobile-filter-bar { position:sticky; z-index:145; top:0; padding:9px 5vw; border-bottom:1px solid var(--line); background:rgba(244,240,232,.96); backdrop-filter:blur(12px); }
  .mobile-filter-bar button { width:100%; min-height:54px; display:grid; grid-template-columns:32px 1fr auto; gap:10px; align-items:center; padding:8px 14px; border:1px solid var(--line); border-radius:14px; background:var(--card); color:var(--ink); text-align:left; box-shadow:0 6px 22px rgba(38,46,41,.08); cursor:pointer; }
  .mobile-filter-bar svg { width:23px; height:23px; fill:none; stroke:var(--green); stroke-width:1.7; stroke-linecap:round; }.mobile-filter-bar svg circle { fill:var(--card); }
  .mobile-filter-bar button>span { display:flex; flex-direction:column; }.mobile-filter-bar strong { font:700 14px "IBM Plex Sans",sans-serif; }.mobile-filter-bar small { margin-top:2px; color:var(--muted); font-size:10px; }.mobile-filter-bar i { color:var(--green); font-style:normal; font-size:20px; }
  .mobile-filter-bar button.has-active-filters { border-color:var(--green); box-shadow:0 0 0 2px rgba(31,91,70,.1); }.mobile-filter-bar button.has-active-filters small { color:var(--green); font-weight:800; }
  .filter-backdrop:not([hidden]) { position:fixed; z-index:250; inset:0; display:block; background:rgba(18,24,21,.5); backdrop-filter:blur(3px); }
  .schedule-layout { grid-template-columns:1fr; padding-top:34px; }
  .day-divider { top:73px; }
  .filters { display:none; position:fixed; z-index:260; inset:auto 0 0; width:100%; max-height:88vh; overflow-y:auto; padding:24px 5vw calc(18px + env(safe-area-inset-bottom)); border-radius:24px 24px 0 0; background:var(--card); box-shadow:0 -20px 70px rgba(22,29,26,.22); }
  .filters.open { display:block; }
  .filter-heading { position:sticky; z-index:2; top:-24px; margin:0 -5vw 14px; padding:18px 5vw 14px; border-bottom:1px solid var(--line); background:var(--card); }
  .filter-heading .mini-eyebrow { margin-bottom:5px; font-size:9px; }.filter-heading h2 { font-size:23px; }.filter-heading-actions { gap:14px; }.filter-close { width:36px; height:36px; border:1px solid var(--line) !important; border-radius:50% !important; color:var(--ink) !important; font-size:23px !important; font-weight:400 !important; }
  .filters fieldset { padding:18px 0; }.filters legend { margin-bottom:10px; padding-top:16px; }
  .filters fieldset label { min-height:46px; margin-bottom:7px; padding:9px 11px; border:1px solid var(--line); border-radius:11px; background:var(--paper); }
  .filters fieldset input { flex:0 0 20px; width:20px; height:20px; }
  .category-group-filters { grid-template-columns:1fr 1fr; }
  .category-group-filters button { min-height:58px; }
  .filters #categoryFilters { display:grid; grid-template-columns:1fr 1fr; gap:7px 12px; }.filters #categoryFilters label { margin:0; font-size:12px; line-height:1.25; }
  .specific-category-group { align-self:start; }
  .filters .pill-filter { display:grid; grid-template-columns:repeat(2,1fr); }.filters .pill-filter button { min-height:44px; padding:8px; border-radius:10px; }
  .filters .date-range-filter button:last-child { grid-column:1/-1; }
  .filters .time-of-day-filter { grid-template-columns:repeat(3,1fr); }.filters .time-of-day-filter button { min-width:0; font-size:10px; }
  .filters .digest-card { display:none; }
  .filter-apply { position:sticky; bottom:0; width:100%; min-height:50px; margin-top:12px; border:0; border-radius:12px; background:var(--green); color:white; font-weight:900; box-shadow:0 -10px 20px var(--card); }
  .source-grid { grid-template-columns:1fr 1fr; }
  .owner-metrics,.owner-rules-grid,.admin-tool-grid { grid-template-columns:1fr 1fr; }
  .admin-filter-bar { grid-template-columns:1fr 1fr; }
  .settings-grid { grid-template-columns:1fr; }.settings-card.feedback-card { grid-column:auto; }
  .preview-events,.tier-preview { grid-template-columns:1fr; }.preview-lock { grid-template-columns:auto 1fr; }.preview-lock button { grid-column:1/-1; }
  .admin-metrics { grid-template-columns:1fr 1fr; }
}

@media (max-width:800px) {
  .topbar { padding:0 4vw; }.brand { font-size:15px; }.user-identity { display:none; }.sign-out-button { padding:7px; }
  .hero { min-height:auto; padding:46px 6vw 58px; }.auth-signed-in .hero { padding:38px 6vw 28px; }.hero h1 { font-size:clamp(40px,12vw,47px); }.hero-manifesto { margin-top:14px; font-size:clamp(28px,8.5vw,36px); }.hero-copy { margin-top:15px; font-size:15px; }.hero-status { margin-top:19px; padding:9px 11px; font-size:13px; }.hero-points li { grid-template-columns:12px 1fr; font-size:14px; }.member-journey-grid { grid-template-columns:1fr; }.journey-card { min-height:112px; }
  .preview-section { padding:44px 5vw 70px; }.preview-heading { align-items:start; flex-direction:column; }.preview-heading .text-button { padding:0; }
  .review-group { align-items:stretch; flex-direction:column; }
  .review-group-actions { justify-content:stretch; }
  .review-group-actions input { width:100%; min-width:0; }
  .control-strip { padding:12px 5vw; }.control-actions { flex-direction:column; }.search-box { min-width:0; }.search-box input { min-height:42px; }
  .schedule-layout { padding:28px 4vw 70px; }.schedule-heading { align-items:start; gap:16px; }.schedule-status { padding-top:7px; text-align:right; }
  .week-group { margin-bottom:38px; }.week-days { gap:26px; padding-top:14px; }.day-events { display:grid; gap:12px; padding-top:12px; }
  .day-divider { grid-template-columns:44px minmax(0,1fr) auto; gap:10px; min-height:59px; padding:7px 10px 7px 7px; border-radius:11px; }.day-number { width:38px; height:38px; font-size:19px; }.day-label strong { font-size:15px; }.day-count { font-size:9px; }
  .event-card { grid-template-columns:72px minmax(0,1fr); gap:13px; align-items:start; padding:15px; border:1px solid var(--line); border-radius:16px; background:var(--card); box-shadow:0 8px 25px rgba(38,46,41,.06); }
  .event-card.saved { box-shadow:inset 3px 0 var(--green),0 8px 25px rgba(38,46,41,.06); }
  .time-period+.time-period { margin-top:18px; }.time-period-heading { padding:8px 2px; }.event-datetime { grid-column:1/-1; flex-direction:row; align-items:baseline; justify-content:flex-start; gap:9px; padding:0 48px 11px 0; border-right:0; border-bottom:1px solid var(--line); }.event-datetime strong { margin:0; font-size:18px; }.event-datetime span { font-size:10px; }.event-datetime small { margin:0; font-size:10px; }
  .time-period .event-card+.event-card { margin-top:10px; }
  .event-save-row { min-height:0; }.save-button { position:absolute; top:10px; right:12px; width:38px; height:38px; background:var(--card); }
  .event-art { grid-column:1; width:72px; height:78px; border-radius:12px; }.event-body { grid-column:2; min-width:0; }.event-body h3 { font-size:17px; line-height:1.22; }.event-meta { gap:4px; }.event-meta span { padding:4px 6px; font-size:8px; }.event-where { font-size:11px; line-height:1.4; }
  .event-summary summary { width:auto; min-height:30px; display:flex; align-items:center; }.event-links { margin-top:5px; }
  .event-actions { grid-column:1/-1; display:grid; grid-template-columns:1fr; gap:9px; margin-top:2px; padding-top:13px; border-top:1px solid var(--line); }.ticket-button,.calendar-button,.ics-button,.locked-feature-button { min-height:46px; border-radius:11px; font-size:12px; }.calendar-buttons { grid-template-columns:1fr 1fr; }.feature-caption { margin-top:-3px; }
  .filters #categoryFilters { grid-template-columns:1fr; }
  .category-group-filters { grid-template-columns:1fr 1fr; }
  .source-grid { grid-template-columns:1fr; }.sources-section,.settings-section { padding:70px 6vw; }.settings-card { padding:20px; flex-direction:column; }.section-intro h2 { font-size:42px; }
  .feedback-actions { align-items:flex-end; gap:10px; }.toast { width:calc(100% - 32px); text-align:center; }.auth-dialog { padding:30px 22px; }.auth-dialog h2 { font-size:29px; }
  .delivery-form { grid-template-columns:1fr; }.delivery-schedule,.delivery-form .status-row { grid-column:auto; flex-wrap:wrap; }
  .interest-group-grid,.preference-columns,.alert-types { grid-template-columns:1fr; }.preference-checklist { grid-template-columns:1fr; max-height:none; }.settings-card.interests-card { grid-column:auto; }
  .admin-heading { align-items:start; gap:20px; flex-direction:column; }.admin-actions { flex-wrap:wrap; }.admin-tool-nav { width:100%; border-radius:16px; }.admin-tool-nav a { flex:1; text-align:center; }.admin-metrics,.owner-metrics,.owner-rules-grid,.admin-filter-bar,.admin-tool-grid { grid-template-columns:1fr; }.admin-tool-card { min-height:170px; }.owner-command-center { padding:20px; }.admin-subheading { align-items:start; flex-direction:column; }.page-masthead { padding:56px 6vw 34px; } footer { flex-direction:column; }
}
