/* ============================================================
   方向 A — Eureka+ 品牌對齊・結果為主
   明體標題 + 圓體內文、銳利直角(0–2px)、細線框、金色重點、無 emoji。
   結構：頂部極簡單行 → 結果舞台(前3名填滿首屏) → 底部懸浮控制窗格。
   ============================================================ */
:root{
  /* Eureka+ tokens */
  --ink:#3F3F3F; --carbon:#1c1c1c; --white:#FFFFFF;
  --gold:#F5B400; --gold-web:#E7AD0F; --coral:#F26974; --blue:#92AFD7;
  --line:#E2E2E2; --surface:#efefef; --zebra:#F4F4F4;
  --tint-gold:#FCF2D9; --tint-pink:#FCE7E9; --tint-blue:#E7EEF8;
  --kicker-grey:#B8B8B8;
  --serif:"Noto Serif TC",serif;
  --round:"Huninn","Microsoft JhengHei",system-ui,sans-serif;
  --focus:#1f6feb;
  --r-card:2px; --r-ctl:2px;
  --topbar-h:46px; --dock-h:166px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:var(--round);color:var(--ink);background:var(--white);font-size:13px;line-height:1.6;-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer;color:inherit}

/* 品牌色線 */
.brandbar{height:3px;display:flex;position:sticky;top:0;z-index:42}
.brandbar i{flex:1}
.brandbar i:nth-child(1){background:var(--gold)}.brandbar i:nth-child(2){background:var(--coral)}
.brandbar i:nth-child(3){background:var(--blue)}.brandbar i:nth-child(4){background:var(--ink)}

.preview-note{background:var(--tint-gold);color:#7a5e10;padding:8px 16px;font-size:11px;line-height:1.5;border-bottom:1px solid var(--line)}

/* 頂部極簡單行：品牌名 + 模式切換 */
.topbar{height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--white);
  border-bottom:1px solid var(--line);position:sticky;top:3px;z-index:41}
.topbar .brand{font-family:var(--serif);font-weight:600;font-size:14px;color:var(--ink);white-space:nowrap;letter-spacing:.01em}
.topbar .spacer{flex:1}
.tabs{display:flex;gap:14px}
.tab{border:none;background:transparent;padding:4px 0;font-size:12px;font-weight:700;color:var(--kicker-grey);border-bottom:2px solid transparent;border-radius:0;letter-spacing:.02em}
.tab:hover{color:var(--ink)}
.tab.on{color:var(--ink);border-bottom-color:var(--gold)}

#browseBar{padding:8px 16px;border-bottom:1px solid var(--line);background:var(--white);position:sticky;top:calc(3px + var(--topbar-h));z-index:40}

/* 結果舞台 */
.stage{padding:0 16px;padding-bottom:calc(var(--dock-h) + 14px)}
.statusline{color:color-mix(in srgb,var(--ink) 60%,transparent);font-size:11.5px;padding:11px 0 9px;letter-spacing:.01em}
.statusline b{color:var(--ink);font-weight:700}

/* 前 3 名：填滿首屏可視高度 */
.fill{min-height:calc(100vh - 3px - var(--topbar-h) - 40px - var(--dock-h));display:flex;flex-direction:column}
.top3{flex:1;display:flex;flex-direction:column;gap:11px;min-height:330px}
.top3 .card{flex:1 1 0;min-height:120px}
.top3 .thumb{flex:1;min-height:0;height:auto}

.section-title{font-family:var(--serif);font-size:13px;font-weight:600;color:var(--ink);margin:22px 0 12px;display:flex;align-items:center;gap:9px}
.section-title::before{content:"";width:16px;height:2px;background:var(--gold);border-radius:0}
.section-title.more::before{background:var(--blue)}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:12px}

