/* ── Customer account: register / login / my account ─────────────── */
.auth-wrap{max-width:46rem;margin:2rem auto 4rem;padding:0 1rem}
.auth-card{background:#fff;border:1px solid var(--line);border-radius:1rem;padding:2rem;box-shadow:0 18px 50px rgba(21,63,58,.08)}
.auth-kicker{font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.auth-card h1{margin:.4rem 0 .5rem;font-size:1.7rem;color:var(--ink);line-height:1.25}
.auth-card>p{margin:0 0 1.2rem;color:var(--muted);font-size:.86rem;line-height:1.6}
.auth-form{display:grid;gap:.8rem}
.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.auth-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.74rem;font-weight:700;color:var(--ink)}
.auth-form input{width:100%;border:1px solid var(--line);border-radius:.55rem;padding:.6rem .7rem;font-size:.86rem;background:#fff;color:var(--ink)}
.auth-form .consent{flex-direction:row;align-items:flex-start;font-weight:500;color:var(--muted);font-size:.72rem;line-height:1.5}
.auth-form .consent input{width:auto;margin-top:.15rem;accent-color:var(--ink)}
.auth-form .btn{justify-self:start}
.auth-error{background:#fff0ed;color:#973b2c;border:1px solid #f3c7bc;border-radius:.6rem;padding:.65rem .8rem;font-size:.8rem;margin-bottom:.8rem}
.auth-switch{margin:1rem 0 0;font-size:.8rem;color:var(--muted)}
.auth-switch a{font-weight:700;color:var(--ink);border-bottom:1px solid var(--line)}
.account-wrap{max-width:72rem;margin:1.5rem auto 4rem;padding:0 1rem}
.account-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}
.account-head h1{margin:.3rem 0 .2rem;font-size:1.8rem;color:var(--ink)}
.account-head p{margin:0;color:var(--muted);font-size:.82rem}
.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.account-panel{background:#fff;border:1px solid var(--line);border-radius:.9rem;padding:1.2rem}
.account-panel-wide{grid-column:1/-1}
.account-panel h2{margin:0 0 .9rem;font-size:1rem;color:var(--ink)}
.account-list{display:grid;gap:.5rem}
.account-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem .8rem;border:1px solid var(--line);border-radius:.6rem;background:#fbfdfa;font-size:.8rem;color:var(--ink)}
.account-row>span{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.account-row small{color:var(--muted);font-size:.7rem}
.account-status{font-style:normal;font-size:.66rem;font-weight:700;padding:.2rem .5rem;border-radius:999px;background:var(--mint);color:var(--ink);text-transform:uppercase;white-space:nowrap}
.header-account{display:inline-flex;align-items:center;gap:.35rem;font-size:.8rem;font-weight:600;color:var(--ink);white-space:nowrap}
.header-account svg{width:1.05rem;height:1.05rem}
@media(max-width:760px){.auth-grid,.account-grid{grid-template-columns:1fr}.account-head{flex-direction:column;align-items:flex-start}.header-account span{display:none}}

/* ── Growth layer: promo bar, WhatsApp float, lead modal, canary ─── */
.jph-canary{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.promo-bar{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:linear-gradient(90deg,var(--ink),#1e5a52);color:#eafaf2;font-size:.78rem;font-weight:600;text-align:center}
.promo-bar svg{width:1rem;height:1rem;flex:none}
.promo-bar a{display:inline-flex;align-items:center;gap:.25rem;margin-left:.4rem;padding:.2rem .55rem;border-radius:999px;background:#e2f185;color:var(--ink);font-weight:800;white-space:nowrap}
.wa-float{position:fixed;right:1.1rem;bottom:1.1rem;z-index:70;display:inline-flex;align-items:center;gap:.45rem;padding:.7rem .95rem;border-radius:999px;background:#25d366;color:#fff;font-size:.8rem;font-weight:700;box-shadow:0 8px 22px rgba(37,211,102,.32);transition:transform .18s ease,box-shadow .18s ease}
.wa-float:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(37,211,102,.4)}
.wa-float svg{width:1.15rem;height:1.15rem}
@media(max-width:700px){.wa-float{bottom:5.4rem;right:.8rem;padding:.6rem .8rem}.wa-float span{display:none}}
body.lead-open{overflow:hidden}
.lead-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:1rem;background:rgba(9,30,27,.55);backdrop-filter:blur(3px)}
.lead-modal[hidden]{display:none}
.lead-modal-card{position:relative;width:min(100%,30rem);max-height:92vh;overflow:auto;background:#fff;border-radius:1.1rem;padding:1.6rem 1.5rem;box-shadow:0 24px 70px rgba(9,30,27,.35);animation:cardIn .3s ease both}
.lead-modal-close{position:absolute;top:.7rem;right:.7rem;display:grid;place-items:center;width:2rem;height:2rem;border:0;border-radius:50%;background:var(--paper);color:var(--muted);cursor:pointer}
.lead-modal-close:hover{background:var(--mint);color:var(--ink)}
.lead-modal-kicker{display:inline-block;font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.lead-modal-card h2{margin:.3rem 0 .4rem;font-size:1.35rem;color:var(--ink);line-height:1.25}
.lead-modal-card>p{margin:0 0 1rem;font-size:.82rem;color:var(--muted);line-height:1.6}
.lead-modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.lead-modal-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.72rem;font-weight:700;color:var(--ink)}
.lead-modal-grid label span{color:var(--accent)}
.lead-modal-grid input,.lead-modal-grid select{width:100%;border:1px solid var(--line);border-radius:.5rem;padding:.55rem .6rem;font-size:.82rem;background:#fff;color:var(--ink)}
.lead-modal .consent{display:flex;align-items:flex-start;gap:.45rem;margin:.9rem 0;font-size:.72rem;color:var(--muted);line-height:1.5}
.lead-modal .consent input{width:auto;margin-top:.15rem;accent-color:var(--ink)}
.lead-modal .honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lead-modal .btn{width:100%;justify-content:center}
.lead-modal-note{margin:.6rem 0 0;font-size:.7rem;color:var(--muted);text-align:center}
@media(max-width:520px){.lead-modal-grid{grid-template-columns:1fr}}

/* Translation console — appended refinements only; base admin.css stays untouched. */
.tr-tabs{margin-bottom:1rem}
.tr-tabs a{font-size:.72rem}
.tr-langs{margin-left:auto}
.tr-langs a{font-size:.68rem;padding:.35rem .6rem}
.tr-search{display:flex;align-items:center;gap:.8rem;margin-bottom:.8rem;flex-wrap:wrap}
.tr-search input[type=search]{width:min(26rem,100%);border:1px solid var(--line);border-radius:.45rem;padding:.5rem .7rem;font-size:.78rem}
.tr-search span{font-size:.72rem;color:var(--muted);margin-left:auto;white-space:nowrap}
.tr-only{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;color:var(--ink);cursor:pointer;white-space:nowrap}
.tr-only input[type=checkbox]{width:auto;margin:0;accent-color:var(--ink)}
.tr-edit-table td:first-child{max-width:18rem;overflow-wrap:anywhere}
.tr-edit-table small{display:block;color:var(--muted);font-size:.66rem;line-height:1.4}
.tr-edit-table textarea{width:100%;min-height:3.2rem;border:1px solid var(--line);border-radius:.4rem;padding:.45rem;font-size:.74rem;resize:vertical}
.tr-edit-table .row-actions{flex-wrap:wrap;gap:.35rem}
.tr-edit-table .row-actions button{font-size:.7rem;background:#fff;border:1px solid var(--line);border-radius:.4rem;padding:.3rem .52rem;cursor:pointer;color:var(--ink);white-space:nowrap}
.tr-edit-table .row-actions button:hover{background:var(--mint)}
.tr-edit-table .row-actions button.is-busy{opacity:.55;pointer-events:none}
.tr-edit-table tr[hidden]{display:none}
.tr-glossary input:not([type=checkbox]),.tr-glossary select{width:100%;border:1px solid var(--line);border-radius:.4rem;padding:.42rem;font-size:.72rem}
.tr-glossary input[type=checkbox]{width:auto;accent-color:var(--ink)}
.tr-glossary .tr-new{background:var(--mint)}
.tr-lang{font-size:.7rem;font-weight:700;color:var(--ink)}
.tr-page{margin-bottom:1rem;border:1px solid var(--line);border-radius:.7rem;background:#fff;overflow:hidden}
.tr-page>summary{cursor:pointer;padding:.75rem 1rem;font-size:.8rem;font-weight:700;color:var(--ink);list-style:none}
.tr-page>summary::-webkit-details-marker{display:none}
.tr-page>summary:before{content:'\25B8';display:inline-block;margin-right:.45rem;color:var(--muted)}
.tr-page[open]>summary:before{content:'\25BE'}
.tr-page[open]>summary{border-bottom:1px solid var(--line)}
.tr-page .admin-table-wrap{border:0;border-radius:0}
.tr-warn{color:#a2620d;font-weight:700}
.inline-note{font-size:.72rem;color:var(--muted)}
.ai-tag.is-ready{background:var(--mint);color:var(--ink)}
@media(max-width:700px){.tr-edit-table td:first-child{max-width:none}.tr-langs{margin-left:0;width:100%}.tr-glossary .admin-table-wrap{overflow-x:auto}}

/* SEO / GEO detail pass — article E-E-A-T blocks (frontend + backend share this file). */
.article-ai-note{margin:.7rem 0 0;padding:.65rem .85rem;background:var(--mint);border-left:3px solid var(--accent);border-radius:0 .55rem .55rem 0;font-size:var(--fs-xs);line-height:1.65;color:var(--ink)}
.article-sources{margin-top:2.5rem;padding-top:1.8rem;border-top:1px solid var(--line)}
.article-sources h2{font-size:1.25rem;margin-bottom:.5rem}
.article-sources p{font-size:var(--fs-sm);color:var(--muted);line-height:1.7;margin-bottom:1rem}
.article-sources ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.article-sources li a{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--fs-sm);font-weight:600;color:var(--ink);border-bottom:1px solid var(--line);padding-bottom:.2rem}
.article-sources li a:hover{border-color:var(--ink)}
.article-updated time,.article-meta time{white-space:nowrap}
/* Related product links appended to guides that had no in-body internal link. */
.article-related-links{margin:2rem 0 0;padding:.85rem 1rem;background:var(--mint);border-radius:.55rem;font-size:var(--fs-sm);line-height:1.8;color:var(--muted)}
.article-related-links a{font-weight:600;color:var(--ink);border-bottom:1px solid var(--line);text-decoration:none}
.article-related-links a:hover{border-color:var(--ink)}

/* ───────────────────────────────────────────────────────────
   /admin/content — translation group management redesign (2026-11-10)
   Appended refinements only; base rules in admin.css stay untouched.
   ─────────────────────────────────────────────────────────── */

/* Admin sidebar — grouped navigation so related modules read as a pipeline
   (e.g. 询盘管理 + 站内订单 = 销售与客服), not as duplicate flat items. */
.admin-sidebar nav .nav-group{display:block;margin:.95rem .65rem .2rem;font-size:.56rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#7fa593}
.admin-sidebar nav .nav-group:first-child{margin-top:0}
.admin-sidebar nav a .nav-sub{display:inline-block;margin-left:.4rem;font-style:normal;font-size:.6rem;font-weight:500;letter-spacing:0;color:#9cbcb0;vertical-align:middle}

/* List rhythm */
.tr-group-list{display:grid;gap:.9rem;margin-top:1rem}

/* Header toolbar button reads as the primary action */
.content-toolbar .admin-btn{display:inline-flex;align-items:center;gap:.45rem;background:var(--ink);color:#fff;border:1px solid var(--ink);box-shadow:0 2px 8px rgba(21,63,58,.18)}
.content-toolbar .admin-btn svg{width:1rem;height:1rem}
.content-toolbar .admin-btn:hover{background:#0f322d}

/* KPI cards — icon chip + big number, 5-up responsive grid with motion */
.i18n-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;margin:1.1rem 0}
.i18n-summary>div{display:flex;flex-direction:row;align-items:center;gap:.85rem;padding:.9rem 1rem;background:#fff;border:1px solid var(--line);border-radius:.8rem;box-shadow:0 1px 2px rgba(21,63,58,.05);transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease;animation:cardIn .4s ease both}
.i18n-summary>div:hover{box-shadow:0 6px 18px rgba(21,63,58,.12);transform:translateY(-2px);border-color:var(--mint)}
.i18n-summary .kpi-ico{flex:none;width:2.6rem;height:2.6rem;border-radius:.75rem;background:linear-gradient(135deg,var(--mint),#cfe6d7);color:var(--ink);display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(21,63,58,.06)}
.i18n-summary .kpi-ico svg{width:1.35rem;height:1.35rem}
.i18n-summary>div>div{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.i18n-summary small{font-size:.72rem;color:var(--muted);font-weight:600;letter-spacing:.02em}
.i18n-summary strong{font-size:1.7rem;line-height:1.05;color:var(--ink);font-variant-numeric:tabular-nums}
.i18n-summary span{font-size:.68rem;color:var(--muted)}
/* warn state (e.g. missing translations) draws the eye */
.i18n-summary>div.needs-work{border-color:#e7bd6a;background:linear-gradient(180deg,#fffaf0,#fff6e6);box-shadow:inset 0 0 0 1px #f0d49a}
.i18n-summary>div.needs-work .kpi-ico{background:linear-gradient(135deg,#fbe6c8,#f6d49a);color:#9a6a12}

/* Filter bar — explicit result count */
.admin-filter .filter-count{margin-left:auto;font-size:.74rem;font-weight:700;color:var(--ink);background:var(--mint);border-radius:999px;padding:.4rem .8rem;white-space:nowrap}
.admin-filter .admin-btn{flex:none;background:var(--ink);color:#fff;border:1px solid var(--ink)}
.admin-filter .admin-btn:hover{background:#0f322d}
.admin-filter .admin-link{margin-left:.2rem}

/* Group cards — colored left rail by state for instant status read */
.tr-group{border-radius:.8rem;box-shadow:0 1px 3px rgba(21,63,58,.06);transition:box-shadow .2s ease,transform .2s ease}
.tr-group:hover{box-shadow:0 10px 26px rgba(21,63,58,.13);transform:translateY(-2px)}
.tr-group.state-missing{border-left:4px solid #d8a24a}
.tr-group.state-draft{border-left:4px solid var(--accent)}
.tr-group.state-complete{border-left:4px solid #2f8f57}
.tr-group.has-missing .group-eyebrow{color:#9a6a12}

.group-head{padding:1.05rem 1.2rem;align-items:flex-start}
.group-eyebrow{display:inline-flex;align-items:center;gap:.3rem}
.group-eyebrow svg{width:.85rem;height:.85rem}
.group-badges{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;max-width:24rem;justify-content:flex-end}
.group-badges .pill{margin:0}
.group-updated{font-size:.66rem;color:var(--muted);margin-left:auto;white-space:nowrap;align-self:flex-end}

/* slug + keyword meta */
.group-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.4rem}
.group-meta code{font-size:.68rem;background:var(--paper);border:1px solid var(--line);border-radius:.4rem;padding:.2rem .5rem;color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.group-keyword{font-size:.68rem;font-weight:600;color:var(--ink);background:var(--mint);border-radius:.4rem;padding:.22rem .55rem}

/* Pill badges — high-contrast, status obvious at a glance */
.pill{display:inline-flex;align-items:center;gap:.25rem;padding:.3rem .62rem;border-radius:999px;font-size:.7rem;font-weight:700;line-height:1;white-space:nowrap;border:1px solid transparent}
.pill.published{background:#e7f0e8;color:#287145;border-color:#cfe3d2}
.pill.draft{background:#fbf2dc;color:#9a6a12;border-color:#ecd9a8}
.pill.missing{background:#fde7e1;color:#b4553f;border-color:#f3c7bc}
.pill.complete{background:var(--ink);color:#fff}

/* Legend — one row above the group list so state is never colour-only */
.lang-legend{display:flex;flex-wrap:wrap;gap:1rem;margin:.2rem 0 .2rem;padding:0;font-size:.7rem;color:var(--muted);font-weight:600}
.lang-legend span{display:inline-flex;align-items:center;gap:.35rem}
.lang-legend i.lg{width:.6rem;height:.6rem;border-radius:50%;flex:none}
.lang-legend i.lg.published{background:#2f8f57}
.lang-legend i.lg.draft{background:#d8a24a}
.lang-legend i.lg.missing{background:#b4553f}

/* Language matrix — explicit state name + tinted cells + status dot */
.lang-matrix{display:flex;flex-wrap:wrap;gap:.5rem;padding:.9rem 1.2rem;border-top:1px solid var(--line);background:#fcfdfc}
.lang-cell{align-items:flex-start;min-width:5.8rem;gap:.2rem;transition:transform .15s ease,box-shadow .15s ease}
.lang-cell:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(21,63,58,.12)}
.lang-cell .lc-meta{display:flex;flex-direction:column;gap:.1rem;min-width:0}
.lang-cell .lc-name{color:var(--ink);font-size:.66rem;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lang-cell .lc-state{font-style:normal;font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.2;display:inline-flex;align-items:center;gap:.25rem}
.lang-cell .lc-state::before{content:'';width:.5rem;height:.5rem;border-radius:50%;flex:none;background:currentColor}
.lang-cell.published{background:#e3f2e6;border-color:#bcdcc4}
.lang-cell.published .lc-state{color:#1f7a47}
.lang-cell.draft{background:#fdf3da;border-color:#ecca8e}
.lang-cell.draft .lc-state{color:#94610f}
.lang-cell.missing{background:#fbeae6;border-color:#f0c4ba}
.lang-cell.missing .lc-state{color:#b4553f}

/* Group action bar — destructive action visually de-emphasised */
.group-actions{background:#fcfcfc}
.group-actions .admin-btn.danger{background:#fff;border:1px solid #e2b6b6;color:#b4553f}
.group-actions .admin-btn.danger:hover{background:#fff3f1;border-color:#d79a9a}
.group-actions .admin-btn.secondary{background:#fff;border:1px solid #c4cfca;color:var(--ink);font-weight:600}
.group-actions .admin-btn.secondary:hover{background:var(--mint);border-color:var(--ink)}

/* Detail table state label stays legible */
.group-detail .table-status.published{background:#e7f0e8;color:#287145;border:1px solid #cfe3d2}
.group-detail .table-status.draft{background:#fbf2dc;color:#9a6a12;border:1px solid #ecd9a8}

/* Entrance motion for group cards; KPI cards animate via the rule above. */
@keyframes cardIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tr-group{animation:cardIn .45s ease both}
/* KPI grid stays 5-up on wide screens, then flows down gracefully. */
@media(max-width:1180px){.i18n-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.i18n-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){
  .i18n-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .group-badges{max-width:none;justify-content:flex-start}
  .group-updated{margin-left:0;align-self:flex-start}
  .lang-cell{min-width:0;flex:1 1 calc(33% - .5rem)}
  .admin-filter .filter-count{margin-left:0;width:100%;text-align:center}
}
@media(max-width:460px){.i18n-summary{grid-template-columns:1fr}}
/* Respect reduced-motion: never leave content hidden if animation is suppressed. */
@media(prefers-reduced-motion:reduce){.i18n-summary>div,.tr-group{animation:none;opacity:1;transform:none}}

.catalog-gate{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.catalog-gate input[type=email],.catalog-gate input[type=text]{border:1px solid var(--line);border-radius:.5rem;padding:.5rem .65rem;font-size:.8rem;min-width:12rem;background:#fff;color:var(--ink)}
.catalog-consent{display:inline-flex;align-items:center;gap:.35rem;font-size:.7rem;color:var(--muted);max-width:22rem;line-height:1.4}
.catalog-consent input{width:auto;accent-color:var(--ink)}
.catalog-unlocked{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:700;color:#287145}

/* ── Admin growth / GEO health dashboard ─────────────────────────── */
.growth-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1rem 0}
.growth-kpi{background:#fff;border:1px solid var(--line);border-radius:.8rem;padding:.9rem 1rem;box-shadow:0 1px 2px rgba(21,63,58,.05)}
.growth-kpi-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-size:.78rem;font-weight:700;color:var(--ink)}
.growth-kpi-head strong{font-size:1.6rem;line-height:1}
.growth-kpi-head small{font-size:.7rem;color:var(--muted);font-weight:600}
.growth-bar{height:.4rem;border-radius:999px;background:var(--line);overflow:hidden;margin:.6rem 0 .45rem}
.growth-bar i{display:block;height:100%;border-radius:999px}
.growth-kpi>small{font-size:.68rem;color:var(--muted)}
.growth-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.growth-checks{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.growth-checks li{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--ink)}
.growth-checks li svg{width:1rem;height:1rem;flex:none}
.growth-checks li.ok svg{color:#2f8f57}
.growth-checks li.bad{color:var(--muted)}
.growth-checks li.bad svg{color:#b4553f}
.growth-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.5rem}
.growth-links a{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:.55rem;background:#fbfdfa;font-size:.78rem;color:var(--ink)}
.growth-links a:hover{border-color:var(--ink)}
.growth-links a svg{width:.9rem;height:.9rem;flex:none;color:var(--muted)}
.growth-links code{margin-left:auto;font-size:.68rem;color:var(--muted)}
.growth-kinds{display:flex;flex-wrap:wrap;gap:.5rem;margin:.2rem 0 .8rem}
.growth-kind{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .7rem;border-radius:999px;background:var(--mint);color:var(--ink);font-size:.72rem;font-weight:600}
.growth-kind strong{font-size:.85rem}
.growth-canaries{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.5rem}
.growth-canaries span{display:flex;flex-direction:column;gap:.15rem;padding:.5rem .7rem;border:1px solid var(--line);border-radius:.5rem;background:#fbfdfa}
.growth-canaries code{font-size:.72rem;color:var(--ink);font-family:ui-monospace,Menlo,monospace}
.growth-canaries small{font-size:.66rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.growth-funnel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:.2rem 0 .8rem}
.growth-funnel>div{background:var(--paper);border-radius:.7rem;padding:.8rem 1rem;display:flex;flex-direction:column;gap:.15rem}
.growth-funnel strong{font-size:1.5rem;color:var(--ink);line-height:1.1}
.growth-funnel span{font-size:.74rem;font-weight:600;color:var(--ink)}
.growth-funnel small{font-size:.66rem;color:var(--muted)}
@media(max-width:1100px){.growth-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-funnel{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.growth-grid{grid-template-columns:1fr}}
