/* viewthread page CSS — lifted from docs/forum-theme/samples/viewthread.html
   (Direction C: glossy plastic). Shared chrome classes (.wrap/.paper/.bar/.box/
   .gap/.fnav/.status/.footer) live in forum.css and are NOT redefined here. */

.glossbar{display:flex; align-items:center; min-height:28px; box-sizing:border-box; padding:5px 12px;
     color:#fff; font-weight:bold; font-size:13px; border-bottom:1px solid var(--bar-edge);
     background:linear-gradient(to bottom, rgba(255,255,255,.40) 0%, rgba(255,255,255,.06) 48%,
               rgba(255,255,255,0) 49%, rgba(0,0,0,.04) 100%),
               linear-gradient(to bottom, var(--bar-top), var(--bar-bot));
     box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.thread-creditreq{display:inline-block; margin-left:10px; color:#9a5b00; font-size:12px; font-weight:normal}
.thread-creditreq b{color:#7a3300}

/* Office-style connected toolbar */
.tbar{display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap}
.bgrp{display:inline-flex; border:1px solid #6699cc; border-radius:3px; overflow:hidden;
      box-shadow:inset 0 1px 0 #fff, 0 1px 1px rgba(39,80,127,.12)}
.tbtn{display:inline-flex; align-items:center; gap:5px; height:24px; padding:0 11px; box-sizing:border-box;
      font-size:12px; color:#003366; text-decoration:none; white-space:nowrap; cursor:pointer;
      background:linear-gradient(to bottom,#fbfdff 0%,#eaf2fd 50%,#dceafd 100%);
      border-right:1px solid #9fc0e8}
.tbtn:last-child{border-right:0}
.tbtn:hover{background:linear-gradient(to bottom,#ffffff,#e8f1fe); text-decoration:none}
.tbtn:active,.tbtn.active{background:linear-gradient(to bottom,#cfe0f6,#aecbef); box-shadow:inset 0 1px 3px rgba(0,0,0,.14)}
.tbtn.sm{height:22px; padding:0 9px; font-size:11px}
.tbtn .ic{font-size:13px; line-height:1; margin-right:4px}
.tbtn.primary{font-weight:bold}
.pbtn{display:inline-flex; align-items:center; justify-content:center; gap:6px; height:26px; padding:0 18px; box-sizing:border-box;
      border:1px solid #3f6aa6; border-radius:3px; color:#fff; font-weight:bold; font-size:12px; text-decoration:none; cursor:pointer;
      background:linear-gradient(to bottom,#7BA0D0,#5C84BE); box-shadow:inset 0 1px 0 rgba(255,255,255,.4); text-shadow:0 1px 0 rgba(0,0,0,.15)}
.pbtn:hover{background:linear-gradient(to bottom,#86abd9,#5e8ac5); text-decoration:none}
.pbtn:disabled{opacity:.65; cursor:default}
.tbtn.cta{color:#fff; font-weight:bold; border-right-color:#3f6aa6;
      background:linear-gradient(to bottom,#7BA0D0,#5C84BE); text-shadow:0 1px 0 rgba(0,0,0,.15)}
.tbtn.cta:hover{background:linear-gradient(to bottom,#86abd9,#5e8ac5)}
.bgrp.cta-grp{border-color:#3f6aa6}

.toolbar{display:flex; align-items:center; padding:7px 10px; gap:8px; flex-wrap:wrap}
.toolbar .r{margin-left:auto}
.toolbar-actions{display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap}
.toolbar-share > .tbtn{height:26px; border:1px solid #3f6aa6; border-radius:3px}
.multi a, .multi span{display:inline-block; min-width:18px; text-align:center; padding:1px 5px;
     border:1px solid #cdd8ea; margin-right:3px; background:#fff; border-radius:2px; font-size:11px}
.multi .cur{background:#5C84BE; color:#fff; border-color:#4f78b3; font-weight:bold}
.multi .lbl{border:0; background:transparent; color:var(--muted); padding:0; margin-right:5px}

/* POLL */
.poll .glossbar{font-weight:bold; font-size:13px}
.poll .glossbar .r{margin-left:auto; font-weight:normal; font-size:11px} .poll .glossbar .r a{color:#fff}
.poll .body{padding:10px 14px 14px}
.poll .opt{display:grid; grid-template-columns:190px 1fr 130px; align-items:center; gap:12px; padding:5px 6px; border-radius:3px; font-size:12px}
.poll .opt:hover{background:#f6f9fd}
.poll .opt .lab{display:flex; align-items:center; gap:7px}
.poll .track{display:block; height:16px; background:#eef3fb; border:1px solid #d3deec; border-radius:3px; overflow:hidden}
.poll .fill{display:block; height:100%; box-shadow:inset 0 1px 0 rgba(255,255,255,.45)}
.poll .pct{font-size:11px; color:#333; text-align:right} .poll .pct b{color:#13386b}
.poll .srow{display:flex; align-items:center; gap:12px; margin-top:12px; padding-top:10px; border-top:1px solid var(--rule)}
.poll .srow .meta{color:var(--muted)}
.poll .voters{margin-top:10px; padding:8px 10px; background:#f6f9fd; border:1px solid var(--rule); border-radius:3px; font-size:11px}
.poll .poll-vote .ajax-error:empty{display:none}
.poll .vopt{display:flex; align-items:center; gap:8px; padding:6px 8px; border-radius:3px; font-size:12px; cursor:pointer}
.poll .vopt:hover{background:#f6f9fd}
.poll .vopt input{margin:0}
.poll .vopt .vlab{flex:1}
.poll .vfoot{margin-top:12px; padding-top:10px; border-top:1px solid var(--rule)}
.c1{background:linear-gradient(#9ecb6e,#6fae3e)} .c2{background:linear-gradient(#7bb6e8,#4f8fce)}
.c3{background:linear-gradient(#e9b35a,#d3922c)} .c4{background:linear-gradient(#c79be0,#9a63c4)} .c5{background:linear-gradient(#e88f8f,#cf5b5b)}

/* POST */
.post{display:grid; grid-template-columns:172px 1fr; border:1px solid var(--frame)}
.pfloor{grid-column:1 / -1; display:flex; align-items:center; gap:10px; padding:5px 12px;
        background:linear-gradient(var(--cat-top),var(--cat-bot)); border-bottom:1px solid var(--cat-edge);
        box-shadow:inset 0 1px 0 rgba(255,255,255,.5); font-size:12px}
.pfloor .fl{font-weight:bold} .pfloor .fl b{color:#c00}
.pfloor .subj{font-weight:bold; color:#13386b}
.pfloor .when{margin-left:auto; color:var(--muted); font-size:11px; text-align:right}
.post-ipline i{color:#5c84be}
.ip-raw{color:#13386b; font-weight:bold}
.author{padding:10px; border-right:1px solid var(--rule); font-size:11px; color:#333; background:#f6f9fd}
.author .name{font-size:13px; font-weight:bold; color:#13386b}
.author .name a{color:#13386b}
.author .title{color:#c00; font-weight:bold; margin:1px 0 4px}
.author .stars{color:#e0a300; letter-spacing:1px; font-size:12px}
.author .cs{display:inline-block; margin:2px 0; padding:0 5px; border:1px solid #b9d39a; background:#eef7e3; color:#4a7a2a; border-radius:2px; font-size:10px}
.author .av{margin:7px 0}
.author .av img{max-width:90px; border:1px solid var(--frame)}
.author .kv{line-height:1.8} .author .kv b{color:#13386b}

.content{padding:12px 14px; min-width:0; position:relative}
.karma-ind{position:absolute; top:10px; right:12px; font-size:11px; text-align:right}
.karma-ind .agree{color:#2e9b3f; font-weight:bold} .karma-ind .disagree{color:#c0392b; font-weight:bold}
.msg{font-size:14px; line-height:1.8; word-wrap:break-word; overflow-wrap:break-word} .msg p{margin:0 0 1em}
.msg blockquote{margin:14px 0; padding:10px 14px; background:#f8f9fa; border-left:4px solid #6c8cb5; border-radius:3px}
/* keep wide content inside the post column instead of overflowing the layout */
.msg img{max-width:100%; height:auto}
.msg table{max-width:100%}
/* code blocks ([code]) — a tidy box that scrolls sideways, never overflows */
.msg pre{max-width:100%; overflow-x:auto; margin:12px 0; padding:10px 12px;
     background:#f6f8fa; border:1px solid #d7dee8; border-radius:3px;
     font:12px/1.6 "Courier New",Consolas,Monaco,monospace; -webkit-overflow-scrolling:touch}
.msg pre code, .msg code.code-content{display:inline; white-space:pre; padding:0; background:none; border:0; font:inherit}
.msg code{font-family:"Courier New",Consolas,Monaco,monospace; font-size:12px;
     background:#f0f3f7; padding:1px 4px; border-radius:2px}
.sig{margin-top:16px; padding-top:8px; border-top:1px dashed #cdd8ea; color:var(--muted); font-size:11px}
.pfoot{grid-column:1 / -1; display:flex; align-items:center; gap:8px; flex-wrap:wrap;
       padding:6px 12px; border-top:1px solid var(--rule); background:#f6f9fd; font-size:11px}
.pfoot .r{margin-left:auto; display:flex; gap:8px; align-items:center; flex-wrap:wrap}
.rate{color:green; font-weight:bold; font-family:"Courier New",monospace}

/* floating post operations */
.vt-popover{position:absolute; z-index:1200; min-width:210px; padding:8px;
     border:1px solid #8aa8ce; border-radius:4px; background:#f8fbff;
     box-shadow:0 6px 18px rgba(26,55,96,.24), inset 0 1px 0 #fff; font-size:12px}
.vt-popover-title{margin:-8px -8px 8px; padding:6px 9px; color:#fff; font-weight:bold;
     background:linear-gradient(to bottom,#7BA0D0,#5C84BE); border-radius:3px 3px 0 0}
.vt-popover-row{display:flex; align-items:center; gap:7px}
.vt-popover select{height:26px; min-width:70px; border:1px solid #9fb7d6; border-radius:2px; background:#fff}
.vt-popover .tbtn{border:1px solid #9fc0e8; border-radius:3px}
.vt-popover-error{display:block; min-height:16px; margin-top:6px; color:#c00}
.vt-popover-error.ok{color:#178a2e}

.vt-modal{position:fixed; inset:0; z-index:1300; display:flex; align-items:center; justify-content:center; padding:18px}
.vt-modal-backdrop{position:absolute; inset:0; border:0; background:rgba(8,22,43,.42); cursor:default}
.vt-modal-dialog{position:relative; z-index:1; width:min(520px, calc(100vw - 28px)); overflow:hidden;
     border:1px solid #6e90bd; border-radius:5px; background:#fff; box-shadow:0 16px 38px rgba(0,0,0,.28)}
.vt-modal-head{display:flex; align-items:center; justify-content:space-between; padding:7px 10px;
     color:#fff; font-weight:bold; background:linear-gradient(to bottom,#7BA0D0,#5C84BE)}
.vt-modal-close{width:24px; height:22px; border:1px solid rgba(255,255,255,.55); border-radius:3px;
     color:#fff; background:rgba(0,0,0,.08); cursor:pointer; line-height:18px}
.vt-report-form{padding:12px}
.vt-report-form label{display:block; color:#13386b; font-weight:bold}
.vt-report-form textarea{display:block; width:100%; box-sizing:border-box; margin-top:6px; padding:7px 8px;
     border:1px solid #b9cbe6; border-radius:3px; font:13px/1.6 inherit; resize:vertical}
.vt-modal-error{min-height:18px; margin-top:7px; color:#c00; font-size:12px}
.vt-modal-actions{display:flex; justify-content:flex-end; gap:8px; margin-top:8px}
.vt-modal-actions .tbtn{border:1px solid #9fc0e8; border-radius:3px}

.tools{display:flex; justify-content:center; gap:10px; padding:8px; font-size:11px}

/* hidden helper (English/Chinese toggle, on-demand LLM blockquote) */
.hidden{display:none !important}

/* thread header: subject + digest + view/reply counts + prev/next nav */
.thead{display:flex; align-items:center; gap:10px; padding:6px 10px; flex-wrap:wrap; font-size:12px}
.thead .ttl{font-weight:bold; color:#13386b; font-size:13px}
.thead .digest{display:inline-block; margin-right:5px; padding:0 5px; border:1px solid #d3922c;
     background:#fbeecb; color:#a8650c; border-radius:2px; font-size:10px; font-weight:bold}
.thead .meta{margin-left:auto; color:var(--muted); font-weight:normal}
.thead .meta b{color:#13386b}
.thead .meta a{color:#13386b}

/* online/offline indicator on the author panel */
.author .ostat{margin-top:4px} .author .ostat .on{color:#2e9b3f} .author .ostat .off{color:var(--muted)}

/* LLM explain bar + response blockquote */
.llm-bar{margin:10px 0 4px}
.llm-bar .done{display:inline-flex; align-items:center; gap:5px; color:#6d5cf0; font-size:11px}

/* Gemini "spark" mark — inline SVG, gradient-filled via url(#gemini-grad). */
.ai-star{display:inline-flex; align-items:center; justify-content:center; line-height:0}
.ai-svg{display:block}

/* Gemini (AI) answer — a distinct violet gradient surface + spark mark so
   AI-generated content reads clearly apart from member-written posts. */
.llm-response{position:relative; margin:8px 0; padding:10px 14px; border-radius:6px;
  border:1px solid #d8d6f7; border-left:4px solid #6d5cf0;
  background:linear-gradient(120deg,#f5f3ff 0%,#eef4ff 55%,#f3f0ff 100%)}
.llm-response .lbl{display:inline-flex; align-items:center; gap:5px; font-size:11px; color:#4b3fc4; font-weight:bold}
.llm-response hr{border:0; border-top:1px solid #ddd9f3; margin:6px 0}
.llm-response .llm-body{font-size:13px; line-height:1.7} .llm-response .llm-body p{margin:0 0 .8em}
.llm-response .llm-body pre{overflow:auto}

/* recent rating records (评分记录) — collapsible glossy panel */
.ratebox{margin-top:14px; border:1px solid var(--cat-edge); border-radius:3px; overflow:hidden; font-size:11px}
.ratebox .ratesum{cursor:pointer; padding:5px 10px; color:var(--cat-text); font-weight:bold;
     background:linear-gradient(to bottom, var(--cat-top) 0%, #D2DDEB 50%, #E1E9F4 75%, var(--cat-bot) 100%);
     border-bottom:1px solid var(--cat-edge); box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.ratebox .ratesum .ic{color:#e0a300}
.ratebox .ratesum .tot{font-weight:bold}
.ratebox .ratesum .tot.pos{color:#178a2e} .ratebox .ratesum .tot.neg{color:#c0392b}
.ratebox .ratesum .cnt{color:var(--muted); font-weight:normal}
.ratebox .ratesum .tog{float:right; font-weight:normal; color:#2f5c97}
.ratebox .ratesum .tog:before{content:"▾ "}
.ratebox.open .ratesum{border-bottom-color:var(--cat-edge)}
.ratebox.open .ratesum .tog:before{content:"▴ "}
.ratebox .ratewrap{display:none; padding:6px 10px 8px; background:#fff}
.ratebox.open .ratewrap{display:block}
.ratetbl{width:100%; border-collapse:collapse}
.ratetbl th{text-align:left; color:var(--muted); font-weight:normal; padding:3px 10px 3px 0; border-bottom:1px solid #e3e3e3}
.ratetbl td{padding:3px 10px 3px 0; border-bottom:1px solid #f0f0f0}
.ratetbl tr:nth-child(even) td{background:#f8fafd}
.ratetbl td.sc{font-weight:bold} .ratetbl td.sc.pos{color:#178a2e} .ratetbl td.sc.neg{color:#c0392b}
.ratetbl td.tm{color:var(--muted)}

/* quick reply (快速回复主题) */
.qreply{padding:10px 12px 12px}
.qreply .qrow{display:flex; gap:8px; margin-bottom:8px; align-items:flex-start}
.qreply .qlab{width:40px; flex:0 0 40px; padding-top:4px; color:#13386b; font-size:12px}
.qreply .qsubj{flex:1; padding:3px 6px; border:1px solid #b9cbe6; border-radius:2px}
.qreply .qmsg{flex:1; padding:5px 7px; border:1px solid #b9cbe6; border-radius:2px;
     font:13px/1.6 inherit; resize:vertical}
.qreply .qopts{display:flex; gap:14px; flex-wrap:wrap; margin:2px 0 10px 48px; font-size:11px; color:#444}
.qreply .qfoot{margin-left:48px}

/* forum jump (论坛跳转) */
.fjump{display:flex; align-items:center; gap:8px; padding:7px 10px; font-size:12px}
.fjump .lbl{font-weight:bold; color:#13386b}
.fjump select{max-width:340px}
.thread-admin-row{justify-content:space-between; flex-wrap:wrap}
.thread-admin-row .jumpwrap,.thread-admin-row .modtools{display:inline-flex; align-items:center; gap:8px}
.thread-admin-row .modtools{margin-left:auto}

/* ATTACHMENTS — a titled section with a glossy header bar (附件) */
.attachlist{margin-top:14px; border:1px solid var(--cat-edge); border-radius:3px; overflow:hidden; font-size:12px}
.attachlist .attachhd{padding:5px 10px; font-weight:bold; color:var(--cat-text);
     background:linear-gradient(to bottom, var(--cat-top) 0%, #D2DDEB 50%, #E1E9F4 75%, var(--cat-bot) 100%);
     border-bottom:1px solid var(--cat-edge); box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.attachlist .attachhd:before{content:"\1F4CE"; margin-right:5px}
.attachlist .attachitem{padding:7px 12px; background:#fff}
.attachlist .attachitem + .attachitem{border-top:1px solid var(--rule)}
/* non-image: a tidy single-line download row, size/downloads muted */
.attachlist .attachrow{line-height:1.7; color:var(--muted)}
.attachlist .attachrow a{font-weight:bold; color:var(--link)}
/* the attach-type icons ship at 64px — render at 16px (clean 4x downscale) */
.attachlist .attachrow img.attachment-icon{width:16px; height:16px; vertical-align:-3px; margin-right:5px}
/* image: a capped thumbnail, click to open full */
.attachlist .attachimg{display:block; max-width:460px; max-height:360px; width:auto; height:auto;
     border:1px solid var(--frame); border-radius:2px; padding:2px; background:#fff; cursor:pointer}

/* 推荐给朋友 — social share popover */
.sharewrap{position:relative; display:inline-block}
.sharemenu{display:none; position:absolute; left:0; top:100%; z-index:50; margin-top:4px;
     min-width:150px; background:#fff; border:1px solid var(--frame); border-radius:4px;
     box-shadow:0 4px 14px rgba(0,0,0,.18); padding:4px 0; text-align:left}
.sharemenu.open{display:block}
.sharemenu a{display:block; padding:6px 14px; white-space:nowrap; text-decoration:none}
.sharemenu a:hover{background:#eef5fb}
.sharemenu a i{width:18px; text-align:center; margin-right:6px; color:#5a7a99}
