:root { --ink:#19231d; --muted:#69746d; --forest:#143c29; --forest2:#23563d; --cream:#f4f1e9; --paper:#fbfaf6; --line:#dcd8ce; --danger:#9d3828; --success:#2e6845; --shadow:0 24px 65px rgba(20,60,41,.12); }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--paper); font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
a { color:inherit; }
button,input,select,textarea { font:inherit; }
.auth-body { min-height:100vh; display:grid; place-items:center; padding:30px; background:linear-gradient(135deg,#0f2e20,#1f5138); }
.auth-card { width:min(480px,100%); padding:46px; background:#fff; border-radius:20px; box-shadow:0 35px 90px rgba(0,0,0,.23); }
.auth-mark { width:52px; height:52px; display:grid; place-items:center; color:#fff; background:var(--forest); border-radius:50% 50% 50% 16px; font:24px Georgia,serif; }
.eyebrow { margin:20px 0 5px; color:#865838; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.15em; }
h1,h2 { font-family:Georgia,"Times New Roman",serif; font-weight:500; }
.auth-card h1 { margin:8px 0 10px; font-size:42px; line-height:1; }
.auth-card > p:not(.eyebrow) { color:var(--muted); }
.enrollment-card{width:min(560px,100%)}
.totp-qr{display:block;width:min(280px,100%);height:auto;margin:24px auto;padding:12px;background:#fff;border:1px solid var(--line);border-radius:14px}
.setup-secret{display:block;padding:14px;margin:10px 0;overflow-wrap:anywhere;background:var(--paper);border-radius:10px;letter-spacing:.08em}
.security-note{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.recovery-codes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px 0;padding:20px;background:var(--paper);border-radius:14px}
.recovery-codes code{font-size:16px;letter-spacing:.06em}
.form-stack { margin-top:28px; display:grid; gap:17px; }
label { color:#35473c; font-size:12px; font-weight:750; }
label small { color:var(--muted); font-weight:400; }
input,select,textarea { width:100%; margin-top:6px; padding:11px 13px; color:var(--ink); background:#fff; border:1px solid #ccc7bc; border-radius:9px; }
input,select { min-height:46px; }
textarea { resize:vertical; }
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible { outline:3px solid rgba(190,145,86,.48); outline-offset:2px; }
.primary-button,.secondary-button,.danger-button { min-height:45px; padding:11px 20px; display:inline-flex; justify-content:center; align-items:center; color:#fff; background:var(--forest); border:1px solid var(--forest); border-radius:9px; text-decoration:none; font-weight:800; cursor:pointer; }
.primary-button:hover { background:var(--forest2); }
.secondary-button { color:var(--forest); background:#fff; }
.danger-button { color:#fff; background:var(--danger); border-color:var(--danger); }
.compact { min-height:38px; padding:8px 14px; font-size:12px; }
.notice { position:fixed; top:20px; right:20px; z-index:30; width:min(440px,calc(100% - 32px)); min-height:58px; padding:12px 12px 12px 16px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-radius:10px; box-shadow:var(--shadow); animation:notice-enter .28s ease-out both; }
.notice-close { width:32px; height:32px; flex:0 0 32px; padding:0; display:grid; place-items:center; color:currentColor; background:transparent; border:0; border-radius:50%; font-size:24px; line-height:1; cursor:pointer; opacity:.72; }
.notice-close:hover { background:rgba(0,0,0,.06); opacity:1; }
.notice.leaving { animation:notice-leave .25s ease-in both; }
.notice.error { color:#722718; background:#fae6e1; border:1px solid #e4b8ae; }
.notice.success { color:#1c5135; background:#e4f1e8; border:1px solid #b9d8c4; }
@keyframes notice-enter { from { opacity:0; transform:translateY(-12px) translateX(12px); } to { opacity:1; transform:none; } }
@keyframes notice-leave { to { opacity:0; transform:translateY(-8px) translateX(18px); } }
@media(prefers-reduced-motion:reduce){.notice,.notice.leaving{animation:none}}
.admin-sidebar { width:245px; height:100vh; padding:28px 22px; position:fixed; inset:0 auto 0 0; display:flex; flex-direction:column; color:#dce4df; background:#102e20; }
.admin-brand { display:flex; align-items:center; gap:10px; text-decoration:none; }
.admin-brand > img { width:44px; height:44px; object-fit:contain; flex:0 0 44px; }
.auth-brand { position:absolute; top:18px; left:22px; display:flex; gap:10px; align-items:center; color:#f9f6ef; text-decoration:none; }
.auth-brand img { object-fit:contain; }
.auth-logo { display:block; object-fit:contain; }
.auth-body { padding-top:96px; }
.privacy-request { padding:24px; margin:24px 0; background:#fff; border:1px solid var(--line); border-radius:14px; }
.admin-brand strong,.admin-brand small { display:block; }
.admin-brand small { color:#94a69a; font-size:9px; text-transform:uppercase; letter-spacing:.15em; }
.admin-sidebar nav { margin-top:48px; display:grid; gap:5px; }
.admin-sidebar nav a { padding:11px 13px; color:#b8c6bd; border-radius:8px; text-decoration:none; }
.admin-sidebar nav a:hover { color:#fff; background:rgba(255,255,255,.07); }
.admin-sidebar form { margin-top:auto; }
.text-button { padding:0; color:#aebeb3; background:none; border:0; cursor:pointer; }
.admin-main { min-height:100vh; margin-left:245px; padding:55px clamp(28px,5vw,80px) 90px; }
.page-head { margin-bottom:40px; display:flex; align-items:end; justify-content:space-between; gap:30px; }
.page-actions { display:flex; align-items:center; gap:10px; }
.page-head .eyebrow { margin-top:0; }
.page-head h1 { margin:8px 0 0; font-size:clamp(42px,5vw,64px); line-height:1; }
.metric-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:13px; }
.metric-grid article { padding:22px; background:#fff; border:1px solid var(--line); border-radius:13px; }
.metric-grid span { display:block; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.metric-grid strong { display:block; margin-top:18px; font:500 36px Georgia,serif; }
.panel { margin-top:22px; padding:28px; background:#fff; border:1px solid var(--line); border-radius:15px; }
.panel header h2 { margin:4px 0 18px; font-size:28px; }
.table-wrap { overflow-x:auto; }
table { width:100%; border-collapse:collapse; }
th,td { padding:13px 11px; text-align:left; border-bottom:1px solid #ebe7de; white-space:nowrap; }
th { color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.09em; }
td { font-size:12px; }
.status { padding:4px 8px; display:inline-block; color:#5e5748; background:#eee9df; border-radius:999px; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.status.published,.status.resolved { color:#215c3c; background:#def0e4; }
.status.hidden,.status.archived { color:#5c4b3b; background:#e9e1d5; }
.status.draft,.status.scheduled { color:#795a20; background:#f5ebd3; }
.status.open { color:#8a3c26; background:#f8e4dd; }
.status.active,.status.qualified,.status.approved { color:#215c3c; background:#def0e4; }
.status.suspended,.status.pending_email,.status.pending { color:#795a20; background:#f5ebd3; }
.status.banned,.status.rejected,.status.revoked { color:#842f23; background:#f8e0dc; }
.editor-form { max-width:980px; display:grid; gap:24px; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field-grid.three { grid-template-columns:repeat(3,1fr); }
.check-row { display:flex; gap:25px; flex-wrap:wrap; }
.check-row label { display:flex; align-items:center; gap:8px; }
.check-row input { width:17px; min-height:17px; margin:0; }
.editor-form .primary-button { width:max-content; }
.editor-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.editor-actions .primary-button,.editor-actions .secondary-button { width:auto; }
.content-filters { display:grid; grid-template-columns:2fr 1fr 1fr auto; align-items:end; gap:14px; }
.member-filters { display:grid; grid-template-columns:2fr 1fr auto; align-items:end; gap:14px; }
.referral-filters { display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:14px; }
.referral-list { display:grid; gap:16px; }
.referral-card header { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.referral-card header > div { display:flex; align-items:center; gap:8px; }
.referral-people { margin-top:20px; display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.referral-people > div { padding:15px; display:grid; background:var(--cream); border-radius:10px; }
.referral-people small,.referral-people span { color:var(--muted); }
.referral-people a { width:max-content; }
.referral-evidence { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.referral-evidence div { padding:10px; text-align:center; border:1px solid var(--line); border-radius:8px; }
.referral-evidence dt { color:var(--muted); font-size:9px; text-transform:uppercase; }
.referral-evidence dd { margin:4px 0 0; font-weight:800; }
.risk-badge { padding:4px 8px; border-radius:999px; font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.risk-badge.clear { color:#215c3c; background:#def0e4; }.risk-badge.review { color:#795a20; background:#f5ebd3; }.risk-badge.critical { color:#842f23; background:#f8e0dc; }
.risk-reason { padding:11px 13px; background:#fff9ef; border-left:3px solid #b88c58; }
.referral-decision summary { width:max-content; list-style:none; }.referral-decision summary::-webkit-details-marker { display:none; }.referral-decision form { margin-top:12px; display:grid; gap:12px; }
.confirmation-row { display:flex; align-items:flex-start; gap:8px; }.confirmation-row input { width:17px; min-height:17px; margin:2px 0 0; }
.member-result-count { margin:0 0 12px; color:var(--muted); }
.pagination { margin-top:22px; display:flex; flex-wrap:wrap; gap:6px; }
.pagination a { min-width:36px; min-height:36px; padding:7px; display:grid; place-items:center; border:1px solid var(--line); border-radius:8px; text-decoration:none; }
.pagination a.current { color:#fff; background:var(--forest); border-color:var(--forest); }
.member-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; }
.member-summary article { padding:20px; color:#fff; background:var(--forest); border-radius:13px; }
.member-summary span,.member-summary small { display:block; color:#c9d8ce; font-size:11px; }
.member-summary strong { display:block; margin-top:12px; font:500 25px Georgia,serif; }
.member-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.member-detail-grid > .panel { min-width:0; }
.member-profile dl { display:grid; gap:0; }
.member-profile dl div { padding:11px 0; display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid #ebe7de; }
.member-profile dt { color:var(--muted); }
.member-profile dd { margin:0; text-align:right; }
.activity-counts { margin-top:18px; display:grid; grid-template-columns:repeat(5,1fr); gap:8px; }
.activity-counts span { padding:10px; display:grid; text-align:center; color:var(--muted); background:var(--cream); border-radius:8px; font-size:10px; text-transform:capitalize; }
.activity-counts strong { color:var(--ink); font:500 22px Georgia,serif; }
.action-form { padding:18px 0; display:grid; gap:12px; border-top:1px solid var(--line); }
.action-form:first-of-type { padding-top:0; border-top:0; }
.member-actions { display:flex; flex-wrap:wrap; gap:8px; }
.negative-points { color:var(--danger); font-weight:800; }
.admin-card-grid { margin-top:20px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.control-card { min-width:0; padding:20px; display:grid; gap:14px; background:var(--paper); border:1px solid var(--line); border-radius:12px; }
.control-card p { margin:0; color:var(--muted); }
.control-card-head { display:flex; justify-content:space-between; align-items:start; gap:14px; }
.control-card-head strong,.control-card-head small { display:block; }
.control-card-head small { margin-top:3px; color:var(--muted); }
.reward-create { margin:20px 0; }
.reward-create > summary { width:max-content; list-style:none; }
.reward-create > summary::-webkit-details-marker { display:none; }
.reward-create[open] > summary { margin-bottom:14px; }
.reward-form { background:#fff; }
.reward-decision { grid-template-columns:minmax(240px,1fr) auto auto; }
.mission-step-list { display:grid; gap:8px; }
.mission-step-list > div { padding:10px; display:flex; align-items:end; justify-content:space-between; gap:12px; background:#fff; border:1px solid var(--line); border-radius:9px; }
.mission-step-list strong,.mission-step-list small { display:block; }
.mission-step-list small { color:var(--muted); }
.mission-step-list form { display:grid; grid-template-columns:minmax(150px,1fr) auto; align-items:end; gap:8px; }
.mission-step-form { padding-top:14px; display:grid; grid-template-columns:1fr 120px 1fr auto; align-items:end; gap:10px; border-top:1px solid var(--line); }
.mission-activity-link { width:max-content; }
.mission-analytics-head { align-items:center; }
.mission-analytics-head > div:first-child { max-width:850px; }
.mission-analytics-head p:last-child { color:var(--muted); }
.mission-analytics-summary { margin-bottom:22px; }
.mission-analytics-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.mission-analytics-steps > article { padding:18px; display:grid; gap:16px; background:var(--paper); border:1px solid var(--line); border-radius:11px; }
.mission-analytics-steps strong,.mission-analytics-steps small { display:block; }
.mission-analytics-steps small { margin-top:3px; color:var(--muted); }
.mission-analytics-steps dl { margin:0; display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.mission-analytics-steps dl div { padding:9px; text-align:center; background:#fff; border-radius:8px; }
.mission-analytics-steps dt { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.07em; }
.mission-analytics-steps dd { margin:4px 0 0; font:500 21px Georgia,serif; }
.admin-progress { width:110px; height:7px; margin-top:6px; display:block; accent-color:var(--forest); }
.filter-actions { display:flex; gap:8px; padding-bottom:1px; }
.table-subtitle { margin-top:3px; display:block; color:var(--muted); font-weight:400; }
.preserved-fields { padding:14px 16px; display:flex; gap:30px; color:var(--muted); background:var(--cream); border-radius:9px; }
.preserved-fields strong { margin-right:5px; color:var(--ink); }
.preservation-note { padding:18px 20px; color:#5d4935; background:#f7efe2; border:1px solid #e5d1b3; border-radius:10px; }
.preservation-note p { margin:5px 0 0; }
.media-manager > header { display:flex; align-items:start; justify-content:space-between; gap:20px; }
.media-manager > header p { margin:4px 0 20px; color:var(--muted); }
.media-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.media-card { overflow:hidden; border:1px solid var(--line); border-radius:12px; }
.media-card > img { width:100%; height:240px; display:block; object-fit:cover; background:var(--cream); }
.media-card > div { padding:16px; }
.media-card p { min-height:42px; color:var(--muted); }
.media-card small { color:var(--muted); }
.cover-form { margin-top:12px; }
.media-remove { margin-top:15px; padding-top:14px; display:grid; grid-template-columns:1fr auto; align-items:end; gap:10px; border-top:1px solid var(--line); }
.media-upload { margin-top:20px; padding-top:20px; display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:14px; border-top:1px solid var(--line); }
.media-upload label small { margin-top:5px; display:block; color:var(--muted); font-weight:400; }
.media-upload fieldset { margin:0; padding:12px; display:grid; grid-template-columns:1fr 1fr; gap:10px; border:1px solid var(--line); border-radius:10px; }
.media-upload legend { padding:0 6px; font-weight:700; }
.media-upload legend small { color:var(--muted); font-weight:400; }
.alt-text-form { margin-top:14px; display:grid; gap:8px; }
.image-preparation-status { display:block; min-height:20px; margin-top:8px; color:var(--muted); font-weight:600; }
.image-preparation-status.error { color:var(--danger); }
.editorial-preview { max-width:1040px; margin-inline:auto; padding:clamp(28px,5vw,58px); }
.editorial-preview > header { display:flex; align-items:center; justify-content:space-between; color:var(--muted); }
.editorial-preview > header > div { display:flex; align-items:center; gap:12px; }
.editorial-preview h2 { margin:30px 0 12px; font-size:clamp(38px,5vw,58px); line-height:1.05; }
.preview-excerpt { color:var(--muted); font-size:18px; }
.preview-gallery { margin:26px 0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.preview-gallery.single { grid-template-columns:1fr; }
.preview-gallery img { width:100%; max-height:520px; display:block; object-fit:cover; border-radius:12px; }
.preview-gallery.single img { object-fit:contain; }
.preview-body { margin-top:28px; padding-top:28px; border-top:1px solid var(--line); font-size:16px; line-height:1.8; }
.poll-fields { margin:0; padding:20px; display:grid; gap:18px; border:1px solid var(--line); border-radius:12px; }
.poll-fields legend { padding:0 8px; font-weight:800; }
.poll-fields legend small { color:var(--muted); font-weight:400; }
.report-list { display:grid; gap:15px; }
.report-card { margin-top:0; }
.report-card header { display:flex; justify-content:space-between; gap:20px; }
.report-card header > div { display:flex; align-items:center; gap:10px; }
.report-card h2 { margin:24px 0 6px; font-size:27px; }
.report-card p { color:var(--muted); }
.report-card small { color:#7a827d; }
.report-card blockquote { margin:22px 0 0; padding:16px 18px; background:var(--cream); border-left:3px solid #b88c58; border-radius:0 10px 10px 0; }
.report-card blockquote p { margin:6px 0; color:var(--ink); }
.resolution-form { margin-top:25px; padding-top:20px; display:grid; grid-template-columns:minmax(260px,1fr) auto auto auto; align-items:end; gap:10px; border-top:1px solid var(--line); }
.question-resolution { grid-template-columns:minmax(260px,1fr) auto auto auto auto; }
.empty { padding:50px; text-align:center; color:var(--muted); }
.question-source { max-width:980px; }
.question-source blockquote { margin:12px 0 0; padding:18px; background:var(--cream); border-left:3px solid #b88c58; }
.answer-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
code { font-size:10px; }
.app-error { width:min(680px,calc(100% - 40px)); min-height:100vh; margin:0 auto; padding:100px 0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.app-error > strong { margin-top:15px; color:#b48956; font:500 clamp(72px,12vw,130px)/.85 Georgia,serif; }
.app-error h1 { margin:15px 0 5px; font-size:44px; }
.app-error p { margin:0 0 25px; color:var(--muted); font-size:17px; }
@media(max-width:1200px){.question-resolution{grid-template-columns:1fr auto auto}.question-resolution label{grid-column:1/-1}}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(3,1fr)}.field-grid.three{grid-template-columns:1fr 1fr}.resolution-form{grid-template-columns:1fr auto auto auto}.question-resolution{grid-template-columns:1fr 1fr}.question-resolution label{grid-column:span 2}.content-filters,.member-filters,.referral-filters{grid-template-columns:1fr 1fr}.filter-actions{align-self:end}.media-upload{grid-template-columns:1fr 1fr}.media-upload button{grid-column:1/-1;width:max-content}.member-summary{grid-template-columns:1fr 1fr}.admin-card-grid{grid-template-columns:1fr}.referral-evidence{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.admin-sidebar{width:100%;height:auto;position:static}.admin-sidebar nav{margin-top:24px;grid-template-columns:1fr 1fr}.admin-sidebar form{margin-top:20px}.admin-main{margin-left:0;padding:35px 18px 70px}.metric-grid{grid-template-columns:1fr 1fr}.field-grid,.field-grid.three,.content-filters,.member-filters,.referral-filters,.media-grid,.media-upload,.preview-gallery,.member-detail-grid,.mission-step-form,.mission-analytics-steps,.referral-people{grid-template-columns:1fr}.page-head{align-items:start;flex-direction:column}.resolution-form{grid-template-columns:1fr}.auth-card{padding:30px}.preserved-fields{flex-direction:column;gap:6px}.media-remove{grid-template-columns:1fr}.page-actions{flex-wrap:wrap}.member-summary{grid-template-columns:1fr 1fr}.activity-counts,.referral-evidence{grid-template-columns:repeat(2,1fr)}.mission-step-list>div{align-items:stretch;flex-direction:column}.mission-step-list form{grid-template-columns:1fr}.mission-step-form button{width:max-content}.referral-card header{align-items:start;flex-direction:column}}
