/* Member app and admin screens. Shares colours, buttons and fields with style.css. */
body.app{background:var(--lilac)}
.appbar{background:var(--night);color:var(--cream)}
.appbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}
.appbar nav{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.appbar nav a,.appbar nav button{font:inherit;color:var(--cream);background:none;border:0;cursor:pointer;text-decoration:none;padding:8px 12px;border-radius:999px;opacity:.9}
.appbar nav a:hover,.appbar nav button:hover{opacity:1;background:rgba(247,239,227,.12)}
.appbar nav a[aria-current="page"]{background:rgba(247,239,227,.18);opacity:1}
.badge{display:inline-block;min-width:1.4em;text-align:center;background:var(--gold);color:#2a1a3b;border-radius:999px;font-size:.8rem;font-weight:700;padding:0 6px;margin-left:4px}
.page{padding:30px 0 60px;min-height:70vh}
.page h1{font-size:clamp(1.6rem,3.4vw,2.2rem);margin-bottom:6px}
.page .lede{color:var(--mute);max-width:40em;margin-bottom:22px}
.box{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:24px}
.box.narrow{max-width:460px;margin:0 auto}
.box.mid{max-width:760px}
.tabs{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap}
.tabs button{font:inherit;cursor:pointer;border:1.5px solid var(--line);background:transparent;color:var(--ink);border-radius:999px;padding:8px 16px}
.tabs button[aria-selected="true"]{background:var(--plum);border-color:var(--plum);color:#fff}
.stack{display:grid;gap:14px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.err{color:#9b1c1c;min-height:1.3em;font-size:.95rem}
.ok{color:var(--jade);font-weight:500}
.help{font-size:.88rem;color:var(--mute);font-weight:400}
textarea{font:inherit;color:var(--ink);background:#fff;border:1.5px solid #cdbfdb;border-radius:10px;padding:10px 11px;width:100%;resize:vertical;min-height:90px}
.btn-quiet{border-color:#cdbfdb;color:var(--ink);background:transparent}
.btn-quiet:hover{border-color:var(--ink)}
.btn-danger{background:#9b1c1c;color:#fff}
.btn-sm{padding:8px 16px;font-size:.93rem}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.notice{border-radius:14px;padding:14px 16px;margin-bottom:20px;border:1px solid}
.notice b{display:block;margin-bottom:2px}
.notice.wait{background:#fff6dd;border-color:#efd58c}
.notice.good{background:#e6f5f1;border-color:#9fd3c7}
.notice.stop{background:#fdecec;border-color:#f0b4b4}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:22px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;gap:10px;align-content:start}
.prow{display:flex;gap:14px;align-items:center}
.av{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font:700 1.2rem 'Fraunces',serif;color:#fff;flex:none}
.pcard h3{font-size:1.2rem}
.meta{color:var(--mute);font-size:.93rem}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{font-size:.8rem;border:1px solid var(--line);border-radius:999px;padding:2px 10px}
.tag.good{border-color:var(--jade);color:var(--jade)}
.tag.warm{border-color:var(--gold);color:#8a5a00;background:#fff6dd}
.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pcard .acts{display:flex;gap:8px;margin-top:2px}
.pcard .acts .btn{flex:1;text-align:center}
.star{flex:none;width:44px;padding:8px 0;font-size:1.1rem;line-height:1}
.empty{grid-column:1/-1;text-align:center;color:var(--mute);padding:40px 12px}
.more{text-align:center;margin-top:22px}
dialog{border:0;border-radius:20px;padding:0;max-width:560px;width:calc(100% - 28px);color:var(--ink);background:var(--card);box-shadow:0 24px 64px rgba(0,0,0,.4)}
dialog::backdrop{background:rgba(29,18,48,.6)}
dialog .dbody{padding:24px;display:grid;gap:14px;max-height:85vh;overflow:auto}
dialog h2{font-size:1.5rem}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}
.facts dt{color:var(--mute)}
.facts dd{margin:0}
.contact{background:#e6f5f1;border:1px solid #9fd3c7;border-radius:14px;padding:14px 16px}
.contact a{color:var(--ink);font-weight:700}
.closex{justify-self:end}
.list{display:grid;gap:14px}
.item{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px;display:grid;gap:10px}
.item .top2{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:flex-start}
.item .acts{display:flex;gap:8px;flex-wrap:wrap}
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:24px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.stat b{display:block;font:700 1.8rem 'Fraunces',serif;color:var(--berry)}
.stat span{color:var(--mute);font-size:.92rem}
.mono{font-variant-numeric:tabular-nums}
.sr{position:absolute;left:-9999px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--plum);color:#fff;padding:10px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:50;max-width:calc(100% - 28px);text-align:center}
.toast.show{opacity:1}
@media (max-width:560px){.two{grid-template-columns:1fr}.box{padding:18px}.appbar nav a,.appbar nav button{padding:8px 10px}}
@media (prefers-reduced-motion:reduce){.toast{transition:none}}

label.f{align-content:start}
h1:focus{outline:none}
