/* ============================================================
   ZeroEgg 零鴨蛋 — 2026 品牌重設計（全站）
   橘主色 + 暖米背景 + 白色圓角卡 + 粉彩圓 icon（對齊 app 風格）
   元件一律以 .zg- 前綴，避免與 Bootstrap（.card/.btn/.kicker）衝突
   ============================================================ */
:root{
  --zg-brand:#f7941d;        /* 品牌橘（裝飾） */
  --zg-brand-ink:#a44e07;    /* 深橘：承載白字（WCAG AA 5.7:1） */
  --zg-egg:#ffcc00;
  --zg-leaf:#5a9e3c;
  --zg-bg:#fdf7ec;
  --zg-card:#ffffff;
  --zg-ink:#332916; --zg-ink2:#4c3d1f; --zg-muted:#8a795c;
  --zg-line:rgba(61,48,22,.12);
  --zg-radius:18px;
  --zg-shadow:0 14px 36px -22px rgba(120,80,20,.5);
  --zg-sans:"Noto Sans TC","PingFang TC","Source Han Sans TC",sans-serif;
  /* 分類粉彩 */
  --zg-c-purple:#ece4f7; --zg-c-purple-i:#7a52c0;
  --zg-c-blue:#d5edfb;   --zg-c-blue-i:#2f7fc0;
  --zg-c-green:#e2f1dc;  --zg-c-green-i:#4f8f34;
  --zg-c-orange:#ffe7c8; --zg-c-orange-i:#cf7810;
  --zg-c-pink:#ffe1e7;   --zg-c-pink-i:#cf5578;
  --zg-c-teal:#d5f0ea;   --zg-c-teal-i:#0f9b8e;
  /* 覆蓋 Bootstrap 主色 → 品牌橘 */
  --bs-primary:#f7941d; --bs-primary-rgb:247,148,29;
  --bs-link-color:#a44e07; --bs-link-color-rgb:164,78,7;
  --bs-link-hover-color:#8a4106;
}
body{background:var(--zg-bg);font-family:var(--zg-sans);color:var(--zg-ink2);}

/* ---------- Navbar（全站殼）---------- */
.navbar{background:rgba(253,247,236,.92)!important;backdrop-filter:blur(8px);border-bottom:1px solid var(--zg-line);box-shadow:none!important;position:sticky;top:0;z-index:1030;}
.navbar .navbar-brand{display:flex;align-items:center;gap:10px;padding-top:4px;padding-bottom:4px;}
.navbar .navbar-brand img{width:40px;height:40px;border-radius:11px;box-shadow:0 3px 9px -2px rgba(197,120,20,.5);}
.navbar .navbar-brand .zg-bt{display:flex;flex-direction:column;line-height:1.02;}
.navbar .navbar-brand .zg-bt b{font-weight:900;font-size:20px;color:var(--zg-ink);}
.navbar .navbar-brand .zg-bt small{font-size:9.5px;font-weight:700;letter-spacing:.16em;color:var(--zg-brand-ink);}
.navbar .nav-link{font-weight:700;color:var(--zg-ink2)!important;}
.navbar .nav-link:hover,.navbar .nav-link.active{color:var(--zg-brand-ink)!important;}
.navbar .dropdown-menu{border:1px solid var(--zg-line);box-shadow:var(--zg-shadow);border-radius:14px;}