/* 卡片：只露 圖(純白底) + 插入；名稱／tag／說明移到放大預覽 */
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;display:flex;flex-direction:column;position:relative;transition:box-shadow .4s cubic-bezier(.16,1,.3,1),transform .4s cubic-bezier(.16,1,.3,1)}
.card:hover{box-shadow:0 8px 24px rgba(0,0,0,.10);transform:translateY(-1px)}
.thumb{background:var(--white);display:flex;align-items:center;justify-content:center;padding:12px;height:104px;cursor:zoom-in;position:relative}
.thumb img{max-width:100%;max-height:100%;object-fit:contain}
.thumb .ph{color:#cfcfcf;font-size:11px}
.rankbadge{position:absolute;top:8px;left:8px;width:21px;height:21px;border-radius:var(--r-ctl);background:var(--gold);color:var(--carbon);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;z-index:2;font-family:var(--round)}
.rankbadge.r2{background:var(--blue);color:#1c2a3f}.rankbadge.r3{background:var(--coral);color:#5a1419}
.cardact{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--line);flex:none}
.cardact button{flex:1;border:1px solid var(--line);background:var(--white);border-radius:var(--r-ctl);padding:6px 8px;font-size:11.5px;font-weight:700;color:var(--ink);white-space:nowrap;transition:.25s cubic-bezier(.16,1,.3,1)}
.cardact button:hover{border-color:var(--ink)}
.cardact button.copy{background:var(--ink);color:var(--white);border-color:var(--ink)}
.cardact button.copy:hover{background:var(--carbon)}
.cardact button i{display:none}
.cardact button .ct{display:inline}

.empty{padding:48px 16px;text-align:center;color:color-mix(in srgb,var(--ink) 55%,transparent)}
.empty h3{font-family:var(--serif);color:var(--ink);margin:0 0 8px;font-size:16px;font-weight:600}

.recentWrap{margin-top:26px}

/* 放大預覽才出現的中繼資料樣式 */
.tag-pill{background:var(--zebra);border:1px solid var(--line);border-radius:var(--r-ctl);padding:2px 8px;font-size:11px;white-space:nowrap}
.hits,.hit,.neg,.cdesc,.cmeta,.verify-tip{display:none}

/* ============ 底部懸浮控制窗格 ============ */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:45;background:rgba(255,255,255,.72);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border-top:1px solid rgba(226,226,226,.7);
  box-shadow:0 -6px 28px rgba(0,0,0,.07);padding:12px 16px}
.dock textarea#ctx{width:100%;height:48px;min-height:40px;max-height:120px;resize:none;padding:9px 11px;border:1px solid rgba(226,226,226,.85);
  border-radius:var(--r-ctl);font-family:inherit;font-size:13px;line-height:1.5;background:rgba(255,255,255,.5);color:var(--ink);transition:.2s}
.dock textarea#ctx::placeholder{color:#bdbdbd}
.dock textarea#ctx:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(245,180,0,.16)}

.dock-row{display:flex;align-items:center;gap:14px;margin-top:10px;flex-wrap:wrap}
.swatches{display:flex;gap:9px;align-items:center}
.sw{width:28px;height:28px;border-radius:var(--r-ctl);border:2px solid var(--white);box-shadow:0 0 0 1px var(--line);position:relative;transition:.2s cubic-bezier(.16,1,.3,1)}
.sw:hover{transform:translateY(-1px)}
.sw.on{box-shadow:0 0 0 2px var(--white),0 0 0 4px currentColor}
.sw[data-c="Y"]{background:var(--gold);color:var(--gold)}.sw[data-c="R"]{background:var(--coral);color:var(--coral)}
.sw[data-c="B"]{background:var(--blue);color:var(--blue)}.sw[data-c="G"]{background:var(--ink);color:var(--ink)}
.sw.custom{background:conic-gradient(from 90deg,#F5B400,#F26974,#92AFD7,#3F3F3F,#F5B400);color:#fff;font-size:13px;display:flex;align-items:center;justify-content:center;text-shadow:0 0 2px rgba(0,0,0,.4)}
.sw.custom input{opacity:0;position:absolute;inset:0;width:100%;height:100%;cursor:pointer}

/* 連體分段控制 — 銳利直角，作用色反白 */
.segs{display:flex}
.seg{min-width:34px;display:flex;align-items:center;justify-content:center;white-space:nowrap;border:1px solid var(--line);border-left-width:0;background:var(--white);padding:7px 9px;font-size:12px;color:var(--ink);font-weight:600;transition:.2s}
.seg:first-child{border-left-width:1px;border-radius:var(--r-ctl) 0 0 var(--r-ctl)}
.seg:last-child{border-radius:0 var(--r-ctl) var(--r-ctl) 0}
.seg i{width:16px;height:16px;display:block}
.seg:hover{background:var(--zebra)}
.seg.on{background:var(--ink);color:var(--white);border-color:var(--ink)}
.seg.on + .seg{border-left-color:var(--ink)}

.dock-go{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:11px}
.btn{border:none;border-radius:var(--r-ctl);font-size:12.5px;font-weight:800;letter-spacing:.02em;transition:.3s cubic-bezier(.16,1,.3,1)}
.btn.primary{background:var(--gold);color:var(--carbon);padding:9px 16px;display:flex;align-items:center;gap:7px}
.btn.primary i{width:16px;height:16px;display:block}
.btn.primary:hover{background:var(--ink);color:var(--gold)}
.btn.ghost{background:var(--white);border:1px solid var(--line);color:color-mix(in srgb,var(--ink) 65%,transparent);font-weight:600;padding:10px 14px}
.btn.ghost:hover{border-color:var(--ink);color:var(--ink)}
.iconbtn{width:34px;height:34px;border:1px solid var(--line);background:var(--white);border-radius:var(--r-ctl);display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--ink) 60%,transparent);transition:.2s}
.iconbtn:hover{border-color:var(--ink);color:var(--ink)}
.iconbtn i{width:16px;height:16px;display:block}
.sheet .row .btn{flex:1;justify-content:center;padding:11px}

