:root{
  --green:#0f7a4a; --green-d:#0a5a37; --green-dd:#063d27; --leaf:#22c55e; --mint:#ecfdf5;
  --sun:#fbbf24; --coral:#f97316; --sea:#0ea5e9; --ink:#10231a; --muted:#5b6f64; --line:#e3ebe6;
  --bg:#f6faf7; --card:#fff; --radius:14px; --shadow:0 1px 2px rgba(16,35,26,.06),0 6px 20px rgba(16,35,26,.06);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:hidden}
body{margin:0;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--green);text-decoration:none} a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.2;margin:.2em 0 .5em;letter-spacing:-.01em} h1{font-size:clamp(1.6rem,3.5vw,2.4rem)} h2{font-size:1.35rem}
img{max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.narrow{max-width:560px}.narrow-wide{max-width:860px}
.center{text-align:center}.right{margin-left:auto}.grow{flex:1;min-width:0}
.pad{padding:20px}.pad-x{padding:0 16px}.pad-xl{padding-top:40px;padding-bottom:60px}
.muted{color:var(--muted)}.small{font-size:.87rem}.tiny{font-size:.75rem}
.prewrap{white-space:pre-wrap;word-wrap:break-word}
.clamp1{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:.2em 0}
.big-emoji{font-size:3.5rem}
.inline{display:inline}
.section{padding-top:28px;padding-bottom:28px}
.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--green);color:#fff;border:0;border-radius:999px;padding:.7em 1.3em;font-weight:600;font-size:.95rem;cursor:pointer;transition:transform .1s,background .2s;text-decoration:none!important;font-family:inherit}
.btn:hover{background:var(--green-d)} .btn:active{transform:scale(.98)}
.btn-sm{padding:.45em .95em;font-size:.85rem}
.btn-block{width:100%}
.btn-accent{background:var(--sun);color:#3b2a00}.btn-accent:hover{background:#f59e0b}
.btn-ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.4)}.btn-ghost:hover{background:rgba(255,255,255,.25)}
.btn-ghost-dark{background:transparent;color:var(--green);border:1px solid var(--line)}.btn-ghost-dark:hover{background:var(--mint)}
.btn-danger{background:#dc2626}.btn-danger:hover{background:#b91c1c}
.linkbtn{background:none;border:0;color:var(--green);cursor:pointer;font:inherit;padding:0}.linkbtn:hover{text-decoration:underline}
.linkbtn.danger{color:#c2410c}

/* top bar */
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;backdrop-filter:saturate(1.2) blur(6px)}
.topbar-inner{display:flex;align-items:center;gap:18px;height:64px}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:1.3rem;color:var(--green-dd)!important;text-decoration:none!important;letter-spacing:-.02em}
.brand small{font-weight:600;color:var(--muted);font-size:.8rem}
.mainnav{display:flex;align-items:center;gap:4px;margin-left:auto}
.mainnav>a,.mainnav .linkbtn{padding:8px 11px;border-radius:10px;color:var(--ink);font-weight:500;font-size:.95rem;text-decoration:none}
.mainnav>a:hover{background:var(--mint)} .mainnav>a.active{color:var(--green);background:var(--mint)}
.mainnav .btn{color:#fff;margin-left:4px} .mainnav .me{display:flex;align-items:center;gap:6px}
.navsep{width:1px;height:24px;background:var(--line);margin:0 6px}
.navtoggle,.burger{display:none}
@media (max-width:900px){
  .burger{display:flex;flex-direction:column;gap:4px;margin-left:auto;cursor:pointer;padding:10px}
  .burger span{width:22px;height:2px;background:var(--ink);border-radius:2px}
  .mainnav{display:none;position:absolute;top:64px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:10px 16px 16px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}
  .navtoggle:checked~.mainnav{display:flex} .navsep{display:none}
}

/* flash */
.flash{margin:14px 0;padding:12px 16px;border-radius:12px;font-weight:500}
.flash-success{background:#dcfce7;color:#14532d}.flash-error{background:#fee2e2;color:#7f1d1d}.flash-info{background:#e0f2fe;color:#0c4a6e}

/* hero */
.hero{position:relative;overflow:hidden;color:#fff;background:linear-gradient(135deg,#0f7a4a 0%,#0b6b5c 45%,#0e7490 100%)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,rgba(251,191,36,.25),transparent 40%),radial-gradient(circle at 85% 0%,rgba(255,255,255,.15),transparent 35%)}
.hero-art{position:absolute;left:0;right:0;bottom:0;width:100%;height:58%;opacity:.55}
.hero-inner>*{min-width:0}
.hero-inner{position:relative;display:grid;grid-template-columns:1.5fr 1fr;gap:36px;align-items:center;padding-top:56px;padding-bottom:84px}
.hero h1{font-size:clamp(2rem,5vw,3.3rem);margin:.3em 0 .3em}
.lead{font-size:1.08rem;opacity:.92}
.pill{display:inline-block;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);padding:5px 12px;border-radius:999px;font-size:.85rem}
.searchbar{display:flex;width:100%;gap:8px;background:#fff;padding:6px;border-radius:999px;box-shadow:0 8px 30px rgba(0,0,0,.15);max-width:620px;margin:18px 0}
.searchbar input,.searchbar select{border:0;outline:0;font:inherit;padding:8px 14px;background:transparent;color:var(--ink);min-width:0}
.searchbar input{flex:1}.searchbar select{border-left:1px solid var(--line)}
.hero-ctas{display:flex;gap:10px;flex-wrap:wrap}
.widget{background:rgba(255,255,255,.95);color:var(--ink);border-radius:20px;padding:20px;box-shadow:0 20px 50px rgba(0,0,0,.2)}
.widget-top{display:flex;justify-content:space-between;align-items:flex-start}
.clock{font-size:2.4rem;font-weight:800;letter-spacing:-.02em;color:var(--green-dd);font-variant-numeric:tabular-nums}
.wx-now{display:flex;align-items:center;gap:6px}.wx-icon{font-size:2.4rem}.wx-temp{font-size:2rem;font-weight:700}
.wx-days{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:12px 0 6px}
.wx-day{background:var(--mint);border-radius:12px;padding:8px 4px;text-align:center;font-size:.8rem}
.wx-day b{display:block;font-size:1.3rem;margin:2px 0}
@media (max-width:860px){.hero-inner{grid-template-columns:1fr;padding-bottom:60px}}

.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:-30px;position:relative}
.stats-strip>div{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 18px;display:flex;flex-direction:column}
.stats-strip b{font-size:1.6rem;color:var(--green)} .stats-strip span{color:var(--muted);font-size:.88rem}
@media (max-width:640px){.stats-strip{grid-template-columns:repeat(2,1fr)}}

/* categories */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.cat-tile{display:flex;flex-direction:column;gap:4px;padding:16px;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);color:var(--ink);font-weight:600;text-decoration:none!important;transition:transform .15s;position:relative;border:1px solid var(--line)}
.cat-tile:hover{transform:translateY(-3px)} .cat-icon{font-size:1.8rem}
.cat-tile small{position:absolute;top:12px;right:14px;color:var(--muted);font-weight:500}

/* cards */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.listing-card{display:flex;flex-direction:column;overflow:hidden;color:var(--ink);text-decoration:none!important;transition:transform .15s,box-shadow .15s}
.listing-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(16,35,26,.12)}
.thumb{height:150px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb-icon{font-size:3.4rem;filter:drop-shadow(0 4px 10px rgba(0,0,0,.18))}.thumb-icon.xl{font-size:6rem}
.card-body{padding:14px 16px 16px}.card-body h3{margin:.15em 0;font-size:1.08rem}
.card-cat{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--green);font-weight:700}
.card-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:.85rem;margin-top:6px}
.stars{color:#f59e0b;letter-spacing:1px}.stars.big{font-size:1.3rem}
.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--mint);color:var(--green-d);vertical-align:middle;letter-spacing:.02em}
.badge.sample{background:#fef3c7;color:#92400e;border:1px dashed #f59e0b}
.badge.featured{background:var(--sun);color:#3b2a00}.badge.admin{background:#dbeafe;color:#1e3a8a}.badge.danger{background:#fee2e2;color:#991b1b}
.badge.corner{position:absolute;top:10px;left:10px}
/* category gradients (placeholder art) */
.cat-food{background:linear-gradient(135deg,#fed7aa,#fb923c)}.cat-shops{background:linear-gradient(135deg,#fbcfe8,#f472b6)}
.cat-services{background:linear-gradient(135deg,#c7d2fe,#818cf8)}.cat-tourism{background:linear-gradient(135deg,#a5f3fc,#0ea5e9)}
.cat-health{background:linear-gradient(135deg,#bbf7d0,#34d399)}.cat-real-estate{background:linear-gradient(135deg,#fde68a,#f59e0b)}
.cat-jobs{background:linear-gradient(135deg,#ddd6fe,#a78bfa)}.cat-education{background:linear-gradient(135deg,#bfdbfe,#60a5fa)}
.cat-transport{background:linear-gradient(135deg,#e5e7eb,#9ca3af)}.cat-farm{background:linear-gradient(135deg,#d9f99d,#65a30d)}.cat-other{background:linear-gradient(135deg,#e9d5ff,#c084fc)}
.cat-tile.cat-food,.cat-tile[class*="cat-"]{background:#fff}
.cat-tile::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;border-radius:0 0 var(--radius) var(--radius);background:linear-gradient(90deg,var(--leaf),var(--sea))}

/* two columns */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:28px}.two-col.wide-left{grid-template-columns:2fr 1fr}
@media (max-width:860px){.two-col,.two-col.wide-left{grid-template-columns:1fr}}
.thread-list{list-style:none;padding:0;margin:0}
.thread-list li{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:8px}
.event-mini{list-style:none;padding:0;margin:0 0 16px}
.event-mini li{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.datebox{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:54px;height:58px;border-radius:12px;background:linear-gradient(135deg,var(--green),#0e7490);color:#fff;line-height:1.05}
.datebox span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.datebox b{font-size:1.5rem}
.datebox.lg{min-width:76px;height:84px}.datebox.lg b{font-size:2rem}.datebox small{font-size:.7rem;opacity:.85}
.chat-teaser{display:flex;flex-direction:column;gap:10px;background:linear-gradient(135deg,#ecfdf5,#e0f2fe);border-radius:var(--radius);padding:16px;border:1px solid var(--line)}
.chip-row{display:flex;flex-wrap:wrap;gap:6px}
.chip{padding:5px 11px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:.85rem;font-weight:500}
.chip.light{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.35);color:#fff}

/* discover */
.discover-row{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
@media (max-width:860px){.discover-row{grid-template-columns:repeat(2,1fr)}}
.disc-tile{border-radius:var(--radius);padding:18px;color:#fff;min-height:150px;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none!important;position:relative;overflow:hidden;box-shadow:var(--shadow);transition:transform .15s}
.disc-tile:hover{transform:translateY(-3px)}
.disc-tile span{font-size:2.4rem;position:absolute;top:12px;right:14px}.disc-tile b{font-size:1.1rem}.disc-tile small{opacity:.9}
.t-apo{background:linear-gradient(160deg,#0f766e,#064e3b)}.t-samal{background:linear-gradient(160deg,#38bdf8,#0369a1)}
.t-eagle{background:linear-gradient(160deg,#a16207,#422006)}.t-durian{background:linear-gradient(160deg,#a3e635,#4d7c0f)}
.t-kadayawan{background:linear-gradient(160deg,#f472b6,#c2410c)}.t-eden{background:linear-gradient(160deg,#4ade80,#166534)}
.t-park{background:linear-gradient(160deg,#86efac,#0f766e)}.t-tips{background:linear-gradient(160deg,#fbbf24,#b45309)}
.page-banner{background:linear-gradient(135deg,#0f7a4a,#0e7490);color:#fff;padding:36px 0 30px}
.page-banner a{color:#fde68a}.page-banner .searchbar{margin-bottom:0}
.discover-banner{background:linear-gradient(135deg,#065f46,#0e7490 60%,#f59e0b 140%)}
.guide-item{display:grid;grid-template-columns:120px 1fr;gap:22px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:16px;box-shadow:var(--shadow);scroll-margin-top:80px}
.guide-art{border-radius:16px;font-size:3.4rem;display:flex;align-items:center;justify-content:center;height:120px}
@media (max-width:600px){.guide-item{grid-template-columns:1fr}.guide-art{height:90px}}

/* directory */
.dir-layout{display:grid;grid-template-columns:230px 1fr;gap:24px}
.dir-cats{display:flex;flex-direction:column;gap:2px;position:sticky;top:80px;align-self:start}
.dir-cats a{padding:8px 12px;border-radius:10px;color:var(--ink);display:flex;justify-content:space-between;gap:6px}
.dir-cats a:hover{background:var(--mint);text-decoration:none}.dir-cats a.active{background:var(--green);color:#fff}
.dir-cats small{opacity:.7}
@media (max-width:860px){.dir-layout{grid-template-columns:1fr}.dir-cats{position:static;flex-direction:row;overflow-x:auto;padding-bottom:6px}.dir-cats a{white-space:nowrap;background:#fff;border:1px solid var(--line)}}
.empty{text-align:center;padding:30px}

/* listing */
.crumbs{font-size:.9rem;margin-bottom:10px;color:var(--muted)} .crumbs.light,.crumbs.light a{color:#d1fae5}
.listing-layout{display:grid;grid-template-columns:2fr 1fr;gap:22px;align-items:start}
@media (max-width:860px){.listing-layout{grid-template-columns:1fr}}
.listing-main{overflow:hidden}
.listing-hero{height:280px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.listing-hero img{width:100%;height:100%;object-fit:cover}
.badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.rating-line{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.desc{margin:10px 0 18px}
.actions-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.info-card p{margin:.5em 0} .info-card h3{margin-top:0}
.reviews{margin:22px 0}
.review{border-top:1px solid var(--line);padding:12px 0}
.review-form{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin-bottom:12px}
.review-form textarea{width:100%}
.star-input{display:inline-flex;flex-direction:row-reverse;gap:2px}
.star-input input{position:absolute;opacity:0;pointer-events:none}
.star-input label{font-size:2rem;color:#d1d5db;cursor:pointer;transition:color .1s}
.star-input input:checked~label,.star-input label:hover,.star-input label:hover~label{color:#f59e0b}
.star-input input:focus-visible+label{outline:2px solid var(--green);border-radius:4px}
details.report{display:inline-block;position:relative}
details.report summary{cursor:pointer;color:var(--muted);font-size:.85rem;list-style:none}
details.report summary::-webkit-details-marker{display:none}
.report-form{position:absolute;z-index:5;top:24px;left:0;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:10px;border-radius:12px;display:flex;gap:6px;width:min(360px,80vw)}
.report-form input{flex:1}

/* forms */
.form-card{padding:28px}.form-card.wide{max-width:none}
.narrow .form-card.wide{width:min(760px,92vw);margin-left:50%;transform:translateX(-50%)}
label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:.92rem;margin-bottom:14px}
label.check{flex-direction:row;align-items:center;font-weight:500}
input,select,textarea{font:inherit;padding:10px 12px;border:1px solid #cfdcd4;border-radius:10px;background:#fff;color:var(--ink);font-weight:400}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(15,122,74,.3);border-color:var(--green)}
fieldset{border:1px solid var(--line);border-radius:12px;padding:12px 14px 2px;margin:0 0 14px} legend{font-weight:600;font-size:.9rem;padding:0 6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media (max-width:600px){.grid2{grid-template-columns:1fr}}

/* forums */
.forum-row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--line)}
.forum-row:last-child{border-bottom:0}
.forum-icon{font-size:1.7rem;width:46px;height:46px;border-radius:12px;background:var(--mint);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.counts{display:flex;flex-direction:column;align-items:center;min-width:56px}.counts small{color:var(--muted);font-size:.72rem}
.last{width:200px;display:flex;flex-direction:column}
@media (max-width:700px){.hide-sm{display:none!important}}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.tabs{display:flex;gap:4px;background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px}
.tabs a{padding:6px 14px;border-radius:999px;color:var(--ink);font-size:.9rem}.tabs a.active{background:var(--green);color:#fff;text-decoration:none}
.post{padding:18px 20px;margin:14px 0}.post.op{border-left:4px solid var(--green)}
.post-author{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.post-body{margin-bottom:10px}
.thread-title{margin-bottom:4px}
.avatar{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#fff;background:var(--green);flex-shrink:0}
.avatar.sm{width:26px;height:26px;font-size:.8rem}.avatar.lg{width:80px;height:80px;font-size:2rem}
.profile-head{display:flex;gap:20px;padding:24px;align-items:flex-start;margin-bottom:20px}

/* chat */
.chat-wrap{display:grid;grid-template-columns:230px 1fr;gap:18px;padding-top:20px;padding-bottom:20px}
.chat-side h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 0 6px}
.chan-list{display:flex;flex-direction:column;gap:2px}
.chan-list a{padding:7px 12px;border-radius:10px;color:var(--ink);font-weight:500;display:flex;justify-content:space-between}
.chan-list a:hover{background:var(--mint);text-decoration:none}.chan-list a.active{background:var(--green);color:#fff}
.unread{background:var(--coral);color:#fff;border-radius:999px;font-size:.7rem;padding:1px 7px}
.online-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;max-height:40vh;overflow:auto}
.online-list li{display:flex;align-items:center;gap:8px;font-size:.9rem}
.online-list li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--leaf);box-shadow:0 0 0 3px #dcfce7}
.chat-main{display:flex;flex-direction:column;height:calc(100vh - 110px);min-height:480px;overflow:hidden}
.chat-head{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#ecfdf5,#fff)}
.conn{font-size:.75rem;padding:3px 9px;border-radius:999px;background:#fef3c7;color:#92400e}.conn.ok{background:#dcfce7;color:#14532d}.conn.err{background:#fee2e2;color:#991b1b}
.messages{flex:1;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:2px}
.msg{display:flex;gap:10px;padding:6px 8px;border-radius:10px;position:relative}
.msg:hover{background:#f8fafc}
.msg .meta{font-size:.82rem}.msg .meta b{margin-right:6px}.msg .body{white-space:pre-wrap;word-wrap:break-word}
.msg.cont{padding-top:0}.msg.cont .avatar{visibility:hidden;height:0}
.msg .tools{position:absolute;right:8px;top:4px;display:none;gap:8px;font-size:.78rem}
.msg:hover .tools{display:flex}
.msg.mine .body{color:var(--green-dd)}
.day-sep{text-align:center;font-size:.75rem;color:var(--muted);margin:10px 0}
.typing{min-height:20px;padding:0 18px}
.composer{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}
.composer input{flex:1;border-radius:999px;padding:11px 16px}
.composer.locked{align-items:center;flex-wrap:wrap;background:#f8fafc}
@media (max-width:760px){.chat-wrap{grid-template-columns:1fr}.chat-side{order:2}.chan-list{flex-direction:row;overflow-x:auto}.chan-list a{white-space:nowrap}.chat-main{height:70vh}}

/* events */
.event{display:flex;gap:18px;padding:18px;margin-bottom:14px;scroll-margin-top:80px}
.event h3{margin:0 0 4px}

/* admin table */
.table-wrap{overflow-x:auto;margin-bottom:20px}
table{width:100%;border-collapse:collapse;font-size:.9rem}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

/* footer */
.footer{background:var(--green-dd);color:#d1fae5;margin-top:40px;padding:36px 0 20px}
.footer a{color:#d1fae5;display:block;margin:4px 0}.footer .brand{color:#fff!important}.footer .brand small{color:#a7f3d0}
.footer h4{color:#fff;margin:0 0 8px}.footer .muted{color:#a7f3d0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:20px}
.footnote{margin-top:20px;font-size:.8rem;border-top:1px solid rgba(255,255,255,.15);padding-top:14px}
@media (max-width:700px){.footer-grid{grid-template-columns:1fr 1fr}}

@media (max-width:600px){.searchbar select{max-width:110px}.hero-ctas .btn{width:100%}.event{flex-direction:column}.profile-head{flex-direction:column}}
.cta-band{margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 22px;border-radius:var(--radius);background:linear-gradient(135deg,#fef3c7,#ecfdf5);border:1px solid var(--line)}
/* bot protection */
.hp{position:absolute!important;left:-10000px!important;top:auto;width:1px;height:1px;overflow:hidden}
.captcha-box{border:1px dashed #cfdcd4;border-radius:12px;padding:12px;margin-bottom:14px;background:#f8fbf9}
.captcha-label{display:block;font-weight:600;font-size:.92rem;margin-bottom:8px}
.captcha-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.captcha-img{border-radius:10px;border:1px solid var(--line);background:#ecfdf5;max-width:100%;height:auto}
.captcha-input{width:140px}
.right-link{text-align:right;margin:-6px 0 12px;font-size:.9rem}
.verify-banner{background:#fef3c7;border-bottom:1px solid #fcd34d;color:#78350f;font-size:.92rem}
.verify-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.badge.unclaimed{background:#e0f2fe;color:#075985;border:1px dashed #38bdf8}
.claim-box{background:#f0f9ff;border:1px solid #bae6fd;border-radius:12px;padding:10px 14px;margin:6px 0 14px;font-size:.93rem}
.footer a.inline-link{display:inline;margin:0;text-decoration:underline}
.assign-form{display:inline-flex;gap:4px;margin-right:6px}.assign-form input{padding:4px 8px}
.hours{display:flex;gap:6px;align-items:flex-start;margin:0 0 10px}.hours ul{list-style:none;margin:0;padding:0}.hours li{line-height:1.45}
.pager{display:flex;gap:12px;align-items:center;justify-content:center;margin:22px 0 4px}
/* ---------- Dating ---------- */
.dating-banner{background:linear-gradient(120deg,#be185d,#e11d48 45%,#f97316)}
.dating-nav{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.dating-nav a{color:#fff;text-decoration:none;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.14);font-weight:600;font-size:.93rem}
.dating-nav a.active,.dating-nav a:hover{background:#fff;color:#be185d}
.dating-landing .checklist,.rules-mini ul,ul.plain{list-style:none;padding:0;margin:10px 0}
.dating-landing .checklist li{margin:6px 0}
.row-btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rules-mini{background:#fff1f2;border:1px solid #fecdd3;border-radius:12px;padding:12px 14px;margin:6px 0 12px;font-size:.92rem}
.rules-mini li{margin:3px 0}.rules-mini li::before{content:"• ";color:#e11d48}
.dating-rules h3{margin-top:1.3em;color:#be185d}.dating-rules li{margin:4px 0}
.dating-filters{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.dating-filters label{flex-direction:row;align-items:center;gap:6px;margin:0}
.dating-filters input[type=number]{width:64px}.dating-filters input[name=area]{width:160px}
.dating-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.dating-card{overflow:hidden;display:flex;flex-direction:column}
.dating-card h3{margin:0 0 2px;font-size:1.08rem}.dating-card h3 a{color:inherit;text-decoration:none}
.dating-card-photo{display:block;aspect-ratio:4/5;background:#fde2e4}
.dphoto{width:100%;height:100%;object-fit:cover;display:block}
.dphoto-ph{width:100%;height:100%;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(135deg,#fecdd3,#fed7aa);color:#9f1239}
.dphoto-ph span{font-size:3rem;font-weight:800;opacity:.75}.dphoto-ph small{font-size:.75rem;opacity:.8}
.like-row{display:flex;gap:8px;margin-top:10px}.like-row form{flex:1}.like-row .btn{width:100%}
.btn-like{background:#e11d48}.btn-like:hover{background:#be123c}
.dating-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:14px}
.dating-gallery .dphoto{aspect-ratio:4/5;border-radius:12px;height:auto}
.dating-gallery .dphoto-ph{aspect-ratio:4/5;border-radius:12px}
.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{background:#fff1f2;color:#9f1239;border-radius:999px;padding:3px 10px;font-size:.85rem}
.safety-box h3{margin-top:0}.report-box{margin-top:10px}.report-box summary{cursor:pointer;color:#b91c1c;font-weight:600}
.my-photos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.my-photo{position:relative;border-radius:12px;overflow:hidden;background:#fde2e4;aspect-ratio:4/5}
.my-photo img{width:100%;height:100%;object-fit:cover}
.my-photo.status-pending img{filter:grayscale(.5) brightness(.9)}
.photo-status{position:absolute;left:6px;top:6px;background:#fff;font-size:.72rem}
.status-approved .photo-status{color:#166534}.status-pending .photo-status{color:#92400e}.status-rejected .photo-status{color:#991b1b}
.photo-actions{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;padding:5px 8px;background:rgba(255,255,255,.88)}
.upload-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.danger-zone{border:1px solid #fecaca}.danger-zone form{display:flex;gap:8px}
.match-list{overflow:hidden}
.match-row{display:flex;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.match-row:hover{background:#fff1f2}.match-row .grow{display:flex;flex-direction:column;min-width:0}
.match-avatar{width:52px;height:52px;border-radius:50%;overflow:hidden;flex:none;display:block}
.match-avatar .dphoto-ph{min-height:0}.match-avatar .dphoto-ph span{font-size:1.4rem}.match-avatar .dphoto-ph small{display:none}
.dchat{display:flex;flex-direction:column;min-height:520px;overflow:hidden}
.dchat-head{display:flex;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.dchat-note{background:#fff7ed;color:#9a3412;font-size:.85rem;padding:8px 16px}
.dchat-msgs{flex:1;overflow-y:auto;padding:16px;max-height:60vh;display:flex;flex-direction:column;gap:8px}
.dmsg{max-width:75%;display:flex;flex-direction:column}.dmsg.mine{align-self:flex-end;align-items:flex-end}
.dmsg .bubble{background:#f1f5f9;padding:8px 12px;border-radius:16px 16px 16px 4px;white-space:pre-wrap;word-break:break-word}
.dmsg.mine .bubble{background:#e11d48;color:#fff;border-radius:16px 16px 4px 16px}
.dmsg small{font-size:.7rem;margin-top:2px}
.dchat-error{margin:0 16px}
.dchat-form{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}.dchat-form input{flex:1}
.dating-tile{display:flex;align-items:center;gap:18px;padding:22px 26px;border-radius:18px;text-decoration:none;color:#fff;background:linear-gradient(120deg,#be185d,#e11d48 50%,#f97316);box-shadow:0 8px 24px rgba(225,29,72,.25)}
.dating-tile b{display:block;font-size:1.3rem}.dating-tile small{display:block;opacity:.92}
.dating-tile-icon{font-size:2.6rem}.dating-tile>span:nth-child(2){flex:1}
.dating-tile .btn{background:#fff;color:#be185d}
.mod-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:20px}
.mod-photo{padding:10px;display:flex;flex-direction:column;gap:8px}
.mod-photo img,.mod-photo .dphoto-ph{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:10px}
.admin-dating-link{display:block;margin:10px 0 18px;text-decoration:none;background:#fff1f2;border:1px solid #fecdd3;color:#9f1239}
.admin-actions{margin:14px 0}
@media (max-width:600px){.dating-tile{flex-direction:column;text-align:center}.dmsg{max-width:90%}}
.photo-req{border-radius:12px;padding:10px 12px;margin:8px 0 10px;display:flex;flex-direction:column;gap:3px;font-size:.9rem}
.photo-req-warn{background:#fff7ed;border:1px solid #fdba74;color:#7c2d12}.photo-req-wait{background:#e0f2fe;border:1px solid #7dd3fc;color:#0c4a6e}.photo-req-ok{background:#dcfce7;border:1px solid #86efac;color:#14532d}
.confirm-hide .row-btns{margin-top:6px}
.photo-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #fecdd3;background:#fff7f8;color:#be185d}
.photo-slot.required{border-color:#fb7185}.photo-slot .slot-num{font-size:1.4rem;font-weight:700;opacity:.6}.photo-slot small{font-size:.72rem}
.my-photos{grid-template-columns:repeat(4,1fr)}
@media (max-width:900px){.my-photos{grid-template-columns:repeat(2,1fr)}}
.stack{display:flex;flex-direction:column;gap:18px;min-width:0}

/* v4: dating message requests + badges */
.nbadge{display:inline-block;min-width:18px;padding:1px 6px;border-radius:999px;background:#e11d48;color:#fff;font-size:.72rem;font-weight:700;line-height:1.4;text-align:center;vertical-align:middle}
.dating-nav a.active .nbadge,.dating-nav a:hover .nbadge{background:#e11d48;color:#fff}
.request-card{display:flex;gap:16px;padding:16px;margin-bottom:14px;align-items:flex-start}
.request-photo{flex:0 0 96px;width:96px;height:96px;border-radius:12px;overflow:hidden;display:block}
.request-photo .dphoto{width:100%;height:100%;object-fit:cover}
.request-body{flex:1;min-width:0}.request-body h3{margin:0 0 4px}
.bubble-quote{background:#fdf2f8;border-left:4px solid #db2777;padding:10px 12px;border-radius:8px;margin:8px 0;white-space:pre-wrap;word-wrap:break-word}
.request-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.request-actions form{margin:0}
.intro-form{margin-top:14px;border-top:1px solid #eee;padding-top:12px}.intro-form textarea{width:100%;margin:6px 0}
.req-sent{background:#fdf2f8;border-radius:8px;padding:10px 12px;margin-top:10px}
.req-note{margin-bottom:12px}
.intro-link{display:inline-block;margin-top:6px;color:#be185d}
@media (max-width:600px){.request-card{flex-direction:column}.request-photo{width:100%;height:220px;flex-basis:auto}}

.decline-box{margin:6px 0}.decline-box summary,.report-box summary{cursor:pointer}
.decline-box .presets{border:0;padding:0;margin:6px 0;display:flex;flex-direction:column;gap:2px}
.decline-box textarea{width:100%}
.req-declined{background:#f3f4f6;border-left:4px solid #9ca3af}
.sent-list{padding:4px 0}.sent-row{display:flex;gap:10px;align-items:center;padding:10px 16px;border-bottom:1px solid #f1f1f1}.sent-row:last-child{border-bottom:0}
.sent-row .grow{flex:1;min-width:0}.decline-reason{display:block;color:#4b5563;margin-top:2px}
.status-pill{font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:999px}.status-pill.pending{background:#fdf2f8;color:#be185d}.status-pill.declined{background:#e5e7eb;color:#374151}
h2.mt{margin-top:28px}
@media (max-width:600px){.dating-gallery{grid-template-columns:repeat(2,1fr);gap:6px}.dating-gallery .dphoto:first-child{grid-column:1/-1}}
/* v4: listing photo gallery */
.gallery-main{position:relative;height:auto;aspect-ratio:3/2;max-height:560px;background:#111}
.gallery-main .gallery-img{width:100%;height:100%;object-fit:cover}
.gal-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.gal-nav:hover{background:rgba(0,0,0,.7)}.gal-prev{left:12px}.gal-next{right:12px}
.gal-count{position:absolute;right:12px;bottom:12px;background:rgba(0,0,0,.55);color:#fff;font-size:.82rem;padding:3px 10px;border-radius:999px}
.gallery-thumbs{display:flex;gap:8px;padding:10px 12px;overflow-x:auto;background:#f8fafc;scroll-snap-type:x mandatory}
.gal-thumb{flex:0 0 86px;height:64px;border-radius:8px;overflow:hidden;border:3px solid transparent;scroll-snap-align:start;opacity:.75}
.gal-thumb.active{border-color:var(--green,#0f7a4f);opacity:1}.gal-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.lphoto-manager{margin:10px 0 22px;padding-bottom:16px;border-bottom:1px solid #eee}
.lphoto-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.lphoto{position:relative;margin:0;border-radius:10px;overflow:hidden;background:#f1f5f9;border:2px solid transparent}
.lphoto.is-cover{border-color:var(--green,#0f7a4f)}
.lphoto img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.lphoto figcaption{display:flex;flex-wrap:wrap;gap:4px 10px;padding:6px 8px;font-size:.82rem}.lphoto figcaption form{margin:0}
.lphoto .linkbtn.danger{color:#b91c1c}
.cover-tag{position:absolute;top:6px;left:6px;background:var(--green,#0f7a4f);color:#fff;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px}
.lphoto-slot{aspect-ratio:4/3;border:2px dashed #cbd5e1;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:.8rem}
.lphoto-slot.required{border-color:#f59e0b;color:#b45309;background:#fffbeb}
.listing-photo-prompt{margin:10px 0}
@media (max-width:700px){.gal-thumb{flex-basis:70px;height:52px}.lphoto-grid{grid-template-columns:repeat(2,1fr)}}

/* ===== v6: IRC-style chat ===== */
.irc{--irc-bg:#fbfdfc;display:grid;grid-template-columns:210px minmax(0,1fr) 210px;gap:0;max-width:1400px;margin:14px auto;padding:0 14px;height:calc(100vh - 92px);min-height:520px;position:relative}
.irc-side{background:#fff;border:1px solid var(--line);padding:10px 12px;overflow-y:auto;display:flex;flex-direction:column}
.irc-chans{border-radius:var(--radius) 0 0 var(--radius);border-right:0}
.irc-users{border-radius:0 var(--radius) var(--radius) 0;border-left:0}
.irc-side h3{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:8px 0 6px}
.irc-side-head{display:flex;align-items:center;justify-content:space-between}
.irc-close{display:none;background:none;border:0;font-size:1.1rem;cursor:pointer;color:var(--muted)}
.irc .chan-list a{padding:5px 9px;border-radius:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;align-items:center}
.irc .chan-list .hash{color:var(--muted)}.irc .chan-list a.active .hash{color:#d1fae5}
.irc-online{margin-top:auto;padding-top:10px}
.irc-main{display:flex;flex-direction:column;min-width:0;background:var(--irc-bg);border:1px solid var(--line);overflow:hidden;position:relative}
.irc-topic{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#ecfdf5,#fff);font-size:.9rem}
.irc-topic-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.irc-chan{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--green-d)}.irc-topic-sep{color:var(--line);margin:0 4px}
.irc-toggle{display:none;background:#fff;border:1px solid var(--line);border-radius:8px;padding:4px 8px;cursor:pointer;font:inherit;font-size:.85rem;white-space:nowrap}
.irc-notice{background:#fef2f2;color:#7f1d1d;border-bottom:1px solid #fecaca;padding:10px 14px;font-weight:500;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.irc-notice[hidden]{display:none}
.irc-log{flex:1;overflow-y:auto;padding:8px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:.88rem;line-height:1.5;display:block}
.irc-log .line{display:block;padding:1px 4px;border-radius:4px;position:relative;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere}
.irc-log .line:hover{background:#eef6f1}
.irc-log .ts{color:#94a3b8;margin-right:6px}
.irc-log .br{color:#94a3b8}
.irc-log .star{color:#a855f7;margin-right:4px;font-weight:700}
.irc-log .text{margin-left:6px}
.irc-log .action .text,.irc-log .action .nick{color:#7c3aed;font-style:italic}
.irc-log .sys{color:#64748b}.irc-log .sys .text{margin-left:0}
.irc-log .sys.err .sysbody{color:#b91c1c}
.irc-log .mine .text{color:var(--green-dd)}
.irc-log .tools{position:absolute;right:4px;top:0;display:none;gap:8px;font-family:Inter,system-ui,sans-serif;font-size:.75rem;background:#fff;padding:0 6px;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.irc-log .line:hover .tools,.irc-log .line:focus-within .tools{display:flex}
.irc-log .day-sep{text-align:center;color:var(--muted);font-family:Inter,system-ui,sans-serif;font-size:.72rem;margin:8px 0;border-bottom:1px dashed var(--line);line-height:.1em}
.nick{background:none;border:0;padding:0;font:inherit;cursor:pointer;color:var(--green-d);font-weight:700;display:inline-flex;align-items:center;gap:2px}
.nick:hover{text-decoration:underline}.nick.is-me{color:#0e7490}
.nick .op{color:#dc2626;font-weight:800}
.gi{width:.95em;height:.95em;flex-shrink:0;margin-right:2px;vertical-align:-.1em;fill:currentColor}
.gi-m{color:#2563eb}.gi-f{color:#ec4899}.gi-n{color:#9ca3af}
.nicklist{list-style:none;margin:0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88rem}
.nicklist li{padding:2px 4px;border-radius:6px}.nicklist li:hover{background:var(--mint)}
.nicklist .nick{color:var(--ink);font-weight:500}.nicklist .nick.is-mod{font-weight:700}
.irc-input{display:flex;gap:8px;align-items:center;padding:8px 10px;border-top:1px solid var(--line);background:#fff;position:relative}
.irc-input input{flex:1;border-radius:8px;padding:9px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem}
.irc-me{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;color:var(--muted)}
.irc-rules{margin:4px 0 6px}
.irc .typing{min-height:18px;padding:0 12px;font-size:.78rem}
.emoji-btn{background:none;border:1px solid var(--line);border-radius:8px;font-size:1.1rem;line-height:1;padding:6px 7px;cursor:pointer}
.emoji-btn:hover{background:var(--mint)}
.emoji-panel{position:absolute;bottom:calc(100% + 6px);left:8px;width:330px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(16,35,26,.18);padding:8px;z-index:30}
.emoji-panel[hidden]{display:none}
.emoji-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:6px}
.etab{background:none;border:0;font-size:1.15rem;padding:4px 6px;border-radius:8px;cursor:pointer}.etab.on,.etab:hover{background:var(--mint)}
.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;max-height:210px;overflow-y:auto}
.emoji-cat{grid-column:1/-1;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:2px 0}
.emo{background:none;border:0;font-size:1.3rem;padding:3px;border-radius:6px;cursor:pointer;line-height:1.2}.emo:hover{background:var(--mint)}
.emoji-hint{margin-top:6px}
.nick-menu{position:fixed;z-index:60;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px rgba(16,35,26,.18);min-width:190px;padding:6px;display:flex;flex-direction:column}
.nick-menu[hidden]{display:none}
.nm-head{display:flex;align-items:center;gap:4px;padding:4px 8px 8px;border-bottom:1px solid var(--line);margin-bottom:4px;flex-wrap:wrap}
.nm-item{display:block;text-align:left;background:none;border:0;padding:7px 10px;border-radius:8px;font:inherit;font-size:.9rem;color:var(--ink);cursor:pointer;text-decoration:none!important}
.nm-item:hover,.nm-item:focus{background:var(--mint)}.nm-item.mod{color:#b91c1c}
.nm-sep{border-top:1px solid var(--line);margin:4px 0}
.badge.mod{background:#fee2e2;color:#991b1b}
.mod-dialog-wrap{position:fixed;inset:0;background:rgba(16,35,26,.35);display:flex;align-items:center;justify-content:center;z-index:70;padding:16px}
.mod-dialog-wrap[hidden]{display:none}
.mod-dialog{width:380px;max-width:100%;padding:18px}.mod-dialog label{display:block;margin:8px 0}
.mod-dialog .radio{display:flex;gap:8px;align-items:center;font-weight:500}
.mod-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.pm-list{list-style:none;margin:0;padding:0}
.pm-link{background:none;border:0;font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88rem;cursor:pointer;display:flex;align-items:center;gap:2px;width:100%;padding:3px 6px;border-radius:6px;text-align:left}
.pm-link:hover{background:var(--mint)}.pm-link .unread{margin-left:auto}
.pm-dock{position:fixed;right:14px;bottom:0;display:flex;flex-direction:row-reverse;align-items:flex-end;gap:10px;z-index:40;pointer-events:none}
.pm-win{pointer-events:auto;width:310px;height:400px;background:#fff;border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;box-shadow:0 -4px 24px rgba(16,35,26,.16);display:flex;flex-direction:column;overflow:hidden}
.pm-win.front{box-shadow:0 -4px 28px rgba(15,122,74,.35);border-color:#86efac}
.pm-win.min{height:auto}.pm-win.min .pm-log,.pm-win.min .pm-form,.pm-win.min .pm-err{display:none}
.pm-head{display:flex;align-items:center;gap:4px;background:var(--green);color:#fff;padding:6px 8px}
.pm-title{flex:1;display:flex;align-items:center;gap:4px;background:none;border:0;color:#fff;font:inherit;cursor:pointer;text-align:left;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.pm-head .gi-n{color:#d1fae5}.pm-head .gi-m{color:#bfdbfe}.pm-head .gi-f{color:#fbcfe8}
.pm-btn{background:rgba(255,255,255,.15);border:0;color:#fff;border-radius:6px;width:26px;height:24px;cursor:pointer}.pm-btn:hover{background:rgba(255,255,255,.3)}
.pm-log{flex:1;overflow-y:auto;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84rem;line-height:1.45}
.pm-line{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;position:relative;padding-right:16px}
.pm-line .ts{color:#94a3b8;margin-right:4px}.pm-nick{font-weight:700;color:var(--green-d);margin-right:6px;display:inline-flex;align-items:center}
.pm-line.mine .pm-nick{color:#0e7490}
.pm-report{position:absolute;right:0;top:0;opacity:.4}.pm-line:hover .pm-report{opacity:1}
.pm-err{color:#b91c1c;padding:4px 8px;background:#fef2f2}
.pm-form{display:flex;gap:6px;padding:6px;border-top:1px solid var(--line);position:relative}
.pm-form input{flex:1;min-width:0;border-radius:8px;padding:7px 10px;font-size:.88rem}
.pm-form .emoji-panel{left:0;width:300px}
.irc-scrim{display:none}
.gender-banner{background:#eff6ff;border-bottom:1px solid #bfdbfe;color:#1e3a8a;font-size:.92rem}
.gbtn-male{background:#2563eb}.gbtn-male:hover{background:#1d4ed8}.gbtn-female{background:#db2777}.gbtn-female:hover{background:#be185d}
.gender-field{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:10px 0;display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.gender-field legend{font-weight:600;font-size:.9rem;padding:0 4px}
.gender-field label.radio{flex-direction:row;align-items:center;gap:8px;margin:0;font-weight:500;font-size:.95rem;cursor:pointer;padding:6px 12px;border:1px solid var(--line);border-radius:999px}
.gender-field label.radio:has(input:checked){border-color:var(--green);background:#eef7f1}
.gender-field label.radio .gi{width:16px;height:16px}
.gender-field input[type=radio]{width:auto;padding:0;margin:0}
.admin-chat .room-edit{display:flex;gap:6px;align-items:center}.admin-chat .room-edit input[name=description]{flex:1;min-width:180px}
.admin-chat .sort-in{width:70px}.admin-chat .room-create{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.admin-chat .room-actions{white-space:nowrap}.admin-chat .del-room input{width:110px;padding:5px 8px}.nowrap{white-space:nowrap}
.admin-chat tr.archived td{background:#f8fafc}
@media (max-width:980px){.irc{grid-template-columns:180px minmax(0,1fr) 170px}}
@media (max-width:760px){
  .irc{grid-template-columns:1fr;margin:0;padding:0;height:calc(100vh - 64px);min-height:0}
  .irc-main{border-radius:0;border-left:0;border-right:0}
  .irc-toggle{display:inline-flex;gap:4px;align-items:center}
  .irc-close{display:block}
  .irc-side{position:fixed;top:64px;bottom:0;width:78%;max-width:300px;z-index:45;transition:transform .2s ease;border-radius:0;box-shadow:0 0 30px rgba(0,0,0,.2)}
  .irc-chans{left:0;transform:translateX(-105%)}.irc-users{right:0;transform:translateX(105%);border-left:1px solid var(--line)}
  .irc-side.open{transform:none}
  .irc-scrim{display:block;position:fixed;inset:64px 0 0 0;background:rgba(16,35,26,.3);z-index:44}.irc-scrim[hidden]{display:none}
  .irc-me,.irc-rules{display:none}
  .irc-topic{flex-wrap:nowrap}.irc-topic #topic-edit{display:none}
  .irc-log{font-size:.84rem;padding:6px 8px}
  .pm-dock{left:0;right:0;top:64px;bottom:0;display:block;pointer-events:none}
  .pm-win{position:absolute;inset:0;width:auto;height:auto;border-radius:0;display:none}
  .pm-win.front:not(.min),.pm-win:only-child:not(.min){display:flex}
  .pm-win.min{display:none}
}
.badge.bot{background:#ede9fe;color:#5b21b6}
.nick .botb{font-size:.62rem;background:#ede9fe;color:#5b21b6;border-radius:999px;padding:0 5px;margin-left:4px;font-weight:700;font-family:Inter,system-ui,sans-serif}
.nick .pts{font-size:.72rem;color:#b45309;margin-left:4px;font-weight:600}
.nick.is-bot{color:#6d28d9}
.trivia-panel{margin-top:14px;border-top:1px solid var(--line);padding-top:6px}
.trivia-panel ol{margin:0 0 6px;padding-left:20px;font-size:.85rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.trivia-boards{display:grid;grid-template-columns:1fr 1fr;gap:18px}@media (max-width:760px){.trivia-boards{grid-template-columns:1fr}}
.gdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;background:#9ca3af}.gdot.g-male{background:#2563eb}.gdot.g-female{background:#ec4899}
.trivia-pts{margin:4px 0;font-weight:500}
.trivia-import{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-top:12px}
/* ===== v7: friends ===== */
.friend-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.btn-friends{background:#dcfce7;color:var(--green-d);border:1px solid #86efac;cursor:default}
.btn-pending{background:#f1f5f9;color:var(--muted);border:1px solid var(--line);cursor:default}
.friend-count{margin:4px 0}
.friend-chips{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-wrap:wrap;gap:6px}
.friend-chips li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:4px 11px;font-size:.88rem;display:inline-flex;align-items:center;gap:4px}
.friend-tabs{margin:10px 0 16px;width:fit-content;max-width:100%;overflow-x:auto}
.friend-rows{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:10px}
.friend-row{display:flex;align-items:center;gap:14px;padding:12px 16px;flex-wrap:wrap}
.friend-who{display:flex;align-items:center;gap:10px;color:var(--ink);flex:1;min-width:180px}.friend-who:hover{text-decoration:none}
.friend-row-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.nick .fr{color:#d97706;font-size:.8em;margin-left:3px}
.friends-online{margin-bottom:6px}
.friends-online .nicklist li{display:flex;align-items:baseline;gap:4px;overflow:hidden;white-space:nowrap}
.friends-online .nicklist .ch{color:var(--muted);font-size:.72rem;overflow:hidden;text-overflow:ellipsis}
.irc .roster-filter{font-size:.75rem;display:flex;flex-direction:row;gap:6px;align-items:center;justify-content:flex-start;margin:0 0 6px;color:var(--muted);font-weight:500;cursor:pointer}
.irc .roster-filter input{width:auto;margin:0;padding:0;flex:0 0 auto}
.chat-toast{position:fixed;right:16px;bottom:16px;z-index:60;background:#0f172a;color:#fff;padding:10px 14px;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.25);font-size:.9rem;display:flex;gap:10px;align-items:center;max-width:min(92vw,380px)}
.chat-toast a,.chat-toast button{color:#86efac;font-weight:600}
.chat-toast[hidden]{display:none}
/* v9: trivia room filter */
.trivia-filter{display:inline-flex;margin:6px 0 16px}.trivia-rooms{margin:0 0 10px;padding-left:20px}

/* v10: bot lines (GameBot word scramble) keep their line breaks */
.irc-log .line.bot .text{white-space:pre-line}