/* ---------- Buttons（覆蓋 Bootstrap primary）---------- */
.btn-primary{--bs-btn-bg:var(--zg-brand-ink);--bs-btn-border-color:var(--zg-brand-ink);--bs-btn-hover-bg:#8a4106;--bs-btn-hover-border-color:#8a4106;--bs-btn-active-bg:#8a4106;--bs-btn-active-border-color:#8a4106;font-weight:800;border-radius:999px;}
.btn-outline-primary{--bs-btn-color:var(--zg-brand-ink);--bs-btn-border-color:var(--zg-brand-ink);--bs-btn-hover-bg:var(--zg-brand-ink);--bs-btn-hover-border-color:var(--zg-brand-ink);font-weight:800;border-radius:999px;}

/* ---------- Footer ---------- */
footer{background:#fff;border-top:1px solid var(--zg-line);color:var(--zg-muted);margin-top:0!important;}
footer h5,footer h6{color:var(--zg-ink);font-weight:900;}
footer .text-muted{color:var(--zg-muted)!important;}
footer a.text-muted:hover{color:var(--zg-brand-ink)!important;}

/* ============================================================
   通用元件（重設計頁面用）
   ============================================================ */
.zg-wrap{max-width:1120px;margin:0 auto;padding:0 22px;}
.zg-section{padding:36px 0;}
/* .zg-crumb、.zg-hero、.zg-section 等寫了 padding:… 0，會把 .zg-wrap 的左右留白蓋成 0；畫面比內容窄時（手機、平板）補回左右留白 */
@media(max-width:1164px){.zg-wrap.zg-wrap{padding-left:22px;padding-right:22px;}}
@media(max-width:520px){.zg-wrap.zg-wrap{padding-left:16px;padding-right:16px;}}

.zg-kicker{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:800;letter-spacing:.1em;color:#fff;background:var(--zg-brand-ink);padding:5px 13px;border-radius:999px;}
.zg-kicker::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--zg-egg);}
.zg-kicker.green{background:var(--zg-leaf);}

.zg-card{background:var(--zg-card);border-radius:var(--zg-radius);box-shadow:var(--zg-shadow);overflow:hidden;display:block;color:inherit;text-decoration:none;}

.zg-ibadge{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:22px;flex:none;line-height:1;}

.zg-btn{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:15px;padding:12px 22px;border-radius:999px;text-decoration:none;cursor:pointer;border:0;}
.zg-btn.primary{background:var(--zg-brand-ink);color:#fff;}
.zg-btn.primary:hover{background:#8a4106;color:#fff;}
.zg-btn.ghost{background:#fff;color:var(--zg-ink);box-shadow:inset 0 0 0 1.5px var(--zg-line);}
.zg-btn.sm{font-size:14px;padding:9px 16px;}

.zg-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;}
.zg-head h2{font-size:24px;font-weight:900;color:var(--zg-ink);margin:0;}
.zg-head .more{font-weight:800;font-size:14px;color:var(--zg-brand-ink);white-space:nowrap;text-decoration:none;}

.zg-crumb{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--zg-muted);font-weight:600;padding:16px 0 0;}
.zg-crumb a{color:var(--zg-muted);text-decoration:none;}
.zg-crumb a:hover{color:var(--zg-brand-ink);}
.zg-crumb .s{opacity:.5;}

/* 報頭 dateline（當份識別） */
.zg-dateline-bar{background:#fff;border-bottom:1px solid var(--zg-line);}
.zg-dateline{display:flex;align-items:center;gap:14px;height:42px;font-size:13px;color:var(--zg-muted);}
.zg-dateline .pub{font-weight:900;color:var(--zg-ink);letter-spacing:.06em;}
.zg-dateline b{color:var(--zg-brand-ink);font-weight:900;}
.zg-dateline .sep{width:1px;height:14px;background:rgba(61,48,22,.2);flex:none;}
.zg-dateline .live{margin-left:auto;display:inline-flex;align-items:center;gap:7px;color:var(--zg-brand-ink);font-weight:900;}
.zg-dateline .live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--zg-brand);box-shadow:0 0 0 3px rgba(247,148,29,.25);}
@media(max-width:620px){.zg-dateline .pub{display:none;}.zg-dateline{font-size:12px;gap:10px;}}

/* 文章卡 */
.zg-acards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.zg-acard{transition:transform .15s;}
.zg-acard:hover{transform:translateY(-3px);}
.zg-acard .thumb{height:118px;display:flex;align-items:flex-end;padding:12px;}
.zg-acard .thumb .tag{font-size:11.5px;font-weight:700;letter-spacing:.1em;color:#fff;background:rgba(0,0,0,.3);padding:3px 9px;border-radius:999px;}
.zg-acard .c{padding:14px 16px 18px;}
.zg-acard .cm{font-size:11.5px;font-weight:800;color:var(--zg-brand-ink);margin-bottom:5px;}
.zg-acard .c h3{font-size:17px;font-weight:900;color:var(--zg-ink);margin:0 0 6px;line-height:1.45;}
.zg-acard .c p{font-size:13px;color:var(--zg-muted);margin:0;line-height:1.7;}
@media(max-width:860px){.zg-acards{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.zg-acards{grid-template-columns:1fr;}}

/* 工具清單（分類頁內的工具） */
.zg-tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.zg-titem{display:flex;align-items:flex-start;gap:15px;padding:20px 22px;transition:transform .15s;text-decoration:none;color:inherit;}
.zg-titem:hover{transform:translateY(-3px);}
.zg-titem .zg-ibadge{width:50px;height:50px;font-size:20px;border-radius:14px;}
.zg-titem h3{font-size:17px;font-weight:900;color:var(--zg-ink);margin:0 0 4px;}
.zg-titem p{font-size:13px;color:var(--zg-muted);margin:0 0 8px;line-height:1.65;}
.zg-titem .go{font-weight:800;font-size:13px;color:var(--zg-brand-ink);}
@media(max-width:860px){.zg-tgrid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.zg-tgrid{grid-template-columns:1fr;}}

/* App 推薦卡（分類頁共用） */
.bw-promo-card{display:flex;flex-direction:row;align-items:stretch;background:linear-gradient(135deg,#FFF4D1 0%,#FFE89A 100%);border:2px solid #FFC83D;border-radius:24px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 12px 30px rgba(255,179,39,.25);transition:transform .2s,box-shadow .2s;}
.bw-promo-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(255,107,26,.3);color:inherit;}
.bw-promo-card__image{flex:0 0 220px;background:linear-gradient(135deg,#FFC83D 0%,#FF8A2D 100%);display:flex;align-items:center;justify-content:center;padding:24px;}
.bw-promo-card__image img{width:100%;max-width:160px;height:auto;border-radius:18px;box-shadow:0 12px 28px rgba(0,0,0,.2);transform:rotate(-4deg);}
.bw-promo-card__body{flex:1;padding:24px 28px;display:flex;flex-direction:column;justify-content:center;}
.bw-promo-card__tag{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:#FF6B1A;color:#fff;font-size:.78rem;font-weight:700;padding:4px 12px;border-radius:999px;margin-bottom:10px;}
.bw-promo-card__title{font-size:1.6rem;font-weight:900;color:#2A2A2A;margin:0 0 10px;}
.bw-promo-card__title span{font-size:.7rem;color:#FF6B1A;letter-spacing:2px;font-weight:700;vertical-align:middle;margin-left:6px;}
.bw-promo-card__desc{color:#555;font-size:.95rem;line-height:1.6;margin:0 0 16px;}
.bw-promo-card__cta{display:flex;flex-wrap:wrap;gap:8px;}
.bw-promo-card__btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;font-size:.88rem;font-weight:700;}
.bw-promo-card__btn--primary{background:linear-gradient(135deg,#FFC83D 0%,#FF6B1A 100%);color:#fff;box-shadow:0 4px 12px rgba(255,107,26,.35);}
.bw-promo-card__btn--ios{background:#000;color:#fff;}
.bw-promo-card__btn--android{background:rgba(0,0,0,.08);color:#6B6B6B;}
/* 手機、平板：改成左圖右文的精簡卡片，不要一進分類頁就整個畫面都是廣告 */
@media(max-width:768px){.bw-promo-card{border-radius:18px;box-shadow:0 8px 20px rgba(255,179,39,.2);}.bw-promo-card__image{flex:0 0 96px;padding:12px 10px;}.bw-promo-card__image img{max-width:64px;border-radius:10px;transform:rotate(-3deg);box-shadow:0 6px 14px rgba(0,0,0,.18);}.bw-promo-card__body{padding:14px 16px;}.bw-promo-card__tag{font-size:.7rem;padding:2px 9px;margin-bottom:6px;}.bw-promo-card__title{font-size:1.15rem;margin:0 0 4px;}.bw-promo-card__desc{font-size:.85rem;line-height:1.5;margin:0 0 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}.bw-promo-card__btn{padding:6px 12px;font-size:.8rem;}}
@media(max-width:520px){.bw-promo-card__title span,.bw-promo-card__btn--ios,.bw-promo-card__btn--android{display:none;}}
/* 手機：App 入口是底部分頁列的「App」，內容裡的 App 推薦卡不顯示（連同只包著推薦卡的外框留白） */
@media(max-width:767.98px){.bw-promo-card,.zg-wrap:has(> .bw-promo-card){display:none;}}

/* 分類頁標頭 */
.zg-cathead{display:flex;align-items:center;gap:18px;padding:24px 0 8px;}
.zg-cathead .zg-ibadge{width:66px;height:66px;font-size:28px;border-radius:20px;}
.zg-cathead h1{font-size:clamp(24px,4vw,34px);font-weight:900;color:var(--zg-ink);margin:0 0 4px;}
.zg-cathead p{color:var(--zg-muted);font-size:15px;margin:0;}

/* 工具卡（分類/清單） */
.zg-catgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.zg-cat{display:flex;align-items:center;gap:16px;padding:20px 22px;}
.zg-cat h3{font-size:19px;font-weight:900;color:var(--zg-ink);margin:0 0 4px;}
.zg-cat p{font-size:13px;color:var(--zg-muted);margin:0;line-height:1.6;}
.zg-cat .n{margin-top:6px;font-size:12px;font-weight:800;color:var(--zg-brand-ink);}
.zg-cat .arw{margin-left:auto;color:var(--zg-muted);font-size:22px;align-self:center;}
@media(max-width:860px){.zg-catgrid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.zg-catgrid{grid-template-columns:1fr;}}

/* ============================================================
   工具頁共用樣式層（只改 CSS，不動 HTML/JS）
   ============================================================ */
/* 表單控制項品牌化 */
.form-control,.form-select{border-radius:12px;border:1.5px solid var(--zg-line);background:#fffdf9;}
.form-control:focus,.form-select:focus{border-color:var(--zg-brand);box-shadow:0 0 0 .2rem rgba(247,148,29,.22);}
.form-control-lg{border-radius:14px;}
/* Bootstrap 麵包屑 → 品牌 */
.breadcrumb{--bs-breadcrumb-divider:"›";font-size:13px;font-weight:600;margin-bottom:0;}
/* 手機：麵包屑和下方內容留 16px（很多工具頁下方元素沒有上邊距，會貼在一起） */
@media(max-width:767.98px){.breadcrumb{margin-bottom:16px;}}
.breadcrumb-item a{color:var(--zg-muted);text-decoration:none;}
.breadcrumb-item a:hover{color:var(--zg-brand-ink);}
.breadcrumb-item.active{color:var(--zg-ink);}
/* 開關 / 勾選 → 品牌橘 */
.form-check-input:checked{background-color:var(--zg-brand);border-color:var(--zg-brand);}
.form-check-input:focus{border-color:var(--zg-brand);box-shadow:0 0 0 .2rem rgba(247,148,29,.22);}
/* 工具頁設定面板卡 */
.zg-panel{background:#fff;border:1px solid var(--zg-line);border-radius:16px;padding:18px 20px;box-shadow:var(--zg-shadow);}
/* 工具頁左對齊標頭 */
.zg-toolhead{display:flex;align-items:center;gap:15px;padding:6px 0 4px;}
.zg-toolhead .zg-ibadge{width:56px;height:56px;font-size:22px;}
.zg-toolhead h1{font-size:clamp(23px,3.6vw,32px);font-weight:900;color:var(--zg-ink);margin:0;}
.zg-toolhead p{color:var(--zg-muted);font-size:14px;margin:2px 0 0;}

/* 工具頁 Bootstrap 卡片微調（圓角統一，內圓角同步避免 header 錯位） */
.card{border-radius:16px;--bs-card-inner-border-radius:15px;}

/* 列印時隱藏「常見問題」FAQ（faq-section 共用元件，避免被印出）*/
@media print { .faq-section { display: none !important; } }

/* ============================================================
   手機版（2026-09 重新設計，說明見 docs/mobile-ux.md）
   ============================================================ */
/* 手機選單：白色面板、每列 44px 以上好點、常用分類直接點、App 入口、登入註冊並排 */
@media(max-width:991.98px){
  .navbar .navbar-collapse{margin:10px 0 6px;padding:4px 14px 14px;background:#fff;border:1px solid var(--zg-line);border-radius:18px;box-shadow:var(--zg-shadow);max-height:calc(100vh - 90px);overflow-y:auto;}
  .navbar .navbar-nav .nav-link{padding:13px 2px;font-size:16px;}
  .navbar .navbar-nav:not(.zg-nav-auth)>.nav-item+.nav-item:not(.zg-nav-cats-item){border-top:1px solid var(--zg-line);}
  .zg-nav-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 0 12px;}
  .zg-nav-cats a{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 2px;border-radius:14px;background:var(--zg-bg);font-size:13px;font-weight:800;color:var(--zg-ink2);text-decoration:none;}
  .zg-nav-cats .zg-ibadge{width:38px;height:38px;font-size:17px;border-radius:12px;}
  .zg-nav-app{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;text-align:left;}
  .zg-nav-app__icon{flex:none;width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#FFD86B,#FFB327);color:#FF6B1A;font-weight:900;font-size:19px;}
  .zg-nav-app small{display:block;font-size:12px;font-weight:600;color:var(--zg-muted);}
  .navbar .zg-nav-auth{flex-direction:row;gap:10px;padding-top:12px;border-top:1px solid var(--zg-line);}
  .zg-nav-auth .nav-item{flex:1;}
  .zg-nav-auth .nav-link,.zg-nav-auth .btn{display:flex;align-items:center;justify-content:center;min-height:46px;border-radius:999px;font-size:15px;}
  .navbar .zg-nav-auth .nav-link{padding:10px;box-shadow:inset 0 0 0 1.5px var(--zg-line);}
}
@media(min-width:992px){.zg-nav-cats-item{display:none;}}

/* 頁尾的 App 下載 */
.zg-foot-stores{display:flex;flex-direction:column;align-items:flex-start;gap:8px;}
.zg-foot-stores a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 14px;border-radius:12px;background:#2a2217;color:#fff;font-size:13.5px;font-weight:700;text-decoration:none;}
.zg-foot-stores a:hover{background:#000;color:#fff;}

/* 工具頁的手機提示（views/components/mobile-tool-tip.php）：列印要用電腦 → 傳到電腦；想在手機上練 → App */
.zg-mtip{background:#fff;border:1px solid var(--zg-line);border-radius:16px;box-shadow:var(--zg-shadow);margin:0 0 16px;overflow:hidden;}
.zg-mtip__row{display:flex;align-items:center;gap:12px;padding:12px 14px;}
.zg-mtip__row+.zg-mtip__row{border-top:1px solid var(--zg-line);}
.zg-mtip__icon{flex:none;width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--zg-c-blue);color:var(--zg-c-blue-i);font-size:16px;}
.zg-mtip__text{flex:1;min-width:0;line-height:1.45;}
.zg-mtip__text strong{display:block;font-size:14.5px;font-weight:900;color:var(--zg-ink);}
.zg-mtip__text span{display:block;font-size:12.5px;color:var(--zg-muted);}
.zg-mtip__btn{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:8px 14px;border-radius:999px;border:1.5px solid var(--zg-line);background:#fff;font-size:13.5px;font-weight:800;color:var(--zg-ink);white-space:nowrap;}
/* 手機底部分頁列（views/components/mobile-tabbar.php）：國語、數學、英文、App，每格 62px 高好點，避開 iPhone 下方的橫條 */
.zg-tabbar{display:none;}
@media(max-width:767.98px){
  /* z-index 990：在頁面內容之上，但在注音輸入彈窗（1000）、Bootstrap 側邊欄與彈窗（1045～1055）、App 詳情（1090）之下 */
  .zg-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:990;display:flex;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--zg-line);box-shadow:0 -4px 16px rgba(60,40,10,.06);padding-bottom:env(safe-area-inset-bottom,0px);transition:transform .25s ease;}
  /* 分頁列 = 1px 上框線 + 62px 分頁；頁面底部多留 1px，頁尾不會被擋 */
  body.zg-has-tabbar{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px));}
  body.zg-typing .zg-tabbar{transform:translateY(110%);}
}
.zg-tab{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:62px;padding:6px 4px;color:var(--zg-muted);font-size:12px;font-weight:800;text-decoration:none;-webkit-tap-highlight-color:transparent;}
.zg-tab:hover{color:var(--zg-ink);}
.zg-tab__icon{display:flex;align-items:center;justify-content:center;width:56px;height:30px;border-radius:999px;font-size:17px;transition:background .15s;}
.zg-tab.is-active{color:var(--zg-brand-ink);}
.zg-tab.is-active .zg-tab__icon{background:var(--zg-c-orange);}
.zg-tab__app{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;background:linear-gradient(135deg,#FFD86B,#FFB327);color:#FF6B1A;font-size:14px;font-weight:900;box-shadow:0 2px 6px rgba(255,179,39,.45);}
.zg-tab__badge{position:absolute;top:5px;left:calc(50% + 10px);padding:1px 5px;border-radius:999px;background:#FF6B1A;color:#fff;font-size:9.5px;font-weight:800;line-height:1.4;}
@media print{.zg-tabbar{display:none!important;}body.zg-has-tabbar{padding-bottom:0!important;}}