/* 進階 disclosure */
.dock-adv{margin-top:6px;border-top:1px solid var(--line)}
.dock-adv > summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;padding:9px 2px 2px;font-size:11.5px;font-weight:700;color:color-mix(in srgb,var(--ink) 60%,transparent);letter-spacing:.04em}
.dock-adv > summary::-webkit-details-marker{display:none}
.dock-adv > summary::before{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .2s}
.dock-adv[open] > summary::before{transform:rotate(45deg)}
.dock-adv > summary:hover{color:var(--ink)}
.adv-body{padding:6px 0 4px;display:flex;flex-direction:column;gap:12px}
.adv-chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line);background:var(--white);border-radius:var(--r-ctl);padding:5px 10px;font-size:11.5px;color:color-mix(in srgb,var(--ink) 75%,transparent);transition:.2s}
.chip:hover{border-color:var(--ink);color:var(--ink)}
.chip.on{border-color:var(--gold);background:var(--tint-gold);color:#7a5e10;font-weight:700}
.adv-field{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.adv-lbl{font-size:11px;font-weight:700;color:color-mix(in srgb,var(--ink) 60%,transparent);letter-spacing:.04em;min-width:74px}
.sel{flex:1;min-width:120px;padding:8px 11px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--white);font-family:inherit;font-size:12.5px;color:var(--ink);
  appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%233F3F3F' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center}
#browseSearch{width:100%}

/* ============ 放大預覽 modal ============ */
.modal{position:fixed;inset:0;background:rgba(28,28,28,.62);display:none;align-items:center;justify-content:center;z-index:60;padding:18px}
.modal.on{display:flex}
.sheet{background:var(--white);border-radius:var(--r-card);max-width:520px;width:100%;max-height:92vh;overflow:auto;box-shadow:0 24px 64px rgba(0,0,0,.3)}
.sheet .big{background:var(--white);display:flex;align-items:center;justify-content:center;padding:30px;min-height:220px;border-bottom:1px solid var(--line)}
.sheet .big img{max-width:100%;max-height:46vh;object-fit:contain}
.sheet .info{padding:22px 24px 26px;display:flex;flex-direction:column;gap:12px}
.sheet .info h2{font-family:var(--serif);margin:0;font-size:21px;font-weight:600;line-height:1.6}
.sheet .sub{color:color-mix(in srgb,var(--ink) 55%,transparent);font-size:12px;margin-top:-4px;letter-spacing:.02em}
.desc{display:block;font-size:13px;color:var(--ink);line-height:1.7}
.kv{font-size:11.5px;color:color-mix(in srgb,var(--ink) 60%,transparent);display:flex;flex-wrap:wrap;gap:6px}
.sheet .swatches{margin-top:2px}
.sheet .row{display:flex;gap:10px;margin-top:4px}
.closex{position:fixed;top:16px;right:20px;font-size:22px;width:38px;height:38px;border-radius:var(--r-ctl);color:#fff;background:rgba(255,255,255,.14);border:none;z-index:65;display:flex;align-items:center;justify-content:center;line-height:1}
.closex:hover{background:rgba(255,255,255,.26)}
.navbtn{position:fixed;top:50%;transform:translateY(-50%);z-index:65;width:42px;height:42px;border-radius:var(--r-ctl);border:none;background:rgba(255,255,255,.95);color:var(--ink);font-size:24px;box-shadow:0 4px 14px rgba(0,0,0,.22)}
.navbtn.prev{left:14px}.navbtn.next{right:14px}

.toast{position:fixed;left:50%;bottom:calc(var(--dock-h) + 16px);transform:translateX(-50%) translateY(10px);background:var(--carbon);color:#fff;padding:11px 18px;border-radius:var(--r-ctl);font-size:12.5px;font-weight:600;opacity:0;transition:.3s cubic-bezier(.16,1,.3,1);z-index:70;pointer-events:none;max-width:90vw;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.toast b{color:var(--gold)}

a:focus-visible,button:focus-visible,select:focus-visible,textarea:focus-visible,.sw:focus-visible,.thumb[role=button]:focus-visible,.chip:focus-visible,.seg:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
