*{margin:0;padding:0;box-sizing:border-box}
/* 主色改為荷葉綠（--navy 變數沿用，值換成綠；LINE 分享鈕仍用亮綠 --green）*/
:root{--navy:#1E9E5A;--navy2:#178048;--navy-soft:#e9f6ee;--gold:#F3C220;--teal:#16AACA;--green:#06C755;--green2:#05b34c;--bg:#f1f7f3;--card:#fff;--border:#e2ebe5;--txt:#17251c;--txt2:#566259;--txt3:#93a29a;--danger:#ef4444;--radius:14px}
body{font-family:-apple-system,"Noto Sans TC","Microsoft JhengHei",sans-serif;background:var(--bg);color:var(--txt);min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}
header{background:linear-gradient(120deg,#178a4c,#22b866);padding:13px 16px;color:#fff;display:flex;align-items:center;gap:11px;position:sticky;top:0;z-index:10;box-shadow:0 2px 14px rgba(11,166,90,.28)}
header .logo{width:34px;height:34px;background:var(--gold);border-radius:9px;display:flex;align-items:center;justify-content:center;color:#0d5a30;font-weight:900;font-size:17px;box-shadow:0 2px 6px rgba(0,0,0,.18)}
header .htxt{display:flex;flex-direction:column;line-height:1.25}
header .htxt b{font-size:17px;font-weight:800;letter-spacing:.3px}
header .htxt small{font-size:10.5px;font-weight:500;opacity:.72;letter-spacing:.2px}
.container{max-width:520px;margin:0 auto;padding:14px 16px 104px}
input,textarea,select{width:100%;padding:11px 12px;border:1.5px solid var(--border);border-radius:10px;font-size:14px;font-family:inherit;color:var(--txt);background:#fff;outline:none;transition:border .15s,box-shadow .15s}
input:focus,textarea:focus,select:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,158,90,.1)}
textarea{resize:vertical;min-height:60px}
label{display:block;font-size:12px;font-weight:600;color:var(--txt2);margin-bottom:5px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border:none;border-radius:10px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .15s;width:100%}
.btn:active{transform:translateY(1px)}
.btn-green{background:var(--green);color:#fff;box-shadow:0 3px 10px rgba(6,199,85,.28)}.btn-green:active{background:var(--green2)}
.btn-navy{background:var(--navy);color:#fff;box-shadow:0 3px 10px rgba(30,158,90,.25)}.btn-navy:active{background:var(--navy2)}
.btn-outline{background:#fff;color:var(--navy);border:1.5px solid var(--border)}.btn-outline:active{background:var(--navy-soft)}
.btn-danger{background:#fff;color:var(--danger);border:1.5px solid #fecaca}.btn-danger:active{background:#fef2f2}
.btn-sm{padding:9px 14px;font-size:13px;width:auto}
.btn-xs{padding:5px 10px;font-size:12px;width:auto;border-radius:7px}
.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.section{margin-top:18px}
.section-title{font-size:13px;font-weight:800;color:var(--navy);margin-bottom:9px;letter-spacing:.3px;display:flex;align-items:center;gap:7px}
.section-title::before{content:'';width:3px;height:14px;background:var(--gold);border-radius:2px}

/* Card Editor */
.card-item{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:12px;overflow:hidden;box-shadow:0 1px 3px rgba(27,36,54,.06)}
.card-item.open{box-shadow:0 4px 16px rgba(30,158,90,.1)}
.card-item-header{display:flex;align-items:center;padding:13px 14px;gap:10px;cursor:pointer;user-select:none}
.card-item-header .num{width:27px;height:27px;background:var(--navy);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}
.card-item-header .name{flex:1;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-item-header .toggle{font-size:12px;color:var(--txt3);transition:transform .2s}
.card-item.open .toggle{transform:rotate(180deg)}
.card-item-body{display:none;padding:0 14px 14px;border-top:1px solid var(--border)}
.card-item.open .card-item-body{display:block}
.field{margin-top:10px}
.img-preview{width:100%;aspect-ratio:20/13;background:var(--navy-soft);border-radius:10px;overflow:hidden;margin-top:6px;display:flex;align-items:center;justify-content:center;color:var(--txt3);font-size:13px;border:1.5px dashed #cbd5e6}
.img-preview img{width:100%;height:100%;object-fit:cover}
.card-actions{display:flex;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.card-actions .btn-sm{flex:1}

/* Color presets */
.color-row{display:flex;gap:6px;align-items:center;margin-top:4px}
.color-dot{width:28px;height:28px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .15s;flex-shrink:0}
.color-dot:hover{transform:scale(1.1)}
.color-dot.active{border-color:var(--txt);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--txt)}
.color-custom{position:relative;overflow:hidden}
.color-custom input[type=color]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}

/* Button editor */
.btn-editor{background:#f7f9fc;border:1px solid var(--border);border-radius:12px;padding:11px;margin-top:8px}
.btn-editor .btn-row{display:flex;gap:6px;align-items:flex-start;margin-bottom:8px}
.btn-editor .btn-row:last-child{margin-bottom:0}
.btn-editor .btn-fields{flex:1;display:flex;flex-direction:column;gap:4px}
.btn-editor .btn-fields input,.btn-editor .btn-fields select{padding:7px 10px;font-size:13px}
.btn-editor .btn-color-mini{width:24px;height:24px;border-radius:50%;border:2px solid #ddd;cursor:pointer;flex-shrink:0;margin-top:7px;position:relative;overflow:hidden}
.btn-editor .btn-color-mini input[type=color]{position:absolute;inset:-4px;width:140%;height:140%;opacity:0;cursor:pointer}
.btn-editor .btn-remove{background:none;border:none;color:var(--danger);cursor:pointer;font-size:16px;padding:6px;flex-shrink:0;margin-top:4px}
.btn-editor .add-btn-row{text-align:center;margin-top:6px}

/* Name / alt */
.set-name{background:var(--card);border-radius:var(--radius);padding:14px;border:1px solid var(--border);box-shadow:0 1px 3px rgba(27,36,54,.06)}
.set-name input{font-size:16px;font-weight:700;border:none;padding:0;background:none}
.set-name input:focus{border:none;outline:none;box-shadow:none}
.set-name .hint{font-size:11px;color:var(--txt3);margin-top:4px}
.alt-box{background:var(--card);border-radius:var(--radius);padding:14px;border:1px solid var(--border);margin-top:12px;box-shadow:0 1px 3px rgba(27,36,54,.06)}

/* Bottom */
.bottom-actions{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--border);padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom));display:flex;gap:10px;z-index:10;box-shadow:0 -3px 16px rgba(27,36,54,.08)}
.bottom-actions .btn{flex:1}

/* Saved */
.saved-item{background:var(--card);border-radius:12px;border:1px solid var(--border);padding:12px 14px;margin-bottom:8px;box-shadow:0 1px 3px rgba(27,36,54,.06)}
.saved-item .s-top{display:flex;align-items:center;gap:10px}
.saved-item .info{flex:1}
.saved-item .sname{font-weight:600;font-size:14px}
.saved-item .smeta{font-size:11px;color:var(--txt3);margin-top:2px}
.saved-item .sactions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.saved-item .sactions button{background:#f5f5f5;border:1px solid var(--border);border-radius:6px;padding:6px 12px;font-size:12px;cursor:pointer;color:var(--txt2);font-family:inherit}
.saved-item .sactions button:active{background:#eee}
.saved-item .sactions .del{color:var(--danger);border-color:#fecaca;background:#fff}

/* ── 後台儀表板：功能區工具列 ── */
.func-bar{display:flex;flex-direction:column;gap:15px;margin-bottom:18px}
.func-group{display:flex;flex-direction:column;gap:9px}
.func-group-t{font-size:11px;font-weight:800;color:var(--txt3);letter-spacing:.6px;display:flex;align-items:center;gap:6px;padding-left:1px}
.func-group-t::before{content:"";width:3px;height:12px;background:var(--navy);border-radius:2px;flex:none}
.func-group-btns{display:flex;flex-wrap:wrap;gap:10px}
.func-btn{display:flex;flex-direction:column;align-items:center;gap:6px;width:70px;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;transition:transform .12s}
.func-btn:active{transform:translateY(1px)}
.func-btn:disabled{cursor:not-allowed;opacity:.55}
.func-btn .func-ico{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:25px;color:#fff;box-shadow:0 4px 12px rgba(23,37,28,.16)}
.func-btn:not(:disabled):active .func-ico{box-shadow:0 2px 6px rgba(23,37,28,.16)}
.func-btn .func-lbl{font-size:11.5px;font-weight:700;color:var(--txt2);line-height:1.2;text-align:center}
.func-ico.f-add{background:linear-gradient(135deg,#22b866,#178a4c)}
.func-ico.f-ai{background:linear-gradient(135deg,#a855f7,#6d28d9)}
.func-ico.f-card{background:linear-gradient(135deg,#2a52b0,#1a3c8f)}
.func-ico.f-tpl{background:linear-gradient(135deg,#F3C220,#E0A020)}
.func-ico.f-brand{background:linear-gradient(135deg,#20c4de,#16AACA)}
.func-ico.f-stats{background:linear-gradient(135deg,#22b866,#0d8a45)}
.func-ico.f-lead{background:linear-gradient(135deg,#E06666,#c94f4f)}
.func-ico.f-daily{background:linear-gradient(135deg,#f59e0b,#d97706)}
.func-ico.f-book{background:linear-gradient(135deg,#22b866,#0f9d58)}
.func-ico.f-viral{background:linear-gradient(135deg,#10b981,#0d8a45)}
.func-ico.f-plan{background:linear-gradient(135deg,#F3C220,#E0900A)}
.func-ico.f-community{background:linear-gradient(135deg,#20c4de,#0d8ac2)}
.func-ico.f-soon{background:linear-gradient(135deg,#a9b4ad,#8c988f)}
.func-btn .func-soon-tag{font-size:9px;font-weight:700;color:#fff;background:#8c988f;border-radius:6px;padding:1px 5px;margin-top:-2px}
.func-ico svg{width:27px;height:27px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ── 訊息桌面：區塊橫幅 ── */
.desk-head{display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(120deg,#178a4c,#22b866);color:#fff;border-radius:12px;padding:11px 15px;margin-bottom:14px;box-shadow:0 3px 12px rgba(11,166,90,.22)}
.desk-head .dh-title{font-size:15px;font-weight:800;letter-spacing:.3px;display:flex;align-items:center;gap:7px}
.desk-head .dh-count{font-size:12px;font-weight:700;background:var(--gold);color:#0d5a30;border-radius:20px;padding:3px 11px;white-space:nowrap}
.desk-head .dh-title svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ── 訊息桌面：卡片格狀 ── */
.desk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:13px}
/* 後台儀表板在桌機用寬版，讓訊息桌面呈現多欄（像神隊友），編輯/分享頁維持窄版 */
@media(min-width:760px){#savedTab{max-width:1160px}}
.desk-card{position:relative;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 13px 12px;box-shadow:0 2px 8px rgba(27,36,54,.07);display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .15s,transform .12s}
.desk-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--navy),#22b866)}
.desk-card:hover{box-shadow:0 6px 20px rgba(30,158,90,.14);transform:translateY(-1px)}
.desk-card .dc-top{display:flex;align-items:flex-start;gap:8px;margin-top:4px;margin-bottom:11px}
.desk-card .dc-title{flex:1;font-size:14.5px;font-weight:700;color:var(--txt);line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:2.8em}
.desk-card .dc-icons{display:flex;gap:3px;flex-shrink:0}
.desk-card .dc-ico{width:28px;height:28px;border-radius:8px;border:1px solid var(--border);background:#fafcfb;display:flex;align-items:center;justify-content:center;font-size:14px;cursor:pointer;color:var(--txt2);transition:all .12s;padding:0}
.desk-card .dc-ico:active{background:var(--navy-soft);border-color:var(--navy)}
.desk-card .dc-ico.del:active{background:#fef2f2;border-color:#fecaca}
.desk-card .dc-main{display:flex;gap:8px;margin-bottom:9px}
.desk-card .dc-main button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:10px 8px;border-radius:10px;font-size:13.5px;font-weight:700;font-family:inherit;cursor:pointer;border:none;transition:all .12s}
.desk-card .dc-main button:active{transform:translateY(1px)}
.desk-card .dc-share{background:var(--green);color:#fff;box-shadow:0 3px 9px rgba(6,199,85,.26)}.desk-card .dc-share:active{background:var(--green2)}
.desk-card .dc-edit{background:#fff;color:var(--navy);border:1.5px solid var(--navy) !important}.desk-card .dc-edit:active{background:var(--navy-soft)}
.desk-card .dc-copy{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px;border-radius:9px;border:1px dashed var(--border);background:#fafcfb;color:var(--txt2);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .12s}
.desk-card .dc-copy:active{background:var(--navy-soft);border-color:var(--navy);color:var(--navy)}
.desk-card .dc-community{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;margin-top:7px;padding:8px;border-radius:9px;border:1px solid #bfe9f2;background:#eef9fc;color:#0d8ac2;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .12s}
.desk-card .dc-community:active{background:#dff3f9;border-color:#0d8ac2}
.desk-card .dc-community svg{width:14px;height:14px}
.desk-card .dc-date{font-size:11px;color:var(--txt3);margin-top:10px;display:flex;align-items:center;gap:5px}
.desk-empty{grid-column:1/-1;text-align:center;padding:38px 20px;color:var(--txt2);background:var(--card);border:1.5px dashed var(--border);border-radius:var(--radius)}
.desk-empty .icon{font-size:46px;margin-bottom:12px}
.desk-empty p{font-size:14px;margin-bottom:16px;color:var(--txt2)}
.desk-empty .btn{max-width:280px;margin:0 auto}

/* ── 資料夾篩選列 ── */
.folder-bar{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px;align-items:center}
.folder-chip{display:inline-flex;align-items:center;gap:5px;background:#fff;border:1.5px solid var(--border);border-radius:20px;padding:6px 13px;font-size:13px;font-weight:700;color:var(--txt2);font-family:inherit;cursor:pointer;transition:all .12s}
.folder-chip:active{transform:translateY(1px)}
.folder-chip.active{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 3px 9px rgba(30,158,90,.24)}
.folder-chip .fc-count{font-size:11px;font-weight:700;background:var(--navy-soft);color:var(--navy);border-radius:10px;padding:1px 7px;min-width:18px;text-align:center}
.folder-chip.active .fc-count{background:rgba(255,255,255,.25);color:#fff}
.folder-chip.fc-add{color:var(--navy);border-style:dashed}
.folder-chip.fc-add:active,.folder-chip.fc-manage:active{background:var(--navy-soft)}
.folder-chip.fc-manage{color:var(--txt3)}
.desk-card .dc-folder{margin-left:auto;background:var(--navy-soft);color:var(--navy);border-radius:8px;padding:1px 7px;font-size:10.5px;font-weight:700;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.desk-card svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.desk-card .dc-ico svg{width:16px;height:16px}
.desk-card .dc-main button svg,.desk-card .dc-copy svg{width:15px;height:15px}

/* ── 移動選單 / 管理資料夾（沿用 tpl 樣式）── */
.tpl-item.mv-active{border-color:var(--navy);background:var(--navy-soft)}
.tpl-item .mv-check{margin-left:auto;color:var(--navy);font-weight:800}
.mf-row{display:flex;align-items:center;gap:8px;padding:10px 4px;border-bottom:1px solid var(--border)}
.mf-row:last-child{border-bottom:none}
.mf-row .mf-name{flex:1;font-size:14px;font-weight:700;color:var(--txt);display:flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mf-row .fc-count{font-size:11px;font-weight:700;background:var(--navy-soft);color:var(--navy);border-radius:10px;padding:1px 7px}
.mf-empty{text-align:center;padding:22px 10px;color:var(--txt3);font-size:13px}

/* Preview carousel */
.carousel{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 16px 16px;-webkit-overflow-scrolling:touch}
.carousel::-webkit-scrollbar{display:none}
/* 多頁訊息預覽：左右滑動箭頭（桌機／不會滑的人切換卡片用） */
.carousel-wrap{position:relative}
.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:none;border-radius:50%;background:rgba(28,45,74,.55);color:#fff;font-size:15px;line-height:1;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);box-shadow:0 2px 8px rgba(0,0,0,.22);opacity:.85;transition:opacity .18s,background .18s,transform .18s;-webkit-tap-highlight-color:transparent}
.carousel-arrow:hover{background:rgba(28,45,74,.82);opacity:1}
.carousel-arrow-prev{left:8px}
.carousel-arrow-next{right:8px}
/* 沒有可捲動內容（單張卡）時整組箭頭都不顯示 */
.carousel-wrap:not(.has-arrows) .carousel-arrow{display:none}
/* 到頭／到尾對應箭頭淡出並停用點擊 */
.carousel-arrow.is-hidden{opacity:0;pointer-events:none}
@media(max-width:480px){
  .carousel-arrow{width:32px;height:32px;font-size:13px;opacity:.7}
  .carousel-arrow-prev{left:4px}
  .carousel-arrow-next{right:4px}
}
.bubble{flex:0 0 280px;scroll-snap-align:start;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,.08)}
.bubble img{width:100%;aspect-ratio:20/13;object-fit:cover;display:block}
.bubble .b-body{padding:14px}
.bubble .b-title{font-weight:700;font-size:16px;margin-bottom:6px;line-height:1.4}
.bubble .b-desc{font-size:13px;color:#333;line-height:1.6}
.bubble .hero-wrap{position:relative}
.bubble .hero-wrap img{display:block}
.bubble .hero-cap{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);color:#fff;padding:8px 12px;font-weight:700;font-size:15px;line-height:1.35}
.bubble .b-footer{padding:0 12px 12px;display:flex;flex-direction:column;gap:6px}
.bubble .b-btn{display:block;text-align:center;padding:12px 16px;border-radius:25px;font-weight:700;font-size:14px;text-decoration:none;color:#fff}
/* 影片卡：縮圖＋置中播放鍵 */
.bubble .video-wrap{position:relative;line-height:0}
.bubble .video-wrap img{width:100%;object-fit:cover;display:block}
.bubble .video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:54px;height:54px;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;font-size:22px;display:flex;align-items:center;justify-content:center;line-height:1}
/* 優惠券卡：虛線框優惠碼 */
.bubble .coupon-code{border:2px dashed #DC2626;border-radius:8px;padding:8px 10px;margin:10px 0}
.bubble .coupon-code .cc-lbl{font-size:11px;color:#999;line-height:1.3}
.bubble .coupon-code .cc-val{font-weight:800;font-size:18px;line-height:1.3;letter-spacing:.5px}

/* Share mode */
.share-hero{text-align:center;padding:24px 16px 16px}
.share-hero h2{font-size:21px;margin-bottom:5px;color:var(--navy);font-weight:800}
.share-hero p{font-size:13px;color:var(--txt2)}
.share-actions{padding:16px;max-width:520px;margin:0 auto}
.share-actions .btn{margin-bottom:10px}
/* 分享頁底部「聯絡分享者」CTA（引流回顧問） */
.share-cta{max-width:520px;margin:0 auto;padding:0 16px 28px}
.share-cta .sc-box{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 16px;box-shadow:0 3px 14px rgba(23,138,76,.08);text-align:center}
.share-cta .sc-lbl{font-size:12px;font-weight:700;color:var(--txt3);letter-spacing:.4px}
.share-cta .sc-name{font-size:18px;font-weight:800;color:var(--txt);margin-top:4px}
.share-cta .sc-btns{display:flex;flex-direction:column;gap:10px;margin-top:14px}

/* Tabs */
.tabs{display:flex;background:#fff;border-bottom:1px solid var(--border)}
.tab{flex:1;padding:12px;text-align:center;font-size:14px;font-weight:600;color:var(--txt3);cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}
.tab.active{color:var(--navy);border-bottom-color:var(--navy)}

/* Toast */
.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-100px);background:var(--navy);color:#fff;padding:11px 22px;border-radius:12px;font-size:14px;font-weight:600;z-index:100;transition:transform .3s;pointer-events:none;white-space:nowrap;box-shadow:0 6px 20px rgba(30,158,90,.3)}
.toast.show{transform:translateX(-50%) translateY(0)}
.status-bar{text-align:center;font-size:12px;color:var(--txt3);padding:8px}

/* Template picker */
.tpl-overlay{position:fixed;inset:0;background:rgba(23,37,28,.5);z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:tplFade .2s}
@keyframes tplFade{from{opacity:0}to{opacity:1}}
.tpl-sheet{background:#fff;width:100%;max-width:520px;border-radius:18px 18px 0 0;max-height:82vh;display:flex;flex-direction:column;box-shadow:0 -6px 26px rgba(11,166,90,.2);animation:tplUp .25s}
@keyframes tplUp{from{transform:translateY(30px)}to{transform:translateY(0)}}
.tpl-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--border);color:var(--navy);font-size:16px}
.tpl-close{background:none;border:none;font-size:18px;color:var(--txt3);cursor:pointer;padding:4px 8px;line-height:1}
.tpl-list{padding:12px;overflow-y:auto}
.tpl-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;border:1.5px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:8px;cursor:pointer;font-family:inherit;transition:all .15s}
.tpl-item:active{background:var(--navy-soft);border-color:var(--navy)}
.tpl-item .tpl-emoji{font-size:24px;flex-shrink:0}
.tpl-item .tpl-txt{display:flex;flex-direction:column;gap:2px}
.tpl-item .tpl-txt b{font-size:14px;font-weight:700;color:var(--txt)}
.tpl-item .tpl-txt small{font-size:12px;color:var(--txt2)}
/* 範本相簿式選單 */
.tpl-gallery{padding:12px;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;gap:10px;grid-auto-rows:max-content;align-content:start}
.tg-card{display:block;background:#fff;border:1.5px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;font-family:inherit;text-align:left;padding:0;transition:all .12s}
.tg-card:active{border-color:var(--navy);transform:scale(.97)}
.tg-thumb{width:100%;height:100px;background-size:cover;background-position:center;background-color:var(--navy-soft)}
.tg-thumb.tg-emoji{display:flex;align-items:center;justify-content:center;font-size:38px;color:#fff}
.tg-info{padding:9px 11px;display:flex;flex-direction:column;gap:3px}
.tg-info b{font-size:13.5px;font-weight:700;color:var(--txt);line-height:1.3}
.tg-info small{font-size:11.5px;color:var(--txt2);line-height:1.35}
.tg-badge{align-self:flex-start;margin-top:3px;font-size:10.5px;font-weight:700;color:var(--navy);background:var(--navy-soft);padding:2px 8px;border-radius:20px}
.tg-thumb.tg-poster{display:flex;align-items:center;justify-content:center;padding:8px 12px}
.tg-poster span{color:#fff;font-weight:700;font-size:14px;line-height:1.35;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.cm-card{cursor:default}
.cm-card:active{transform:none;border-color:var(--border)}
.cm-actions{display:flex;gap:6px;margin-top:6px}
.cm-apply{flex:1;padding:7px 8px;border:none;border-radius:9px;background:linear-gradient(135deg,#20c4de,#16AACA);color:#fff;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 3px 9px rgba(22,170,202,.26);transition:all .12s}
.cm-apply:active{transform:translateY(1px)}
.cm-del{padding:7px 10px;border:1px solid #fecaca;border-radius:9px;background:#fef2f2;color:#dc2626;font-size:12px;font-weight:700;font-family:inherit;cursor:pointer;transition:all .12s}
.cm-del:active{background:#fee2e2;border-color:#dc2626}
.tg-poster span{color:#fff;font-weight:800;font-size:14px;line-height:1.3;text-align:center;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.empty{text-align:center;padding:40px 20px;color:var(--txt3)}.empty .icon{font-size:40px;margin-bottom:10px}.empty p{font-size:14px}

/* 今日建議（沿用 tpl-overlay/tpl-sheet；綠底＋橘色點綴） */
.daily-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:15px 18px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#eafaf0,#fff7ea);border-radius:18px 18px 0 0}
.daily-head b{font-size:15.5px;color:var(--navy);line-height:1.3}
.daily-head .daily-sub{display:block;font-size:11.5px;font-weight:700;color:#d97706;margin-top:2px}
.daily-body{padding:12px;overflow-y:auto}
.daily-hint{font-size:12px;color:var(--txt2);margin:0 2px 10px;line-height:1.4}
.daily-item{display:flex;gap:11px;align-items:flex-start;border:1.5px solid var(--border);border-radius:12px;padding:10px;margin-bottom:10px;background:#fff}
.daily-thumb{width:74px;height:56px;flex:0 0 74px;border-radius:8px;background-size:cover;background-position:center;background-color:var(--navy-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}
.daily-thumb span{color:#fff;font-weight:800;font-size:11px;line-height:1.2;text-align:center;padding:4px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.daily-info{flex:1;min-width:0}
.daily-info b{display:block;font-size:14px;color:var(--txt);line-height:1.3;margin-bottom:3px}
.daily-info small{display:block;font-size:11.5px;color:var(--txt2);line-height:1.35;margin-bottom:7px}
.daily-info .daily-tag{display:inline-block;font-size:10px;font-weight:700;color:#d97706;background:#fff3e0;padding:1px 7px;border-radius:20px;margin-bottom:6px}
.daily-apply{background:var(--navy);color:#fff;border:none;border-radius:9px;padding:6px 13px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit}
.daily-apply:active{background:var(--navy2)}
.daily-all{width:100%;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border:none;border-radius:11px;padding:11px;font-size:14px;font-weight:800;cursor:pointer;font-family:inherit;margin-top:2px;box-shadow:0 3px 10px rgba(217,119,6,.28)}
.daily-all:active{transform:translateY(1px)}
/* 今日建議：直接分享（主）／編輯（次）動作 */
.daily-acts{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.daily-share{background:linear-gradient(135deg,var(--green),var(--green2));color:#fff;border:none;border-radius:9px;padding:7px 14px;font-size:12.5px;font-weight:800;cursor:pointer;font-family:inherit;box-shadow:0 2px 8px rgba(6,199,85,.28)}
.daily-share:active{transform:translateY(1px)}
.daily-edit{background:#fff;color:var(--navy);border:1.5px solid var(--border);border-radius:9px;padding:7px 12px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit}
.daily-edit:active{background:var(--navy-soft)}
.daily-all-share{width:100%;background:linear-gradient(135deg,var(--green),var(--green2));color:#fff;border:none;border-radius:11px;padding:12px;font-size:14.5px;font-weight:800;cursor:pointer;font-family:inherit;margin-top:2px;box-shadow:0 3px 12px rgba(6,199,85,.32)}
.daily-all-share:active{transform:translateY(1px)}
.daily-all-edit{width:100%;background:#fff;color:var(--navy);border:1.5px solid var(--border);border-radius:11px;padding:10px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;margin-top:8px}
.daily-all-edit:active{background:var(--navy-soft)}
/* 後台首頁「今日內容已備好」橫幅 */
.daily-banner{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#eafaf0,#f4fbf6);border:1.5px solid #bfe6cd;border-radius:14px;padding:13px 14px;margin-bottom:12px;box-shadow:0 2px 10px rgba(30,158,90,.12)}
.daily-banner .db-ico{flex:0 0 auto;font-size:26px;line-height:1}
.daily-banner .db-mid{flex:1;min-width:0}
.daily-banner .db-mid b{display:block;font-size:14px;color:var(--txt);line-height:1.35}
.daily-banner .db-mid .db-edit{display:inline-block;margin-top:4px;font-size:12px;font-weight:700;color:var(--navy);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;font-family:inherit}
.daily-banner .db-share{flex:0 0 auto;background:linear-gradient(135deg,var(--green),var(--green2));color:#fff;border:none;border-radius:10px;padding:10px 13px;font-size:13px;font-weight:800;cursor:pointer;font-family:inherit;box-shadow:0 3px 10px rgba(6,199,85,.3);line-height:1.2}
.daily-banner .db-share:active{transform:translateY(1px)}

/* Image upload */
.btn-upload{margin-top:8px;background:var(--navy);box-shadow:0 3px 10px rgba(30,158,90,.25)}.btn-upload:active{background:var(--navy2)}
.img-url-input{margin-top:8px;font-size:13px}
.img-hint{font-size:11px;color:var(--txt3);margin-top:6px}

/* Login gate */
#loginMode{min-height:100dvh;background:linear-gradient(160deg,#178a4c,#22b866);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px 24px;color:#fff}
#loginMode .lg-logo{width:76px;height:76px;background:var(--gold);border-radius:20px;display:flex;align-items:center;justify-content:center;color:#0d5a30;font-weight:900;font-size:38px;box-shadow:0 8px 24px rgba(0,0,0,.22);margin-bottom:22px}
#loginMode h1{font-size:22px;font-weight:800;line-height:1.4;margin-bottom:8px}
#loginMode p{font-size:14px;opacity:.85;margin-bottom:32px;line-height:1.6;max-width:300px}
#loginMode .lg-btn{background:#fff;color:#178a4c;padding:14px 30px;border:none;border-radius:12px;font-size:16px;font-weight:800;font-family:inherit;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.18);display:inline-flex;align-items:center;gap:8px;transition:transform .12s}
#loginMode .lg-btn:active{transform:translateY(1px)}

/* Header user badge */
.hme{margin-left:auto;display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.16);padding:4px 10px 4px 4px;border-radius:22px}
.hme img{width:28px;height:28px;border-radius:50%;object-fit:cover;background:#fff}
.hme .hme-fallback{width:28px;height:28px;border-radius:50%;background:var(--gold);color:#0d5a30;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.hme span{font-size:12.5px;font-weight:700;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Profile tab (我的名片) */
.pf-card{background:var(--card);border-radius:var(--radius);padding:16px;border:1px solid var(--border);box-shadow:0 1px 3px rgba(27,36,54,.06)}
.pf-photo-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:8px}
.pf-photo{width:110px;height:110px;border-radius:50%;object-fit:cover;background:var(--navy-soft);border:1.5px dashed #cbd5e6;display:flex;align-items:center;justify-content:center;color:var(--txt3);font-size:12px;overflow:hidden}
.pf-photo img{width:100%;height:100%;object-fit:cover}
.pf-link-box{background:var(--navy-soft);border:1px solid var(--border);border-radius:12px;padding:12px;margin-top:14px}
.pf-link-box .lbl{font-size:12px;font-weight:700;color:var(--navy);margin-bottom:6px}
.pf-link-box .url{font-size:12px;color:var(--txt2);word-break:break-all;background:#fff;border:1px solid var(--border);border-radius:8px;padding:8px 10px}
.pf-link-box .row{display:flex;gap:8px;margin-top:8px}
.pf-link-box .row .btn-sm{flex:1}
/* ② 品牌頁 QR Code */
.qr-panel{margin-top:12px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px;text-align:center}
.qr-panel .qr-canvas{width:220px;max-width:100%;height:auto;image-rendering:pixelated;border-radius:6px;display:inline-block}
.qr-panel .qr-note{font-size:12px;color:var(--txt2);line-height:1.5;margin:10px 0}
.qr-panel .btn-green{width:auto;padding:8px 18px}

/* Brand mode (前台個人品牌頁) */
#brandMode{min-height:100dvh;background:linear-gradient(180deg,#e9f6ee 0%,#f1f7f3 40%)}
.brand-wrap{max-width:460px;margin:0 auto;padding:40px 22px 60px;text-align:center}
.brand-photo{width:132px;height:132px;border-radius:50%;object-fit:cover;margin:0 auto 18px;border:4px solid #fff;box-shadow:0 8px 28px rgba(30,158,90,.22);display:block;background:#fff}
.brand-photo-ph{width:132px;height:132px;border-radius:50%;margin:0 auto 18px;border:4px solid #fff;box-shadow:0 8px 28px rgba(30,158,90,.22);background:linear-gradient(135deg,#178a4c,#22b866);color:#fff;display:flex;align-items:center;justify-content:center;font-size:54px;font-weight:800}
.brand-name{font-size:26px;font-weight:800;color:var(--txt);letter-spacing:.3px}
.brand-title{font-size:15px;font-weight:600;color:var(--navy);margin-top:6px}
.brand-tagline{font-size:14px;color:var(--txt2);line-height:1.7;margin-top:14px;white-space:pre-line}
.brand-actions{display:flex;flex-direction:column;gap:12px;margin-top:28px}
.brand-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px 18px;border-radius:14px;font-size:16px;font-weight:800;font-family:inherit;text-decoration:none;border:none;cursor:pointer;transition:transform .12s;box-shadow:0 4px 14px rgba(0,0,0,.1)}
.brand-btn:active{transform:translateY(1px)}
.brand-btn.call{background:#1a3c8f;color:#fff}
.brand-btn.line{background:var(--green);color:#fff}
.brand-btn.vcard{background:var(--navy-soft);color:var(--navy2);border:1.5px solid var(--navy);box-shadow:none}
.brand-btn.share{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}
.brand-foot{margin-top:34px;font-size:11px;color:var(--txt3)}
.brand-empty{max-width:460px;margin:0 auto;padding:80px 24px;text-align:center;color:var(--txt2)}
.brand-empty .icon{font-size:52px;margin-bottom:14px}
.brand-empty h2{font-size:18px;font-weight:800;color:var(--txt);margin-bottom:8px}
/* ── #7 微官網（品牌頁 ?u= 升級版）── */
.site-wrap{max-width:480px;margin:0 auto;padding:0 0 60px}
.site-hero{text-align:center;padding:40px 22px 26px;background:linear-gradient(180deg,#e9f6ee 0%,rgba(241,247,243,0) 100%)}
.site-slogan{font-size:14.5px;color:var(--txt2);line-height:1.6;margin-top:12px;white-space:pre-line}
.site-cta{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.site-sec{margin:0 18px 22px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px 18px 20px;box-shadow:0 3px 14px rgba(23,138,76,.07)}
.site-sec-t{font-size:15px;font-weight:800;color:var(--navy);margin-bottom:12px;display:flex;align-items:center;gap:7px}
.site-sec-t::before{content:'';width:4px;height:16px;background:var(--gold);border-radius:2px}
.site-intro{font-size:14px;color:var(--txt);line-height:1.75;white-space:pre-line}
.site-chips{display:flex;flex-wrap:wrap;gap:8px}
.site-chip{font-size:13px;font-weight:700;color:var(--navy);background:var(--navy-soft);border:1px solid #cde9d6;border-radius:20px;padding:6px 13px;line-height:1.3}
.site-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.site-card{display:block;background:#fff;border:1.5px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;font-family:inherit;text-align:left;padding:0;transition:transform .12s,border-color .12s}
.site-card:active{border-color:var(--navy);transform:scale(.97)}
.site-thumb{width:100%;height:96px;background-size:cover;background-position:center;background-color:var(--navy-soft);display:flex;align-items:center;justify-content:center}
.site-thumb.ph{background:linear-gradient(135deg,#178a4c,#22b866);color:#fff;font-size:30px}
.site-cinfo{padding:9px 11px}
.site-cinfo b{display:block;font-size:13px;font-weight:700;color:var(--txt);line-height:1.35;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.site-cinfo small{font-size:11px;color:var(--txt3)}
/* ── #6 方案與用量（plan）── */
.plan-badge{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:800;color:#0d8a45;background:#e9f6ee;border:1px solid #b8e6c8;border-radius:20px;padding:5px 13px}
.plan-usage{margin-top:8px}
.pu-row{margin-bottom:15px}
.pu-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:6px}
.pu-name{font-size:13.5px;font-weight:700;color:var(--txt)}
.pu-val{font-size:12.5px;font-weight:700;color:var(--txt2)}
.pu-val.warn{color:#c0392b}
.pu-bar{height:9px;border-radius:6px;background:#eef2ef;overflow:hidden}
.pu-fill{height:100%;border-radius:6px;background:linear-gradient(90deg,#22b866,#178a4c);transition:width .3s}
.pu-fill.warn{background:linear-gradient(90deg,#f59e0b,#dc2626)}
.pu-hint{font-size:11.5px;color:#c0392b;margin-top:5px}
.plan-cmp{width:100%;border-collapse:collapse;margin-top:6px;font-size:13px}
.plan-cmp th,.plan-cmp td{padding:9px 8px;border-bottom:1px solid var(--border);text-align:center}
.plan-cmp th{font-size:12px;font-weight:800;color:var(--txt2)}
.plan-cmp th.pro,.plan-cmp td.pro{color:var(--navy);background:var(--navy-soft)}
.plan-cmp td.feat{text-align:left;font-weight:600;color:var(--txt)}
.plan-cmp .yes{color:#0d8a45;font-weight:800}
.plan-cmp .no{color:var(--txt3)}
.plan-upsell{width:100%;margin-top:18px;padding:15px;border:none;border-radius:14px;font-size:16px;font-weight:800;font-family:inherit;color:#0d5a30;background:linear-gradient(135deg,#F3C220,#E0900A);cursor:pointer;box-shadow:0 4px 14px rgba(224,160,10,.32);transition:transform .12s}
.plan-upsell:active{transform:translateY(1px)}
.plan-note{font-size:11.5px;color:var(--txt3);text-align:center;margin-top:12px;line-height:1.5}
/* ── #3 品牌頁預約諮詢表單 ── */
.book-box{margin-top:30px;text-align:left;background:#fff;border:1px solid #cde9d6;border-radius:16px;padding:20px 18px;box-shadow:0 6px 20px rgba(23,138,76,.1)}
.book-box .book-head{font-size:18px;font-weight:800;color:#0d8a45;text-align:center}
.book-box .book-sub{font-size:12.5px;color:var(--txt2);text-align:center;margin-top:4px;margin-bottom:14px}
.book-box .book-field{margin-bottom:10px}
.book-box .book-field input,.book-box .book-field textarea{width:100%;box-sizing:border-box;border:1.5px solid #d6e8dd;border-radius:10px;padding:11px 13px;font-size:15px;font-family:inherit;color:var(--txt);background:#fafcfb;resize:vertical}
.book-box .book-field input:focus,.book-box .book-field textarea:focus{outline:none;border-color:#22b866;background:#fff}
.book-box .book-submit{width:100%;margin-top:4px;padding:14px;border:none;border-radius:12px;font-size:16px;font-weight:800;font-family:inherit;color:#fff;background:linear-gradient(135deg,#22b866,#178a4c);cursor:pointer;box-shadow:0 4px 14px rgba(23,138,76,.28);transition:transform .12s}
.book-box .book-submit:active{transform:translateY(1px)}
.book-box .book-submit:disabled{opacity:.6;cursor:not-allowed}
.book-box .book-chip-lbl{font-size:12.5px;font-weight:700;color:var(--txt2);margin-bottom:6px}
.book-box .book-chips{display:flex;flex-wrap:wrap;gap:8px}
.book-box .book-chip{font-size:13px;font-weight:700;color:#0d8a45;background:#eef8f1;border:1.5px solid #cde9d6;border-radius:20px;padding:8px 14px;line-height:1.2;font-family:inherit;cursor:pointer;transition:transform .1s}
.book-box .book-chip:active{transform:scale(.96)}
.book-box .book-chip.on{color:#fff;background:linear-gradient(135deg,#22b866,#178a4c);border-color:#178a4c;box-shadow:0 2px 8px rgba(23,138,76,.28)}

/* ── 數據成效（stats）── */
.stats-hero{background:linear-gradient(120deg,#178a4c,#22b866);color:#fff;border-radius:var(--radius);padding:18px 18px 16px;box-shadow:0 3px 14px rgba(11,166,90,.24);margin-bottom:16px;display:flex;align-items:center;gap:16px}
.stats-hero .sh-ico{width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0}
.stats-hero .sh-txt{display:flex;flex-direction:column;line-height:1.2}
.stats-hero .sh-num{font-size:32px;font-weight:900;letter-spacing:.5px}
.stats-hero .sh-lbl{font-size:12.5px;font-weight:600;opacity:.85;margin-top:2px}
.stats-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.stats-toolbar .st-title{font-size:14px;font-weight:800;color:var(--navy);display:flex;align-items:center;gap:6px}
.stats-list{display:flex;flex-direction:column;gap:9px}
.stats-row{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;box-shadow:0 1px 3px rgba(27,36,54,.06)}
.stats-row .sr-top{display:flex;align-items:center;gap:10px}
.stats-row .sr-rank{width:24px;height:24px;border-radius:50%;background:var(--navy-soft);color:var(--navy);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stats-row .sr-name{flex:1;font-size:14px;font-weight:700;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stats-row .sr-date{font-size:11px;color:var(--txt3);flex-shrink:0}
.stats-row .sr-metrics{display:flex;gap:10px;margin-top:9px}
.stats-row .sr-metric{flex:1;background:#fafcfb;border:1px solid var(--border);border-radius:9px;padding:8px 10px;display:flex;align-items:center;gap:7px}
.stats-row .sr-metric .m-ico{font-size:16px}
.stats-row .sr-metric .m-num{font-size:18px;font-weight:800;color:var(--txt)}
.stats-row .sr-metric .m-lbl{font-size:11px;color:var(--txt3);font-weight:600}
.stats-empty{text-align:center;padding:40px 20px;color:var(--txt2);background:var(--card);border:1.5px dashed var(--border);border-radius:var(--radius)}
.stats-empty .icon{font-size:46px;margin-bottom:12px}
.stats-empty p{font-size:14px;line-height:1.6}
/* ── 轉換洞察（每組帶來多少名單）── */
.conv-star-banner{display:flex;align-items:center;gap:12px;background:linear-gradient(120deg,#0d8a45,#22b866);color:#fff;border-radius:12px;padding:12px 14px;margin-bottom:12px;box-shadow:0 3px 12px rgba(11,166,90,.24)}
.conv-star-banner .csb-ico{font-size:26px;flex-shrink:0}
.conv-star-banner .csb-txt{display:flex;flex-direction:column;line-height:1.35;min-width:0}
.conv-star-banner .csb-txt b{font-size:14px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conv-star-banner .csb-txt small{font-size:11.5px;opacity:.92;margin-top:2px}
.stats-row.is-star{border-color:#22b866;box-shadow:0 2px 10px rgba(11,166,90,.16)}
.stats-row .sr-star{font-size:11px;font-weight:800;color:#0d8a45;background:#e6f6ec;border:1px solid #bfe7cd;border-radius:20px;padding:2px 8px;flex-shrink:0}
.stats-row .sr-metrics{flex-wrap:wrap}
.stats-row .sr-metric.sr-lead{background:#eef8f1;border-color:#c6e8d2}
.stats-row .sr-metric.sr-lead .m-num{color:#0d8a45}
.stats-row .sr-metric.sr-conv{background:#eef8f1;border-color:#c6e8d2}
.stats-row .sr-metric.sr-conv .m-num{color:#0d8a45}

/* ── 名單追蹤（CRM / leads）── */
.lead-hero{background:linear-gradient(120deg,#178a4c,#22b866);color:#fff;border-radius:var(--radius);padding:16px 18px;box-shadow:0 3px 14px rgba(11,166,90,.24);margin-bottom:16px;display:flex;gap:12px}
.lead-hero .lh-cell{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;line-height:1.2}
.lead-hero .lh-cell+.lh-cell{border-left:1px solid rgba(255,255,255,.28)}
.lead-hero .lh-num{font-size:28px;font-weight:900;letter-spacing:.5px}
.lead-hero .lh-lbl{font-size:12px;font-weight:600;opacity:.88;margin-top:3px}
.lead-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.lead-toolbar .lt-title{font-size:14px;font-weight:800;color:var(--navy);display:flex;align-items:center;gap:6px}
.lead-list{display:flex;flex-direction:column;gap:9px}
.lead-row{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:11px 13px;box-shadow:0 1px 3px rgba(27,36,54,.06);display:flex;align-items:center;gap:11px}
.lead-row .lr-ava{width:42px;height:42px;border-radius:50%;object-fit:cover;background:var(--navy-soft);flex-shrink:0}
.lead-row .lr-ava-ph{width:42px;height:42px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#178a4c,#22b866);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800}
.lead-row .lr-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.lead-row .lr-name{font-size:14px;font-weight:700;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lead-row .lr-set{font-size:12px;color:var(--txt2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lead-row .lr-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}
.lead-row .lr-tag{font-size:11px;font-weight:700;border-radius:20px;padding:2px 9px;white-space:nowrap}
.lead-row .lr-tag.view{background:var(--navy-soft);color:var(--navy)}
.lead-row .lr-tag.share{background:#fdecec;color:#c94f4f}
.lead-row .lr-date{font-size:11px;color:var(--txt3);white-space:nowrap}
.lead-empty{text-align:center;padding:40px 20px;color:var(--txt2);background:var(--card);border:1.5px dashed var(--border);border-radius:var(--radius)}
.lead-empty .icon{font-size:46px;margin-bottom:12px}
.lead-empty p{font-size:14px;line-height:1.7}
/* #4 名單熱度分數 chip */
.lead-row .lr-chip{font-size:11px;font-weight:800;border-radius:20px;padding:2px 9px;white-space:nowrap}
.lead-row .lr-chip.hot{background:#fdecec;color:#d9482f}
.lead-row .lr-chip.warm{background:#fff4e0;color:#c07d16}
.lead-row .lr-chip.cold{background:#eef2f6;color:#5b6b7a}
/* ── ① 名單跟進工作流：狀態／備註／篩選 ── */
.lead-toolbar .lt-btns{display:flex;gap:6px;flex-shrink:0}
.lead-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.lead-fchip{font-size:12px;font-weight:700;border:1px solid var(--border);background:#fff;color:var(--txt2);border-radius:20px;padding:5px 12px;cursor:pointer;font-family:inherit;line-height:1.2}
.lead-fchip.active{background:var(--navy);color:#fff;border-color:var(--navy)}
/* 名單列改成直向堆疊（頭部＋狀態列＋備註） */
.lead-row{flex-direction:column;align-items:stretch;gap:9px}
.lead-row .lr-head{display:flex;align-items:center;gap:11px}
.lead-row .lr-status{display:flex;flex-wrap:wrap;gap:6px}
.lead-row .st-chip{font-size:12px;font-weight:700;border:1px solid var(--border);background:#fff;color:var(--txt2);border-radius:8px;padding:5px 10px;cursor:pointer;font-family:inherit;line-height:1.2}
.lead-row .st-chip.on.st-new{background:#eef2f6;color:#48566a;border-color:#c8d2dd}
.lead-row .st-chip.on.st-contacted{background:#e6f0fb;color:#1f6fc4;border-color:#b9d5f2}
.lead-row .st-chip.on.st-won{background:var(--navy-soft);color:var(--navy);border-color:var(--navy)}
.lead-row .st-chip.on.st-lost{background:#e9edf1;color:#8a97a4;border-color:#d5dde3}
.lead-row .lr-note-in{width:100%;box-sizing:border-box;font-size:13px;font-family:inherit;border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:#fbfdfb;color:var(--txt)}
.lead-row .lr-note-in:focus{outline:none;border-color:var(--navy);background:#fff}
/* 已成交：綠色左條強調；不需要：整列淡化 */
.lead-row.lr-st-won{border-left:3px solid var(--navy);background:linear-gradient(90deg,var(--navy-soft),#fff 40%)}
.lead-row.lr-st-lost{opacity:.55}
/* ── #3 預約諮詢後台列 ── */
.book-row{background:var(--card);border:1px solid var(--border);border-left:3px solid #22b866;border-radius:12px;padding:12px 14px;box-shadow:0 1px 3px rgba(27,36,54,.06)}
.book-row .bk-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.book-row .bk-name{font-size:15px;font-weight:800;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.book-row .bk-contact-row{margin-top:7px}
.book-row .bk-contact{display:inline-block;font-size:13px;font-weight:700;color:#0d8a45;text-decoration:none;background:#e9f6ee;border-radius:8px;padding:4px 10px}
.book-row .bk-contact.tel{color:#1a3c8f;background:var(--navy-soft)}
.book-row .bk-contact.none{color:var(--txt3);background:transparent;font-weight:600}
.book-row .bk-tags{margin-top:8px;display:flex;flex-wrap:wrap;gap:6px}
.book-row .bk-tag{font-size:12.5px;font-weight:700;color:#0d8a45;background:var(--navy-soft);border:1px solid #cde9d6;border-radius:8px;padding:4px 10px}
.book-row .bk-msg{margin-top:9px;font-size:13px;color:var(--txt2);line-height:1.6;background:#fafcfb;border:1px solid var(--border);border-radius:9px;padding:8px 11px;white-space:pre-line;word-break:break-word}
/* ── #5 病毒鏈視圖 ── */
.viral-k{background:linear-gradient(120deg,#0d8a45,#22b866);color:#fff;border-radius:var(--radius);padding:22px 18px;text-align:center;box-shadow:0 3px 14px rgba(11,166,90,.28);margin-bottom:14px}
.viral-k .vk-label{font-size:12.5px;font-weight:700;opacity:.9;letter-spacing:1px}
.viral-k .vk-num{font-size:52px;font-weight:900;line-height:1.1;letter-spacing:1px}
.viral-k .vk-hint{font-size:12.5px;font-weight:600;opacity:.92;margin-top:6px;line-height:1.5}
.viral-cards{display:flex;gap:9px;margin-bottom:16px}
.viral-cards .vc{flex:1;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 8px;text-align:center;box-shadow:0 1px 3px rgba(27,36,54,.06)}
.viral-cards .vc-num{display:block;font-size:24px;font-weight:900;color:var(--txt)}
.viral-cards .vc-lbl{display:block;font-size:11.5px;font-weight:600;color:var(--txt3);margin-top:2px}
.viral-sec-title{font-size:14px;font-weight:800;color:var(--navy);margin:6px 0 10px}
.viral-funnel{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}
.viral-funnel .vf-row{display:flex;align-items:center;gap:10px}
.viral-funnel .vf-gen{flex-shrink:0;width:52px;font-size:12px;font-weight:700;color:var(--txt2)}
.viral-funnel .vf-bar-wrap{flex:1;background:#eef4f0;border-radius:8px;height:20px;overflow:hidden}
.viral-funnel .vf-bar{height:100%;border-radius:8px;background:linear-gradient(90deg,#22b866,#0d8a45);min-width:6px}
.viral-funnel .vf-n{flex-shrink:0;width:34px;text-align:right;font-size:13px;font-weight:800;color:var(--txt)}
/* ── 病毒鏈重構：主打「幫你擴散的貴人」 ── */
.viral-intro{font-size:12.5px;line-height:1.65;color:var(--txt2);background:var(--navy-soft);border:1px solid var(--border);border-radius:12px;padding:11px 13px;margin-bottom:14px}
.viral-hero-title{display:flex;align-items:baseline;gap:8px;margin:2px 0 10px}
.viral-hero-title b{font-size:16px;font-weight:900;color:var(--txt)}
.viral-hero-title span{font-size:12px;font-weight:600;color:var(--txt3)}
.vip-list{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.vip-row{background:var(--card);border:1.5px solid var(--navy-soft);border-radius:14px;padding:13px 14px;box-shadow:0 2px 10px rgba(11,166,90,.1);display:flex;align-items:center;gap:12px;position:relative;overflow:hidden}
.vip-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#22b866,#0d8a45)}
.vip-row .vip-ava{width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--navy-soft);flex-shrink:0}
.vip-row .vip-ava-ph{width:48px;height:48px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#178a4c,#22b866);color:#fff;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800}
.vip-row .vip-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.vip-row .vip-name{font-size:15px;font-weight:800;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vip-row .vip-sub{font-size:11.5px;color:var(--txt3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vip-row .vip-badge{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:1px;background:linear-gradient(135deg,#0d8a45,#22b866);color:#fff;border-radius:11px;padding:6px 11px;box-shadow:0 2px 6px rgba(11,166,90,.28)}
.vip-row .vip-badge b{font-size:18px;font-weight:900;line-height:1}
.vip-row .vip-badge small{font-size:10px;font-weight:700;opacity:.92}
.viral-empty{text-align:center;padding:34px 22px;color:var(--txt2);background:linear-gradient(160deg,#f2fbf6,#eaf7ef);border:1.5px dashed #b7e2c9;border-radius:var(--radius);margin-bottom:18px}
.viral-empty .icon{font-size:44px;margin-bottom:10px}
.viral-empty .t{font-size:15px;font-weight:800;color:var(--txt);margin-bottom:8px}
.viral-empty .tip{font-size:12.5px;line-height:1.7;color:var(--txt2)}
.viral-stats{display:flex;gap:8px;margin-bottom:8px}
.viral-stats .vs{flex:1;background:var(--card);border:1px solid var(--border);border-radius:11px;padding:10px 6px;text-align:center;box-shadow:0 1px 3px rgba(27,36,54,.06)}
.viral-stats .vs.k-cell{background:var(--navy-soft);border-color:#cfe9d9}
.viral-stats .vs-num{display:block;font-size:20px;font-weight:900;color:var(--txt)}
.viral-stats .vs-lbl{display:block;font-size:11px;font-weight:600;color:var(--txt3);margin-top:2px}
.viral-k-note{font-size:11px;line-height:1.55;color:var(--txt3);margin:0 2px 4px;text-align:center}

/* ── AI Copilot（建議追蹤）＋ 合規檢查 共用 modal ── */
.ai-sheet{background:#fff;width:100%;max-width:520px;border-radius:18px 18px 0 0;max-height:86vh;display:flex;flex-direction:column;box-shadow:0 -6px 26px rgba(11,166,90,.2);animation:tplUp .25s}
.ai-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--border);color:#6d28d9;font-size:16px;font-weight:800}
.ai-body{padding:12px 14px 20px;overflow-y:auto}
.ai-loading{text-align:center;padding:40px 20px;color:var(--txt2)}
.ai-loading .icon{font-size:40px;margin-bottom:10px}
.ai-empty{text-align:center;padding:34px 20px;color:var(--txt2);background:var(--card);border:1.5px dashed var(--border);border-radius:var(--radius)}
.ai-empty .icon{font-size:42px;margin-bottom:10px}
.ai-empty-sub{font-size:12.5px;color:var(--txt3);line-height:1.65;margin-top:8px}
.ai-intro{font-size:12.5px;color:var(--txt2);background:#f5f0ff;border:1px solid #e6dcff;border-radius:10px;padding:9px 12px;margin-bottom:12px;line-height:1.55}
/* Copilot 建議卡 */
.cop-card{background:var(--card);border:1px solid var(--border);border-left:3px solid #8b5cf6;border-radius:12px;padding:12px 13px;margin-bottom:10px;box-shadow:0 1px 3px rgba(27,36,54,.06)}
.cop-top{display:flex;align-items:center;gap:11px}
.cop-ava{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--navy-soft);flex-shrink:0}
.cop-ava-ph{width:40px;height:40px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#a855f7,#6d28d9);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800}
.cop-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cop-name-row{display:flex;align-items:center;gap:7px;min-width:0}
.cop-name{font-size:14px;font-weight:800;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cop-meta{font-size:11.5px;color:var(--txt2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cop-rank{flex-shrink:0;font-size:11px;font-weight:800;color:#6d28d9;background:#f0e9ff;border-radius:20px;padding:2px 9px}
/* 狀態徽章：沿用名單視圖 st-new/st-contacted 配色 */
.cop-badge{flex-shrink:0;font-size:10.5px;font-weight:700;border-radius:7px;padding:2px 8px;line-height:1.3;border:1px solid transparent}
.cop-badge.st-new{background:#eef2f6;color:#48566a;border-color:#c8d2dd}
.cop-badge.st-contacted{background:#e6f0fb;color:#1f6fc4;border-color:#b9d5f2}
.cop-note{margin-top:9px;font-size:12px;color:var(--txt2);background:#fbfdfb;border:1px solid var(--border);border-radius:9px;padding:7px 10px;line-height:1.55;word-break:break-word}
/* 💡 下一步建議：淡綠底醒目提示條 */
.cop-next{margin-top:9px;font-size:12.5px;color:#0d6b38;background:#eaf7ef;border:1px solid #c4e6d2;border-left:3px solid #22b866;border-radius:9px;padding:8px 11px;line-height:1.6;word-break:break-word}
.cop-next b{color:#0b5c30}
.cop-draft{margin-top:10px;background:#faf8ff;border:1px dashed #d9c9ff;border-radius:10px;padding:9px 11px;font-size:13px;color:var(--txt);line-height:1.6}
.cop-draft.empty{color:var(--txt3);font-style:italic}
.cop-copy{margin-top:8px}
/* 合規檢查結果 */
.cmp-ok{text-align:center;padding:30px 20px;color:#0d8a45;background:#e9f6ee;border:1.5px solid #b8e6c8;border-radius:var(--radius)}
.cmp-ok .icon{font-size:44px;margin-bottom:10px}
.cmp-ok b{font-size:16px;font-weight:800}
.cmp-sum{font-size:13px;font-weight:700;color:#c0392b;background:#fdecec;border:1px solid #f6c9c9;border-radius:10px;padding:9px 12px;margin-bottom:12px}
.cmp-issue{background:var(--card);border:1px solid #f3d0d0;border-left:3px solid #e05252;border-radius:12px;padding:11px 13px;margin-bottom:10px;box-shadow:0 1px 3px rgba(27,36,54,.05)}
.cmp-issue .ci-snip{font-size:13px;font-weight:700;color:#c0392b;background:#fdf0f0;border-radius:7px;padding:5px 9px;line-height:1.5;word-break:break-word}
.cmp-issue .ci-row{font-size:12.5px;color:var(--txt2);margin-top:7px;line-height:1.55}
.cmp-issue .ci-row b{color:var(--txt);font-weight:700}

/* ── 帳號審核閘門（#gateMode）── */
#gateMode{min-height:100dvh;background:linear-gradient(160deg,#178a4c,#22b866);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px calc(40px + env(safe-area-inset-bottom));color:#fff}
#gateMode .gt-ico{font-size:56px;margin-bottom:16px;line-height:1}
#gateMode h1{font-size:22px;font-weight:800;line-height:1.4;margin-bottom:10px}
#gateMode p{font-size:14px;opacity:.9;margin-bottom:26px;line-height:1.7;max-width:320px}
#gateMode .gt-card{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:16px;padding:18px 16px;width:100%;max-width:340px;backdrop-filter:blur(4px)}
#gateMode .gt-card .gt-lbl{font-size:12px;font-weight:700;opacity:.85;margin-bottom:12px}
#gateMode .gt-btns{display:flex;flex-direction:column;gap:10px}
#gateMode .gt-btns a,#gateMode .gt-btns button{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 16px;border-radius:12px;font-size:15px;font-weight:800;font-family:inherit;text-decoration:none;border:none;cursor:pointer;transition:transform .12s}
#gateMode .gt-btns a:active,#gateMode .gt-btns button:active{transform:translateY(1px)}
#gateMode .gt-call{background:#fff;color:#178a4c}
#gateMode .gt-line{background:var(--green);color:#fff}
#gateMode .gt-note{font-size:12.5px;opacity:.85;margin-top:6px;line-height:1.6}
#gateMode .gt-refresh{margin-top:22px;background:rgba(255,255,255,.18);color:#fff;border:1.5px solid rgba(255,255,255,.4);padding:12px 26px;border-radius:12px;font-size:15px;font-weight:800;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:transform .12s}
#gateMode .gt-refresh:active{transform:translateY(1px)}

/* ── 管理員後台（帳號管理）── */
.func-ico.f-admin{background:linear-gradient(135deg,#334155,#0f172a)}
.adm-row{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 13px;margin-bottom:10px;box-shadow:0 1px 3px rgba(27,36,54,.06)}
.adm-row.pending{border-color:#f59e0b;background:#fffbeb;box-shadow:0 2px 10px rgba(245,158,11,.16)}
.adm-top{display:flex;align-items:center;gap:10px}
.adm-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--navy-soft);display:flex;align-items:center;justify-content:center;color:var(--navy);font-weight:800;font-size:16px;overflow:hidden}
.adm-avatar img{width:100%;height:100%;object-fit:cover}
.adm-info{flex:1;min-width:0}
.adm-name{font-size:14.5px;font-weight:700;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-uid{font-size:11px;color:var(--txt3);cursor:pointer;font-family:monospace;word-break:break-all}
.adm-uid.short{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}
.adm-badge{font-size:11px;font-weight:800;border-radius:20px;padding:3px 10px;letter-spacing:.2px}
.adm-badge.st-pending{background:#fef3c7;color:#b45309;border:1px solid #fcd34d}
.adm-badge.st-active{background:#dcfce7;color:#15803d;border:1px solid #86efac}
.adm-badge.st-suspended{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}
.adm-badge.pl{background:var(--navy-soft);color:var(--navy);border:1px solid #b8e6c8}
.adm-badge.me{background:#fef9c3;color:#a16207;border:1px solid #fde047}
.adm-meta{font-size:11px;color:var(--txt3);margin-left:auto}
.adm-ctrl{margin-top:11px;padding-top:11px;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:8px}
.adm-actbar{display:flex;gap:7px;flex-wrap:wrap}
.adm-actbar button{flex:1;min-width:88px;padding:8px 6px;border-radius:9px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer;border:1.5px solid var(--border);background:#fff;color:var(--txt2);transition:all .12s}
.adm-actbar button:active{transform:translateY(1px)}
.adm-actbar button.ok{color:#15803d;border-color:#86efac}.adm-actbar button.ok:active{background:#f0fdf4}
.adm-actbar button.warn{color:#b45309;border-color:#fcd34d}.adm-actbar button.warn:active{background:#fffbeb}
.adm-actbar button.stop{color:#b91c1c;border-color:#fca5a5}.adm-actbar button.stop:active{background:#fef2f2}
.adm-plnote{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
.adm-plnote select{flex:1;min-width:120px;padding:8px 10px;font-size:13px}
.adm-plnote input{flex:2;min-width:140px;padding:8px 10px;font-size:13px}
.adm-plnote button{padding:8px 14px;font-size:13px;font-weight:700;font-family:inherit;border:none;border-radius:9px;background:var(--navy);color:#fff;cursor:pointer}
.adm-plnote button:active{transform:translateY(1px)}
.adm-sec-t{font-size:12px;font-weight:800;color:var(--txt3);letter-spacing:.5px;margin:16px 0 8px;display:flex;align-items:center;gap:6px}

/* ── 方案頁卡片（真資料）── */
.plan-cards{display:grid;grid-template-columns:1fr;gap:12px;margin-top:14px}
@media(min-width:600px){.plan-cards{grid-template-columns:repeat(2,1fr)}}
.plan-card{position:relative;background:var(--card);border:1.5px solid var(--border);border-radius:14px;padding:16px 15px;display:flex;flex-direction:column;box-shadow:0 1px 4px rgba(27,36,54,.06)}
.plan-card.cur{border-color:var(--navy);box-shadow:0 4px 16px rgba(30,158,90,.16)}
.plan-card.popular{border-color:var(--gold)}
.plan-card .pc-tag{position:absolute;top:-10px;right:14px;font-size:10.5px;font-weight:800;padding:3px 10px;border-radius:20px}
.plan-card .pc-tag.hot{background:var(--gold);color:#0d5a30}
.plan-card .pc-tag.cur{background:var(--navy);color:#fff;left:14px;right:auto}
.plan-card .pc-name{font-size:16px;font-weight:800;color:var(--txt)}
.plan-card .pc-price{font-size:22px;font-weight:900;color:var(--navy);margin-top:4px}
.plan-card .pc-price small{font-size:12px;font-weight:700;color:var(--txt3)}
.plan-card .pc-tagline{font-size:12px;color:var(--txt2);margin-top:5px;line-height:1.5}
.plan-card .pc-feats{list-style:none;margin-top:11px;padding:0;display:flex;flex-direction:column;gap:6px}
.plan-card .pc-feats li{font-size:12.5px;color:var(--txt);line-height:1.45;display:flex;gap:7px;align-items:flex-start}
.plan-card .pc-feats li::before{content:'✓';color:#0d8a45;font-weight:900;flex-shrink:0}
/* 月繳／年繳切換 */
.plan-cycle{display:inline-flex;background:#eef2ef;border-radius:20px;padding:3px;gap:2px}
.plan-cycle .pcy-btn{border:none;background:none;font-family:inherit;font-size:12.5px;font-weight:800;color:var(--txt2);padding:5px 13px;border-radius:18px;cursor:pointer;transition:all .15s}
.plan-cycle .pcy-btn.active{background:var(--navy);color:#fff;box-shadow:0 2px 6px rgba(30,158,90,.24)}
/* 依 plan-cards 上的 cycle-month/cycle-year 切換顯示哪個價格 */
.plan-cards .pc-price-year{display:none}
.plan-cards.cycle-year .pc-price-month{display:none}
.plan-cards.cycle-year .pc-price-year{display:block}
.plan-card .pc-save-row{margin-top:3px;display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.plan-card .pc-save{font-size:11px;font-weight:800;color:#0d5a30;background:var(--gold);border-radius:20px;padding:2px 9px;line-height:1.4}
.plan-card .pc-ynote{font-size:11px;font-weight:700;color:var(--navy);background:var(--navy-soft);border-radius:20px;padding:2px 9px;line-height:1.4}

/* ── 名片表單：社群連結列 ── */
.social-row{display:flex;gap:6px;align-items:center;margin-top:8px}
.social-row .social-plat{flex:0 0 116px;padding:9px 8px;font-size:13px}
.social-row .social-label{flex:0 0 96px;padding:9px 8px;font-size:13px}
.social-row .social-url{flex:1;min-width:0;padding:9px 10px;font-size:13px}
.social-row .social-del{flex:0 0 auto;width:34px;height:38px;border:1.5px solid var(--border);background:#fff;color:var(--txt3);border-radius:9px;font-size:14px;cursor:pointer;line-height:1}
.social-row .social-del:active{background:#fef2f2;color:var(--danger);border-color:#fecaca}

/* ── 名片表單：版型選擇器 ── */
.tpl-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.tpl-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 11px;border:1.5px solid var(--border);border-radius:12px;background:#fff;font-family:inherit;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}
.tpl-opt.active{border-color:var(--navy);box-shadow:0 0 0 3px rgba(30,158,90,.1)}
.tpl-opt .tpl-swatch{width:100%;height:26px;border-radius:7px;margin-bottom:3px}
.tpl-opt .tpl-lbl{font-size:13.5px;font-weight:800;color:var(--txt)}
.tpl-opt .tpl-desc{font-size:11px;color:var(--txt3)}

/* ── 品牌頁：社群圖示排 ── */
.site-socials{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;padding:0 18px 8px;margin-top:-8px}
.site-socials .social-ico{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--sc,#566259);color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.14);transition:transform .12s;text-decoration:none}
.site-socials .social-ico:active{transform:translateY(1px) scale(.96)}
.site-socials .social-ico svg{width:22px;height:22px}

/* ── 品牌頁版型：minimal（簡約，淺色置左留白多）── */
.site-tpl-minimal .site-hero{background:none;text-align:left;padding:44px 24px 22px;border-bottom:1px solid var(--border)}
.site-tpl-minimal .brand-photo,.site-tpl-minimal .brand-photo-ph{margin:0 0 16px;box-shadow:none;border:1px solid var(--border)}
.site-tpl-minimal .brand-name{font-size:24px;font-weight:700}
.site-tpl-minimal .brand-title{color:var(--txt2);font-weight:500}
.site-tpl-minimal .site-slogan{text-align:left}
.site-tpl-minimal .site-cta{align-items:stretch}
.site-tpl-minimal .brand-btn{box-shadow:none;font-weight:700;border-radius:10px}
.site-tpl-minimal .brand-btn.line{background:#fff;color:var(--txt);border:1.5px solid var(--border)}
.site-tpl-minimal .brand-btn.vcard{background:#fff;color:var(--txt2);border:1.5px solid var(--border)}
.site-tpl-minimal .brand-btn.share{border-color:var(--border);color:var(--txt2)}
.site-tpl-minimal .site-socials{justify-content:flex-start;padding-left:24px}
.site-tpl-minimal .site-socials .social-ico{background:#fff;color:var(--sc,#566259);border:1.5px solid var(--border);box-shadow:none}
.site-tpl-minimal .site-sec{box-shadow:none;border-radius:0;border:none;border-top:1px solid var(--border);margin:0 0 0 0;padding:22px 24px}
.site-tpl-minimal .site-sec-t{color:var(--txt)}
.site-tpl-minimal .site-sec-t::before{background:var(--txt)}
.site-tpl-minimal .site-chip{background:#fff;border-color:var(--border);color:var(--txt2)}

/* ── 品牌頁版型：dark（深色，金色點綴，現代感）── */
.site-tpl-dark{background:#0d1420;color:#e7ecf3}
.site-tpl-dark .site-hero{background:linear-gradient(180deg,#1a2230 0%,#0d1420 100%);padding:46px 22px 30px}
.site-tpl-dark .brand-photo,.site-tpl-dark .brand-photo-ph{border-color:#2a3547;box-shadow:0 8px 28px rgba(0,0,0,.5)}
.site-tpl-dark .brand-photo-ph{background:linear-gradient(135deg,#c9a227,#f3c220);color:#1a2230}
.site-tpl-dark .brand-name{color:#fff}
.site-tpl-dark .brand-title{color:var(--gold)}
.site-tpl-dark .site-slogan{color:#aab7c7}
.site-tpl-dark .brand-btn.line{background:var(--green)}
.site-tpl-dark .brand-btn.vcard{background:transparent;color:#7fe0a6;border:1.5px solid #2e6b48}
.site-tpl-dark .brand-btn.share{background:transparent;color:var(--gold);border:1.5px solid var(--gold)}
.site-tpl-dark .site-sec{background:#161e2b;border-color:#26303f;box-shadow:0 3px 14px rgba(0,0,0,.35)}
.site-tpl-dark .site-sec-t{color:var(--gold)}
.site-tpl-dark .site-sec-t::before{background:var(--gold)}
.site-tpl-dark .site-intro{color:#d5dce6}
.site-tpl-dark .site-chip{background:#1f2937;border-color:#33445c;color:#cbd5e6}
.site-tpl-dark .site-card{background:#1f2937;border-color:#33445c}
.site-tpl-dark .site-cinfo b{color:#e7ecf3}
.site-tpl-dark .book-box .book-head{color:#fff}
.site-tpl-dark input,.site-tpl-dark textarea{background:#0d1420;border-color:#33445c;color:#e7ecf3}
.site-tpl-dark .brand-foot{color:#5b6b7f}

/* ── 品牌頁版型：vibrant（活潑，彩色漸層 Hero，圓角）── */
.site-tpl-vibrant .site-hero{background:linear-gradient(135deg,#7c3aed 0%,#ec4899 55%,#f59e0b 100%);padding:48px 22px 34px;border-radius:0 0 30px 30px}
.site-tpl-vibrant .brand-photo,.site-tpl-vibrant .brand-photo-ph{border:5px solid #fff;box-shadow:0 10px 30px rgba(124,58,237,.4)}
.site-tpl-vibrant .brand-photo-ph{background:linear-gradient(135deg,#ec4899,#f59e0b)}
.site-tpl-vibrant .brand-name{color:#fff}
.site-tpl-vibrant .brand-title{color:#ffe9f6}
.site-tpl-vibrant .site-slogan{color:#fff;opacity:.92}
.site-tpl-vibrant .brand-btn{border-radius:22px}
.site-tpl-vibrant .brand-btn.line{background:#fff;color:#7c3aed}
.site-tpl-vibrant .brand-btn.vcard{background:rgba(255,255,255,.28);color:#fff;border:1.5px solid rgba(255,255,255,.85);box-shadow:none}
.site-tpl-vibrant .brand-btn.share{background:rgba(255,255,255,.18);color:#fff;border:1.5px solid rgba(255,255,255,.7)}
.site-tpl-vibrant .site-socials{margin-top:-14px}
.site-tpl-vibrant .site-sec{border-radius:22px;border-color:#f0d9ec;box-shadow:0 4px 16px rgba(124,58,237,.1)}
.site-tpl-vibrant .site-sec-t{color:#7c3aed}
.site-tpl-vibrant .site-sec-t::before{background:linear-gradient(180deg,#ec4899,#f59e0b)}
.site-tpl-vibrant .site-chip{background:#fbe9f4;border-color:#f6c9e4;color:#be2d7f}
.site-tpl-vibrant .site-card{border-radius:16px}

/* ── 表情觸發鈕 + 輸入欄位包裝 ── */
.input-emoji{position:relative}
.input-emoji input,.input-emoji textarea{padding-right:40px}
.emoji-trigger{position:absolute;top:6px;right:6px;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}
.emoji-trigger:hover{background:var(--navy-soft);border-color:var(--navy)}
.btn-editor .input-emoji input{padding-right:34px}
.btn-editor .emoji-trigger{top:4px;right:4px;width:24px;height:24px;font-size:14px}

/* ── 即時合規提示（純提醒，不阻擋）── */
.compliance-hint{margin-top:6px;padding:7px 10px;border-radius:8px;background:#fff8e1;border:1px solid #f7d774;color:#8a5a00;font-size:12px;line-height:1.5;font-weight:500}
.compliance-hint.empty{display:none}
.btn-editor .compliance-hint{margin-top:4px;padding:5px 8px;font-size:11px}
.compliance-note{font-size:11px;color:var(--txt3);margin:-2px 0 8px;text-align:right}

/* ── 表情 / 符號選擇面板 ── */
.emoji-panel{position:fixed;left:8px;right:8px;bottom:8px;z-index:9999;max-width:520px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:0 -6px 28px rgba(27,36,54,.22);overflow:hidden}
.emoji-panel-head{display:flex;align-items:center;gap:6px;padding:8px 8px 6px;border-bottom:1px solid var(--border)}
.emoji-cats{flex:1;display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.emoji-cat{flex:0 0 auto;padding:6px 10px;border:1px solid var(--border);border-radius:20px;background:#f7f9fc;font-size:13px;font-family:inherit;color:var(--txt2);cursor:pointer;white-space:nowrap}
.emoji-cat.active{background:var(--navy);border-color:var(--navy);color:#fff}
.emoji-close{flex:0 0 auto;width:30px;height:30px;border:none;border-radius:50%;background:#f1f3f5;color:var(--txt2);font-size:15px;cursor:pointer;line-height:1}
.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:2px;padding:8px;max-height:220px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.emoji-cell{width:100%;aspect-ratio:1/1;border:none;background:none;font-size:24px;line-height:1;cursor:pointer;border-radius:10px;display:flex;align-items:center;justify-content:center;transition:background .1s}
.emoji-cell:hover,.emoji-cell:active{background:var(--navy-soft)}

/* ── 按鈕大小選擇（小/中/大 chips）── */
.btn-editor .btn-size-row{display:flex;align-items:center;gap:5px;margin-top:2px}
.btn-editor .btn-size-lbl{font-size:12px;color:var(--txt3);flex:0 0 auto}
.btn-editor .size-chip{flex:1;padding:5px 0;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:12.5px;font-family:inherit;color:var(--txt2);cursor:pointer;transition:all .15s}
.btn-editor .size-chip.active{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}

/* ── 預覽：按鈕大小視覺差異 ── */
.bubble .b-btn.b-btn-sm{padding:8px 14px;font-size:12.5px}
.bubble .b-btn.b-btn-lg{padding:15px 18px;font-size:16px}

/* ── ① 閘門：輸入邀請碼自助開通 ── */
#gateMode .gt-invite{display:flex;gap:8px;align-items:stretch}
#gateMode .gt-invite input{flex:1;min-width:0;background:rgba(255,255,255,.92);border:none;border-radius:12px;padding:14px 14px;font-size:15px;font-weight:700;color:#17251c}
#gateMode .gt-invite input:focus{box-shadow:0 0 0 3px rgba(255,255,255,.4)}
#gateMode .gt-invite .gt-redeem{flex:0 0 auto;background:var(--gold);color:#0d5a30;border:none;border-radius:12px;padding:0 20px;font-size:15px;font-weight:900;font-family:inherit;cursor:pointer;transition:transform .12s}
#gateMode .gt-invite .gt-redeem:active{transform:translateY(1px)}
#gateMode .gt-invite .gt-redeem:disabled{opacity:.6;cursor:not-allowed}

/* ── 管理：邀請碼按鈕圖示 ── */
.func-ico.f-invite{background:linear-gradient(135deg,#0d8a45,#22b866)}

/* ── ③ 系統狀態（健康監控）小卡 ── */
.sys-card{background:var(--card);border:1px solid #b8e6c8;border-radius:14px;padding:13px 14px;margin:14px 0 6px;box-shadow:0 1px 4px rgba(27,36,54,.06)}
.sys-card.bad{border-color:#fca5a5;background:#fff7f7}
.sys-card.loading{border-color:var(--border)}
.sys-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sys-head .sys-t{font-size:13.5px;font-weight:800;color:var(--txt)}
.sys-flag{font-size:11.5px;font-weight:800;border-radius:20px;padding:3px 11px}
.sys-flag.ok{background:#dcfce7;color:#15803d;border:1px solid #86efac}
.sys-flag.bad{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}
.sys-time{font-size:11px;color:var(--txt3);margin-left:auto}
.sys-alert{margin-top:10px;background:#fef2f2;border:1px solid #fca5a5;color:#b91c1c;border-radius:10px;padding:9px 11px;font-size:12.5px;font-weight:700;line-height:1.5}
.sys-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:9px;margin-top:11px}
.sys-cell{background:var(--navy-soft);border:1px solid #cdeed9;border-radius:10px;padding:9px 10px;display:flex;flex-direction:column;gap:3px}
.sys-cell.warn{background:#fffbeb;border-color:#fcd34d}
.sys-cell .sys-cl{font-size:11px;font-weight:700;color:var(--txt2)}
.sys-cell .sys-cv{font-size:13px;font-weight:800;color:var(--txt);display:flex;align-items:center;gap:5px;line-height:1.3}
.sys-cell .sys-dot{font-size:11px;font-weight:900;color:#15803d;margin-left:auto}
.sys-cell.warn .sys-dot{color:#b45309}
.sys-notes{margin-top:11px;display:flex;flex-direction:column;gap:5px}
.sys-note-item{font-size:12px;color:#b45309;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;padding:7px 10px;line-height:1.5}
.sys-note{font-size:12.5px;color:var(--txt3);margin-top:6px}

/* ── ② 邀請碼管理 ── */
.inv-fresh{background:linear-gradient(135deg,#eafaf0,#f4fbf6);border:1.5px solid #86efac;border-radius:14px;padding:14px;margin:14px 0 4px;text-align:center;box-shadow:0 2px 10px rgba(30,158,90,.14)}
.inv-fresh .if-lbl{font-size:12.5px;font-weight:800;color:#15803d;margin-bottom:8px}
.inv-fresh .if-code{font-size:24px;font-weight:900;letter-spacing:2px;color:var(--navy);font-family:monospace;word-break:break-all;margin-bottom:10px}
.inv-fresh .if-copy{background:var(--navy);color:#fff;border:none;border-radius:10px;padding:9px 18px;font-size:13.5px;font-weight:800;font-family:inherit;cursor:pointer}
.inv-fresh .if-copy:active{transform:translateY(1px)}
.inv-gen{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:14px;margin:14px 0 6px;box-shadow:0 1px 3px rgba(27,36,54,.06)}
.inv-gen .inv-gen-t{font-size:13.5px;font-weight:800;color:var(--navy);margin-bottom:8px}
.inv-gen .inv-field{margin-top:9px}
.inv-gen .inv-create{width:100%;margin-top:13px;background:var(--green);color:#fff;border:none;border-radius:11px;padding:12px;font-size:15px;font-weight:800;font-family:inherit;cursor:pointer;box-shadow:0 3px 10px rgba(6,199,85,.28)}
.inv-gen .inv-create:active{transform:translateY(1px)}
.inv-gen .inv-create:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.inv-list{display:flex;flex-direction:column;gap:9px}
.inv-row{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:11px 12px;box-shadow:0 1px 3px rgba(27,36,54,.06)}
.inv-row.dim{opacity:.55;background:#f6f8f7}
.inv-r-top{display:flex;align-items:center;gap:8px}
.inv-code{flex:1;min-width:0;text-align:left;background:var(--navy-soft);border:1px dashed #b8e6c8;border-radius:9px;padding:8px 11px;font-size:15px;font-weight:900;letter-spacing:1px;color:var(--navy);font-family:monospace;cursor:pointer;word-break:break-all;transition:background .12s}
.inv-code:active{background:#d7f0e0}
.inv-st{flex:0 0 auto;font-size:11px;font-weight:800;border-radius:20px;padding:3px 10px}
.inv-st.ok{background:#dcfce7;color:#15803d;border:1px solid #86efac}
.inv-st.used{background:#f1f3f5;color:var(--txt2);border:1px solid var(--border)}
.inv-st.off{background:#fee2e2;color:#b91c1c;border:1px solid #fca5a5}
.inv-r-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px}
.inv-badge.pl{font-size:11px;font-weight:800;border-radius:20px;padding:3px 10px;background:var(--navy-soft);color:var(--navy);border:1px solid #b8e6c8}
.inv-uses{font-size:12px;color:var(--txt2)}
.inv-uses b{color:var(--txt);font-weight:800}
.inv-date{font-size:11px;color:var(--txt3);margin-left:auto}
.inv-note{font-size:12px;color:var(--txt2);margin-top:8px;background:#f7f9fc;border-radius:8px;padding:7px 10px;line-height:1.5}
.inv-r-act{margin-top:9px;text-align:right}
.inv-del{background:#fff;color:var(--danger);border:1.5px solid #fecaca;border-radius:9px;padding:6px 14px;font-size:12.5px;font-weight:700;font-family:inherit;cursor:pointer}
.inv-del:active{background:#fef2f2}

/* ── ④ 儀表板成效總覽 ── */
.perf-summary{background:linear-gradient(135deg,#eafaf0,#f4fbf6);border:1.5px solid #bfe6cd;border-radius:14px;padding:13px 14px;margin-bottom:12px;box-shadow:0 2px 10px rgba(30,158,90,.12)}
.perf-summary .ps-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:11px}
.perf-summary .ps-head b{font-size:14.5px;font-weight:800;color:var(--txt)}
.perf-summary .ps-head .ps-sub{font-size:11.5px;color:var(--navy);font-weight:700}
.perf-summary .ps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.perf-summary .ps-cell{background:#fff;border:1px solid #cdeed9;border-radius:11px;padding:11px 8px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.perf-summary .ps-ico{font-size:18px;line-height:1}
.perf-summary .ps-num{font-size:22px;font-weight:900;color:var(--navy);line-height:1.1}
.perf-summary .ps-lbl{font-size:11px;font-weight:600;color:var(--txt2)}
.perf-summary .ps-best{margin-top:11px;font-size:12.5px;color:var(--txt2);background:#fff;border:1px solid #cdeed9;border-radius:10px;padding:8px 11px;line-height:1.5}
.perf-summary .ps-best b{color:var(--txt);font-weight:800}
