.auth-backdrop{min-height:100vh;display:grid;grid-template-columns:minmax(340px,1fr) minmax(360px,1fr);background:#fff}.auth-art{background:#103f3b;color:white;position:relative;overflow:hidden;padding:clamp(36px,6vw,90px);display:flex;flex-direction:column;justify-content:space-between}.auth-art:after{content:'';width:650px;height:650px;border:1px solid #ffffff33;border-radius:50%;position:absolute;top:18%;right:-380px;box-shadow:0 0 0 70px #ffffff0b,0 0 0 145px #ffffff08}.auth-art .auth-brand{font:800 44px Manrope,sans-serif;letter-spacing:-2px}.auth-art .auth-tag{font-size:11px;letter-spacing:2.3px;color:#b8dbce}.auth-art h1{font:800 clamp(36px,4vw,62px)/1.14 Manrope;letter-spacing:-2.8px;max-width:580px;margin:0 0 18px}.auth-art p{color:#bdd8cc;font-size:16px;max-width:440px;line-height:1.85}.auth-art small{color:#abc8ba}.auth-side{display:flex;justify-content:center;align-items:center;padding:40px 24px}.auth-panel{width:min(430px,100%)}.auth-panel h2{font:800 30px Manrope;color:var(--forest);letter-spacing:-1px;margin:10px 0}.auth-panel p{color:var(--muted);line-height:1.7}.auth-panel .field{margin:16px 0}.auth-panel input{font-size:15px}.auth-panel .primary{width:100%;padding:15px;margin-top:7px}.auth-link{border:0;background:transparent;color:var(--teal);font-weight:800;text-decoration:underline}.auth-note{padding:14px;background:#f4f6f0;border-radius:12px;margin-top:22px;font-size:12px;line-height:1.7;color:#526f65}.error-line{background:#fdf0ec;color:#a84132;border-radius:9px;padding:11px 13px;margin:12px 0;line-height:1.5}.success-line{background:#eaf5ed;color:#226752;border-radius:9px;padding:11px 13px;margin:12px 0}.brand-wordmark{color:var(--forest);font:800 27px Manrope;letter-spacing:-1px}.brand-wordmark em{display:block;font-style:normal;font-size:8px;letter-spacing:1.3px;color:#6b8c81}.sidebar .brand{padding-bottom:46px}.sidebar .brand-mark{font:800 22px Manrope}.top-chip{font-size:10px;background:#eaf4eb;color:#246657;border-radius:20px;padding:8px 12px;letter-spacing:.6px;font-weight:800}.role-chip{font-size:11px;border:1px solid #dce9e1;border-radius:30px;padding:8px 11px;color:#52776b}.auth-card-button{display:inline-flex;justify-content:center;align-items:center;border:none;background:#e7f1eb;color:#15594f;border-radius:9px;padding:10px 14px;font-weight:800}.empty-illustration{font-size:32px;margin:0 0 8px}.table-wrap{overflow:auto}.k-table{width:100%;border-collapse:collapse;min-width:500px}.k-table th{text-align:left;color:#83928b;font-size:11px;letter-spacing:.5px;padding:12px;border-bottom:1px solid var(--border)}.k-table td{font-size:13px;padding:15px 12px;border-bottom:1px solid var(--border)}.k-table tr:last-child td{border-bottom:0}.k-table td strong{color:var(--forest)}.k-table .right{text-align:right}.new-label{display:inline-flex;align-items:center;font-size:10px;font-weight:800;color:#946e30;border-radius:6px;padding:5px 9px;background:#fcf3e2}.privacy-indicator{display:inline-flex;align-items:center;gap:4px;color:#638576;font-size:11px;font-weight:700}.lock-mini{color:#946fa0}.stack-buttons{display:flex;flex-wrap:wrap;gap:7px}.stack-buttons button{white-space:nowrap}.callout{border:1px solid #cfe2d5;border-radius:15px;padding:18px 20px;background:#f0f7f2;color:#346659;line-height:1.7}.callout strong{display:block;color:var(--forest);margin-bottom:5px}.view-kicker{font-size:12px;text-transform:uppercase;letter-spacing:1.1px;color:var(--teal);font-weight:800}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.tiled-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.service-item{border:1px solid var(--border);background:#fff;border-radius:14px;padding:20px;display:flex;gap:12px}.service-item .symbol{height:37px;width:37px;display:grid;place-items:center;background:#eef5ef;border-radius:11px;color:var(--teal);font-size:23px}.service-item strong{display:block;margin:3px 0 6px;color:var(--forest)}.service-item p{font-size:12px;color:var(--muted);line-height:1.6;margin:0}.label-privacy{font-size:11px;color:#7e8c88}.error-banner{padding:12px 16px;background:#fff1ed;border:1px solid #eec7c0;border-radius:11px;color:#973b2e;margin-bottom:22px}.small-muted{font-size:11px;color:#859790}.modal-overlay{overscroll-behavior:contain}.sidebar-bottom .tip-card{margin-top:20px}.subnav{display:flex;gap:9px;margin:0 0 20px}.subnav button{border:1px solid #dfe8e3;background:white;color:var(--forest);border-radius:9px;padding:10px 13px;font-weight:700}.subnav button.active{background:var(--forest);border-color:var(--forest);color:#fff}.member-icon{width:38px;height:38px;border-radius:50%;background:#e7d2b9;color:#745037;display:grid;place-items:center;font-weight:800}.mobile-brand{display:none}.invite-result{overflow-wrap:anywhere;display:block;font-family:monospace;background:#f0f5f2;padding:13px;border-radius:8px;color:#24544d;user-select:all}.tip-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}.footer{margin-top:auto}.hidden{display:none!important}
@media(max-width:850px){.auth-backdrop{grid-template-columns:1fr}.auth-art{min-height:245px;padding:30px}.auth-art h1{font-size:32px;margin:24px 0 0}.auth-art p{font-size:13px;margin-bottom:0}.auth-art small{display:none}.auth-side{padding:26px 18px}.mobile-brand{display:block;font-weight:800;font-size:19px;color:var(--forest)}.top-chip{display:none}.tiled-services{grid-template-columns:1fr}}
@media(max-width:610px){.auth-art{min-height:205px}.auth-art h1{font-size:28px}.auth-art p{font-size:12px}.hero-actions{gap:7px}.hero-actions button{padding:10px}.top-actions .role-chip{display:none}.k-table{min-width:440px}.head-row{flex-wrap:wrap}.footer{margin-bottom:12px}.card{overflow:hidden}}
/* v0.3 pilot: consent and sensitive module UI */
.consent-row {display:flex;align-items:flex-start;gap:12px;font-size:13px;line-height:1.5;margin:16px 0;color:#24423e}
.consent-row input {margin-top:4px;flex-shrink:0;width:18px;height:18px}
.list-row {gap:12px;min-width:0}
.list-row > span,.row-left span {min-width:0;overflow-wrap:anywhere}
.stack-buttons {flex-wrap:wrap;justify-content:flex-end}
@media(max-width:650px){.stack-buttons{gap:6px}.stat-value{font-size:clamp(19px,5vw,28px)}.list-row{align-items:flex-start}}

/* Utility classes replacing inline style attributes, which the server's CSP (style-src 'self') blocks. */
.mt-20{margin-top:20px}
.invite-input{min-width:220px;flex:1;padding:11px;border:1px solid #dce5df;border-radius:9px}
.auth-switch{text-align:center;margin:20px 0}
.service-item--link{text-align:left;cursor:pointer}

/* Overview dashboard: centred layout (requested 2026-11-11). Scoped to .dashboard only. */
.dashboard .head-row{justify-content:center;text-align:center}
.dashboard .head-row>*{margin-left:auto;margin-right:auto}
.dashboard .hero{justify-content:center;gap:clamp(24px,5vw,72px);text-align:center}
.dashboard .hero-content{display:flex;flex-direction:column;align-items:center}
.dashboard .hero p{margin-left:auto;margin-right:auto}
.dashboard .section-head{justify-content:center;text-align:center}
.dashboard .feature-card{position:relative;flex-direction:column;justify-content:center;text-align:center;gap:10px;padding:22px 19px}
.dashboard .feature-card .arrow{position:absolute;top:14px;right:16px;margin:0}
.dashboard .stat-card{text-align:center}
.dashboard .stat-card .stat-top{flex-direction:column-reverse;justify-content:center;gap:10px}
.dashboard .service-item,.dashboard .service-item--link{flex-direction:column;align-items:center;justify-content:center;text-align:center}
/* Fit columns to item count so an organizer's fourth quick action doesn't sit alone on the left. */
.dashboard .grid.three{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}

/* v0.4: account, offline, lifecycle, bills */
.notice-banner{background:#e9f4ef;color:#1f5b4f;border-radius:10px;padding:12px 14px;margin:14px 0;font-size:13px;line-height:1.6}
.auth-forgot{text-align:right;margin:10px 0 0}
.offline-banner{background:#fdf3e0;color:#7a5512;border-radius:12px;padding:13px 16px;margin-bottom:18px;font-size:13px;line-height:1.6}
.sync-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#edf5f0;color:#2d6152;border-radius:12px;padding:11px 16px;margin-bottom:18px;font-size:13px;font-weight:700}
.text-link{color:var(--teal);font-weight:800;text-decoration:underline;text-underline-offset:3px}
.danger-card{border-color:#efd3cf}
.danger-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:9px 12px;font-weight:800;border:1px solid #e3b9b3;background:#fff;color:#a2463c;font-size:12px}
.danger-btn:hover{background:#fbefed}
.timeline{list-style:none;margin:6px 0 0;padding:0 0 0 16px;border-left:2px solid #dbe8e2}
.timeline li{position:relative;padding:0 0 16px 14px;font-size:13px;line-height:1.6;color:var(--forest)}
.timeline li:before{content:'';position:absolute;left:-23px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--teal)}
.timeline time{display:block;font-size:11px;color:var(--muted);font-weight:700}
button.stat-link{text-align:inherit;cursor:pointer;font:inherit}
button.stat-link:hover{border-color:#96bfb2}
.request-row .stack-buttons{max-width:60%}
.small-btn:disabled,.primary:disabled{opacity:.6;cursor:progress}
@media(max-width:610px){.request-row{flex-direction:column;align-items:flex-start}.request-row .stack-buttons{max-width:100%;justify-content:flex-start}}
/* Pills sit centred beside buttons instead of stretching to their height. */
.stack-buttons{align-items:center}
.pill{display:inline-flex;align-items:center;line-height:1.2}
