/* twgongsi 資料頁（公司頁、搜尋、列表）
   顏色跟風格走：底色、字色取自風格（--ai-bg-rgb／--ai-text-rgb），品牌色用 --primary／--secondary → 換淺色、深色風格也搭得起來 */
:root{
  --tw-ink-rgb:var(--ai-text-rgb,33,37,41);
  --tw-base:rgb(var(--ai-bg-rgb,255,255,255));
  --tw-ink:rgb(var(--tw-ink-rgb));
  --tw-mute:color-mix(in srgb,var(--tw-ink) 58%,var(--tw-base));
  --tw-line:color-mix(in srgb,var(--tw-base) 88%,var(--tw-ink));
  --tw-alt:color-mix(in srgb,var(--tw-base) 96%,var(--tw-ink));
  --tw-pri:var(--primary,#405068);
  --tw-acc:var(--secondary,#E05018);
}
/* 區塊外框：系統每個區塊包一層 section，這套自己控制留白 */
section.genesis-section:has(.tw-x){padding-top:0!important;padding-bottom:0!important}
.genesis-section.block-component:has(.tw-x){margin-bottom:0!important}
.tw-x{color:var(--tw-ink)}
.tw-wrap{max-width:1080px;margin:0 auto;padding:28px 16px 56px}

/* 搜尋框 */
.tw-search{display:flex;gap:0;margin:0 0 28px;max-width:640px}
.tw-search input{flex:1;min-width:0;height:48px;padding:0 16px;font-size:1rem;border:1px solid var(--tw-line);border-right:0;border-radius:6px 0 0 6px;background:var(--tw-base);color:var(--tw-ink);outline:none}
.tw-search input:focus{border-color:var(--tw-pri)}
html body .tw-x .tw-search button:not(#_){height:48px;padding:0 26px;border:0;border-radius:0 6px 6px 0;background:var(--tw-pri);color:#fff;font-weight:600;font-size:1rem;cursor:pointer}
html body .tw-x .tw-search button:not(#_):hover{filter:brightness(1.1)}

/* 標頭 */
.tw-head{margin:0 0 22px}
.tw-kind{display:inline-block;font-size:.78rem;letter-spacing:.08em;color:var(--tw-acc);font-weight:700;margin-bottom:6px}
html body .tw-x .tw-head h2:not(#_){display:block!important;font-size:clamp(1.5rem,3.2vw,2.1rem);line-height:1.3;font-weight:700;margin:0 0 8px;color:var(--tw-ink);text-transform:none;letter-spacing:0;text-align:left}
html body .tw-x .tw-head h2:not(#_)::before,html body .tw-x .tw-head h2:not(#_)::after{display:none!important}
.tw-sub{margin:0;color:var(--tw-mute);font-size:.95rem}
.tw-sub b{color:var(--tw-ink);font-variant-numeric:tabular-nums;letter-spacing:.04em}

/* 事實表 */
.tw-facts{display:grid;grid-template-columns:1fr 1fr;margin:0 0 36px;border-top:1px solid var(--tw-line)}
.tw-facts>div{display:grid;grid-template-columns:8.5em 1fr;gap:12px;padding:13px 4px;border-bottom:1px solid var(--tw-line)}
.tw-facts>div:nth-child(odd){padding-right:24px}
.tw-facts dt{font-weight:400;color:var(--tw-mute);font-size:.92rem}
.tw-facts dd{margin:0;font-size:.98rem;word-break:break-word}
.tw-facts dd small{display:block;color:var(--tw-mute);font-size:.82rem;margin-top:2px}
.tw-no{font-variant-numeric:tabular-nums;letter-spacing:.05em;font-weight:600}
.tw-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:.85rem;font-weight:600}
.tw-badge.ok{background:color-mix(in srgb,#1f9d55 14%,var(--tw-base));color:#1f7a45}
.tw-badge.warn{background:color-mix(in srgb,#d97706 16%,var(--tw-base));color:#a35a00}
.tw-badge.bad{background:color-mix(in srgb,#dc2626 14%,var(--tw-base));color:#b42318}

/* 段落 */
.tw-sec{margin:0 0 36px}
html body .tw-x .tw-sec h3:not(#_){display:block!important;font-size:1.15rem;font-weight:700;margin:0 0 14px;padding-left:12px;border-left:4px solid var(--tw-acc);color:var(--tw-ink);text-transform:none;letter-spacing:0;line-height:1.4}
html body .tw-x .tw-sec h3:not(#_)::before,html body .tw-x .tw-sec h3:not(#_)::after{display:none!important}

/* 營業項目 */
html body .tw-x ul.tw-items:not(#_){display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px 18px;margin:0;padding:0}
html body .tw-x ul.tw-items:not(#_)>li{display:flex!important;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px dashed var(--tw-line);margin:0}
.tw-items code{flex:none;font-size:.78rem;color:var(--tw-mute);background:var(--tw-alt);padding:1px 6px;border-radius:4px;font-family:ui-monospace,Consolas,monospace}

/* 營業項目裡沒代碼的整段說明 */
html body .tw-x ul.tw-notes:not(#_){margin:16px 0 0;padding:14px 18px;background:var(--tw-alt);border-radius:8px}
html body .tw-x ul.tw-notes:not(#_)>li{display:block!important;margin:0;padding:4px 0;line-height:1.75;font-size:.95rem}

/* 董監事 */
.tw-tablewrap{overflow-x:auto}
.tw-table{width:100%;border-collapse:collapse;font-size:.95rem}
.tw-table th{font-weight:600;color:var(--tw-mute);font-size:.85rem;text-align:left;padding:8px 10px;border-bottom:2px solid var(--tw-line);background:transparent}
.tw-table td{padding:10px;border-bottom:1px solid var(--tw-line);vertical-align:top}
.tw-table td small{display:block;color:var(--tw-mute);font-size:.8rem}
.tw-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}

/* 公司列表（分公司、同行業、搜尋結果） */
html body .tw-x ul.tw-list:not(#_){display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin:0;padding:0}
html body .tw-x ul.tw-list:not(#_)>li{display:block!important;margin:0}
html body .tw-x ul.tw-list:not(#_)>li>a{display:block;padding:12px 14px;border:1px solid var(--tw-line);border-radius:8px;background:var(--tw-base);color:var(--tw-ink);text-decoration:none;transition:border-color .15s,box-shadow .15s}
html body .tw-x ul.tw-list:not(#_)>li>a:hover{border-color:var(--tw-pri);box-shadow:0 4px 14px rgba(0,0,0,.06)}
.tw-list b{display:block;font-weight:600;line-height:1.4}
.tw-list span{display:block;font-size:.82rem;color:var(--tw-mute);margin-top:3px}

.tw-count{color:var(--tw-mute);margin:0 0 14px}
.tw-msg{padding:18px;background:var(--tw-alt);border-radius:8px;margin:0}
.tw-src{font-size:.82rem;color:var(--tw-mute);line-height:1.8;margin:8px 0 0;padding-top:16px;border-top:1px solid var(--tw-line)}
.tw-src a{color:inherit;text-decoration:underline}

@media (max-width:760px){
  .tw-facts{grid-template-columns:1fr}
  .tw-facts>div:nth-child(odd){padding-right:4px}
  .tw-facts>div{grid-template-columns:7em 1fr}
  .tw-wrap{padding-top:18px}
}

/* ===== 11-13 第二批：首頁、清冊、行業、統計、名錄 ===== */
/* 首頁橫幅（主色底、白字、大搜尋框） */
.tw-hero{background:linear-gradient(135deg,var(--tw-pri),color-mix(in srgb,var(--tw-pri) 70%,#000));color:#fff;padding:64px 16px 72px}
.tw-hero-in{max-width:1080px;margin:0 auto}
html body .tw-x .tw-hero h1:not(#_){color:#fff;font-size:clamp(1.9rem,4.4vw,3rem);font-weight:800;line-height:1.2;margin:0 0 12px;letter-spacing:.02em;text-transform:none;display:block!important;text-align:left}
html body .tw-x .tw-hero h1:not(#_)::before,html body .tw-x .tw-hero h1:not(#_)::after{display:none!important}
.tw-hero p{color:rgba(255,255,255,.85);font-size:1.08rem;margin:0 0 28px;max-width:640px}
.tw-hero .tw-search{max-width:720px;margin:0}
.tw-hero .tw-search input{height:58px;font-size:1.1rem;border:0}
html body .tw-x .tw-hero .tw-search button:not(#_){height:58px;background:var(--tw-acc);font-size:1.1rem;padding:0 34px}
.tw-hero-hint{margin-top:14px;font-size:.9rem;color:rgba(255,255,255,.75)}
.tw-hero-hint a{color:#fff;text-decoration:underline;margin-right:10px}

/* 數字條 */
.tw-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;max-width:1080px;margin:-36px auto 0;background:var(--tw-base);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.08);position:relative}
.tw-stats>div{padding:20px 22px;border-right:1px solid var(--tw-line)}
.tw-stats>div:last-child{border-right:0}
.tw-stats b{display:block;font-size:1.65rem;font-weight:800;line-height:1.15;color:var(--tw-ink);font-variant-numeric:tabular-nums}
.tw-stats span{display:block;font-size:.85rem;color:var(--tw-mute);margin-top:4px}
.tw-stats em{font-style:normal;color:var(--tw-acc);font-weight:700}
.tw-asof{max-width:1080px;margin:10px auto 0;padding:0 16px;font-size:.8rem;color:var(--tw-mute);text-align:right}

/* 兩欄、卡片、標籤 */
.tw-cols{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.tw-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.tw-cards a{display:block;padding:18px;border:1px solid var(--tw-line);border-radius:10px;background:var(--tw-base);color:var(--tw-ink);text-decoration:none;transition:border-color .15s,transform .15s}
.tw-cards a:hover{border-color:var(--tw-pri);transform:translateY(-2px)}
.tw-cards b{display:block;font-size:1.05rem;margin-bottom:4px}
.tw-cards span{display:block;font-size:.85rem;color:var(--tw-mute);line-height:1.6}
.tw-cards i{font-style:normal;float:right;color:var(--tw-acc);font-weight:700;font-variant-numeric:tabular-nums}
.tw-chips{display:flex;flex-wrap:wrap;gap:8px}
.tw-chips a{display:inline-block;padding:7px 14px;border-radius:999px;background:var(--tw-alt);color:var(--tw-ink);text-decoration:none;font-size:.92rem;border:1px solid var(--tw-line)}
.tw-chips a:hover{border-color:var(--tw-pri);color:var(--tw-pri)}
.tw-chips a small{color:var(--tw-mute);margin-left:6px;font-variant-numeric:tabular-nums}
.tw-more{display:inline-block;margin-top:12px;font-weight:600;color:var(--tw-pri);text-decoration:none}
.tw-more:hover{text-decoration:underline}
.tw-lead{color:var(--tw-mute);margin:-4px 0 18px;line-height:1.75}

/* 清冊表格、月份切換 */
.tw-months{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px}
.tw-months a,.tw-months b{padding:6px 12px;border-radius:6px;font-size:.9rem;text-decoration:none;border:1px solid var(--tw-line);color:var(--tw-ink)}
.tw-months b{background:var(--tw-pri);border-color:var(--tw-pri);color:#fff}
.tw-table td a{color:var(--tw-ink);font-weight:600;text-decoration:none}
.tw-table td a:hover{color:var(--tw-pri);text-decoration:underline}
.tw-table td.muted{color:var(--tw-mute);font-size:.88rem}
.tw-table tr:hover td{background:var(--tw-alt)}

/* 分頁 */
.tw-pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:26px 0 0}
.tw-pager a,.tw-pager b,.tw-pager span{min-width:38px;padding:7px 11px;text-align:center;border-radius:6px;font-size:.92rem;text-decoration:none}
.tw-pager a{border:1px solid var(--tw-line);color:var(--tw-ink)}
.tw-pager a:hover{border-color:var(--tw-pri);color:var(--tw-pri)}
.tw-pager b{background:var(--tw-pri);color:#fff}
.tw-pager span{color:var(--tw-mute)}

/* 統計圖 */
.tw-chart{width:100%;height:360px}
.tw-bars{list-style:none;margin:0;padding:0}
html body .tw-x ul.tw-bars:not(#_)>li{display:grid!important;grid-template-columns:11em 1fr 5em;gap:10px;align-items:center;padding:5px 0;margin:0;font-size:.92rem}
.tw-bars .bar{height:12px;border-radius:6px;background:var(--tw-pri);min-width:2px}
.tw-bars .n{text-align:right;font-variant-numeric:tabular-nums;color:var(--tw-mute)}

/* 名錄分組跳轉 */
.tw-jump{display:flex;flex-wrap:wrap;gap:6px 14px;padding:14px 16px;background:var(--tw-alt);border-radius:8px;margin:0 0 28px;font-size:.92rem}
.tw-jump a{color:var(--tw-pri);text-decoration:none}
.tw-jump a:hover{text-decoration:underline}

/* 廣告格（本機只畫虛線框） */
.tw-ad{margin:8px 0 36px;padding:10px 0;border-top:1px solid var(--tw-line);border-bottom:1px solid var(--tw-line);text-align:center}
.tw-ad small{display:block;font-size:.72rem;color:var(--tw-mute);letter-spacing:.1em;margin-bottom:6px}
.tw-ad-preview ins{min-height:120px;border:2px dashed var(--tw-line);border-radius:6px}

@media (max-width:860px){
  .tw-stats{grid-template-columns:1fr 1fr;margin:-28px 16px 0}
  .tw-stats>div:nth-child(2){border-right:0}
  .tw-stats>div:nth-child(-n+2){border-bottom:1px solid var(--tw-line)}
  .tw-cols{grid-template-columns:1fr}
  html body .tw-x ul.tw-bars:not(#_)>li{grid-template-columns:8em 1fr 4em}
  .tw-hero{padding:44px 16px 60px}
  .tw-table .hide-sm{display:none}
}
/* 首頁兩欄裡的列表一欄一家 */
html body .tw-x ul.tw-list.tw-list-1:not(#_){grid-template-columns:1fr;gap:8px}
.tw-notes a{color:var(--tw-pri)}
/* 大類卡片：家數放名稱下面（放右邊會把長名稱擠斷） */
.tw-cards i{float:none;display:block;font-size:.88rem;margin-top:4px}

/* ===== 11-13 第三批：分析、名片、面板（老闆「版面超級簡陋 要更專業厲害」）===== */
/* 段落標題的圖示 */
html body .tw-x .tw-sec h3:not(#_){display:flex!important;align-items:center;gap:10px;border-left:0;padding-left:0}
html body .tw-x .tw-sec h3:not(#_) i{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:color-mix(in srgb,var(--tw-pri) 10%,var(--tw-base));color:var(--tw-pri);font-size:1.15rem;flex:none}
.tw-lead a{color:var(--tw-pri);font-weight:600}

/* 面板（分析區塊） */
.tw-panel{background:var(--tw-base);border:1px solid var(--tw-line);border-radius:14px;padding:26px 26px 22px;box-shadow:0 6px 24px rgba(15,23,42,.05)}
.tw-panel h4{font-size:.92rem;font-weight:700;color:var(--tw-mute);margin:0 0 6px;letter-spacing:.02em;text-transform:none}
.tw-grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;margin-top:18px}
.tw-chart-s{width:100%;height:240px}
.tw-note{font-size:.85rem;color:var(--tw-mute);margin:16px 0 0;display:flex;gap:6px;align-items:flex-start}
.tw-note i{font-size:1rem;margin-top:1px}

/* 重點數字卡 */
.tw-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}
.tw-kpis>div{background:linear-gradient(160deg,color-mix(in srgb,var(--tw-pri) 6%,var(--tw-base)),var(--tw-base));border:1px solid var(--tw-line);border-radius:12px;padding:16px 16px 14px;position:relative;overflow:hidden}
.tw-kpis i{font-size:1.35rem;color:var(--tw-acc);display:block;margin-bottom:6px}
.tw-kpis b{display:block;font-size:1.45rem;font-weight:800;line-height:1.2;color:var(--tw-ink);font-variant-numeric:tabular-nums;word-break:break-word}
.tw-kpis span{display:block;font-size:.82rem;color:var(--tw-mute);margin-top:4px;line-height:1.5}
em.up,em.down{font-style:normal;font-size:.78rem;font-weight:700;padding:1px 7px;border-radius:999px;vertical-align:middle;white-space:nowrap}
em.up{color:#1f7a45;background:color-mix(in srgb,#1f9d55 14%,var(--tw-base))}
em.down{color:#b42318;background:color-mix(in srgb,#dc2626 12%,var(--tw-base))}
.tw-kpis b em{font-size:.72rem;margin-left:4px}

/* 重點句 */
html body .tw-x ul.tw-insights:not(#_){margin:6px 0 0;padding:0}
html body .tw-x ul.tw-insights:not(#_)>li{display:flex!important;gap:10px;align-items:flex-start;padding:7px 0;margin:0;border-bottom:1px dashed var(--tw-line);line-height:1.7}
.tw-insights i{color:var(--tw-pri);font-size:1.1rem;margin-top:3px}

/* 公司名片 */
.tw-card-head{display:flex;gap:20px;align-items:center;background:var(--tw-base);border:1px solid var(--tw-line);border-radius:16px;padding:22px 24px;margin:0 0 30px;box-shadow:0 10px 30px rgba(15,23,42,.06);position:relative;overflow:hidden}
.tw-card-head::after{content:'';position:absolute;right:-40px;top:-40px;width:180px;height:180px;border-radius:50%;background:color-mix(in srgb,var(--tw-acc) 9%,transparent)}
.tw-avatar{flex:none;width:72px;height:72px;border-radius:18px;display:grid;place-items:center;font-size:2rem;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--tw-pri),color-mix(in srgb,var(--tw-pri) 55%,var(--tw-acc)))}
.tw-card-main{min-width:0;position:relative;z-index:1}
.tw-card-tags{display:flex;gap:8px;align-items:center;margin-bottom:6px}
.tw-card-tags .tw-kind{margin:0;padding:2px 10px;border-radius:999px;background:color-mix(in srgb,var(--tw-acc) 12%,var(--tw-base))}
.tw-card-name{font-size:clamp(1.25rem,2.6vw,1.6rem);font-weight:800;line-height:1.35;color:var(--tw-ink);margin-bottom:8px}
.tw-card-meta{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.9rem;color:var(--tw-mute)}
.tw-card-meta span{display:inline-flex;align-items:center;gap:5px}
.tw-card-meta i{color:var(--tw-pri)}
.tw-card-meta b{color:var(--tw-ink)}

/* 同業比較的分位條 */
.tw-big{font-size:1.6rem;font-weight:800;margin:2px 0 10px;color:var(--tw-ink);line-height:1.2}
.tw-big small{display:block;font-size:.85rem;font-weight:600;color:var(--tw-acc);margin-top:4px}
.tw-pbar-track{position:relative;height:10px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--tw-pri) 12%,var(--tw-base)),color-mix(in srgb,var(--tw-pri) 55%,var(--tw-base)))}
.tw-pbar-track span{position:absolute;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--tw-acc);border:3px solid var(--tw-base);box-shadow:0 2px 6px rgba(0,0,0,.2)}
.tw-pbar-lab{display:flex;justify-content:space-between;margin-top:6px;font-size:.75rem;color:var(--tw-mute)}

/* 首頁數據亮點 */
.tw-insight-band{background:linear-gradient(135deg,color-mix(in srgb,var(--tw-pri) 7%,var(--tw-base)),var(--tw-base));border:1px solid var(--tw-line);border-radius:16px;padding:24px}
.tw-insight-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:6px}
.tw-insight-cards a{display:block;background:var(--tw-base);border:1px solid var(--tw-line);border-radius:12px;padding:16px;text-decoration:none;color:var(--tw-ink);transition:transform .15s,box-shadow .15s}
.tw-insight-cards a:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(15,23,42,.08)}
.tw-insight-cards i{font-size:1.4rem;color:var(--tw-acc)}
.tw-insight-cards b{display:block;font-size:1.6rem;font-weight:800;margin:4px 0 2px;color:var(--tw-pri);font-variant-numeric:tabular-nums}
.tw-insight-cards span{font-size:.85rem;color:var(--tw-mute);line-height:1.5;display:block}
.tw-cards .tw-ci{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;background:color-mix(in srgb,var(--tw-pri) 10%,var(--tw-base));color:var(--tw-pri);font-size:1.3rem;margin-bottom:10px;float:none}

/* 報表：可展開的數字表 */
.tw-details{margin-top:12px}
.tw-details summary{cursor:pointer;color:var(--tw-pri);font-weight:600;font-size:.92rem}
.tw-doc p{line-height:1.9;margin:0 0 12px}
.tw-doc a{color:var(--tw-pri)}

@media (max-width:860px){
  .tw-kpis,.tw-insight-cards{grid-template-columns:1fr 1fr}
  .tw-grid2{grid-template-columns:1fr}
  .tw-card-head{flex-direction:column;align-items:flex-start;padding:18px}
  .tw-avatar{width:56px;height:56px;font-size:1.6rem}
  .tw-panel{padding:18px 16px}
}
/* 首頁主視覺有圖：圖鋪滿、左邊加深讓字和搜尋框清楚 */
.tw-hero.has-img{background:linear-gradient(90deg,color-mix(in srgb,var(--tw-pri) 92%,#000) 0%,color-mix(in srgb,var(--tw-pri) 70%,transparent) 45%,rgba(0,0,0,.05) 100%),var(--tw-hero-img) center/cover no-repeat;padding:92px 16px 104px}
@media (max-width:860px){.tw-hero.has-img{background:linear-gradient(180deg,color-mix(in srgb,var(--tw-pri) 88%,#000),color-mix(in srgb,var(--tw-pri) 78%,transparent)),var(--tw-hero-img) center/cover no-repeat;padding:56px 16px 72px}}
/* 公司位置地圖 */
.tw-map{border-radius:12px;overflow:hidden;border:1px solid var(--tw-line);background:var(--tw-alt);aspect-ratio:16/7;min-height:280px}
.tw-map iframe{width:100%;height:100%;border:0;display:block}

/* ===== 公司工具 ===== */
.tw-cards-lg a{padding:22px}
.tw-cards-lg b{font-size:1.12rem}
.tw-x input[type=text],.tw-x textarea,.tw-x select{width:100%;padding:10px 12px;border:1px solid var(--tw-line);border-radius:8px;background:var(--tw-base);color:var(--tw-ink);font-size:1rem;outline:none}
.tw-x input[type=text]:focus,.tw-x textarea:focus,.tw-x select:focus{border-color:var(--tw-pri);box-shadow:0 0 0 3px color-mix(in srgb,var(--tw-pri) 15%,transparent)}
.tw-x label{font-size:.9rem;color:var(--tw-mute)}
html body .tw-x .tw-panel button:not(#_){display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border:0;border-radius:8px;background:var(--tw-pri);color:#fff;font-weight:600;cursor:pointer}
html body .tw-x .tw-panel button.ghost:not(#_){background:transparent;color:var(--tw-pri);border:1px solid var(--tw-line)}

/* 發票計算機：左輸入、右仿真發票 */
.tw-inv{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:26px;align-items:start;margin-bottom:36px}
.inv-opts{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;margin:0 0 12px;font-size:.92rem}
.inv-opts label{display:inline-flex;gap:6px;align-items:center;color:var(--tw-ink);cursor:pointer}
.inv-items{display:grid;gap:8px;margin-bottom:12px}
.inv-item{display:grid;grid-template-columns:2.2fr 1fr 1.2fr 1.1fr;gap:6px;align-items:center}
.inv-item .a{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--tw-pri)}
.inv-total{display:none;margin-bottom:12px}
.tw-inv.mode-total .inv-total{display:block}
.tw-inv.mode-total .inv-items{opacity:.35;pointer-events:none}
.inv-buyer{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;margin-top:6px}
.inv-buyer label,.vat-row label{display:flex;flex-direction:column;gap:4px}
.inv-buyer .full,.vat-row .full{grid-column:1/-1}
.inv-msg{font-size:.88rem;margin:8px 0 0;min-height:1.2em}
.inv-msg.ok,.tw-check li.ok span,.tw-check li.win span{color:#1f7a45}
.inv-msg.bad,.tw-check li.bad span{color:#b42318}
.inv-msg a,.tw-check a{color:var(--tw-pri);font-weight:600}
.inv-summary{margin:12px 0;padding:12px 14px;background:color-mix(in srgb,var(--tw-pri) 7%,var(--tw-base));border-radius:8px;font-size:.95rem}
.inv-summary b{color:var(--tw-acc);font-size:1.1rem}
.inv-btns{display:flex;gap:10px}
/* 仿真發票紙（淺綠格線，像真的三聯式） */
.inv-paper{--inv:#2f8f6e;background:#fff;color:#1d3b31;border:2px solid var(--inv);border-radius:6px;padding:18px 18px 12px;box-shadow:0 12px 30px rgba(15,23,42,.08);font-size:.9rem}
.inv-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid var(--inv);padding-bottom:8px;margin-bottom:8px;color:var(--inv)}
.inv-head b{font-size:1.5rem;letter-spacing:.3em}
.inv-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin-bottom:10px}
.inv-meta span,.inv-meta b{color:#111;font-weight:600}
.inv-no{display:inline-flex;gap:2px;vertical-align:middle}
.inv-no b{display:inline-grid;place-items:center;width:20px;height:24px;border:1px solid var(--inv);font-variant-numeric:tabular-nums}
.inv-tbl{width:100%;border-collapse:collapse}
.inv-tbl th,.inv-tbl td{border:1px solid var(--inv);padding:6px 8px;height:30px}
.inv-tbl th{color:var(--inv);font-weight:600;background:#f3faf7;text-align:center;white-space:nowrap}
.inv-tbl td{color:#111}
.inv-tbl td.r{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;font-size:1rem}
.inv-tbl .chk{font-size:.82rem}
.inv-tbl .chk i{display:inline-block;min-width:1em;color:#c0392b;font-style:normal;font-weight:700}
.inv-tbl .stamp{color:#9fbfb2;font-size:.78rem;text-align:center;vertical-align:middle;width:22%}
.inv-cn{display:grid;grid-template-columns:auto repeat(9,1fr);border:1px solid var(--inv);border-top:0}
.inv-cn .lab{padding:6px 8px;color:var(--inv);font-weight:600;font-size:.85rem;border-right:1px solid var(--inv);background:#f3faf7;line-height:1.3}
.inv-cn span{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--inv);padding:4px 0}
.inv-cn span:last-child{border-right:0}
.inv-cn b{font-size:1.25rem;min-height:1.5em;color:#111}
.inv-cn small{color:var(--inv);font-size:.75rem}
.inv-cnfull{margin:8px 0 0;font-weight:700;color:#111}
.inv-foot{margin:8px 0 0;font-size:.75rem;color:#5f7d72}
@media print{
  body *{visibility:hidden!important}
  .inv-paper,.inv-paper *{visibility:visible!important}
  .inv-paper{position:absolute;left:0;top:0;width:100%;box-shadow:none}
}

/* 對獎 */
.lot-top{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-bottom:14px}
.lot-top label{display:flex;gap:8px;align-items:center;color:var(--tw-ink);font-weight:600}
.lot-top select{width:auto}
.lot-pub{font-size:.85rem;color:var(--tw-mute)}
.lot-nums{display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:12px}
.lot-nums>div{border:1px solid var(--tw-line);border-radius:10px;padding:14px;background:linear-gradient(160deg,color-mix(in srgb,var(--tw-acc) 6%,var(--tw-base)),var(--tw-base))}
.lot-nums small{display:block;color:var(--tw-mute);font-size:.82rem}
.lot-nums b{display:block;font-size:1.6rem;font-weight:800;letter-spacing:.08em;color:var(--tw-acc);font-variant-numeric:tabular-nums;line-height:1.35;margin:4px 0}
.lot-nums span{display:block;font-size:.78rem;color:var(--tw-mute);line-height:1.5}
html body .tw-x ul.tw-check:not(#_){margin:12px 0 0;padding:0}
html body .tw-x ul.tw-check:not(#_)>li{display:flex!important;gap:14px;align-items:center;padding:8px 10px;border-bottom:1px dashed var(--tw-line);margin:0}
.tw-check code{font-size:1.05rem;font-weight:700;letter-spacing:.06em;color:var(--tw-ink);background:none;min-width:6.5em}
.tw-check li.win{background:color-mix(in srgb,#1f9d55 10%,var(--tw-base));border-radius:6px}
.tw-check li.win span{font-weight:700}
.tw-check li.maybe span{color:#a35a00}
.tw-check li.no span,.tw-check li.hint{color:var(--tw-mute)}

/* 含稅、大寫、民國 */
.vat-row{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-bottom:6px}
.cna-out{margin-top:14px;padding:18px;border-radius:10px;background:color-mix(in srgb,var(--tw-pri) 7%,var(--tw-base));position:relative}
.cna-out p{font-size:1.5rem;font-weight:800;margin:0;color:var(--tw-ink);letter-spacing:.06em;min-height:1.4em;padding-right:80px}
.cna-out small{color:var(--tw-mute)}
html body .tw-x .cna-out button:not(#_){position:absolute;right:14px;top:14px;padding:6px 14px}
.cna-table{display:flex;flex-wrap:wrap;gap:8px}
.cna-table span{padding:6px 12px;border:1px solid var(--tw-line);border-radius:8px;background:var(--tw-base)}
.roc-note{margin:14px 0 0;font-size:1.1rem;font-weight:700;color:var(--tw-pri)}

@media (max-width:860px){
  .tw-inv{grid-template-columns:1fr}
  .lot-nums{grid-template-columns:1fr}
  .inv-meta{grid-template-columns:1fr}
  .inv-item{grid-template-columns:1.6fr .8fr 1fr .9fr}
}
/* 首頁：常用公司工具一排 */
.tw-tools-row{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.tw-tools-row a{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--tw-line);border-radius:12px;background:var(--tw-base);color:var(--tw-ink);text-decoration:none;transition:transform .15s,border-color .15s}
.tw-tools-row a:hover{transform:translateY(-2px);border-color:var(--tw-acc)}
.tw-tools-row i{font-size:1.5rem;color:var(--tw-acc)}
.tw-tools-row b{font-size:1rem}
.tw-tools-row span{font-size:.8rem;color:var(--tw-mute);line-height:1.5}
@media (max-width:860px){.tw-tools-row{grid-template-columns:1fr 1fr}}
/* 行業總覽：每個大類左邊一張圖 */
.tw-major{display:grid;grid-template-columns:200px 1fr;gap:22px;align-items:start}
.tw-major-img img{width:100%;height:auto;border-radius:12px;display:block;aspect-ratio:3/2;object-fit:cover}
@media (max-width:860px){.tw-major{grid-template-columns:1fr}.tw-major-img img{max-height:160px}}
/* 首頁行業大類卡片：上圖下字 */
html body .tw-x .tw-cards a.tw-mcard:not(#_){padding:0;overflow:hidden}
.tw-mcard img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .3s}
.tw-mcard:hover img{transform:scale(1.04)}
.tw-mcard-t{display:block;padding:12px 14px}
.tw-mcard-t b{display:block;font-size:1rem}
.tw-cards .tw-mcard-t i{display:block;float:none;margin-top:2px;font-size:.85rem}
/* 縣市地圖 */
.tw-twmap-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
html body .tw-x .tw-twmap-tabs button:not(#_){padding:6px 14px;border-radius:999px;border:1px solid var(--tw-line);background:var(--tw-base);color:var(--tw-ink);font-size:.88rem;cursor:pointer}
html body .tw-x .tw-twmap-tabs button.on:not(#_){background:var(--tw-pri);border-color:var(--tw-pri);color:#fff}
.tw-twmap-canvas{width:100%;height:640px}
.tw-bars li a{color:var(--tw-ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tw-bars li a:hover{color:var(--tw-pri)}
@media (max-width:860px){.tw-twmap-canvas{height:520px}}
.tw-medal{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;font-size:.85rem}
.tw-medal.m1{background:#d4a017}.tw-medal.m2{background:#9aa5b1}.tw-medal.m3{background:#b87333}

/* ===== 發票計算機 v2（11-13 老闆「最重要的是金額」）===== */
.tw-inv{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
html body .tw-x .tw-panel .inv-seg button:not(#_):not(#__){flex:1;padding:11px 10px;border-radius:0;background:var(--tw-base);color:var(--tw-ink);border:1px solid var(--tw-line);font-weight:600;font-size:.95rem;justify-content:center}
html body .tw-x .tw-panel .inv-seg button:not(#_):not(#__):first-of-type{border-radius:10px 0 0 10px}
html body .tw-x .tw-panel .inv-seg button:not(#_):not(#__):last-of-type{border-radius:0 10px 10px 0}
html body .tw-x .tw-panel .inv-seg button.on:not(#_):not(#__){background:var(--tw-pri);border-color:var(--tw-pri);color:#fff}
.inv-seg{display:flex;gap:0;margin:0 0 14px}
.inv-seg.sm{align-items:center;gap:0;margin:14px 0 18px}
.inv-seg.sm span{font-size:.88rem;color:var(--tw-mute);margin-right:10px;white-space:nowrap}
html body .tw-x .tw-panel .inv-seg.sm button:not(#_):not(#__){flex:none;padding:7px 14px;font-size:.88rem}
.inv-big{display:flex;align-items:center;gap:10px;border:2px solid var(--tw-pri);border-radius:14px;padding:6px 16px;background:var(--tw-base);box-shadow:0 6px 20px color-mix(in srgb,var(--tw-pri) 12%,transparent)}
.inv-big span{font-size:1.3rem;font-weight:800;color:var(--tw-pri)}
html body .tw-x .inv-big input:not(#_){border:0;box-shadow:none;font-size:2.2rem;font-weight:800;padding:8px 0;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--tw-ink);background:transparent}
.inv-res{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:10px}
.inv-res>div{position:relative;border:1px solid var(--tw-line);border-radius:12px;padding:12px 14px;background:var(--tw-base)}
.inv-res>div.hl{background:color-mix(in srgb,var(--tw-acc) 9%,var(--tw-base));border-color:color-mix(in srgb,var(--tw-acc) 40%,var(--tw-line))}
.inv-res small{display:block;font-size:.8rem;color:var(--tw-mute)}
.inv-res b{display:block;font-size:1.6rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--tw-ink);margin-top:2px;word-break:break-all}
.inv-res .hl b{color:var(--tw-acc);font-size:1.9rem}
html body .tw-x .tw-panel .inv-copy:not(#_):not(#__){position:absolute;right:8px;top:8px;padding:4px 7px;background:transparent;border:1px solid var(--tw-line);color:var(--tw-mute);border-radius:6px;font-size:.85rem}
html body .tw-x .tw-panel .inv-copy:not(#_):not(#__):hover{color:var(--tw-pri);border-color:var(--tw-pri)}
html body .tw-x .tw-panel .inv-copy.ok:not(#_):not(#__){background:#1f9d55;border-color:#1f9d55;color:#fff}
.inv-cnbig{display:grid;grid-template-columns:repeat(9,1fr);margin-top:14px;border:1px solid var(--tw-line);border-radius:10px;overflow:hidden}
.inv-cnbig span{display:flex;flex-direction:column;align-items:center;padding:8px 0 6px;border-right:1px solid var(--tw-line);background:var(--tw-base)}
.inv-cnbig span:last-child{border-right:0}
.inv-cnbig b{font-size:1.5rem;min-height:1.5em;line-height:1.5;color:var(--tw-ink)}
.inv-cnbig small{font-size:.75rem;color:var(--tw-mute)}
.inv-cnline{position:relative;margin-top:10px;padding:12px 48px 12px 14px;border-radius:10px;background:color-mix(in srgb,var(--tw-pri) 7%,var(--tw-base));font-weight:700;font-size:1.05rem;color:var(--tw-ink);min-height:48px}
.inv-cnline .inv-copy{top:10px!important}
details.inv-more{margin-top:14px;border-top:1px dashed var(--tw-line);padding-top:10px}
details.inv-more summary{cursor:pointer;color:var(--tw-pri);font-weight:600;font-size:.92rem}
details.inv-more .inv-items,details.inv-more .inv-buyer{margin-top:10px}
.inv-note{font-size:.82rem;color:var(--tw-mute);margin:8px 0 0}
.inv-btns{margin-top:16px}
@media (max-width:860px){
  .tw-inv{grid-template-columns:1fr}
  .inv-res{grid-template-columns:1fr 1fr}
  .inv-res .hl{grid-column:1/-1}
  html body .tw-x .inv-big input:not(#_){font-size:1.8rem}
  html body .tw-x .tw-panel .inv-seg button:not(#_):not(#__){font-size:.85rem;padding:10px 6px}
}
/* 右邊對照圖 */
.inv-guide{margin:0 0 8px;font-size:.9rem;font-weight:600;color:var(--tw-mute);display:flex;gap:6px;align-items:center}
.inv-side .inv-paper{font-size:.85rem}
.inv-res small{padding-right:30px}

/* ===== 發票計算機第三版：發票本身就能填（11-13 老闆「你根本不能在這改金額」「差異在直覺」）===== */
html body .tw-x .inv-paper input:not(#_):not(#__){border:0;border-radius:0;box-shadow:none;background:transparent;padding:4px 6px;font-size:.92rem;color:#111;width:100%;min-width:0}
html body .tw-x .inv-paper input:not(#_):not(#__):hover{background:#fbf8e8}
html body .tw-x .inv-paper input:not(#_):not(#__):focus{background:#fff6cc;outline:2px solid #e3b341;outline-offset:-2px}
html body .tw-x .inv-paper input.r:not(#_):not(#__){text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
html body .tw-x .inv-paper input.big:not(#_):not(#__){font-size:1.05rem;font-weight:800;background:#fffbea}
html body .tw-x .inv-paper input.big:not(#_):not(#__)::placeholder{color:#c59a2b;font-weight:600;font-size:.85rem}
.inv-tbl td{padding:0!important;height:32px}
.inv-tbl td.r{padding:0 2px!important}
.inv-tbl #inv-tax{padding:0 8px!important;font-weight:700}
.inv-meta label{display:flex;align-items:center;gap:4px;color:#1d3b31;margin:0;font-size:.9rem}
html body .tw-x .inv-meta input.pl:not(#_):not(#__){border-bottom:1px solid var(--inv)!important;flex:1;padding:2px 4px}
.inv-no{display:inline-flex;gap:2px;vertical-align:middle}
html body .tw-x .inv-no input.inv-nob:not(#_):not(#__){width:22px;height:26px;padding:0;text-align:center;border:1px solid var(--inv)!important;font-weight:700;font-variant-numeric:tabular-nums}
#inv-buyer-msg{display:block;font-style:normal;font-size:.78rem;margin-top:3px;min-height:1em}
#inv-buyer-msg.ok{color:#1f7a45}
#inv-buyer-msg.bad{color:#b42318}
#inv-buyer-msg a{color:var(--tw-pri);font-weight:600}
.inv-tbl [data-tax]{cursor:pointer;user-select:none}
.inv-tbl th[data-tax]:hover,.inv-tbl span[data-tax]:hover{color:#c0392b}
.inv-tbl [data-tax].on{color:#c0392b}
.inv-cn b{color:#1d4ed8;font-size:1.4rem}
.inv-note{display:flex;gap:6px;align-items:flex-start;margin:12px 0 0;font-size:.85rem;color:var(--tw-mute)}
@media (max-width:860px){
  .inv-paper{overflow-x:auto}
  .inv-tbl{min-width:520px}
  .inv-meta{grid-template-columns:1fr}
}
.inv-res small{padding-right:26px;font-size:.76rem;white-space:nowrap}
