/* GAY1069 同志交友網 — 彩虹漸層卡片風（年輕、明亮、圓角）。類名沿用論壇版，前台程式不用改。 */
:root{
  --bg:#F6F4FF; --panel:#FFFFFF; --soft:#F3F0FF; --line:#ECE7FB; --line2:#F1EEFC;
  --text:#2A2340; --muted:#7C7596; --link:#6A3DE8; --link-hover:#E23C8B;
  --c1:#FF4D6D; --c2:#FF8A3D; --c3:#FFC93C; --c4:#2ECC8F; --c5:#3D8BFF; --c6:#8A4DFF;
  --rainbow:linear-gradient(90deg,var(--c1),var(--c2),var(--c3),var(--c4),var(--c5),var(--c6));
  --grad:linear-gradient(135deg,#FF4D9A 0%,#8A4DFF 55%,#3D8BFF 100%);
  --nav:#6A3DE8; --nav-dark:#5328C8; --accent:#FF4D9A; --ok:#1FAA72; --warn:#E29A1A; --danger:#E0335B;
  --radius:18px; --shadow:0 6px 24px rgba(106,61,232,.08);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:14px/1.75 "Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;
  background-image:radial-gradient(1200px 400px at 10% -10%,rgba(255,77,154,.12),transparent),radial-gradient(900px 400px at 100% 0,rgba(61,139,255,.12),transparent)}
a{color:var(--link);text-decoration:none}a:hover{color:var(--link-hover)}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.muted{color:var(--muted)}
.xs{font-size:12px}
/* 頂端小列：彩虹細線＋帳號 */
.toptb{background:#fff;font-size:12.5px;position:relative}
.toptb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--rainbow)}
.toptb .wrap{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:38px;flex-wrap:wrap;padding-bottom:3px}
.toptb a,.toptb button{margin-left:12px}
.toptb b{color:var(--text)}
.linkbtn{background:none;border:0;padding:0;color:var(--link);font:inherit;cursor:pointer}
.linkbtn:hover{color:var(--link-hover)}
/* 頁首 */
.hd{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:22px 0 16px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:12px;color:var(--text)}
.logo:hover{color:var(--text)}
.logo .mk{width:50px;height:50px;border-radius:16px;background:conic-gradient(from 200deg,var(--c1),var(--c2),var(--c3),var(--c4),var(--c5),var(--c6),var(--c1));box-shadow:0 6px 18px rgba(138,77,255,.35);position:relative}
.logo .mk::after{content:"";position:absolute;inset:13px;border-radius:50%;background:#fff;opacity:.92}
.logo b{display:block;font-size:28px;font-weight:900;letter-spacing:.02em;line-height:1.05;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.logo span span,.logo>span>span{font-size:13px;color:var(--muted);font-weight:500;letter-spacing:.2em}
.search{display:flex;background:#fff;border-radius:999px;box-shadow:var(--shadow);padding:4px;border:1px solid var(--line)}
.search input{border:0;background:transparent;padding:0 14px;height:36px;width:230px;font:inherit;min-height:auto;outline:none}
.search button{border:0;background:var(--grad);color:#fff;height:36px;padding:0 18px;border-radius:999px;font:inherit;font-weight:700;cursor:pointer}
/* 導覽：白色膠囊列，選中＝漸層膠囊 */
.nv{background:#fff;border-radius:999px;display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:6px;box-shadow:var(--shadow);border:1px solid var(--line)}
.nv a{color:var(--text);padding:0 16px;line-height:38px;font-size:14.5px;font-weight:600;white-space:nowrap;border-radius:999px}
.nv a:hover{background:var(--soft);color:var(--nav)}
.nv a.on{background:var(--grad);color:#fff}
.nv .sp{flex:1}
.nv a.post{background:linear-gradient(135deg,#FF4D6D,#FF8A3D);color:#fff}
.nv a.post:hover{filter:brightness(1.05)}
/* 麵包屑、公告 */
.pt{display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:12px 4px 2px;font-size:12.5px;color:var(--muted)}
.ann{background:#fff;border-radius:999px;padding:4px 14px;border:1px solid var(--line)}
.ann b{color:var(--accent)}
/* 卡片區塊 */
.bm{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);margin-top:16px;border:1px solid var(--line);overflow:hidden}
.bm_h{padding:14px 18px 6px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.bm_h h2,.bm_h h3{margin:0;font-size:16px;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bm_h h2::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--grad);flex-shrink:0}
.bm_c{padding:12px 18px 16px}
/* 首頁看板：卡片格 */
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;padding:8px 18px 18px}
.fcard{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;background:var(--soft);border:1px solid transparent;color:var(--text);transition:transform .15s,border-color .15s,box-shadow .15s}
.fcard:hover{transform:translateY(-2px);border-color:#D9CCFF;box-shadow:0 8px 20px rgba(106,61,232,.12);color:var(--text)}
.fcard h3{margin:0;font-size:15px;font-weight:800}
.fcard .desc{font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:2px}
.fcard .meta{font-size:12px;color:var(--muted);margin-top:6px;display:flex;gap:10px;flex-wrap:wrap}
.fcard .meta b{color:var(--nav)}
.fcard .lastline{font-size:12px;margin-top:4px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.ficon{display:inline-flex;flex-shrink:0;width:46px;height:46px;border-radius:14px;align-items:center;justify-content:center;font-weight:900;color:#fff;font-size:18px;background:var(--grad)}
.ficon.k0{background:linear-gradient(135deg,#FF4D6D,#FF8A3D)}.ficon.k1{background:linear-gradient(135deg,#FF8A3D,#FFC93C)}
.ficon.k2{background:linear-gradient(135deg,#2ECC8F,#3DC6FF)}.ficon.k3{background:linear-gradient(135deg,#3D8BFF,#8A4DFF)}
.ficon.k4{background:linear-gradient(135deg,#8A4DFF,#FF4D9A)}.ficon.k5{background:linear-gradient(135deg,#FF4D9A,#FF4D6D)}
.ficon.new{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--c4)}
/* 舊版看板表格（保留相容） */
table{border-collapse:collapse;width:100%}
.fl td{padding:12px 18px;border-top:1px solid var(--line2);vertical-align:middle}
/* 主題列表 */
.tl th{font-weight:600;color:var(--muted);text-align:left;padding:8px 12px;font-size:12px;background:var(--soft)}
.tl td{padding:12px;border-top:1px solid var(--line2);vertical-align:middle}
.tl .ic{width:34px;text-align:center;color:var(--c6);font-size:12px}
.tl .by{width:120px;font-size:12px;color:var(--muted);line-height:1.45}
.tl .cnt{width:84px;font-size:12px;color:var(--muted);line-height:1.45;text-align:center}
.tl .cnt b{color:var(--accent);font-size:14px}
.tl .lst{width:130px;font-size:12px;color:var(--muted);line-height:1.45}
.tl a.xst{font-size:15px;font-weight:600;color:var(--text)}
.tl a.xst:hover{color:var(--link-hover)}
.tl tbody tr{transition:background .12s}
.tl tbody tr:hover td{background:#FBF9FF}
.lbl{display:inline-block;font-size:11.5px;line-height:20px;padding:0 9px;border-radius:999px;margin-right:6px;vertical-align:1px;color:#fff;background:var(--nav);font-weight:600}
.lbl.pin{background:linear-gradient(135deg,#FF8A3D,#FF4D6D)}.lbl.dig{background:linear-gradient(135deg,#2ECC8F,#1FAA72)}
.lbl.adult{background:linear-gradient(135deg,#FF4D9A,#8A4DFF)}.lbl.pend{background:var(--warn)}.lbl.lock{background:#9A94B0}
.lbl.forum{background:var(--soft);color:var(--nav);border:1px solid #DED3FF}
/* 樓層 */
.post{display:flex;border-top:1px solid var(--line2)}
.pls{width:170px;flex-shrink:0;padding:18px 12px;text-align:center;background:linear-gradient(180deg,#FBF9FF,#fff)}
.avatar{width:72px;height:72px;border-radius:50%;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900;color:#fff;background:var(--grad);box-shadow:0 0 0 3px #fff,0 0 0 5px #E8DEFF}
.pls .nm{font-weight:800;color:var(--text);word-break:break-all}
.pls .lv{display:inline-block;margin-top:4px;font-size:11.5px;color:var(--nav);background:var(--soft);border-radius:999px;padding:0 10px}
.plc{flex:1;min-width:0;padding:14px 20px}
.pi{display:flex;justify-content:space-between;gap:8px;padding-bottom:8px;margin-bottom:10px;font-size:12px;color:var(--muted);flex-wrap:wrap;border-bottom:1px dashed var(--line)}
.pi b{color:var(--accent)}
.body{white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.9;min-height:60px}
.body a{word-break:break-all}
.extlink::after{content:" ↗";font-size:11px}
.pob{display:flex;gap:14px;justify-content:flex-end;margin-top:12px;font-size:12px}
.imgs{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.imgbox{position:relative;border-radius:14px;overflow:hidden;background:var(--soft);max-width:100%}
.imgbox img{display:block;max-width:100%;max-height:520px}
.imgbox.blur img{filter:blur(22px)}
.imgbox .cover{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(42,35,64,.35);color:#fff;font-weight:800;border:0;font:inherit;cursor:pointer;width:100%}
.imgbox .tag{position:absolute;left:8px;top:8px}
/* 首頁兩欄 */
.layout{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.layout .mn{flex:1 1 640px;min-width:0}
.layout .sd{flex:0 1 280px;min-width:240px}
.sd ul,.sd ol{margin:0;padding:0 0 0 18px}
.sd li{margin:5px 0;line-height:1.5}
.stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}
.stat span{background:var(--soft);border-radius:14px;padding:10px 14px;font-size:12.5px;color:var(--muted)}
.stat b{display:block;font-size:22px;font-weight:900;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
/* 表單、按鈕 */
.btn{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 18px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--text);font:inherit;font-weight:600;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:#CDBDFF;color:var(--nav)}
.btn.pn,.btn.primary{background:var(--grad);border:0;color:#fff}
.btn.pn:hover,.btn.primary:hover{filter:brightness(1.06);color:#fff}
.btn.hot{background:linear-gradient(135deg,#FF4D6D,#FF8A3D);border:0;color:#fff}
.btn.hot:hover{filter:brightness(1.06);color:#fff}
.btn.danger{color:var(--danger);border-color:#F6C3D0}
.btn.sm,.btn.small{height:30px;padding:0 12px;font-size:12.5px}
.btn:disabled{opacity:.6;cursor:wait}
form.f{display:flex;flex-direction:column;gap:12px}
form.f label{display:flex;flex-direction:column;gap:4px;font-size:13.5px;font-weight:600}
input,select,textarea{border:1px solid var(--line);border-radius:12px;padding:8px 12px;font:inherit;font-weight:400;background:#FCFBFF;color:var(--text);width:100%;min-height:40px}
textarea{min-height:170px;resize:vertical;line-height:1.75}
input:focus,select:focus,textarea:focus{border-color:#B9A2FF;background:#fff}
input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid rgba(138,77,255,.35);outline-offset:2px}
.err{color:var(--danger);font-weight:600}
.tip{background:#FFF7E8;border-radius:12px;padding:10px 14px;font-size:12.5px;color:#8A5A00}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.thumbs{display:flex;gap:10px;flex-wrap:wrap}
.thumbs .th{position:relative;width:96px;height:96px;border-radius:14px;overflow:hidden;background:var(--soft)}
.thumbs .th img{width:100%;height:100%;object-fit:cover}
.thumbs .th button{position:absolute;right:4px;top:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;cursor:pointer;line-height:24px;padding:0}
.pg{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px}
.empty{padding:34px;text-align:center;color:var(--muted)}
/* 後台用 */
.card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);padding:16px;margin-top:14px}
h1.title{font-size:20px;font-weight:900;margin:18px 0 4px}
table.t{font-size:13px}
table.t th{background:var(--soft);color:var(--muted);font-weight:600;text-align:left;padding:8px 10px}
table.t td{padding:10px;border-top:1px solid var(--line2);vertical-align:top}
/* 頁尾 */
.ft{margin-top:22px;padding:18px 4px 40px;font-size:12.5px;color:var(--muted);display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;position:relative}
.ft::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:3px;background:var(--rainbow);opacity:.6}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#2A2340;color:#fff;padding:10px 20px;border-radius:999px;z-index:50;font-size:13.5px;box-shadow:0 8px 24px rgba(0,0,0,.2)}
/* 年齡確認 */
.agegate{position:fixed;inset:0;background:rgba(42,35,64,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}
.agegate[hidden]{display:none}
.agebox{background:#fff;border-radius:24px;max-width:460px;width:100%;overflow:hidden;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.agebox .bh{background:var(--rainbow);color:#fff;font-weight:900;padding:14px;font-size:16px;letter-spacing:.06em;text-shadow:0 1px 2px rgba(0,0,0,.25)}
.agebox .bc{padding:24px}
.agebox .big{font-size:48px;font-weight:900;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.agebox .row{justify-content:center;margin-top:18px}
/* 手機 */
@media (max-width:760px){
  .tl .by,.tl .lst,.tl th.hide{display:none}
  .tl .cnt{width:58px}
  .search{width:100%}.search input{width:100%;flex:1}
  .post{flex-direction:column}
  .pls{width:auto;display:flex;align-items:center;gap:10px;text-align:left;padding:12px 16px}
  .avatar{width:40px;height:40px;font-size:17px;margin:0}
  .layout .sd{flex:1 1 100%}
  .nv{border-radius:18px}
  .nv a{padding:0 12px;font-size:13.5px}
  .fgrid{grid-template-columns:1fr}
  .fcard .lastline{max-width:none}
}
