:root { --ink:#1d1a24; --muted:#6b6577; --bg:#fbf8f3; --card:#fff; --line:#e7e0d6; --purple:#5b2a86; --gold:#c99a2e; --mg-green:#0a7a3d; --green:#1f7a4d; --red:#b3261e; }
* { box-sizing:border-box; }
body { margin:0; font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--ink); background:var(--bg); }
a { color:var(--purple); }
main { max-width:1100px; margin:0 auto; padding:16px; }
h1 { font-size:1.9rem; line-height:1.2; margin:.4em 0; } h2 { margin-top:1.6em; }
.testbar { background:var(--gold); color:#000; text-align:center; font-size:.85rem; padding:4px; }
.top { display:flex; gap:16px; align-items:center; flex-wrap:wrap; padding:12px 16px; background:var(--purple); color:#fff; }
.top a, .top .link { color:#fff; }
.brand { font-weight:800; font-size:1.25rem; text-decoration:none; } .brand span { font-weight:400; }
.topsearch { flex:1; display:flex; min-width:220px; } .topsearch input { flex:1; }
.top nav { display:flex; gap:12px; align-items:center; }
.hubs { display:flex; gap:6px; flex-wrap:wrap; padding:8px 16px; background:var(--mg-green); border-bottom:3px solid var(--gold); font-size:.9rem; }
.hubs a, .hubs .link { color:#fff; text-decoration:none; padding:4px 10px; border-radius:20px; }
.hubs a:hover, .hubs a:focus-visible { background:var(--gold); color:#000; }
.hubs .pill { background:transparent; border-color:rgba(255,255,255,.6); color:#fff; }
.hubs .youthlink { background:rgba(255,255,255,.15); }
input, textarea, select { font:inherit; padding:9px 10px; border:1px solid #cbc3d6; border-radius:8px; background:#fff; max-width:100%; }
label { display:block; margin:12px 0; } label > input:not([type=checkbox]):not([type=radio]), label > textarea, label > select { display:block; width:100%; margin-top:4px; }
label.check { display:flex; gap:8px; align-items:flex-start; margin:6px 0; } label.check.inline { display:inline-flex; margin-right:14px; }
fieldset { border:1px solid var(--line); border-radius:10px; margin:14px 0; } legend { font-weight:600; }
button { font:inherit; cursor:pointer; }
.btn { display:inline-block; background:var(--purple); color:#fff; border:0; border-radius:8px; padding:10px 18px; text-decoration:none; font-weight:600; }
.btn.ghost { background:#fff; color:var(--purple); border:1px solid var(--purple); }
.btn.small { padding:6px 12px; font-size:.9rem; } .top .btn.small { background:var(--gold); color:#000; }
.btn:disabled { opacity:.5; }
.link { background:none; border:0; color:var(--purple); text-decoration:underline; padding:0; }
.inline { display:inline; }
.pill { display:inline-block; border:1px solid var(--line); border-radius:20px; padding:4px 12px; margin:3px; text-decoration:none; background:#fff; }
.pill.on { background:var(--purple); color:#fff; }
.flash { padding:10px 14px; border-radius:8px; margin:10px 0; } .flash.ok { background:#e3f4ea; } .flash.err { background:#fbe3e1; } .flash.warn { background:#fff3d6; }
.hero { padding:28px 0 8px; } .hero p { max-width:640px; color:var(--muted); font-size:1.1rem; }
.bigsearch { display:flex; gap:8px; max-width:640px; } .bigsearch input { flex:1; font-size:1.1rem; }
.hubgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; margin:24px 0; }
.hub { display:block; padding:16px; border-radius:12px; background:#fff; border:1px solid var(--line); text-decoration:none; color:var(--ink); border-left:6px solid var(--purple); }
.hub strong { display:block; } .hub span { color:var(--muted); font-size:.9rem; }
.hub-fashion { border-left-color:var(--gold); } .hub-film { border-left-color:#333; } .hub-events { border-left-color:#c2410c; } .hub-convention { border-left-color:var(--green); } .hub-kids { border-left-color:#2563eb; }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; text-decoration:none; color:var(--ink); display:flex; flex-direction:column; }
.card img, .noimg { width:100%; aspect-ratio:4/3; object-fit:cover; }
.noimg { display:grid; place-items:center; font-size:3rem; color:#fff; background:linear-gradient(135deg,var(--purple),var(--gold)); }
.cardbody { padding:10px 12px; } .cardbody span { display:block; color:var(--muted); font-size:.9rem; }
.tags { display:flex; flex-wrap:wrap; gap:4px; margin:6px 0; }
.tags em { font-style:normal; font-size:.75rem; background:#f1eaf7; border-radius:10px; padding:2px 8px; }
.tags em.kid { background:#dbeafe; } .tags em.adult { background:#fde2e1; } .tags em.open { background:#e3f4ea; } .tags em.ver { background:#fff1c2; }
.filters { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.profile header { margin-bottom:16px; } .biz { margin:0; font-weight:600; } .headline { color:var(--muted); font-size:1.15rem; margin:.2em 0; }
.gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:10px; margin:16px 0; }
.gallery.small { grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); }
.gallery figure { margin:0; } .gallery img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:8px; }
figcaption { font-size:.85rem; color:var(--muted); }
.cols { display:grid; grid-template-columns:2fr 1fr; gap:28px; } @media (max-width:760px) { .cols { grid-template-columns:1fr; } }
aside { background:#fff; border:1px solid var(--line); border-radius:12px; padding:4px 16px 12px; align-self:start; }
.prose { white-space:pre-line; }
.plain { list-style:none; padding:0; } .qr { max-width:180px; border-radius:8px; border:1px solid var(--line); }
.box { background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px 18px; margin:16px 0; }
.box.narrow { max-width:560px; margin:24px auto; }
.box.flagged { border-color:var(--red); } .flagtext { color:var(--red); font-weight:600; }
.hp { position:absolute; left:-9999px; }
.report { margin-top:24px; color:var(--muted); font-size:.9rem; }
.small { font-size:.85rem; } .muted { color:var(--muted); }
.two { display:grid; grid-template-columns:1fr 1fr; gap:0 16px; } @media (max-width:600px) { .two { grid-template-columns:1fr; } }
.catgroup { margin:8px 0 12px; } .catgroup strong { display:block; margin-bottom:2px; }
.aihelp { background:#f7f2fc; border-radius:10px; padding:4px 14px 12px; } .aistatus { color:var(--muted); font-size:.9rem; }
.savebar { position:sticky; bottom:0; background:var(--bg); padding:12px 0; border-top:1px solid var(--line); display:flex; gap:10px; }
.status-approved { color:var(--green); } .status-pending { color:#a16207; } .status-rejected { color:var(--red); }
.inq.new { border-left:5px solid var(--gold); }
.row { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.tbl { width:100%; border-collapse:collapse; background:#fff; } .tbl th, .tbl td { border-bottom:1px solid var(--line); padding:8px; text-align:left; vertical-align:top; }
@media (max-width:700px) { .tbl { display:block; overflow-x:auto; } }
footer { border-top:1px solid var(--line); margin-top:40px; padding:20px 16px; text-align:center; color:var(--muted); font-size:.9rem; }
.banner { background:#fff8e1; border:1px solid #e6c766; border-radius:8px; padding:10px 12px; font-size:.85rem; }
.qrbig { width:220px; height:220px; background:#fff; padding:8px; display:block; margin:10px 0; }
.key { display:block; word-break:break-all; background:#f4f1f8; padding:8px; border-radius:6px; }
.youthlink { background:#e6f4ff; font-weight:600; }
.hub-young { border-left-color:#0ea5e9; background:#f3faff; }
.tags em.youth, .tagyouth { background:#d7f0ff; font-style:normal; font-weight:600; font-size:.75rem; border-radius:10px; padding:2px 8px; }
.youthhead { background:#f3faff; border:1px solid #cfe9fb; border-radius:12px; padding:4px 18px; margin:12px 0; }
.guidelines ol li, .guidelines ul li { margin-bottom:6px; }
.hubs .navbtn { font-weight:700; background:rgba(0,0,0,.18); }
.navsep { width:1px; background:rgba(255,255,255,.45); margin:2px 4px; }
.testbar { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:3px 12px; }
.testbar span { grid-column:2; }
.homebtn { grid-column:1; justify-self:start; color:#000; font-weight:700; text-decoration:none; padding:1px 10px; border-radius:12px; background:rgba(255,255,255,.35); }
.homebtn:hover, .homebtn:focus-visible { background:#fff; }
.shops { margin:18px 0; } .shop { margin:10px 0 18px; }
.shopgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; margin-top:10px; }
.shopitem { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:10px; overflow:hidden; text-decoration:none; color:var(--ink); }
.shopitem img, .shopitem .noimg { width:100%; aspect-ratio:1; object-fit:cover; }
.shopitem .noimg.small { font-size:2rem; }
.shopitem .t { font-size:.85rem; padding:6px 8px 0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.shopitem .pr { font-weight:700; font-size:.9rem; padding:2px 8px 8px; }
.shoprow { padding:6px 0; border-bottom:1px solid var(--line); }
.shopform input[name=shop] { flex:1; min-width:220px; }
.hub-mardigras { border-left-color:var(--purple); background:linear-gradient(90deg, #f4ecfa, #fff 60%); box-shadow:inset 6px 0 0 -3px var(--gold); }
.hub-speakers { border-left-color:#b45309; }
.shopslots .slot { display:grid; grid-template-columns:minmax(150px,220px) 1fr; gap:4px 12px; align-items:center; padding:8px 0; border-bottom:1px solid var(--line); }
.shopslots .slot > span, .shopslots .slot > button { grid-column:2; }
.shopslots .slot label { margin:0; }
.shopslots .btn { margin-top:12px; }
@media (max-width:600px) { .shopslots .slot { grid-template-columns:1fr; } .shopslots .slot > span, .shopslots .slot > button { grid-column:1; } }
/* categories centered; Back pinned left on wide screens, flows inline on narrow ones */
.hubs { justify-content:center; position:relative; }
.hubs .navsep { display:none; }
@media (min-width:1100px) { .hubs #navback { position:absolute; left:16px; top:50%; transform:translateY(-50%); } }
.homebtn { white-space:nowrap; }
@media (max-width:600px) { .testbar { grid-template-columns:auto 1fr; gap:8px; } .testbar span { grid-column:2; text-align:left; font-size:.8rem; } }
/* two balanced, centered rows of categories */
.hubs { flex-direction:column; align-items:center; gap:4px; font-size:.88rem; }
.hubrow { display:flex; flex-wrap:wrap; justify-content:center; gap:4px 6px; }
.hubs #navback { align-self:flex-start; }
@media (min-width:1000px) { .hubs #navback { position:absolute; left:16px; top:50%; transform:translateY(-50%); align-self:auto; } }
@media (max-width:600px) { .hubs { font-size:.85rem; } .hubs a, .hubs .link { padding:3px 8px; } }
.narrowform { max-width:440px; }
.settings.danger { border-color:#e8b4b0; }
.btn.danger { background:var(--red); }
.top nav a, .top nav .link { white-space:nowrap; }
.tabs { display:flex; flex-wrap:wrap; gap:4px; border-bottom:2px solid var(--line); margin:14px 0 0; }
.tabs a { padding:8px 14px; text-decoration:none; border-radius:8px 8px 0 0; color:var(--ink); background:#efe9f5; margin-bottom:-2px; border:2px solid transparent; }
.tabs a.on { background:#fff; border-color:var(--line); border-bottom-color:#fff; font-weight:700; color:var(--purple); }
.tabs a.dangertab { color:var(--red); }
.integ { margin:12px 0; } .integ legend { font-size:1.05rem; }
