/* 布局与组件规则：颜色全部来自 common/static/theme.css，本文件不声明调色板。
   .green 是青屿几何/组件标记（胶囊导航、圆形 Logo 等），与 data-style 色板无关。 */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
/* 后台是数据控制台：筛选、编辑等带 #锚点 的整页跳转保持瞬时定位，避免从页首缓慢滚动到列表。 */
html:has(body.admin-page){scroll-behavior:auto}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.6}
button,input,select{font:inherit}
button,a,input,select{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
button{border:0;color:inherit;background:none}
svg{width:20px;height:20px;flex:none;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
button:disabled{cursor:not-allowed;opacity:.55}
input:disabled,select:disabled,textarea:disabled{background:var(--soft);color:var(--muted);cursor:not-allowed}
input[type=checkbox],input[type=radio],input[type=range],progress{accent-color:var(--accent)}
h1,h2,h3,p{margin:0}
h1{font-size:49px;letter-spacing:-2px;line-height:1.23;font-weight:750}
h2{font-size:21px;letter-spacing:-.5px}
h3{font-size:15px}
em{font-style:normal;color:var(--accent)}
.muted{color:var(--muted)}
.tiny{font-size:11px}
.mono{font-variant-numeric:tabular-nums}
/* Public workspace matches 卡网大全's wide 1680px shell. */
.shell{max-width:1680px;padding:0 38px;margin:auto}
.topbar{background:var(--surface);border-bottom:1px solid var(--line);height:78px}
.header-inner{height:100%;display:flex;align-items:center;gap:42px}
.brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:800;letter-spacing:-.8px;white-space:nowrap}
.brand-icon{width:33px;height:33px;border-radius:10px;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;transform:rotate(-7deg)}
.brand-icon svg{width:21px;height:21px}
.brand-icon.is-builtin{background:transparent;color:inherit;border-radius:0;transform:none;overflow:visible}
.brand-icon.is-builtin svg{width:100%;height:100%;display:block}
.brand small{display:none}
.nav{display:flex;align-items:center;gap:29px;height:100%;font-size:14px;font-weight:550}
.nav a{height:100%;display:flex;align-items:center;gap:9px;position:relative;color:var(--muted);transition:color .18s}
.nav a:not(.active):hover{color:var(--text)}
.nav a svg{display:none}
.nav a.active{color:var(--accent)}
.nav a.active:after{content:"";position:absolute;bottom:0;width:21px;height:3px;border-radius:2px;left:50%;transform:translateX(-50%);background:var(--accent)}
.header-actions{margin-left:auto;display:flex;gap:10px;align-items:center;white-space:nowrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 19px;border-radius:9px;font-weight:600;line-height:1.4;min-height:42px;transition:background .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s}
.btn:hover:not(:disabled){transform:translateY(-2px)}
.btn:active:not(:disabled){transform:translateY(0)}
.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 5px 13px color-mix(in srgb,var(--accent) 18%,transparent)}
.primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,var(--accent-deep));box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 22%,transparent)}
.primary:active:not(:disabled){box-shadow:0 3px 9px color-mix(in srgb,var(--accent) 16%,transparent)}
.secondary{background:var(--surface);border:1px solid var(--line)}
.secondary:hover:not(:disabled){background:var(--soft);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}
.subtle{background:var(--soft);color:var(--accent)}
.subtle:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 4%,var(--soft));box-shadow:0 6px 14px color-mix(in srgb,var(--accent) 12%,transparent)}
.btn.small{padding:7px 12px;font-size:12px;min-height:34px}
.mobile-menu{display:none}
.view{padding-bottom:44px}
.hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1.15fr 1fr;gap:22px;align-items:center;padding:46px 44px;border:1px solid var(--ring);background:var(--hero);border-radius:20px;min-height:368px}
.eyebrow{display:flex;align-items:center;gap:8px;color:var(--accent);font-size:10px;letter-spacing:2px;font-weight:700;margin-bottom:20px}
.dot{width:6px;height:6px;background:var(--accent);border-radius:50%;display:inline-block;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 9%,transparent)}
.hero h1{margin-bottom:19px}
.hero-desc{font-size:14px;line-height:1.9;color:var(--muted)}
.hero-actions{display:flex;gap:12px;margin-top:26px}
.hero-meta{margin-top:25px;display:flex;gap:20px;font-size:11px;color:var(--muted)}
.hero-meta span{display:flex;align-items:center;gap:6px}
.hero-meta svg{width:14px;height:14px;color:var(--accent)}
.market{background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-soft);padding:22px;position:relative;transform:rotate(-1deg);max-width:425px;width:100%;justify-self:end}
.market-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px}
.market-head strong{font-size:13px}
.live-tag{font-size:9px;letter-spacing:.5px;color:var(--accent);background:var(--soft);padding:4px 7px;border-radius:4px}
.market-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid var(--line)}
.app-logo{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;font-size:19px;font-weight:700;background:var(--soft);color:var(--accent);flex:none}
.app-logo.gpt{background:var(--brand-gpt-soft);color:var(--brand-gpt)}
.app-logo.claude{background:var(--brand-claude-soft);color:var(--brand-claude)}
.app-logo.gemini{background:var(--brand-gemini-soft);color:var(--brand-gemini)}
.app-logo.grok{background:var(--brand-grok-soft);color:var(--brand-grok)}
.app-logo.x{background:var(--brand-x-soft);color:var(--brand-x)}
.app-logo.cursor{background:var(--brand-cursor-soft);color:var(--brand-cursor)}
.app-logo img{width:66%;height:66%;object-fit:contain;display:block}
html[data-theme=dark] .app-logo img.is-mono{filter:invert(1)}
.market-label{flex:1}
.market-label b{display:block;font-size:12px}
.market-label small{font-size:10px;color:var(--muted)}
.market-price{font-size:23px;font-weight:750;letter-spacing:-1px}
.market-price small{font-size:10px;color:var(--muted);font-weight:400;letter-spacing:0}
.spark{width:52px;height:20px;color:var(--spark);margin-left:6px}
.market-foot{display:flex;justify-content:space-between;margin-top:15px;font-size:9px;color:var(--muted)}
.mini-pill{display:flex;align-items:center;gap:5px;padding:3px 7px;border:1px solid var(--line);border-radius:5px}
.search-card{margin-top:22px;padding:21px 24px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}
.search-top{display:flex;align-items:center;gap:14px;margin-bottom:13px}
.search-top h2{font-size:16px}
.search-top span{font-size:11px;color:var(--muted)}
.search-form{display:flex;align-items:stretch;gap:9px}
.input-wrap{display:flex;gap:10px;align-items:center;flex:1;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:0 14px;min-width:0;color:var(--muted);transition:border-color .18s,background .18s}
.input-wrap:hover{border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}
.input-wrap input{background:none;border:0;outline:none;color:var(--text);width:100%;height:44px;min-width:0;font-size:13px}
.input-wrap:focus-within{border-color:var(--accent)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.search-form select{border:1px solid var(--line);background:var(--bg);border-radius:9px;padding:0 12px;color:var(--text)}
.hot-words{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:12px;font-size:11px;color:var(--muted)}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:4px 12px;color:var(--muted);font-size:11px;transition:.2s}
.chip:hover,.chip.selected{background:var(--soft);color:var(--accent);border-color:var(--accent)}
.hot-words .chip.selected,.green .hot-words .chip.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.notice{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted);margin-top:15px}
.notice svg{width:14px;height:14px}
.section{margin-top:32px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}
.section-title{display:flex;align-items:center;gap:10px}
.section-title svg{color:var(--accent);width:19px}
.section-head p{font-size:11px;color:var(--muted);margin-top:3px}
.section-head a,.text-btn{font-size:12px;color:var(--accent);display:inline-flex;align-items:center;gap:6px}
.section-head a svg,.text-btn svg{width:14px;height:14px}
.section-number{display:none}
.platform-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.platform-card{padding:17px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:transform .2s,border-color .2s,box-shadow .2s;display:block;min-width:0}
.platform-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 50%,var(--line));box-shadow:var(--shadow)}
.platform-card .card-top{display:flex;gap:11px;align-items:center;margin-bottom:11px}
.platform-logo{width:39px;height:39px;display:grid;place-items:center;border-radius:11px;background:var(--logo-bg,var(--soft));color:var(--logo-color,var(--accent));font-size:19px;font-weight:750;flex:none;letter-spacing:-1px}
.card-name{min-width:0;flex:1}
.card-name h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.card-name small{color:var(--muted);font-size:9px}
.arrow-corner{color:var(--muted);font-size:16px}
.card-hot{display:grid;gap:5px;margin-top:2px}
.card-hot-title{font-size:9px;font-weight:700;letter-spacing:.5px;color:var(--muted)}
.card-hot-item{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-size:11px;line-height:1.35}
.card-hot-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-hot-item b{flex:none;color:var(--accent);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.card-hot-empty{font-size:11px;color:var(--muted)}
.platform-card p{font-size:11px;color:var(--muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.card-tags{display:flex;gap:5px;margin-top:14px}
.card-tags span{font-size:9px;padding:2px 6px;border-radius:4px;background:var(--bg);color:var(--muted)}
.card-badges{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 9px}
.card-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 7px;border:1px solid var(--line);border-radius:20px;background:var(--bg);color:var(--muted);font-size:10px;font-weight:700;line-height:1.5;white-space:nowrap}
.card-badge svg{width:11px;height:11px;stroke-width:2.3}
.card-badge.is-pinned{background:var(--soft);border-color:color-mix(in srgb,var(--accent) 26%,var(--line));color:var(--accent)}
.card-badge.is-coop{background:color-mix(in srgb,var(--coop-ink) 10%,var(--surface));border-color:color-mix(in srgb,var(--coop-ink) 32%,var(--line));color:var(--coop-ink)}
.card-badge.is-sponsor,.card-badge.is-support{background:color-mix(in srgb,var(--support-ink) 10%,var(--surface));border-color:color-mix(in srgb,var(--support-ink) 30%,var(--line));color:var(--support-ink)}
.card-badge.is-sponsor svg{fill:color-mix(in srgb,var(--support-ink) 18%,transparent)}
.relay-spotlight .section-head{margin-bottom:14px}
.relay-board-shell{overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-soft)}
.relay-board-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 52%,var(--surface));color:var(--muted);font-size:11px}
.relay-board-label{display:inline-flex;align-items:center;gap:7px;color:var(--text);font-weight:700;letter-spacing:.04em}
.relay-board-label i{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent)}
.relay-board-hint{color:var(--muted)}
.relay-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
.relay-line{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) 104px;gap:13px;align-items:center;padding:15px 18px;background:var(--surface);transition:background .18s}
.relay-line:last-child:nth-child(odd){grid-column:1/-1}
.relay-line:hover{background:color-mix(in srgb,var(--soft) 46%,var(--surface))}
.relay-line:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:transparent;transition:background .18s}
.relay-line:hover:before{background:var(--accent)}
.relay-line:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}
.relay-line-mark{position:relative;display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--accent);font-size:19px;font-weight:750;letter-spacing:-1px}
.relay-line-mark:after{content:"";position:absolute;right:0;bottom:0;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--surface)}
.relay-line-main{display:block;min-width:0}
.relay-line-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px 7px;min-width:0}
.relay-line-title h3{max-width:100%;overflow:hidden;color:var(--text);font-size:15px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.relay-line-title small{min-width:0;overflow:hidden;color:var(--muted);font-size:11px;font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.relay-line-title .card-badge{flex:none}
.relay-line-summary{display:-webkit-box;overflow:hidden;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.65;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.relay-line-summary.is-empty{opacity:.8}
.relay-line-models{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px}
.relay-line-kicker{margin-right:2px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em}
.relay-line-models .relay-chip{font-size:11px;padding:1px 7px}
.relay-line-muted{color:var(--muted);font-size:11px;line-height:1.8}
.relay-line-count{color:var(--muted);font-size:11px;line-height:1.8;white-space:nowrap}
.relay-line-side{display:flex;flex-direction:column;align-items:flex-end;gap:7px;text-align:right}
.relay-line-score{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.relay-line-score-label{color:var(--muted);font-size:10px;letter-spacing:.04em}
.relay-line-score-value{display:flex;align-items:baseline;gap:2px;color:var(--accent)}
.relay-line-score-value b{font-size:25px;line-height:1;letter-spacing:-.04em}
.relay-line-score-value small{color:var(--muted);font-size:9px}
.relay-line-link{display:inline-flex;align-items:center;justify-content:center;gap:3px;padding:4px 9px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--accent);font-size:11px;font-weight:700;white-space:nowrap;transition:background .18s,border-color .18s}
.relay-line:hover .relay-line-link{border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:var(--soft)}
.official-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.official-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;display:block;transition:transform .2s}
.official-card:hover{transform:translateY(-3px)}
.official-top{display:flex;align-items:center;gap:11px;margin-bottom:20px}
.official-top h3{font-size:14px}
.official-top p{font-size:10px;color:var(--muted)}
.official-price-row{display:flex;justify-content:space-between;align-items:end;padding-bottom:14px;border-bottom:1px solid var(--line)}
.official-price-row strong{font-size:30px;letter-spacing:-1px;color:var(--accent);line-height:1.2}
.official-price-row strong small{font-size:13px}
.official-price-row span{font-size:11px;color:var(--muted)}
.official-bottom{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-top:13px;color:var(--muted)}
.official-bottom svg{width:16px;color:var(--accent)}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.faq-grid details{border:1px solid var(--line);padding:16px 18px;border-radius:10px;background:var(--surface)}
summary{cursor:pointer;font-size:12px;font-weight:550}
details p{color:var(--muted);font-size:12px;margin-top:12px}
.footer{border-top:1px solid var(--line);padding:25px 0 30px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);gap:16px;font-size:10px}
.footer strong{color:var(--text);font-size:14px;margin-right:12px}
.footer-links{display:flex;gap:20px}
.breadcrumb{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:11px;margin:9px 0 20px}
.breadcrumb a:hover{color:var(--accent)}
.page-heading{display:flex;justify-content:space-between;align-items:center;margin:17px 0 26px;gap:20px}
.page-heading h1{font-size:34px;letter-spacing:-1px}
.page-heading p{margin-top:9px;font-size:13px;color:var(--muted)}
.count-badge{padding:10px 16px;border-radius:9px;border:1px solid var(--line);background:var(--surface);font-size:11px;white-space:nowrap}
.count-badge b{font-size:19px;color:var(--accent);margin-right:4px}
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:start}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}
.identity{display:flex;gap:17px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--line)}
.identity .platform-logo,.identity .app-logo{width:65px;height:65px;font-size:29px;border-radius:17px}
.identity h1{font-size:28px;letter-spacing:-.5px}
.identity .btn{margin-left:auto}
.identity small{color:var(--muted);font-size:11px}
.detail-tags{display:flex;gap:8px;margin-top:7px}
.detail-tags span{font-size:10px;padding:3px 8px;border-radius:5px;background:var(--soft);color:var(--accent)}
.detail-intro{padding:24px 0 0}
.detail-intro h2{font-size:16px;margin-bottom:12px}
.detail-intro p{font-size:13px;line-height:1.95;color:var(--muted)}
.detail-info{display:grid;grid-template-columns:repeat(3,1fr);margin-top:24px;padding:16px;background:var(--bg);border-radius:9px;gap:12px}
.detail-info dt{font-size:10px;color:var(--muted)}
.detail-info dd{margin:4px 0 0;font-size:12px;font-weight:550}
.detail-info div+div{border-left:1px solid var(--line);padding-left:18px}
.aside{display:flex;flex-direction:column;gap:15px}
.aside .panel{padding:21px}
.aside-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.aside-title h2{font-size:16px}
.aside-title span{font-size:9px;color:var(--muted)}
.rank-item{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line)}
.rank-item:last-child{border:0;padding-bottom:0}
.rank-number{font-size:13px;color:var(--muted);width:12px;font-style:italic}
.rank-item:nth-child(-n+4) .rank-number{color:var(--accent);font-weight:750}
.rank-item .platform-logo{width:30px;height:30px;border-radius:8px;font-size:13px}
.rank-item b{font-size:11px;display:block}
.rank-item small{font-size:9px;color:var(--muted)}
.rank-item>span:last-child{margin-left:auto;color:var(--muted);font-size:10px}
.aside-note{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.aside-note h3{font-size:12px;color:var(--accent);margin-bottom:7px}
.aside-note p{font-size:11px;color:var(--muted);line-height:1.9}
.table-panel{padding:0;overflow:hidden;margin-top:20px}
.table-title{display:flex;align-items:center;justify-content:space-between;padding:20px 23px;border-bottom:1px solid var(--line);gap:12px}
.table-title h2{font-size:16px}
.table-title span{font-size:10px;color:var(--muted)}
.table-title-side{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.mobile-sort-form{display:none;align-items:center;gap:8px;margin:0}
.mobile-sort-form label{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:0}
.mobile-sort-form select{min-height:36px;padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text)}
@media(max-width:900px){.table-title{flex-wrap:wrap}.table-title-side{width:100%;justify-content:space-between}.mobile-sort-form{display:flex}.mobile-sort-form select{font-size:16px}}
.shop-tools{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 40%,var(--surface))}
.shop-search{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:14px 23px 10px;background:transparent}
.shop-search:last-child{padding-bottom:14px}
.shop-search .market-search{flex:1 1 300px;max-width:560px;min-width:0;height:42px}
.shop-search-state{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;flex:1 1 auto;min-width:0;margin:0;color:var(--muted);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.shop-search-state a{display:inline-flex;align-items:center;min-height:36px;color:var(--accent);font-weight:650;white-space:nowrap}
.shop-search-state a:hover{text-decoration:underline}
.shop-tags{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:0 23px 13px;min-width:0}
.shop-tags-label{flex:none;margin-right:2px;color:var(--muted);font-size:11.5px;font-weight:700;letter-spacing:.2px;white-space:nowrap}
.shop-tags .market-category{flex:none}
@media(max-width:700px){.shop-search{padding:12px 18px 8px}.shop-search:last-child{padding-bottom:12px}.shop-search .market-search{flex-basis:100%}.shop-search-state{flex-basis:100%}.shop-tags{flex-wrap:nowrap;overflow-x:auto;padding:0 18px 12px;scrollbar-width:thin}}
table{border-collapse:collapse;width:100%;font-size:12px}
th{text-align:left;font-weight:500;color:var(--muted);background:var(--bg);padding:12px 22px;font-size:10px}
td{padding:16px 22px;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:0}
td b{display:block;font-size:12px}
td small{font-size:10px;color:var(--muted)}
td.price{font-size:20px;font-weight:700;letter-spacing:-.5px;color:var(--accent);white-space:nowrap}
td.price small{font-size:10px;font-weight:400;letter-spacing:0}
.stock{font-size:10px;white-space:nowrap;color:var(--accent);display:flex;align-items:center;gap:4px}
.stock:before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor}
.table-action{font-size:11px;white-space:nowrap;color:var(--accent);border:1px solid var(--line);border-radius:6px;padding:7px 10px;background:var(--surface);display:inline-block}
.table-action:hover{background:var(--soft)}
.table-note{padding:13px 22px;font-size:10px;background:var(--bg);color:var(--muted)}
.product-name:hover{color:var(--accent)}
.result-filter{display:flex;gap:8px;flex-wrap:wrap;padding:15px 22px;border-bottom:1px solid var(--line)}
.result-info{display:flex;align-items:center;gap:8px;padding:14px 22px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}
.result-info b{color:var(--accent)}
.empty{padding:60px;text-align:center;color:var(--muted)}
.empty svg{width:35px;height:35px;margin-bottom:10px}
.empty p{font-size:12px;margin-top:5px}
.platform-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:22px 0}
.platform-toolbar .input-wrap{max-width:320px}
.platform-toolbar .tabs{display:flex;gap:8px;flex-wrap:wrap}
.full-platforms{grid-template-columns:repeat(4,minmax(0,1fr))}
.price-highlight{display:flex;justify-content:space-between;align-items:center;padding:23px;background:var(--soft);border-radius:12px;margin-top:22px;gap:15px}
.price-highlight span{font-size:11px;color:var(--muted)}
.price-highlight strong{font-size:35px;color:var(--accent);letter-spacing:-1px;display:block}
.price-highlight strong small{font-size:13px;font-weight:400}
.price-highlight .btn{background:var(--surface)}
.product-spec{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}
.product-spec span{border:1px solid var(--line);border-radius:5px;padding:5px 10px;font-size:10px;color:var(--muted)}
.official-wide{margin-top:24px;display:grid;gap:20px}
.official-wide .panel{padding:25px}
.plan-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:17px 0;gap:15px}
.plan-row:last-child{padding-bottom:0}
.plan-row b{font-size:13px}
.plan-row small{color:var(--muted);font-size:10px}
.plan-row .plan-amount{margin-left:auto;text-align:right}
.plan-row .plan-amount strong{font-size:21px;color:var(--accent);display:block}
.plan-row svg{color:var(--muted);width:16px}
.steps{display:flex;gap:22px;padding-top:20px}
.step{flex:1;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}
.step b{display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:23px;height:23px;font-size:10px;color:var(--accent)}
.green-decoration{display:none}
.review-link{border-bottom:1px solid var(--line)}
.green .topbar{background:var(--bg);border:0;height:88px}
.green .brand-icon{border-radius:50% 50% 50% 12%;transform:none}
.green .header-inner{gap:45px}
.green .nav{background:var(--nav);height:40px;border-radius:30px;padding:4px;gap:0}
.green .nav a{border-radius:25px;padding:0 18px;font-size:12px}
.green .nav a.active{background:var(--surface);box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 12%,transparent)}
.green .nav a.active:after{display:none}
.green .btn{border-radius:30px;padding-left:23px;padding-right:23px;box-shadow:none}
.green .hero{border:none;min-height:380px;border-radius:28px;background:var(--hero);padding:45px 48px;overflow:hidden}
.green .hero h1{font-size:45px;font-weight:550;letter-spacing:-1.5px}
.green .hero-desc{font-size:13px}
.green .hero .eyebrow{font-size:9px;letter-spacing:2px}
.green .hero .secondary{border:1px solid var(--ring);background:transparent}
.green .market{border-radius:24px;transform:rotate(3deg);border:5px solid var(--market-border);background:var(--surface);max-width:365px;padding:21px;box-shadow:var(--market-shadow)}
.green .market-price{font-weight:550;color:var(--accent)}
.green .market-head .live-tag{border-radius:20px}
.green .green-decoration{display:block;position:absolute;width:340px;height:340px;border:1px solid var(--ring);border-radius:50%;right:-85px;bottom:-140px}
.green .green-decoration:before{content:"";position:absolute;inset:25px;border:1px solid var(--ring);border-radius:50%}
.green .green-decoration:after{content:"";position:absolute;inset:50px;border:1px solid var(--ring);border-radius:50%}
.green .hero-content{position:relative;z-index:1}
.green .search-card{max-width:990px;margin:24px auto 0;border-radius:20px;padding:23px 28px}
.green .input-wrap{border-radius:25px;background:var(--bg);padding:0 18px}
.green .search-form select{border-radius:25px}
.green .hot-words .chip{border:0;background:var(--bg)}
.green .platform-card{padding:21px;border:1px solid transparent}
.green .platform-card:hover{border-color:var(--accent)}
.green .platform-logo{border-radius:50%}
.green .card-tags span{border-radius:20px;background:var(--bg);padding:3px 9px}
.green .section{margin-top:38px}
.green .section-title svg{background:var(--soft);width:31px;height:31px;padding:7px;border-radius:50%}
.green h2{font-weight:600}
.green .official-card{padding:26px;border:0}
.green .official-top .app-logo{border-radius:50%}
.green .official-price-row strong{font-weight:550}
.green .aside .panel{border:0}
.green .identity .platform-logo{border-radius:50%}
.green .price-highlight,.green .aside-note{border-radius:20px}
.green .table-action{border-radius:20px}
.green .notice{justify-content:center}
body{font-size:15px;line-height:1.65}
.shell{max-width:1680px;padding:0 28px}
.topbar{height:64px}
.header-inner{gap:40px}
.nav{font-size:16.5px;gap:28px}
.brand{font-size:23px}
.btn{font-size:15px;min-height:40px;padding:9px 17px;border-radius:8px}
.btn.small{font-size:13px}
.header-actions{gap:12px}
.header-actions .btn{font-size:14px}
.hero{padding:32px 38px;min-height:324px;border-radius:12px;grid-template-columns:1.1fr 1fr}
.hero h1{font-size:36px;line-height:1.35;letter-spacing:-.8px;margin-bottom:15px}
.hero-desc{font-size:15px;line-height:1.8}
.eyebrow{font-size:12px;letter-spacing:1px;margin-bottom:14px}
.hero-actions{margin-top:22px}
.hero-meta{font-size:13px;gap:17px;margin-top:20px}
.hero-meta svg{width:15px;height:15px}
.market{padding:20px;max-width:430px;transform:none;border-radius:12px}
.market-head strong{font-size:15px}
.live-tag{font-size:11px}
.market-row{padding:12px 0;gap:12px}
.market-label b{font-size:14px}
.market-label small{font-size:12px}
.market-price{font-size:23px}
.market-price small{font-size:12px}
.market-foot{font-size:11px}
.market-foot svg{width:13px;height:13px}
.spark{width:44px}
.search-card{padding:22px 24px;border-radius:10px;margin-top:20px}
.search-top h2{font-size:19px}
.search-top span{font-size:13px}
.input-wrap input{font-size:15px;height:44px}
.search-form select{font-size:14px}
.hot-words{font-size:13px;gap:9px}
.chip{font-size:13px;padding:5px 13px}
.notice{font-size:12.5px;line-height:1.75}
.notice svg{width:16px;height:16px}
.section{margin-top:30px}
.section-title h2{font-size:21px;font-weight:750}
.section-head p{font-size:14px;margin-top:5px}
.section-head a,.text-btn{font-size:14px}
.section-title svg{width:21px;height:21px}
.platform-grid{gap:14px}
.platform-card{padding:19px 18px;min-height:153px}
.card-name h3{font-size:15px;font-weight:700}
.card-name small{font-size:11px}
.platform-logo{width:43px;height:43px;border-radius:10px;font-size:21px}
.platform-card p{font-size:13px}
.card-tags{margin-top:12px;gap:6px}
.card-tags span{font-size:11px;padding:3px 6px}
.official-top h3{font-size:17px}
.official-top p{font-size:13px}
.official-price-row strong{font-size:29px}
.official-price-row strong small{font-size:15px}
.official-price-row span{font-size:13px}
.official-bottom{font-size:13px}
.official-card{padding:22px}
.faq-grid details{padding:18px}
summary{font-size:15px}
.faq-grid details p{font-size:14px}
.footer{font-size:12px;padding:28px 0;line-height:1.9}
.footer strong{font-size:18px}
.footer-links button{font-size:13px}
.breadcrumb{font-size:13.5px;gap:12px;margin:14px 0 22px}
.page-heading h1{font-size:30px;line-height:1.45;letter-spacing:-.6px}
.page-heading p{font-size:15px}
.count-badge{font-size:13px}
.count-badge b{font-size:22px}
.detail-layout{grid-template-columns:minmax(0,1fr) 300px;gap:24px}
.panel{padding:28px;border-radius:10px}
.profile-panel{padding:0;overflow:hidden}
.identity{gap:20px;padding-bottom:25px}
.identity h1{font-size:28px;line-height:35px;font-weight:800}
.identity small{font-size:13px}
.identity .platform-logo,.identity .app-logo{width:72px;height:72px;font-size:31px;border-radius:14px}
.identity .btn{font-size:15px}
.profile-panel .identity{padding:30px;background:var(--identity);border:0;min-height:140px}
.profile-panel .identity .platform-logo{background:var(--surface)!important;border:1px solid var(--line);box-shadow:var(--shadow-logo)}
.profile-actions{display:flex;align-items:center;gap:12px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.profile-views{font-size:13px;background:var(--surface);border:1px solid var(--line);padding:7px 11px;border-radius:7px;white-space:nowrap;color:var(--muted)}
.profile-views b{font-size:17px;color:var(--text);margin-left:5px}
.profile-actions .btn{margin:0;white-space:nowrap}
.profile-panel .detail-intro{padding:30px}
.detail-intro h2,.table-title h2{font-size:21px;line-height:1.3;font-weight:800;margin-bottom:16px}
.detail-intro h2 small,.table-title h2 small{font-size:12px;color:var(--muted);letter-spacing:.5px;margin-left:6px;font-weight:600}
.detail-intro p{font-size:16px;line-height:1.9}
.intro-copy{border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 55%,var(--surface));border-radius:7px;padding:23px 24px}
.intro-copy h3{font-size:19px;line-height:1.5;margin-bottom:11px}
.intro-copy p{color:var(--text);opacity:.86}
.detail-intro .intro-note{font-size:13.5px;line-height:1.85;color:var(--muted);padding-top:18px;margin-top:18px;border-top:1px dashed var(--line)}
.detail-info dt{font-size:13px}
.detail-info dd{font-size:14px}
.aside{gap:18px}
.aside .panel{padding:20px}
.aside-title h2,.site-facts h2{font-size:17px;line-height:1.65;font-weight:750}
.aside-title span{font-size:12px}
.site-facts h2{padding-bottom:12px;border-bottom:1px solid var(--line)}
.site-facts dl{margin:14px 0 0;display:grid;gap:10px}
.site-facts dl>div{background:var(--bg);border:1px solid var(--line);border-radius:7px;padding:11px 13px}
.site-facts dt{color:var(--muted);font-size:13px}
.site-facts dd{margin:3px 0 0;font-size:15px;font-weight:650;word-break:break-word}
.rank-item{padding:14px 0;gap:11px}
.rank-item b{font-size:14px}
.rank-item small{font-size:11px}
.rank-item .platform-logo{width:33px;height:33px;font-size:15px}
.rank-number{font-size:13px}
.rank-item>span:last-child{font-size:12px}
.aside-note h3{font-size:15px}
.aside-note p{font-size:13px}
.aside-note svg{width:17px;height:17px}
.table-panel{padding:0}
.table-title{padding:21px 25px}
.table-title h2{margin:0}
.table-title span{font-size:12px}
.offer-table{font-size:14px}
th{font-size:13px;padding:14px 18px}
td{padding:18px;font-size:14px}
td b{font-size:15px}
td small{font-size:12px}
td.price{font-size:23px}
td.price small{font-size:12px}
.stock{font-size:12px}
.table-action{font-size:13px;padding:8px 10px}
.table-note{font-size:12px;line-height:1.75;padding:14px 24px}
.result-info{font-size:13px}
.result-filter{padding:16px 22px}
.empty p{font-size:14px}
.purchase-notes h3{font-size:17px}
.step{font-size:14px;gap:9px}
.step b{font-size:12px;width:26px;height:26px}
.product-spec span{font-size:13px}
.price-highlight{padding:22px}
.price-highlight span{font-size:13px}
.price-highlight strong{font-size:34px}
.price-highlight strong small{font-size:14px}
.plan-row{padding:19px 0}
.plan-row b{font-size:16px}
.plan-row small{font-size:13px}
.plan-row .plan-amount strong{font-size:23px}
.count-badge{white-space:nowrap}
.dashboard-intro,.metrics-grid{display:none}
.full-platforms{grid-template-columns:repeat(4,minmax(0,1fr))}
.green .topbar{height:72px}
.green .nav a{font-size:15px;padding:0 18px}
.green .nav{height:44px}
.green .hero{padding:34px 38px;min-height:325px;border-radius:20px}
.green .hero h1{font-size:36px;font-weight:650;letter-spacing:-.8px}
.green .hero-desc{font-size:15px}
.green .hero .eyebrow{font-size:12px;letter-spacing:1px}
.green .market{max-width:425px;padding:20px;border-width:3px;transform:rotate(1deg)}
.green .market-price{font-size:23px;font-weight:650}
.green .search-card{max-width:none;padding:22px 24px;margin-top:20px}
.green .section{margin-top:30px}
.green .platform-card{padding:20px 18px;border-color:var(--line)}
.green .platform-logo{border-radius:50%}
.green .card-tags span{font-size:11px}
.green .official-card{border:1px solid var(--line)}
.green .aside .panel{border:1px solid var(--line)}
.green .profile-panel .identity{background:var(--identity)}
.green .profile-panel .identity .platform-logo{border-radius:50%}
.green .intro-copy{background:var(--intro)}
.green .notice{justify-content:flex-start}
.green .btn{border-radius:22px}
.green .section-title svg{width:29px;height:29px;padding:6px}
.green .section-title h2{font-weight:750}
@media(min-width:1450px){
.shell{max-width:1680px}
.hero{min-height:330px}
}
@media(max-width:1120px){
.shell{padding:0 24px}
.header-inner{gap:24px}
.nav{gap:22px;font-size:15px}
.header-actions .btn{font-size:13px;padding:8px 12px}
.hero{padding:28px}
.hero h1,.green .hero h1{font-size:32px}
.hero-meta{font-size:12px;gap:12px}
.market .spark{display:none}
.green .hero{padding:28px}
.green .nav a{padding:0 12px;font-size:14px}
.detail-layout{grid-template-columns:minmax(0,1fr) 270px;gap:20px}
.profile-views{display:none}
.profile-panel .identity{padding:25px}
.profile-panel .detail-intro{padding:25px}
.identity .platform-logo,.identity .app-logo{width:60px;height:60px}
.profile-actions{gap:8px}
.identity h1{font-size:27px}
.intro-copy{padding:20px}
.platform-grid,.full-platforms{grid-template-columns:repeat(3,minmax(0,1fr))}
.metric-card{padding:18px;gap:12px}
.metric-icon{width:36px;height:36px}
.metric-card p{font-size:11px}
.metric-card strong{font-size:27px}
.table-action{font-size:12px}
th,td{padding-left:14px;padding-right:14px}
.offer-table td b{font-size:14px}
.offer-table td.price{font-size:21px}
.offer-table td small{font-size:11px}
.steps{gap:15px}
.step{font-size:12px}
.official-price-row span{font-size:12px}
.site-facts dd{font-size:14px}
}
@media(max-width:900px){
.header-inner{gap:20px}
.nav{gap:16px;font-size:14px}
.header-actions .submit-btn{display:none}
.hero,.green .hero{gap:20px;padding:26px}
.hero h1,.green .hero h1{font-size:29px}
.hero-desc,.green .hero-desc{font-size:14px}
.hero-desc br{display:none}
.hero-actions{gap:9px}
.hero-actions .btn{font-size:13px;padding:10px 13px}
.hero-meta{display:none}
.market,.green .market{padding:17px;transform:none}
.market-head strong{font-size:13px}
.live-tag{font-size:9px}
.market-label b{font-size:13px}
.market-label small{font-size:11px}
.market-price{font-size:22px}
.market-price small{font-size:10px}
.market-row{gap:9px}
.market .app-logo{width:31px;height:31px;font-size:17px}
.market-foot{font-size:10px}
.market-foot .mini-pill{display:none}
.detail-layout{grid-template-columns:minmax(0,1fr) 240px;gap:17px}
.panel{padding:23px}
.profile-panel{padding:0}
.profile-panel .identity{padding:23px;flex-wrap:wrap;gap:14px}
.identity h1{font-size:26px}
.identity .platform-logo,.identity .app-logo{width:52px;height:52px;font-size:26px}
.profile-actions{margin-left:0}
.profile-panel .detail-intro{padding:23px}
.detail-intro h2,.table-title h2{font-size:20px}
.intro-copy h3{font-size:18px}
.intro-copy{padding:18px}
.aside .panel{padding:18px}
.rank-item{gap:8px}
.rank-item b{font-size:13px}
.rank-item small{font-size:10px}
.rank-item>span:last-child{font-size:11px}
.rank-item .platform-logo{width:28px;height:28px;font-size:13px}
.site-facts dd{font-size:13px}
.table-panel{padding:0}
.table-title{padding:19px}
.table-title h2 small{display:none}
.table-title span{font-size:11px}
.offer-table th{font-size:11px}
.offer-table td{padding:14px 12px}
.offer-table td b{font-size:13px}
.offer-table td.price{font-size:20px}
.offer-table td small{font-size:10px}
.stock{font-size:11px}
.table-action{font-size:11px;padding:7px 8px}
.table-note{font-size:11px;padding:12px 18px}
.step{font-size:11px}
.platform-card,.green .platform-card{padding:17px}
.platform-logo{width:36px;height:36px;font-size:18px}
.card-name h3,.green .card-name h3{font-size:14px}
.platform-card p{font-size:12px}
.card-tags span{font-size:10px}
.official-card,.green .official-card{padding:18px}
.official-top h3{font-size:15px}
.official-top p{font-size:12px}
.official-price-row{align-items:start;gap:7px;flex-direction:column}
.official-bottom{font-size:12px}
.search-form.advanced{flex-wrap:wrap}
.search-form.advanced .input-wrap:first-child{flex-basis:100%}
.search-form.advanced .input-wrap{flex:1 1 25%}
.search-form.advanced select{max-width:140px}
.input-wrap input{font-size:14px}
.green .header-inner{gap:20px}
.green .nav a{font-size:13px;padding:0 11px}
.metric-card{padding:16px;gap:10px}
.metric-icon{width:30px;height:30px}
.metric-icon svg{width:19px;height:19px}
.metric-card span:not(.metric-icon){font-size:12px}
.metric-card strong{font-size:26px}
.metric-card strong small{font-size:8px;margin-left:5px}
}
@media(max-width:700px){
.shell{padding:0 18px}
.topbar,.green .topbar{height:64px;position:relative}
.header-inner,.green .header-inner{display:flex;flex-direction:row;padding:0 18px;gap:12px;height:64px}
.brand,.green .brand{font-size:21px;gap:8px}
.brand-icon{width:29px;height:29px}
.header-actions{margin-left:auto;gap:0}
.header-actions .btn{font-size:12px;padding:8px 10px;min-height:36px}
.header-actions .btn svg{width:16px;height:16px}
.mobile-menu{display:flex;padding:6px;align-items:center}
.nav,.green .nav{display:none}
.topbar.menu-open .nav{display:flex;position:absolute;top:64px;left:0;right:0;z-index:50;height:auto;flex-direction:row;justify-content:center;gap:14px;background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;padding:12px 16px;box-shadow:0 10px 25px #00000008}
.topbar.menu-open .nav a{font-size:14px;padding:5px 7px;height:36px;border-radius:6px}
.topbar.menu-open .nav a svg{display:none}
.topbar.menu-open .nav a:after{display:none}
.hero,.green .hero{grid-template-columns:1fr;padding:27px;gap:25px;border-radius:15px}
.hero h1,.green .hero h1{font-size:32px;line-height:1.35;letter-spacing:-.8px}
.hero-desc,.green .hero-desc{font-size:14px}
.eyebrow,.green .hero .eyebrow{font-size:11px;letter-spacing:.6px}
.hero-actions .btn{font-size:14px;padding:10px 15px}
.market,.green .market{padding:20px;max-width:none;width:100%;transform:none}
.market-head strong{font-size:14px}
.live-tag{font-size:10px}
.market-row{padding:12px 0;gap:12px}
.market-label b{font-size:14px}
.market-label small{font-size:12px}
.market-price,.green .market-price{font-size:24px}
.market-price small{font-size:11px}
.market .app-logo{width:35px;height:35px;font-size:19px}
.market .spark{display:block;width:40px}
.market-foot{font-size:11px}
.search-card,.green .search-card{padding:19px;margin-top:18px}
.search-top{display:block;margin-bottom:14px}
.search-top h2{font-size:18px}
.search-top span{font-size:12px;display:block;margin-top:4px}
.search-form{gap:7px}
.input-wrap{padding:0 10px;gap:6px}
.input-wrap input{font-size:13px;height:43px}
.input-wrap svg{width:17px}
.search-form>.btn{font-size:13px;padding:9px 12px;gap:6px}
.search-form>.btn svg{width:17px}
.hot-words{gap:7px;font-size:12px}
.chip{font-size:12px;padding:5px 10px}
.notice{font-size:11px;align-items:flex-start;gap:6px}
.notice svg{margin-top:2px;flex:none;width:14px;height:14px}
.section,.green .section{margin-top:27px}
.section-title h2{font-size:19px}
.section-head p{font-size:12px}
.section-head a,.text-btn{font-size:12px}
.section-title{gap:7px}
.section-title svg{width:18px;height:18px}
.platform-grid,.full-platforms{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.platform-card,.green .platform-card{padding:16px;min-height:144px}
.platform-logo{width:35px;height:35px;font-size:18px}
.card-name h3,.green .card-name h3{font-size:14px}
.card-name small{font-size:10px}
.platform-card .card-top{gap:9px}
.platform-card p{font-size:12px}
.arrow-corner{display:none}
.card-tags{gap:4px;flex-wrap:wrap}
.card-tags span,.green .card-tags span{font-size:10px;padding:3px 5px}
.official-grid{grid-template-columns:1fr;gap:13px}
.official-card,.green .official-card{padding:20px;display:grid;grid-template-columns:1fr 1fr;column-gap:12px}
.official-top{margin-bottom:12px;align-self:center;gap:10px}
.official-top h3{font-size:16px}
.official-top p{font-size:12px}
.official-top .app-logo{width:35px;height:35px}
.official-price-row{grid-column:2;grid-row:1;border:0;display:block;padding:0;text-align:right;align-self:center}
.official-price-row strong{display:block;font-size:28px}
.official-price-row span{font-size:12px}
.official-bottom{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px;margin-top:0;font-size:12px}
.faq-grid{grid-template-columns:1fr}
.faq-grid details{padding:17px}
summary{font-size:14px}
.faq-grid details p{font-size:13px}
.footer{flex-wrap:wrap;font-size:11px;gap:16px}
.footer strong{font-size:17px;margin-right:8px}
.footer-links{gap:16px}
.footer-links button{font-size:12px}
.breadcrumb{font-size:12px;gap:8px;flex-wrap:wrap;margin:9px 0 18px}
.page-heading{gap:14px;align-items:flex-start;margin:15px 0 22px}
.page-heading h1{font-size:27px;line-height:1.4}
.page-heading p{font-size:14px}
.page-heading .eyebrow{font-size:10px}
.count-badge{font-size:11px;padding:8px 10px}
.count-badge b{font-size:18px}
.detail-layout{grid-template-columns:1fr;gap:22px}
.panel{padding:22px}
.profile-panel,.table-panel{padding:0}
.profile-panel .identity{padding:23px;gap:13px;min-height:120px;flex-wrap:wrap}
.identity h1{font-size:28px}
.identity small{font-size:12px}
.identity .platform-logo,.identity .app-logo{width:54px;height:54px;font-size:26px}
.profile-actions{margin-left:auto}
.identity .btn{font-size:13px;padding:9px 12px;min-height:38px}
.identity .btn svg{width:16px}
.profile-panel .detail-intro{padding:24px}
.detail-intro h2,.table-title h2{font-size:20px}
.detail-intro h2 small{font-size:10px}
.intro-copy{padding:18px}
.intro-copy h3{font-size:17px;line-height:1.6}
.detail-intro p{font-size:15px;line-height:1.9}
.detail-intro .intro-note{font-size:12.5px}
.site-facts{display:none}
.aside .panel{padding:22px}
.aside-title h2{font-size:17px}
.aside-note{display:none}
.rank-list{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
.rank-item{padding:13px 0;gap:8px}
.rank-item b{font-size:13px}
.rank-item small{font-size:10px}
.rank-item .platform-logo{width:29px;height:29px;font-size:14px}
.rank-item>span:last-child{display:none}
.rank-item:nth-last-child(2){border:0}
.rank-number{font-size:12px}
.table-title{padding:20px}
.table-title h2 small{display:none}
.table-title span{font-size:11px}
.offer-table thead{display:none}
.offer-table,.offer-table tbody{display:block;width:100%}
.offer-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;padding:18px 20px;border-bottom:1px solid var(--line);align-items:center}
.offer-table tr:last-child{border:0}
.offer-table td{padding:0!important;display:block;border:0!important}
.offer-table td:first-child{grid-column:1;grid-row:1}
.offer-table td.price{grid-column:2;grid-row:1;font-size:24px;text-align:right}
.offer-table td:last-child{grid-column:2;grid-row:2;text-align:right}
.offer-table td:nth-child(2):not(.price){grid-column:1;grid-row:2;font-size:13px;color:var(--muted)}
.offer-table td.stock-cell{grid-column:1;grid-row:3}
.offer-table td b{font-size:14px;line-height:1.6}
.offer-table td small{font-size:12px}
.stock{font-size:11px}
.table-action{font-size:12px;padding:6px 9px}
.table-note{padding:14px 20px;font-size:11px}
.result-filter{padding:14px 20px}
.result-info{padding:13px 20px;font-size:12px}
.search-form.advanced .input-wrap:first-child{flex-basis:100%}
.search-form.advanced .input-wrap{flex-basis:40%}
.search-form.advanced select{height:40px;max-width:none;flex:1;font-size:12px}
.search-form.advanced .btn{font-size:12px;min-height:40px}
.search-form.advanced .reset{padding:9px}
.purchase-notes h3{font-size:16px}
.steps{gap:8px;flex-direction:column;padding-top:16px}
.step{font-size:13px;gap:9px}
.step b{font-size:11px;width:23px;height:23px}
.price-highlight{padding:20px;gap:12px}
.price-highlight strong{font-size:30px}
.price-highlight span{font-size:12px}
.price-highlight .btn{font-size:12px;padding:9px 11px}
.product-spec span{font-size:12px}
.product-spec{gap:6px}
.product-panel .identity{gap:12px;flex-wrap:wrap}
.product-panel .identity .btn{margin-left:auto}
.product-panel .identity h1{font-size:25px}
.country-table th,.country-table td{padding:14px 12px;font-size:12px}
.country-table td.price{font-size:21px}
.country-table td b{font-size:13px}
.country-table td small{font-size:11px}
.country-table th:first-child,.country-table td:first-child{padding-left:20px}
.platform-toolbar{flex-direction:column;align-items:stretch;gap:14px}
.platform-toolbar .input-wrap{max-width:none}
.platform-toolbar .tabs{gap:6px}
.plan-row b{font-size:15px}
.plan-row small{font-size:12px}
.plan-row .plan-amount strong{font-size:22px}
.official-wide .panel{padding:22px}
.metric-card{padding:18px;gap:12px}
.metric-icon{width:34px;height:34px}
.metric-card strong{font-size:28px}
.metric-card p{font-size:11px}
.metric-card span:not(.metric-icon){font-size:12px}
.green .hero{border-radius:18px}
.green .market{border-radius:18px}
.green .input-wrap{padding:0 12px}
.green .search-form .btn{padding-left:14px;padding-right:14px}
}
@media(max-width:420px){
.shell{padding:0 14px}
.header-inner,.green .header-inner{padding:0 14px}
.hero,.green .hero{padding:24px 20px}
.hero h1,.green .hero h1{font-size:30px}
.hero-actions .btn{font-size:12px;padding:10px 12px;gap:6px}
.hero-actions .btn svg{width:17px;height:17px}
.hero-actions{gap:9px}
.market,.green .market{padding:16px}
.market-head strong{font-size:13px}
.market-label b{font-size:13px}
.market-label small{font-size:11px}
.market .spark{width:31px}
.market-row{gap:9px}
.market-price,.green .market-price{font-size:23px}
.market-price small{font-size:10px}
.market-foot{font-size:10px}
.input-wrap input{font-size:12px}
.search-card,.green .search-card{padding:17px}
.search-form>.btn{font-size:12px;padding:9px 10px}
.hot-words{gap:5px;font-size:11px}
.chip{font-size:12px;padding:4px 9px}
.platform-card,.green .platform-card{padding:14px;min-height:143px}
.platform-logo{width:32px;height:32px;font-size:17px}
.card-name h3,.green .card-name h3{font-size:13px}
.card-name small{font-size:9px}
.platform-card .card-top{gap:7px}
.card-tags span,.green .card-tags span{font-size:10px;padding:2px 4px}
.platform-card p{font-size:12px}
.profile-panel .identity{padding:22px;gap:11px}
.profile-panel .identity small{font-size:11px}
.profile-panel .identity .platform-logo{width:50px;height:50px}
.profile-panel .identity>div:not(.profile-actions){flex:1;min-width:0}
.profile-actions{margin-left:61px}
.profile-panel .identity{min-height:155px}
.profile-panel .detail-intro{padding:22px}
.intro-copy{padding:17px}
.detail-intro h2 small{font-size:10px;margin-left:5px}
.intro-copy h3{font-size:17px}
.rank-list{column-gap:17px}
.rank-item b{font-size:12px}
.rank-item small{font-size:9px}
.rank-item{gap:7px}
.rank-item .platform-logo{width:26px;height:26px}
.price-highlight{padding:17px}
.price-highlight strong{font-size:28px}
.price-highlight .btn{font-size:11px;padding:8px 10px}
.price-highlight .btn svg{width:15px;height:15px}
.product-panel .identity .btn{margin-left:65px}
.product-panel .identity h1{font-size:24px}
.product-panel .identity small{font-size:11px}
.country-table th,.country-table td{font-size:11px;padding:13px 10px}
.country-table td.price{font-size:20px}
.offer-table td.price{font-size:23px}
.offer-table td b{font-size:13px}
.offer-table td small{font-size:11px}
.table-title h2{font-size:19px}
.page-heading h1{font-size:25px}
.page-heading p{font-size:13px}
.metric-card{padding:15px;gap:10px}
.metric-icon{width:30px;height:30px}
.metric-card strong{font-size:27px}
.metric-card p{font-size:10px}
.notice{font-size:11px}
}
@media(max-width:1020px){.relay-board{grid-template-columns:1fr}}
@media(max-width:760px){
 .relay-board-bar{align-items:flex-start;flex-direction:column;gap:3px;padding:10px 14px}
 .relay-line{grid-template-columns:42px minmax(0,1fr);gap:10px;padding:13px 14px}
 .relay-line-mark{width:42px;height:42px;font-size:18px}
 .relay-line-main{grid-column:2}
 .relay-line-side{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px dashed var(--line);text-align:left}
 .relay-line-score{flex-direction:row;align-items:baseline;gap:5px}
 .relay-line-score-label{font-size:10px;letter-spacing:0}
 .relay-line-score-value b{font-size:21px}
 .relay-line-title h3{font-size:14px}
}
@media(max-width:560px){.relay-line-summary{-webkit-line-clamp:1}}
@media(max-width:700px){.card-badge{font-size:11px;padding:3px 9px}}
@media(prefers-reduced-motion:reduce){
*{scroll-behavior:auto!important;transition:none!important}
}
@media(min-width:701px) and (max-width:960px){
.detail-layout{grid-template-columns:minmax(0,1fr) 235px;gap:18px}
.table-panel{overflow-x:auto}
.offer-table{min-width:590px}
.country-table{min-width:440px}
.product-panel .identity{flex-wrap:wrap}
.product-panel .identity .btn{margin-left:0}
.price-highlight{flex-wrap:wrap}
.search-form.advanced .input-wrap{flex-basis:40%}
.search-form.advanced select{flex:1;max-width:none}
}
@media(max-width:700px){
.profile-panel .identity{display:grid;grid-template-columns:54px minmax(0,1fr);gap:14px;min-height:0}
.profile-panel .identity>div:not(.profile-actions){min-width:0}
.profile-panel .identity h1{overflow-wrap:anywhere}
.profile-panel .profile-actions{grid-column:2;margin:0;padding:0}
.profile-panel .identity .platform-logo{grid-row:1;align-self:center}
.profile-panel .identity .btn{margin:0}
.product-panel .identity{display:grid;grid-template-columns:54px minmax(0,1fr);gap:13px}
.product-panel .identity>.btn{grid-column:2;justify-self:start;margin:0}
.product-panel .identity>div{min-width:0}
}

/* Production palette: preserve the green prototype geometry in both modes. */
.green .nav{background:var(--nav)}.green .nav a.active{background:var(--surface);box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 12%,transparent)}.green .hero{background:var(--hero)}.green .hero .secondary{border-color:var(--ring)}.green .market{background:var(--surface);border-color:var(--market-border)}.green .green-decoration,.green .green-decoration:before,.green .green-decoration:after{border-color:var(--ring)}.green .profile-panel .identity{background:var(--identity)}.green .intro-copy{background:var(--intro)}.green .platform-card:hover{border-color:var(--accent)}.platform-logo{background:var(--soft);color:var(--accent)}.stock{color:var(--accent)}.stock.muted{color:var(--muted)}
main.view{padding-top:24px;min-height:65vh}.brand{min-width:0}.brand>span:last-child{max-width:240px;overflow:hidden;text-overflow:ellipsis}.brand-icon{flex:none}.brand-icon img{width:100%;height:100%;object-fit:contain;border-radius:inherit}.mobile-navigation{display:none}.market-empty{text-align:center;padding:15px 8px 17px;min-height:200px}.market-empty-icon{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--soft);color:var(--accent);margin-bottom:12px}.market-empty h2{font-size:18px}.market-empty p{font-size:13px;color:var(--muted);line-height:1.9;margin:8px 0 14px}.market-empty a{font-size:13px;color:var(--accent)}.market-label{min-width:0}.market-label b{overflow-wrap:anywhere}.market-price{font-variant-numeric:tabular-nums;font-size:20px!important;white-space:nowrap}.market-foot{align-items:center;gap:8px}.empty .btn{margin-top:16px}.empty.small{padding:12px 0}.full-width{grid-column:1/-1}.directory-search{max-width:620px;margin:0 0 24px}.pagination{display:flex;gap:16px;align-items:center;justify-content:center;margin:26px 0;color:var(--muted);font-size:14px}.purchase-notes{margin-top:20px}.green .comparison-search{margin-top:0}.table-scroll{max-width:100%;overflow-x:auto}.quote-table{min-width:720px}.quote-table small{display:inline-block;margin-top:5px;line-height:1.8}.quote-table td.price{font-variant-numeric:tabular-nums;font-size:20px}.history-table{min-width:540px}.detail-layout>div,.aside,.identity>div{min-width:0}.identity h1{overflow-wrap:anywhere}.result-info{overflow-wrap:anywhere}.rank-item>div{min-width:0}.rank-item b{overflow-wrap:anywhere}.table-title h2{overflow-wrap:anywhere}.footer-links{flex-wrap:wrap}.status-notice{padding:14px 18px;background:var(--soft);border:1px solid var(--line);border-radius:12px;margin-bottom:20px}.error{color:var(--danger)}
/* Native forms and administration retain their existing behavior. */
.wrap{max-width:1280px;margin:auto;padding:30px 28px}.page-head{margin:12px 0 24px}.page-head h1,.auth h1{font-size:30px;line-height:1.4;letter-spacing:-.5px;margin:8px 0 14px}.page-head p{color:var(--muted)}.form{display:grid;gap:16px;max-width:620px;margin-bottom:32px}.form label{display:grid;gap:6px;font-weight:650}.form input,.form textarea,.form select{min-height:46px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);padding:0 14px;font:inherit}.form textarea{padding:10px;min-height:110px}.form label small{font-weight:400;color:var(--muted)}.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form button,.button{display:inline-flex;justify-content:center;align-items:center;background:var(--accent);color:var(--accent-ink);border-radius:22px;padding:11px 20px;font-weight:650;font-size:15px;transition:background .18s,box-shadow .18s,transform .18s}
.form>button:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,var(--accent-deep));transform:translateY(-1px)}.button.outline{background:transparent;color:var(--accent);border:1px solid var(--accent)}.auth{max-width:460px;margin:45px auto}.check{display:flex!important;align-items:center;gap:10px}.check input{min-height:0;width:18px;height:18px}.honeypot{position:absolute;left:-9999px}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.admin-nav{display:flex;flex-wrap:wrap;gap:20px;margin-bottom:24px}.admin-nav a{color:var(--accent)}.source-card,.card,.note,.offer{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px;overflow-wrap:anywhere}.source-card h2{font-size:19px;margin-bottom:12px}.source-card h3{font-size:17px}.source-card small{font-size:12px;font-weight:400}.source-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:16px}.source-actions form{margin:0}.source-url{overflow-wrap:anywhere}.inline{margin-top:25px}.offers{display:grid;gap:12px}.offer{display:flex;justify-content:space-between;gap:14px;align-items:center}.offer strong{color:var(--accent)}.offer p,.offer small,.card p,.note{color:var(--muted)}.note{margin-top:20px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}input,select,textarea{min-width:0;max-width:100%}textarea{font:inherit}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.input-wrap:focus-within{outline:2px solid var(--accent);outline-offset:2px}.search-form .input-wrap input:focus-visible{outline:none}
.admin-layout{display:grid;grid-template-columns:224px minmax(0,1fr);gap:30px;align-items:start}.admin-sidebar{position:sticky;top:22px;min-height:calc(100vh - 150px);padding:18px 12px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column}.admin-sidebar-head{padding:3px 12px 17px;border-bottom:1px solid var(--line)}.admin-sidebar-head strong{display:block;font-size:18px;letter-spacing:-.2px}.admin-sidebar-kicker{display:block;color:var(--accent);font-size:10px;letter-spacing:1.5px;font-weight:750;margin-bottom:7px}.admin-nav{display:grid;gap:18px;margin:18px 0 0}.admin-nav-group{display:grid;gap:4px}.admin-nav-label{padding:0 12px 5px;color:var(--muted);font-size:11px;font-weight:650}.admin-nav a{display:flex;align-items:center;gap:10px;min-height:42px;padding:0 12px;border-radius:10px;color:var(--muted);font-size:14px;font-weight:600;transition:background .18s,color .18s}.admin-nav a span{width:17px;color:var(--accent);font-size:16px;text-align:center}.admin-nav a:hover{background:var(--soft);color:var(--accent)}.admin-nav a.active{background:var(--soft);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.admin-sidebar-foot{display:flex;align-items:center;gap:7px;margin:auto 12px 3px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.admin-status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.admin-content{min-width:0}.admin-content>.notice:first-child{margin-top:0}.admin-layout .page-head{margin-top:0}
.shell.admin-layout{max-width:none;padding-left:38px;padding-right:38px}.admin-content{min-width:0}.admin-breadcrumb-wrap{border-bottom:1px solid var(--line);padding:0 0 15px;margin:0 0 24px}.admin-breadcrumb{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}.admin-breadcrumb a{color:var(--accent);font-weight:650}.admin-breadcrumb a:hover{text-decoration:underline}.admin-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 20px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.admin-search{display:flex;align-items:center;gap:8px;flex:1;max-width:680px}.admin-search label{font-size:13px;font-weight:650;white-space:nowrap}.admin-search input{height:42px;min-width:0;flex:1;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);padding:0 12px;font:inherit}.admin-search .btn{min-height:42px;padding:8px 16px}.admin-list-summary{font-size:12px;color:var(--muted);white-space:nowrap}.admin-pagination{display:flex;justify-content:center;align-items:center;gap:14px;margin:24px 0;color:var(--muted);font-size:13px}.admin-pagination a{padding:8px 12px;border:1px solid var(--line);border-radius:8px;color:var(--accent);background:var(--surface)}.admin-pagination a:hover{background:var(--soft)}
@media(max-width:1120px) and (min-width:701px){.green .header-inner{gap:18px}.brand>span:last-child{max-width:185px}.green .nav a{padding:0 11px;font-size:14px}}
@media(max-width:700px){main.view{padding-top:18px}.shell{padding-left:18px;padding-right:18px}.green .header-inner{padding-left:18px;padding-right:18px;gap:8px}.brand>span:last-child{max-width:138px}.header-actions .btn{font-size:12px;padding:8px 10px!important;min-height:40px}.mobile-navigation{display:block}.mobile-navigation summary{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;font-size:21px;list-style:none}.mobile-navigation summary::-webkit-details-marker{display:none}.mobile-navigation[open] nav{position:absolute;left:18px;right:18px;top:64px;z-index:30;display:grid;gap:4px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.mobile-navigation nav a{padding:10px 14px;border-radius:8px}.mobile-navigation nav a:hover{background:var(--soft)}.hero-actions{flex-wrap:wrap}.market-empty{min-height:185px}.green .market{transform:none}.green .hero{padding:25px 22px}.input-wrap input,.form input,.form textarea,.form select,.search-form select{font-size:16px}.search-form{flex-wrap:wrap}.search-form .input-wrap{flex:1 1 160px}.search-form select{min-height:44px;max-width:100%}.search-form .btn{min-height:44px}.section-head{align-items:flex-start}.section-head>a{white-space:nowrap;font-size:12px;margin-top:5px}.section-head p{font-size:13px}.section-title h2{font-size:19px}.green .platform-card{padding:16px 12px}.card-name h3{font-size:14px}.green .card-tags span{font-size:11px}.card-name small{font-size:11px}.platform-card p{font-size:13px}.page-heading{flex-wrap:wrap}.site-facts{display:block}.aside-note{display:block}.rank-item>span:last-child{display:block;font-size:11px}.rank-list{display:block}.rank-item b{font-size:14px}.rank-item small{font-size:12px}.quote-table td{padding:14px}.quote-table td.price{font-size:18px}.table-title{align-items:flex-start}.table-title h2{font-size:19px}.table-title span{white-space:nowrap}.price-highlight{flex-wrap:wrap}.price-highlight strong{font-size:28px}.admin-grid,.grid,.form .row{grid-template-columns:1fr}.offer{flex-direction:column;align-items:flex-start}.empty{padding:32px 20px}.footer{align-items:flex-start}.notice{font-size:12px}.green .hero .eyebrow{font-size:11px}.identity .btn{white-space:normal}.history-table{min-width:490px}}
.admin-layout{gap:22px}
.admin-page .topbar .shell,.admin-page>.shell{max-width:none;padding-left:38px;padding-right:38px}
.admin-page .admin-layout{min-height:calc(100vh - 150px)}
.admin-search{max-width:900px;align-items:flex-end;flex-wrap:wrap}.admin-search label{display:grid;gap:5px;min-width:0;white-space:normal}.admin-search-query{flex:1 1 220px}.admin-search-filter{flex:0 1 150px}.admin-search input,.admin-search select{height:42px;width:100%;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);padding:0 12px;font:inherit}.admin-list-toolbar{margin-top:16px}.admin-pagination{flex-wrap:wrap}.admin-breadcrumb{flex-wrap:wrap}
@media(max-width:800px){.shell.admin-layout{padding-left:18px;padding-right:18px}.admin-layout{display:flex;flex-direction:column;gap:20px}.admin-content{order:1;width:100%}.admin-sidebar{order:2;position:static;width:100%;min-height:0;padding:15px 12px}.admin-sidebar-head{display:flex;align-items:baseline;gap:10px;padding:2px 10px 13px}.admin-sidebar-head strong{font-size:16px}.admin-sidebar-kicker{margin:0}.admin-nav{display:flex;gap:7px;overflow-x:auto;margin:14px 0 0;padding-bottom:3px;scrollbar-width:thin}.admin-nav-group{display:flex;gap:5px;align-items:center;flex:none}.admin-nav-label{display:none}.admin-nav a{min-height:38px;white-space:nowrap;padding:0 12px;font-size:13px}.admin-nav a.active{box-shadow:inset 0 -3px 0 var(--accent)}.admin-sidebar-foot{margin:13px 10px 0;padding-top:12px}.admin-list-toolbar{align-items:stretch;flex-direction:column}.admin-search{max-width:none}.admin-list-summary{white-space:normal}}
.official-wide .official-top h2{font-size:23px}.official-wide .plan-row>div:first-child>small{display:block;margin-top:4px}.official-wide .plan-amount{flex:none}.official-wide .official-top p{margin-top:5px}.official-wide .plan-row{overflow-wrap:anywhere}.official-wide .plan-row>div:first-child{min-width:0}@media(max-width:700px){.official-wide .official-top h2{font-size:20px}.official-wide .plan-row{flex-wrap:wrap}.official-wide .plan-amount strong{font-size:21px}}
@media(max-width:800px){.admin-page .topbar .shell,.admin-page>.shell{padding-left:18px;padding-right:18px}.admin-search{flex-wrap:wrap}.admin-search input{flex:1 1 160px}.admin-page .header-inner>.eyebrow{display:none}}

/* Admin shell: spacious full-height workspace with a quiet left rail. */
.admin-app{display:flex;min-height:100vh;background:var(--bg)}
.admin-app .admin-sidebar{position:sticky;top:0;flex:0 0 236px;width:236px;height:100vh;min-height:0;padding:0 12px;background:color-mix(in srgb,var(--surface) 76%,var(--bg));border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none;overflow-y:auto}
.admin-brand{height:86px;margin:0 -12px;padding:0 20px;border-bottom:1px solid var(--line);display:flex;align-items:center}
.admin-brand>a{display:flex;align-items:center;gap:11px;min-width:0}
.admin-brand .brand-icon{width:38px;height:38px;border-radius:12px;flex:none}
.admin-brand .brand-icon svg{width:23px;height:23px}
.admin-brand>a>span:last-child{display:grid;gap:1px;min-width:0}
.admin-brand strong{font-size:18px;line-height:1.2;letter-spacing:-.4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin-brand small{color:var(--muted);font-size:11px}
.admin-app .admin-nav{gap:5px;margin:24px 0 0}
.admin-app .admin-nav-group{gap:4px;margin-bottom:14px}
.admin-app .admin-nav-label{padding:0 12px 6px;color:var(--muted);font-size:11px;font-weight:650}
.admin-app .admin-nav a{gap:11px;min-height:44px;padding:0 12px;border-radius:10px;color:var(--muted);font-size:14px;font-weight:600}
.admin-app .admin-nav a:hover{background:var(--soft);color:var(--accent)}
.admin-app .admin-nav a.active{background:var(--soft);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.admin-app .admin-nav-icon{width:18px;height:18px;display:grid;place-items:center;flex:none}
.admin-app .admin-nav-icon svg{width:17px;height:17px;stroke-width:1.8}
.admin-app .admin-sidebar-foot{margin:auto 12px 20px;padding-top:15px;border-top:1px solid var(--line);font-size:11px}
.admin-main{min-width:0;flex:1;display:flex;flex-direction:column;min-height:100vh}
.admin-topbar{height:70px;flex:none;padding:0 38px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--surface);border-bottom:1px solid var(--line)}
.admin-topbar .admin-breadcrumb-wrap{border:0;padding:0;margin:0}
.admin-topbar .admin-breadcrumb{font-size:14px;gap:13px}
.admin-top-actions{display:flex;align-items:center;gap:12px;color:var(--muted)}
.admin-icon-link{width:36px;height:36px;display:grid;place-items:center;border:1px solid transparent;border-radius:50%;font-size:19px;color:var(--muted)}
.admin-icon-link:hover{background:var(--soft);color:var(--accent)}
.admin-user{padding-left:7px;font-size:13px;font-weight:650;color:var(--text)}
.admin-content-shell{flex:1;padding:30px 38px 0;min-width:0}
.admin-content-shell>.footer{margin-top:44px}
.admin-content-shell .page-head{margin:0 0 25px}
.admin-content-shell .page-head h1{font-size:31px}
.admin-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.admin-stat-card{position:relative;display:grid;gap:7px;min-height:156px;padding:22px 21px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);transition:transform .18s,border-color .18s}
.admin-stat-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.admin-stat-icon{position:absolute;top:20px;right:20px;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--soft);color:var(--accent)}
.admin-stat-icon svg{width:22px;height:22px}
.admin-stat-card small{color:var(--muted);font-size:12px}
.admin-stat-card strong{font-size:21px;letter-spacing:-.4px}
.admin-stat-card em{margin-top:auto;font-size:12px;color:var(--accent);font-style:normal}
.admin-dashboard-panel{margin-top:24px;padding:21px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.admin-dashboard-panel h2{font-size:16px}.admin-dashboard-panel p{margin-top:5px;color:var(--muted);font-size:13px}
.admin-editor{margin:0 0 18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.admin-editor summary{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;color:var(--accent);font-size:14px;font-weight:700;list-style:none;cursor:pointer}
.admin-editor summary::-webkit-details-marker{display:none}.admin-editor summary b{font-size:21px;font-weight:400}.admin-editor[open] summary{border-bottom:1px solid var(--line)}
.admin-editor .form{padding:20px 18px;margin:0;max-width:760px}
.admin-editor .form [data-official-product-custom]{margin-top:6px}
.admin-list-panel{overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}
.admin-list-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:16px;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}
.admin-list-row:last-child{border-bottom:0}
.admin-list-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--soft);color:var(--accent);font-size:18px;font-weight:750}
.admin-list-body{min-width:0}.admin-list-title{display:flex;align-items:center;gap:10px}.admin-list-title h3{font-size:16px}.admin-list-body p{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-list-body small{display:block;margin-top:4px;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-pill{padding:4px 9px;border-radius:20px;font-size:11px;font-weight:650;white-space:nowrap}.status-ok{background:var(--soft);color:var(--accent)}.status-draft{background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.status-pin{background:color-mix(in srgb,var(--accent) 15%,var(--surface));color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 32%,transparent)}
.admin-list-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.admin-list-actions a{padding:7px 10px;color:var(--muted);border-radius:8px;font-size:12px}.admin-list-actions a:hover{background:var(--soft);color:var(--accent)}
.admin-pin-form{display:flex;align-items:center;gap:6px;margin:0}
.admin-pin-form input[type=number]{width:58px;min-height:32px;padding:4px 6px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font-size:12px;text-align:center}
.admin-pin-form .btn{min-height:32px;padding:5px 9px;font-size:12px}
.source-pin-cell{white-space:nowrap}
.source-site + .status-pill{display:inline-flex;margin-top:5px}
@media(max-width:1050px){.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.admin-app{display:block}.admin-app .admin-sidebar{position:static;width:100%;height:auto;padding:0 12px;border-right:0;border-bottom:1px solid var(--line);overflow:visible}.admin-brand{height:72px}.admin-app .admin-nav{display:flex;gap:6px;overflow-x:auto;margin:12px 0 10px;padding-bottom:3px}.admin-app .admin-nav-group{display:flex;gap:5px;align-items:center;flex:none;margin:0}.admin-app .admin-nav-label,.admin-sidebar-foot{display:none}.admin-app .admin-nav a{min-height:38px;white-space:nowrap}.admin-main{min-height:0}.admin-topbar{height:62px;padding:0 18px}.admin-user{display:none}.admin-content-shell{padding:22px 18px 0}.admin-list-row{grid-template-columns:42px minmax(0,1fr);gap:11px;padding:16px 14px}.admin-list-actions{grid-column:2}.admin-list-body p{white-space:normal}.admin-stat-grid{grid-template-columns:1fr}.admin-dashboard-panel{align-items:flex-start;flex-direction:column}}

/* Official subscription filters retain full-page GET navigation. */
.official-search{flex-wrap:wrap}.official-search>input{max-width:150px}.official-wide .source-card{overflow-wrap:anywhere}.official-wide .plan-row{gap:14px}.official-wide .plan-row>div{min-width:0}
@media(max-width:600px){.official-search{display:grid;grid-template-columns:1fr 1fr}.official-search .input-wrap{grid-column:1/-1}.official-search>input{max-width:100%;min-width:0}.official-search select{min-width:0;width:100%}.official-wide .plan-row{flex-wrap:wrap}.official-wide .plan-amount{margin-left:auto}}

/* First-install forms share the public theme and remain usable without JS. */
.install-page{max-width:620px}.install-page>p{margin:12px 0 20px;line-height:1.8}.install-recovery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px;list-style:none;background:var(--soft);border:1px solid var(--line);border-radius:12px}.install-recovery code{font-size:13px;overflow-wrap:anywhere}.install-page .form p{line-height:1.8}.install-page .error{border:1px solid var(--accent)}
@media(max-width:450px){.install-recovery{grid-template-columns:1fr}.install-page{margin:24px auto}.install-page h1{font-size:26px}}

.admin-list-title{flex-wrap:wrap}.admin-list-title h3{overflow-wrap:anywhere}.admin-brand .brand-icon img{width:100%;height:100%;object-fit:contain;border-radius:inherit}
.admin-section-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:8px 0 14px;flex-wrap:wrap}.admin-section-head h2{font-size:21px;font-weight:650}.admin-section-head p{max-width:640px;color:var(--muted);font-size:13px;line-height:1.7}
.admin-review-form{margin:0 0 8px}
.admin-bulk-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:0 0 12px;padding:12px 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.admin-bulk-bar .check{font-size:13px;font-weight:650;color:var(--text)}
.admin-bulk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.admin-bulk-actions .btn{min-height:40px;padding:8px 16px;font-size:13px}
.admin-list-row.has-check{grid-template-columns:22px 48px minmax(0,1fr) auto}
.admin-list-check{display:grid;place-items:center;min-height:44px}
.admin-list-check input{width:18px;height:18px;min-height:0;accent-color:var(--accent)}
.status-paused{background:var(--bg);color:var(--muted);border:1px solid var(--line)}
@media(max-width:800px){.admin-bulk-bar{align-items:stretch;flex-direction:column}.admin-bulk-actions{margin-left:0}.admin-list-row.has-check{grid-template-columns:22px 42px minmax(0,1fr)}.admin-list-row.has-check .admin-list-actions{grid-column:2 / -1}}

/* Shared icon-only theme control for public, admin and authentication layouts. */
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--soft);color:var(--accent);transition:background .18s,border-color .18s,color .18s}
.theme-toggle:hover{background:var(--surface);border-color:var(--accent)}
.theme-toggle svg{width:20px;height:20px}
.theme-toggle .theme-sun{display:none}
html[data-theme=dark] .theme-toggle .theme-moon{display:none}
html[data-theme=dark] .theme-toggle .theme-sun{display:block}

/* Source review workspace: overview cards, unified selection bars and structured rows. */
.review-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px 30px;flex-wrap:wrap}
.review-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.review-head-actions .btn{margin:0}
.review-head-actions b{font-variant-numeric:tabular-nums}
.review-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 20px}
.review-summary-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto auto;gap:1px 14px;padding:17px 19px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);color:var(--text)}
.review-summary-card:hover{border-color:var(--accent);transform:translateY(-1px)}
.review-summary-card .review-summary-icon{grid-row:1 / span 3;align-self:center;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--soft);color:var(--accent)}
.review-summary-card svg{width:21px;height:21px}
.review-summary-card small{color:var(--muted);font-size:12px}
.review-summary-card strong{font-size:26px;line-height:1.25;letter-spacing:-.6px;font-variant-numeric:tabular-nums}
.review-summary-card em{color:var(--accent);font-size:12px;font-style:normal;line-height:1.6;overflow-wrap:anywhere}
.review-filter .admin-list-toolbar{margin:0 0 22px}
.product-quick-search{margin:0 0 16px;padding:11px 14px;background:var(--surface);border:1px solid var(--line);border-radius:13px}
.product-quick-search>span{font-weight:700;letter-spacing:.2px;color:var(--muted)}
.review-panel{scroll-margin-top:18px;margin:0 0 30px}
.review-panel-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 14px}
.review-panel-head h2{display:flex;align-items:center;gap:10px;font-size:22px;letter-spacing:-.3px}
.review-panel-count{padding:2px 10px;border-radius:20px;background:var(--soft);color:var(--accent);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.review-panel-head p{max-width:760px;margin-top:6px;color:var(--muted);font-size:13px;line-height:1.8}
.review-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:13px 16px;margin:0 0 12px;background:var(--soft);border:1px solid var(--line);border-radius:14px}
.review-bulk .check{font-size:13px;font-weight:650;color:var(--text)}
.review-bulk-confirm{flex:1 1 280px;min-width:0}
.review-bulk-count{padding:3px 10px;border-radius:20px;background:var(--surface);border:1px solid var(--line);color:var(--accent);font-size:12px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.review-bulk-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.review-bulk-actions .btn{min-height:38px;padding:8px 15px;font-size:13px;margin:0}
.review-bulk-actions .btn:disabled{cursor:not-allowed;opacity:.6;transform:none}
.review-panel-head>.review-bulk{margin:0;padding:0;background:transparent;border:0;border-radius:0}
.review-list{background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);overflow:hidden}
.review-item{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:14px;align-items:start;padding:18px 20px;border-bottom:1px solid var(--line)}
.review-item:last-child{border-bottom:0}
.review-item:hover{background:color-mix(in srgb,var(--soft) 45%,var(--surface))}
.review-item-check{display:grid;place-items:center;min-height:26px;padding-top:1px}
.review-item-check input{width:18px;height:18px;min-height:0;accent-color:var(--accent)}
.review-item-main{min-width:0}
.review-item-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.review-item-title h3{font-size:16px;line-height:1.45;overflow-wrap:anywhere}
.review-tag{padding:3px 9px;border-radius:20px;background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:650;overflow-wrap:anywhere}
.review-tag.muted{color:var(--muted);border-style:dashed}
.review-meta{display:flex;flex-wrap:wrap;gap:5px 26px;margin:9px 0 0}
.review-meta div{display:flex;gap:7px;min-width:0;max-width:100%}
.review-meta dt{flex:none;color:var(--muted);font-size:11px;font-weight:650;line-height:1.9}
.review-meta dd{margin:0;color:var(--text);font-size:12px;line-height:1.9;overflow-wrap:anywhere}
.review-meta dd a{color:var(--accent)}
.review-meta dd a:hover{text-decoration:underline}
.review-item-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.review-item-actions .btn{margin:0}
.review-source-link{padding:6px 11px;border:1px solid var(--line);border-radius:20px;color:var(--muted);font-size:12px;white-space:nowrap;background:var(--surface)}
.review-source-link:hover{background:var(--soft);color:var(--accent)}
.review-item-disabled .review-item-main{opacity:.72}
.review-empty{padding:38px 24px;text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:17px}
.review-empty h3{font-size:17px}
.review-empty p{margin:8px auto 16px;max-width:520px;color:var(--muted);font-size:13px;line-height:1.8}
.review-empty .btn{margin:0}
.review-add{scroll-margin-top:18px;margin-top:6px}
.review-form-hint{margin:0;color:var(--muted);font-size:12px;line-height:1.8}
.review-add .form button{justify-self:start;margin:0}
@media(max-width:900px){.review-summary{grid-template-columns:1fr}.review-item{grid-template-columns:24px minmax(0,1fr)}.review-item-actions{grid-column:2;justify-content:flex-start}.review-bulk{align-items:flex-start;flex-direction:column}.review-bulk-confirm{flex:none}.review-bulk-actions{margin-left:0}}
@media(max-width:560px){.review-head-actions{width:100%}.review-head-actions .btn{flex:1 1 160px}.review-item{padding:16px 14px;gap:11px}.review-meta div{width:100%}.review-meta{display:grid;gap:2px}.review-summary-card{padding:15px}.review-bulk{padding:12px 13px}}

/* Source/product tables: dense review workspace with explicit status and row actions. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.table-scroll-hint{display:none;margin:0 0 8px;color:var(--muted);font-size:12px}
.source-table-scroll{max-width:100%;overflow-x:auto;margin:0 0 4px;background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}
.source-table{width:100%;min-width:1100px;border-collapse:collapse;font-size:13px}
.source-table th{padding:12px 14px;background:var(--bg);color:var(--muted);font-size:11px;font-weight:700;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}
.source-table td{padding:14px;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--text)}
.source-table tbody tr:last-child td{border-bottom:0}
.source-table tbody tr:hover{background:color-mix(in srgb,var(--soft) 45%,var(--surface))}
.source-table .source-check{width:40px;text-align:center;padding-left:10px;padding-right:6px}
.source-check input{width:18px;height:18px;min-height:0;accent-color:var(--accent)}
.source-site{display:grid;gap:2px;min-width:0;color:var(--text)}
.source-site b{font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.source-site small{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}
.source-site:hover b{color:var(--accent)}
.source-template{display:inline-block;padding:3px 8px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--muted);font-size:11px;white-space:nowrap}
.job-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;white-space:nowrap}
.job-state:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.job-running{color:var(--accent)}
.job-ready{color:var(--accent)}
.job-paused{color:var(--muted)}
.job-ready:before{background:color-mix(in srgb,var(--accent) 55%,var(--line))}
.source-job-result{display:block;max-width:190px;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.source-time{white-space:nowrap;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.source-time small{display:block;margin-top:2px;color:var(--muted);font-size:11px}
.source-count{display:grid;gap:1px;color:var(--text);font-size:12px}
.source-count b{font-size:16px;color:var(--accent);font-variant-numeric:tabular-nums}
.source-count small{color:var(--muted);font-size:11px;white-space:nowrap}
.source-count:hover b{text-decoration:underline}
.source-review-actions{display:grid;gap:5px;justify-items:start}
.source-review-actions form{margin:0}
.source-review-actions .btn{min-height:32px;padding:5px 10px;font-size:12px;border-radius:8px}
.status-approved{background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line))}
.status-rejected{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 28%,var(--line))}
.product-table{min-width:1100px}
.product-title{display:grid;gap:2px;min-width:0}
.product-title b{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.product-title b a:hover{text-decoration:underline}
.product-title small{color:var(--muted);font-size:11px;overflow-wrap:anywhere}
.product-price{color:var(--accent);font-weight:750;font-size:16px;white-space:nowrap;font-variant-numeric:tabular-nums}
.product-spec{display:block;max-width:320px;color:var(--muted);font-size:12px;line-height:1.7;overflow-wrap:anywhere}
.stale-note{display:block;margin-top:2px;color:var(--danger);font-size:11px}
.product-origin-link{display:inline-block;margin-top:4px;color:var(--accent);font-size:11px;overflow-wrap:anywhere}
.product-origin-link:hover{text-decoration:underline}
.product-actions{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.product-actions form{margin:0}
.product-actions .btn{min-height:32px;padding:5px 10px;font-size:12px;border-radius:8px;white-space:nowrap}
.btn.danger{background:transparent;color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line))}
.btn.danger:hover{background:color-mix(in srgb,var(--danger) 10%,var(--surface));transform:none}
.product-form{max-width:900px}
.product-origin{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;margin:0 0 4px;padding:10px 12px;background:var(--soft);border:1px solid var(--line);border-radius:10px;color:var(--muted);font-size:12px}
.product-origin a{color:var(--accent)}
.product-origin .review-tag{background:var(--surface)}
.product-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.product-form-actions .btn{margin:0}
@media(max-width:800px){.table-scroll-hint{display:block}.source-table th,.source-table td{padding:11px 10px}.source-job-result{max-width:150px}.product-spec{max-width:220px}.review-bulk-actions{width:100%}.review-bulk-actions .btn{flex:1 1 140px}}

/* Refined admin rail: soft depth, clearer groups, icon tiles and a quiet status card. */
.admin-app .admin-sidebar{position:sticky;top:0;flex:0 0 252px;width:252px;height:100vh;padding:0 14px;background:linear-gradient(180deg,var(--surface) 0%,color-mix(in srgb,var(--surface) 82%,var(--bg)) 100%);border-right:1px solid var(--line);box-shadow:10px 0 34px color-mix(in srgb,var(--accent) 4%,transparent);overflow-y:auto;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--line) 80%,transparent) transparent}
.admin-app .admin-sidebar::before{content:"";position:absolute;inset:0 0 auto;height:280px;background:radial-gradient(150px 150px at 86% 0%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 72%),radial-gradient(210px 150px at 6% 6%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 74%);pointer-events:none}
.admin-app .admin-brand{position:relative;z-index:1;height:96px;margin:0 -14px;padding:0 22px;display:flex;align-items:center;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);background:transparent}
.admin-app .admin-brand>a{gap:12px}
.admin-app .admin-brand .brand-icon{width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,var(--accent),var(--accent-deep));color:var(--accent-ink);box-shadow:0 10px 22px color-mix(in srgb,var(--accent) 24%,transparent),inset 0 1px 0 var(--sheen);transform:rotate(-5deg);transition:transform .2s ease}
.admin-app .admin-brand .brand-icon svg{width:24px;height:24px}
.admin-app .admin-brand a:hover .brand-icon{transform:rotate(0deg) scale(1.03)}
.admin-app .admin-brand-copy{display:grid;gap:3px;min-width:0}
.admin-app .admin-brand strong{font-size:18px;line-height:1.25;letter-spacing:-.4px}
.admin-app .admin-brand a:hover strong{color:var(--accent)}
.admin-app .admin-brand-meta{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:550}
.admin-brand-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent);flex:none}
.admin-app .admin-nav{position:relative;z-index:1;display:grid;gap:6px;margin:22px 0 0}
.admin-app .admin-nav-group{display:grid;gap:4px;margin:0 0 18px}
.admin-app .admin-nav-label{display:flex;align-items:center;gap:9px;padding:0 10px 7px;color:color-mix(in srgb,var(--muted) 86%,transparent);font-size:10px;font-weight:700;letter-spacing:.12em}
.admin-app .admin-nav-label::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,color-mix(in srgb,var(--line) 90%,transparent),transparent)}
.admin-app .admin-nav a{position:relative;display:flex;align-items:center;gap:11px;min-height:46px;padding:0 10px;border:1px solid transparent;border-radius:12px;color:var(--muted);font-size:13.5px;font-weight:600;transition:background .18s,color .18s,border-color .18s,box-shadow .18s}
.admin-app .admin-nav-icon{width:32px;height:32px;display:grid;place-items:center;flex:none;border-radius:9px;background:color-mix(in srgb,var(--soft) 76%,transparent);color:var(--muted);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 68%,transparent);transition:background .18s,color .18s,box-shadow .18s,transform .18s}
.admin-app .admin-nav-icon svg{width:16px;height:16px;stroke-width:1.8}
.admin-app .admin-nav a:hover{background:color-mix(in srgb,var(--soft) 58%,transparent);border-color:color-mix(in srgb,var(--line) 66%,transparent);color:var(--text)}
.admin-app .admin-nav a:hover .admin-nav-icon{color:var(--accent);background:var(--soft);transform:translateY(-1px)}
.admin-app .admin-nav a.active{background:linear-gradient(100deg,color-mix(in srgb,var(--accent) 14%,var(--surface)),color-mix(in srgb,var(--accent) 4%,var(--surface)));border-color:color-mix(in srgb,var(--accent) 17%,var(--line));color:var(--accent);box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 7%,transparent)}
.admin-app .admin-nav a.active::before{content:"";position:absolute;left:0;top:50%;width:3px;height:20px;border-radius:0 3px 3px 0;background:var(--accent);transform:translateY(-50%)}
.admin-app .admin-nav a.active .admin-nav-icon{background:linear-gradient(145deg,var(--accent),var(--accent-deep));color:var(--accent-ink);box-shadow:0 6px 14px color-mix(in srgb,var(--accent) 24%,transparent)}
.admin-app .admin-sidebar-foot{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin:auto 2px 18px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:14px;background:color-mix(in srgb,var(--surface) 70%,transparent);box-shadow:0 6px 18px color-mix(in srgb,var(--accent) 4%,transparent)}
.admin-foot-icon{width:30px;height:30px;display:grid;place-items:center;flex:none;border-radius:9px;background:var(--soft);color:var(--accent)}
.admin-foot-icon svg{width:15px;height:15px}
.admin-foot-copy{display:grid;gap:1px;min-width:0}
.admin-foot-copy b{font-size:11.5px;color:var(--text);font-weight:700}
.admin-foot-copy small{font-size:10.5px;color:var(--muted)}
.admin-app .admin-sidebar-foot .admin-status-dot{margin-left:auto;flex:none}
@media(max-width:800px){
.admin-app .admin-sidebar{position:static;width:100%;height:auto;padding:0 12px;background:var(--surface);border-right:0;border-bottom:1px solid var(--line);box-shadow:none;overflow:visible}
.admin-app .admin-sidebar::before{display:none}
.admin-app .admin-brand{height:72px;margin:0;padding:0 8px;border-bottom:0}
.admin-app .admin-brand .brand-icon{width:36px;height:36px;border-radius:11px;transform:none}
.admin-app .admin-brand .brand-icon svg{width:21px;height:21px}
.admin-app .admin-brand strong{font-size:17px}
.admin-app .admin-brand-meta{font-size:10px}
.admin-app .admin-nav{display:flex;gap:6px;overflow-x:auto;margin:0 0 10px;padding:0 0 8px;scrollbar-width:none}
.admin-app .admin-nav::-webkit-scrollbar{display:none}
.admin-app .admin-nav-group{display:flex;align-items:center;gap:5px;flex:none;margin:0}
.admin-app .admin-nav-label{display:none}
.admin-app .admin-nav a{min-height:40px;padding:0 12px;gap:8px;border-radius:11px;font-size:13px;white-space:nowrap}
.admin-app .admin-nav a.active::before{display:none}
.admin-app .admin-nav-icon{width:26px;height:26px;border-radius:8px}
.admin-app .admin-nav-icon svg{width:14px;height:14px}
.admin-app .admin-sidebar-foot{display:none}
}

/* Compact source command bar: overview, search and totals share one row. */
.review-command{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;margin:0 0 22px;padding:10px 16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.review-stats{display:flex;align-items:stretch;flex:none;min-width:0}
.review-stat{display:grid;gap:1px;justify-items:start;padding:2px 14px;border-right:1px solid color-mix(in srgb,var(--line) 70%,transparent);color:var(--muted);white-space:nowrap}
.review-stat:first-child{padding-left:2px}
.review-stat:last-child{border-right:0;padding-right:8px}
.review-stat small{font-size:10.5px;font-weight:650}
.review-stat b{font-size:20px;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums}
.review-stat:hover small{color:var(--accent)}
.review-stat:hover b{color:var(--accent)}
.review-search{display:flex;align-items:center;gap:8px;flex:1 1 400px;min-width:0;padding-left:16px;border-left:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.review-search label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:650;white-space:nowrap}
.review-search-query{flex:1 1 220px;min-width:0}
.review-search-query input{flex:1;width:100%;max-width:none}
.review-search input,.review-search select{height:38px;min-width:0;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);padding:0 11px;font:inherit;font-size:13px}
.review-search select{min-width:98px}
.review-search .btn{min-height:38px;padding:7px 14px;font-size:13px;margin:0;flex:none}
.review-total{margin-left:auto;padding-left:16px;border-left:1px solid color-mix(in srgb,var(--line) 70%,transparent);color:var(--muted);font-size:11.5px;white-space:nowrap}
@media(max-width:800px){
.review-command{display:grid;gap:10px;padding:12px;margin-bottom:16px}
.review-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding-bottom:10px;border-bottom:1px solid var(--line)}
.review-stat{padding:3px 8px;border-right:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.review-stat:first-child{padding-left:2px}
.review-stat:last-child{border-right:0}
.review-stat b{font-size:19px}
.review-search{flex-wrap:wrap;gap:8px;width:100%;padding-left:0;border-left:0}
.review-search-query{flex:1 1 100%;width:100%}
.review-search-filter{display:grid!important;gap:4px;width:100%}
.review-search input,.review-search select{width:100%}
.review-search .btn{flex:1 1 110px}
.review-total{margin-left:0;padding-left:0;border-left:0;font-size:11px}
}

/* Source editor at the top of the list and compact row-level CRUD actions. */
.source-editor .form{max-width:920px}
.source-editor-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.source-editor-actions .btn{margin:0}
.source-actions-primary{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.source-actions-secondary{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.source-action-sep{color:color-mix(in srgb,var(--line) 90%,transparent);font-size:11px}.source-mini-link{display:inline-flex;align-items:center;padding:3px 5px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:11.5px;white-space:nowrap;cursor:pointer;line-height:1.4}
.source-mini-link:hover{background:var(--soft);color:var(--accent)}
.source-mini-link.danger{color:var(--danger)}
.source-mini-link.danger:hover{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}

/* Admin pages rely on breadcrumb titles; the large page heading was redundant. */
.review-head-actions-only{justify-content:flex-end;margin:0 0 14px}

/* Relay station list: CardNav-inspired fields with native admin table density. */
.gateway-table{min-width:1080px}
.gateway-name{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.gateway-name b{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.gateway-sponsor{padding:2px 7px;border-radius:20px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));font-size:10px;font-weight:700;white-space:nowrap}
.gateway-url{display:block;margin-top:3px;max-width:290px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}
.gateway-url:hover{color:var(--accent);text-decoration:underline}
.gateway-summary{max-width:320px;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.65}
.gateway-score{display:inline-grid;place-items:center;min-width:38px;height:30px;padding:0 7px;border-radius:8px;background:var(--soft);color:var(--accent);font-size:14px;font-weight:750;font-variant-numeric:tabular-nums}
.gateway-tags{display:flex;align-items:center;gap:4px;flex-wrap:wrap;max-width:260px}
.gateway-chip{padding:2px 7px;border-radius:20px;background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:11px;white-space:nowrap}
.gateway-muted{color:var(--muted);font-size:11px}
.gateway-count{display:block;font-size:15px;font-weight:750;color:var(--text);font-variant-numeric:tabular-nums}
.gateway-count-note{display:block;color:var(--muted);font-size:11px;white-space:nowrap}
.gateway-sponsor-check{align-self:end;min-height:46px;padding-bottom:12px}
@media(max-width:800px){.gateway-table{min-width:1080px}.gateway-summary{max-width:240px}}

/* One-row shop command bar with larger counts and inline page actions. */
.review-command{gap:8px 10px;padding:9px 12px}
.review-stat{min-width:64px;padding:2px 16px}
.review-stat small{font-size:11px}
.review-stat b{font-size:24px}
.review-search{flex:1 1 300px;padding-left:12px}
.review-search-query{flex:1 1 160px}
.review-search input,.review-search select{height:36px}
.review-search .btn{min-height:36px;padding:6px 11px;font-size:12.5px}
.review-total{padding-left:12px;font-size:11px}
.review-command-actions{display:flex;align-items:center;gap:6px;flex:none}
.review-command-actions .btn{min-height:36px;padding:6px 11px;font-size:12.5px;margin:0;white-space:nowrap}
.source-editor{display:none;padding:0;overflow:hidden}
.source-editor[open]{display:block;margin:0 0 18px}
.source-editor > summary{display:none!important}
.source-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px 0}
.source-editor-head h2{font-size:18px;color:var(--accent);letter-spacing:-.2px}
.source-editor-close{width:34px;height:34px;display:grid;place-items:center;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--muted);font-size:20px;line-height:1;cursor:pointer}
.source-editor-close:hover{background:var(--soft);color:var(--accent);border-color:var(--accent)}
.source-editor .form{padding:14px 20px 20px;margin:0;max-width:920px}
@media(max-width:800px){
.review-command-actions{width:100%}
.review-command-actions .btn{flex:1 1 130px}
.review-stat{min-width:0}
.review-stat b{font-size:20px}
}

/* Wider shop counters and a shorter search field in the one-row command bar. */
.review-stats{flex:0 1 auto}
.review-stat{min-width:82px;padding:4px 18px}
.review-stat small{font-size:11.5px}
.review-stat b{font-size:26px}
.review-search{flex:0 1 420px}
.review-search-query{flex:0 1 180px}
.review-search-query input{width:180px;max-width:180px}
.review-search select{min-width:82px}
.review-total{font-size:11px}

/* Balanced shop command bar: stats absorb spare width, search stays bounded. */
.review-total{margin-left:0}
@media(min-width:801px){
.review-command{display:flex;align-items:center;gap:12px 18px}
.review-stats{flex:1 1 380px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;min-width:0}
.review-stat{min-width:0;padding:4px 16px;justify-items:center;text-align:center}
.review-search{flex:1 1 460px;max-width:720px;margin:0;padding-left:16px;border-left:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.review-search-query{flex:1 1 170px;min-width:0}
.review-search-query input{width:100%;max-width:none}
.review-command-actions{flex:none;margin-left:0}
}
@media(min-width:1100px){
.review-command{flex-wrap:nowrap}
.review-stats,.review-search{min-width:0}
}

/* Unified pagination footer for every admin list. */
.pagination-box{display:flex;align-items:center;justify-content:center;gap:10px 16px;flex-wrap:wrap;margin:22px 0;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.pagination-jump{display:inline-flex;align-items:center;gap:8px;margin:0;min-width:0}
.pagination-jump label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px;white-space:nowrap}
.pagination-jump input{width:78px;min-width:0;height:36px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);padding:0 9px;font:inherit;font-size:16px;text-align:center;font-variant-numeric:tabular-nums}
.pagination-jump .btn{min-height:36px;padding:6px 12px;font-size:12.5px;margin:0}
.pagination-box .admin-pagination{margin:0;justify-content:center;flex-wrap:wrap;gap:10px}
.pagination-summary{color:var(--muted);font-size:11.5px}
@media(max-width:800px){.pagination-box{flex-direction:column;align-items:stretch}.pagination-box .admin-pagination{justify-content:center}}
.pagination-box .pagination{margin:0;justify-content:flex-end;flex-wrap:wrap;gap:10px}
@media(max-width:800px){.pagination-box .pagination{justify-content:center}}

/* Official subscription overview and plan detail. */
.official-metrics{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 20px}
.official-metrics>div{flex:1 1 150px;min-width:0;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.official-metrics small{display:block;color:var(--muted);font-size:11px}
.official-metrics b{display:block;margin-top:4px;color:var(--text);font-size:19px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.official-metric-time{font-size:13px!important;line-height:1.6}
.official-overview{padding:0;overflow:hidden}
.official-table{width:100%;border-collapse:collapse;font-size:13px;min-width:900px}
.official-table th{padding:12px 14px;background:var(--bg);color:var(--muted);font-size:11px;font-weight:700;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}
.official-table td{padding:14px;border-bottom:1px solid var(--line);vertical-align:middle}
.official-table tbody tr:last-child td{border-bottom:0}
.official-table tbody tr:hover{background:color-mix(in srgb,var(--soft) 45%,var(--surface))}
.official-table td small{display:block;margin-top:3px;color:var(--muted);font-size:11px}
.official-table td strong{color:var(--accent);font-size:15px;font-variant-numeric:tabular-nums;white-space:nowrap}
.official-product b{display:block;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.official-product small{color:var(--muted);font-size:11px}
.official-region{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;font-weight:650;color:var(--text);white-space:nowrap}
.official-lowest-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 7px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:10px;font-weight:800;line-height:1.5;letter-spacing:.02em;white-space:nowrap;box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 22%,transparent)}
.official-lowest-badge.is-stale{background:var(--bg);color:var(--muted);border:1px solid var(--line);box-shadow:none}
.official-table .official-price-cell strong,.official-table .official-cny strong{font-size:17px;letter-spacing:-.2px}
.official-price-cell small{margin-top:2px}
.official-original-price{color:var(--muted);font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.official-missing-rate{color:var(--muted);font-size:12px}
.official-table tbody tr.is-lowest td{background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.official-table tbody tr.is-lowest td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.official-table tbody tr.is-lowest:hover td{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}
.official-diff{display:inline-flex;align-items:center;padding:3px 8px;border-radius:20px;background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.official-diff.is-lower{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:color-mix(in srgb,var(--accent) 25%,var(--line))}
.official-diff.is-higher{color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface));border-color:color-mix(in srgb,var(--danger) 25%,var(--line))}
.official-plan-table{min-width:1040px}
@media(max-width:800px){.official-metrics{display:grid;grid-template-columns:1fr 1fr}.official-table{min-width:820px}.official-plan-table{min-width:900px}}
.official-search{max-width:100%}
.official-search .input-wrap{flex:1 1 260px;min-width:220px}
@media(max-width:600px){.official-search .input-wrap{min-width:0}}
.official-apps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 22px}
.official-app-card{display:flex;align-items:center;gap:11px;min-width:0;padding:14px 15px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);transition:transform .2s,border-color .2s}
.official-app-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.official-app-copy{flex:1;min-width:0}
.official-app-copy b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.official-app-copy small{display:block;margin-top:2px;color:var(--muted);font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.official-app-lowest{flex:none;max-width:46%;text-align:right}
.official-app-lowest small{display:block;color:var(--muted);font-size:10px;white-space:nowrap}
.official-app-lowest strong{display:block;margin-top:2px;color:var(--accent);font-size:14px;font-variant-numeric:tabular-nums;white-space:nowrap}
.official-app-lowest strong.is-pending{color:var(--muted);font-weight:600}
.official-app-section{scroll-margin-top:92px;margin-top:20px;padding:0;overflow:hidden}
.official-app-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--soft) 55%,var(--surface)),var(--surface))}
.official-app-title{display:flex;align-items:center;gap:12px;min-width:0}
.official-app-title h2{font-size:19px;letter-spacing:-.02em}
.official-app-title p{margin-top:3px;color:var(--muted);font-size:11.5px}
.official-app-title a{color:var(--accent)}
.official-app-count{flex:none;padding:5px 10px;border-radius:20px;background:var(--soft);color:var(--accent);font-size:11px;font-weight:700;white-space:nowrap}
.official-app-empty{padding:26px 20px;text-align:center;color:var(--muted)}
.official-app-empty b{display:block;color:var(--text);font-size:14px}
.official-app-empty p{margin-top:5px;font-size:12px}
@media(max-width:1100px){.official-apps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.official-apps{grid-template-columns:1fr}.official-app-head{align-items:flex-start}.official-app-title h2{font-size:17px}.official-app-lowest{max-width:50%}}

/* Public subscription page: clearer price rows. */
.official-notice{margin-bottom:16px}.billing-pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:color-mix(in srgb,var(--accent) 11%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));color:var(--accent);font-size:12px;font-weight:700;white-space:nowrap}.billing-pill.is-annual{color:var(--annual);background:color-mix(in srgb,var(--annual-mark) 12%,var(--surface));border-color:color-mix(in srgb,var(--annual-mark) 28%,var(--line))}.billing-pill.is-unknown{color:var(--muted);background:var(--soft);border-color:var(--line)}
.billing-pill.is-stale{color:var(--muted);background:var(--soft);border-color:var(--line)}
.official-app-section .official-table{min-width:760px}.official-app-section .official-table th,.official-app-section .official-table td{padding-left:20px;padding-right:20px}.official-app-section .official-table th:nth-child(2),.official-app-section .official-table td:nth-child(2){width:100px}.official-app-section .official-table th:nth-child(5),.official-app-section .official-table td:nth-child(5){width:130px}
@media(max-width:640px){.official-app-section .official-table{min-width:700px}}

/* Official price management header, sync cards and tool grid. */
.official-admin-head{display:flex;align-items:stretch;justify-content:space-between;gap:24px;padding:24px 26px;margin:0 0 18px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));border-radius:18px;box-shadow:var(--shadow)}
.official-admin-copy{min-width:0}
.official-admin-copy h1{margin:2px 0 6px;font-size:30px;letter-spacing:-.03em}
.official-admin-copy>p:not(.eyebrow){max-width:660px;color:var(--muted);line-height:1.7}
.official-head-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.official-head-metrics{display:grid;grid-template-columns:repeat(3,minmax(86px,1fr));gap:8px;align-self:stretch;min-width:300px}
.official-head-metrics>div{display:flex;flex-direction:column;justify-content:center;padding:12px 14px;background:color-mix(in srgb,var(--surface) 82%,transparent);border:1px solid var(--line);border-radius:13px}
.official-head-metrics small{color:var(--muted);font-size:11px;white-space:nowrap}
.official-head-metrics b{margin-top:3px;font-size:24px;font-variant-numeric:tabular-nums}
.official-sync-panel{padding:20px 22px;margin:0 0 18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.official-sync-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.official-sync-head h2{margin:2px 0 5px;font-size:21px}
.official-sync-head p{color:var(--muted);font-size:12.5px;line-height:1.65;margin:0}
.official-sync-limit{flex:none;padding:5px 10px;border-radius:20px;background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:700}
.official-sync-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px}
.official-sync-group{border:0;margin:0;padding:0;min-width:0}
.official-sync-group legend{display:flex;align-items:baseline;gap:7px;margin-bottom:9px;padding:0;font-weight:700;font-size:13px}
.official-sync-group legend small{color:var(--muted);font-weight:500;font-size:11px}
.official-product-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.official-sync-card{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center;padding:11px 12px;background:var(--bg);border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.official-sync-card.has-logo{grid-template-columns:18px 26px minmax(0,1fr)}
.official-sync-card input,.official-region-chip input{position:absolute;opacity:0;pointer-events:none}
.official-product-check{grid-row:1 / 3;width:18px;height:18px;border:1.5px solid color-mix(in srgb,var(--muted) 55%,transparent);border-radius:6px;background:var(--surface);position:relative}
.official-product-check::after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid var(--accent-ink);border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .12s}
.official-product-mark{grid-row:1 / 3;display:grid;place-items:center;width:26px;height:26px;border-radius:7px;background:var(--brand-soft,var(--soft));color:var(--brand,var(--accent));font-size:10px;font-weight:800;line-height:1}
.official-product-mark img{width:86%;height:86%;object-fit:contain;display:block}
html[data-theme=dark] .official-product-mark img.is-mono{filter:invert(1)}
.official-sync-card.is-manual{cursor:default;background:color-mix(in srgb,var(--brand-soft,var(--soft)) 38%,var(--bg))}
.official-sync-card.is-manual:hover{border-color:var(--line)}
.official-sync-manual{cursor:pointer;color:inherit;text-decoration:none}
.official-sync-manual:hover{border-color:color-mix(in srgb,var(--brand,var(--accent)) 45%,var(--line))}
.official-sync-manual:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.official-sync-card b{font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.official-sync-card small{color:var(--muted);font-size:10.5px;line-height:1.35}
.official-sync-card:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.official-sync-card:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.official-sync-card:has(input:checked) .official-product-check{background:var(--accent);border-color:var(--accent)}
.official-sync-card:has(input:checked) .official-product-check::after{transform:rotate(45deg) scale(1)}
.official-region-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
.official-region-chip{position:relative;display:flex;align-items:center;gap:6px;padding:8px 9px;background:var(--bg);border:1px solid var(--line);border-radius:10px;cursor:pointer;min-width:0;transition:border-color .15s,background .15s}
.official-region-chip>span{font-size:12px;font-weight:650;white-space:nowrap}
.official-region-chip small{color:var(--muted);font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.official-region-chip:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.official-region-chip:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}
.official-region-chip:has(input:checked)>span{color:var(--accent)}
.official-sync-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}
.official-sync-count{color:var(--muted);font-size:12px}
.official-sync-count b{color:var(--text);font-variant-numeric:tabular-nums}
.official-sync-count.is-over b{color:var(--danger)}
.official-admin-tools{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.9fr);gap:16px;align-items:start;margin:0 0 18px}
.official-admin-tools>.admin-editor{margin:0}
@media(min-width:1001px) and (max-width:1280px){.official-product-grid{grid-template-columns:1fr}}
@media(max-width:1000px){.official-admin-head{flex-direction:column}.official-head-metrics{min-width:0}.official-admin-tools{grid-template-columns:1fr}.official-sync-layout{grid-template-columns:1fr}}
@media(max-width:620px){.official-head-metrics{grid-template-columns:repeat(3,1fr);min-width:0}.official-product-grid{grid-template-columns:1fr}.official-region-grid{grid-template-columns:repeat(2,1fr)}.official-sync-foot{align-items:stretch}.official-sync-foot .btn{width:100%}}
.official-region-actions{display:flex;gap:6px;margin:-2px 0 7px}
.official-sync-mini{padding:3px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--muted);font:inherit;font-size:10.5px;cursor:pointer}
.official-sync-mini:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.official-more-regions{margin-top:9px;border-top:1px dashed var(--line);padding-top:8px}
.official-more-regions summary{cursor:pointer;color:var(--muted);font-size:11.5px;font-weight:650;list-style:none}
.official-more-regions summary::-webkit-details-marker{display:none}
.official-more-regions summary::before{content:"＋ ";color:var(--accent)}
.official-more-regions[open] summary::before{content:"－ "}
.official-more-regions summary small{font-weight:400;color:var(--muted);margin-left:4px}
.official-more-regions .official-region-grid{margin-top:8px;max-height:190px;overflow:auto;padding-right:3px}
.official-region-filter{display:block;margin:8px 0 0}
.official-region-filter input{width:100%;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);padding:0 10px;font:inherit;font-size:12px}
.official-more-regions .official-region-grid{margin-top:6px}

/* Compact page intro shared by the public market lists. */
.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin:2px 2px 18px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.page-intro-main{min-width:0}
.page-intro h1{margin:0;color:var(--text);font-size:30px;line-height:1.25;letter-spacing:-.9px;font-weight:750;overflow-wrap:anywhere}
.page-intro-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 16px;margin:7px 0 0;color:var(--muted);font-size:12.5px;line-height:1.5}
.page-intro-meta b{color:var(--text);font-size:15px;font-weight:750;letter-spacing:-.2px;font-variant-numeric:tabular-nums}
.page-intro-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;flex:none}
.page-intro-actions .btn{min-height:44px;white-space:nowrap}
.page-intro-link{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;color:var(--accent);font-size:12.5px;font-weight:650;white-space:nowrap}
.page-intro-link:hover{text-decoration:underline}
@media(max-width:700px){
.page-intro{align-items:flex-start;gap:13px;margin-bottom:15px;padding-bottom:13px}
.page-intro h1{font-size:26px;letter-spacing:-.6px}
.page-intro-meta{gap:4px 13px;font-size:12px}
.page-intro-meta b{font-size:14px}
}
@media(max-width:480px){.page-intro h1{font-size:23px}.page-intro-meta span{white-space:nowrap}}
.market-workspace{margin-top:0;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
.market-controls{position:relative;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 14px;border-bottom:1px solid var(--line)}
.market-tabs{display:flex;gap:3px;padding:3px;background:var(--bg);border:1px solid var(--line);border-radius:12px;flex:none}
.market-tab{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 13px;border-radius:9px;color:var(--muted);font-size:13px;font-weight:650;white-space:nowrap;transition:color .18s,background .18s,box-shadow .18s}
.market-tab:hover{color:var(--accent)}
.market-tab.active{background:var(--surface);color:var(--accent);box-shadow:0 2px 8px color-mix(in srgb,var(--accent) 12%,transparent)}
.market-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:19px;padding:0 6px;border-radius:20px;background:var(--soft);color:var(--accent);font-size:10.5px;font-weight:750;font-variant-numeric:tabular-nums}
.market-tab.active .market-tab-badge{background:var(--accent);color:var(--accent-ink)}
.market-search{display:flex;align-items:center;gap:8px;flex:1 1 280px;min-width:220px;height:42px;padding:0 5px 0 12px;background:var(--bg);border:1px solid var(--line);border-radius:12px;color:var(--muted)}
.market-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}
.market-search svg{width:17px;height:17px;flex:none}
.market-search input{flex:1;min-width:0;height:100%;border:0;background:none;outline:none;color:var(--text);font:inherit;font-size:13px}
.market-search-button{flex:none;height:32px;padding:0 13px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:700}
.market-search-button:hover{background:color-mix(in srgb,var(--accent) 88%,var(--accent-deep))}
.market-filter{position:relative;flex:none}
.market-filter-trigger{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);font-size:13px;font-weight:650;cursor:pointer;list-style:none;white-space:nowrap}
.market-filter-trigger::-webkit-details-marker{display:none}
.market-filter-trigger:hover{border-color:var(--accent);color:var(--accent)}
.market-filter-trigger svg{width:16px;height:16px;color:var(--muted)}
.market-filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:20px;background:var(--accent);color:var(--accent-ink);font-size:10px;font-weight:750}
.market-filter-panel{position:absolute;right:0;top:calc(100% + 9px);z-index:30;display:grid;gap:14px;width:370px;max-width:calc(100vw - 40px);padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-float)}
.market-filter-group{display:grid;gap:5px;min-width:0;margin:0;padding:0;border:0}
.market-filter-group legend{padding:0;color:var(--muted);font-size:11px;font-weight:700}
.market-filter-group select{height:38px;width:100%;min-width:0;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font:inherit;font-size:13px}
.market-filter-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer}
.market-filter-check input{width:16px;height:16px;min-height:0;accent-color:var(--accent)}
.market-filter-actions{display:flex;align-items:center;gap:12px;padding-top:12px;border-top:1px solid var(--line)}
.market-filter-actions .btn{min-height:36px;padding:7px 15px;font-size:12.5px}
.market-filter-clear{color:var(--muted);font-size:12px}
.market-filter-clear:hover{color:var(--accent)}
.market-chips{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 52%,var(--surface))}
.market-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:20px;background:var(--soft);color:var(--accent);font-size:11.5px;max-width:100%;overflow-wrap:anywhere}
.market-chip span{font-size:13px;line-height:1}
.market-chip:hover{border-color:var(--accent)}
.market-chips-clear{margin-left:auto;color:var(--muted);font-size:11.5px;white-space:nowrap}
.market-chips-clear:hover{color:var(--accent)}
.market-table-scroll{overflow-x:auto;border-radius:0 0 20px 20px}
.market-table{width:100%;min-width:1140px;border-collapse:collapse;font-size:13px}
.market-table thead th{padding:10px 12px;background:color-mix(in srgb,var(--bg) 72%,var(--surface));border-bottom:1px solid var(--line);color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:.2px;text-align:left;white-space:nowrap}
.market-table thead th:first-child{border-radius:0}
.sort-link{color:inherit;display:inline-flex;gap:5px;align-items:center;text-decoration:none;border-radius:4px;white-space:nowrap}
.sort-link:hover{color:var(--accent)}
.sort-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sort-link.is-active{color:var(--accent);font-weight:800}
.sort-icon{width:12px;height:12px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.55}
.sort-link:hover .sort-icon,.sort-link.is-active .sort-icon{opacity:1}
.market-table th.market-num,.market-table td.market-num{text-align:right}
.market-table thead th.market-name-col{padding-left:61px}
.market-table th.market-seq,.market-table td.market-seq{width:38px;text-align:left;padding-left:16px}
.market-entry td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:middle;background:transparent}
.market-entry:last-child td{border-bottom:0}
.market-entry:hover td{background:color-mix(in srgb,var(--soft) 34%,var(--surface))}
.market-seq{color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}
.market-platform{display:flex;align-items:flex-start;gap:11px;min-width:0;max-width:390px}
.market-avatar{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:12px;background:var(--soft);color:var(--accent);font-size:17px;font-weight:750;letter-spacing:-.5px}
.market-platform-copy{min-width:0}
.market-platform-name{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.market-platform-name a{color:var(--text);font-size:13.5px;font-weight:750;line-height:1.4;overflow-wrap:anywhere}
.market-platform-name a:hover{color:var(--accent)}
.market-platform-copy p{margin-top:3px;color:var(--muted);font-size:11.5px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.market-badge{display:inline-flex;align-items:center;height:19px;padding:0 7px;border-radius:20px;background:var(--soft);color:var(--accent);font-size:10px;font-weight:700;white-space:nowrap}
.market-badge.is-official{background:color-mix(in srgb,var(--accent) 16%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}
.market-badge.is-pinned{display:inline-flex;align-items:center;gap:3px;background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 36%,transparent)}
.market-badge.is-pinned svg{width:10px;height:10px;stroke-width:2.3}
.market-shop{display:inline-flex;align-items:center;max-width:130px;padding:4px 8px;border-radius:7px;background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.market-muted{color:var(--muted);font-size:11.5px}
.market-count{font-size:18px;line-height:1.1;letter-spacing:-.4px;font-variant-numeric:tabular-nums;color:var(--text)}
.market-entry td small{display:block;margin-top:2px;color:var(--muted);font-size:10.5px;line-height:1.4}
.market-products{display:grid;gap:5px;min-width:0;max-width:300px;width:100%}
.market-product{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;max-width:100%;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);font-size:11px;line-height:1.35;overflow:hidden}
.market-product span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.market-product b{flex:none;color:var(--accent);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.market-product:hover{border-color:var(--accent);background:var(--soft)}
.market-score{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;min-width:78px}
.market-score b{font-size:14px;font-variant-numeric:tabular-nums}
.market-score progress{width:50px;height:5px;border:0;border-radius:20px;background:var(--bg);overflow:hidden;accent-color:var(--accent)}
.market-score progress::-webkit-progress-bar{background:var(--bg);border-radius:20px}
.market-score progress::-webkit-progress-value{background:var(--accent);border-radius:20px}
.market-time{color:var(--muted);font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}
.market-warn{color:var(--danger)!important}
.market-action{text-align:right;white-space:nowrap}
.market-link{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--accent);font-size:11px;font-weight:650;white-space:nowrap}
.market-link:hover{background:var(--soft);border-color:var(--accent)}
.market-item{min-width:0;max-width:390px}
.market-item-name{display:block;color:var(--text);font-size:13px;font-weight:650;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.market-item-name:hover{color:var(--accent)}
.market-entry-price{color:var(--accent);font-size:15px;font-weight:750;letter-spacing:-.3px;white-space:nowrap;font-variant-numeric:tabular-nums}
.market-stock-in{color:var(--accent);font-size:13px;font-weight:750;font-variant-numeric:tabular-nums}
.market-stock-out{color:var(--danger);font-size:12px;font-weight:650}
.market-table-link{color:var(--accent);font-size:12px;font-weight:650}
.market-table-link:hover{text-decoration:underline}
.market-product-table .market-num small{text-align:right}
.market-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:13px 16px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 38%,var(--surface));border-radius:0 0 20px 20px}
.market-summary{color:var(--muted);font-size:12px}
.market-pagination{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);flex-wrap:wrap}
.market-pagination a{padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--accent);font-weight:650}
.market-pagination a:hover{background:var(--soft)}
.market-pagination .is-disabled{opacity:.45;padding:6px 10px}
.market-page-number{min-width:52px;text-align:center;font-variant-numeric:tabular-nums}
.market-page-jump{display:inline-flex;align-items:center;gap:6px;margin:0}
.market-page-jump label{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:12px;white-space:nowrap}
.market-page-jump input{width:54px;height:31px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);padding:0 6px;font:inherit;font-size:13px;text-align:center;font-variant-numeric:tabular-nums}
.market-page-jump input:focus{outline:2px solid color-mix(in srgb,var(--accent) 34%,transparent);outline-offset:1px;border-color:var(--accent)}
.market-page-jump button{height:31px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--accent);font:inherit;font-size:12px;font-weight:650;cursor:pointer}
.market-page-jump button:hover{background:var(--soft)}
/* Public comparison list: one clean result table instead of spec-group panels. */
.compare-search-card{margin:0 0 8px;padding:16px;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 6%,var(--surface)),var(--surface) 68%);box-shadow:var(--shadow)}
.compare-search{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.compare-query{flex:1 1 340px;display:flex;align-items:center;gap:10px;height:48px;min-width:0;padding:0 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--muted)}
.compare-query svg{width:18px;height:18px;flex:none}
.compare-query input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:15px;outline:none}
.compare-include,.compare-exclude{display:flex;align-items:center;height:48px;flex:0 1 160px;min-width:0;padding:0 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.compare-include input,.compare-exclude input{width:100%;min-width:0;border:0;background:transparent;color:var(--text);font:inherit;font-size:12.5px;outline:none}
.compare-query input::placeholder,.compare-include input::placeholder,.compare-exclude input::placeholder{color:var(--muted)}
.compare-sort select{height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);padding:0 12px;font:inherit;font-size:13px;cursor:pointer}
.compare-submit{height:48px;min-height:48px;padding:0 24px;border-radius:12px;box-shadow:none}
.compare-reset{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--muted);font-size:20px;line-height:1;flex:none}
.compare-reset:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:var(--soft)}
.compare-hot{margin:13px 2px 0}
.compare-results{margin-top:24px}
.compare-heading{display:flex;align-items:center;gap:16px;margin:0 0 14px;min-width:0}
.compare-heading h1{flex:none;margin:0;color:var(--accent);font-size:30px;line-height:1.25;letter-spacing:-.6px;overflow-wrap:anywhere}
.compare-heading-line{flex:1;height:1px;min-width:20px;background:var(--line)}
.compare-heading-meta{flex:none;margin:0;color:var(--muted);font-size:12px;white-space:nowrap}
.compare-heading-meta strong{color:var(--text);font-variant-numeric:tabular-nums}
.compare-table-card{border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.compare-table{width:100%;border-collapse:collapse;table-layout:fixed}
.compare-table th{padding:14px 20px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 46%,var(--surface));color:var(--muted);font-size:12px;font-weight:650;text-align:left}
.compare-table td{padding:15px 20px;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);vertical-align:middle}
.compare-table tbody tr:last-child td{border-bottom:0}
.compare-table tbody tr:hover td{background:color-mix(in srgb,var(--soft) 42%,transparent)}
.compare-product-col{width:31%}
.compare-platform-col{width:22%}
.compare-price-col{width:17%}
.compare-stock-col{width:12%}
.compare-action-col{width:18%;text-align:right}
.compare-table th.compare-action-col{text-align:right}
@media(max-width:1100px){.compare-product-col{width:31%}.compare-platform-col{width:22%}.compare-price-col{width:17%}.compare-stock-col{width:12%}.compare-action-col{width:18%}}
.compare-product{display:flex;align-items:center;gap:11px;min-width:0}
.compare-product .app-logo{width:32px;height:32px;border-radius:9px;font-size:14px}
.compare-product-name{display:-webkit-box;overflow:hidden;color:var(--text);font-size:13.5px;font-weight:600;line-height:1.55;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.compare-product-name:hover{color:var(--accent)}
.compare-platform{display:flex;align-items:center;gap:8px;min-width:0;color:var(--text);font-size:12.5px;font-weight:550}
.compare-platform:hover{color:var(--accent)}
.compare-platform-logo{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:var(--soft);color:var(--accent);font-size:12px;font-weight:700;flex:none}
.compare-platform-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.compare-price{color:var(--text);font-size:15px;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
.compare-stale{display:block;margin-top:2px;color:var(--muted);font-size:10.5px;font-weight:500}
.compare-buy{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:92px;padding:7px 13px;border:1px solid color-mix(in srgb,var(--accent) 46%,var(--line));border-radius:10px;background:var(--surface);color:var(--accent);font-size:12.5px;font-weight:650;white-space:nowrap;transition:.18s}
.compare-buy:hover{background:var(--soft);border-color:var(--accent)}
.compare-empty{padding:56px 24px;border:1px solid var(--line);border-radius:18px;background:var(--surface);text-align:center;color:var(--muted);box-shadow:var(--shadow)}
.compare-empty svg{width:28px;height:28px;color:var(--accent)}
.compare-empty h2{margin:8px 0 6px;color:var(--text);font-size:18px}
.compare-empty p{margin:0 0 14px;font-size:13px}
@media(max-width:780px){
.compare-search-card{padding:12px;border-radius:18px}
.compare-query{flex-basis:100%}
.compare-include,.compare-exclude{flex:1 1 135px}
.compare-sort{flex:1 1 150px}
.compare-sort select{width:100%}
.compare-submit{flex:1 1 auto}
.compare-heading{gap:10px}
.compare-heading h1{font-size:24px}
.compare-heading-line{display:none}
.compare-heading-meta{margin-left:auto}
.compare-table-card{border:0;background:transparent;box-shadow:none;overflow:visible}
.compare-table{display:block;width:100%}
.compare-table thead{display:none}
.compare-table th{display:none}
.compare-table tbody{display:grid;gap:10px}
.compare-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.compare-table td{display:block;padding:0;border:0}
.compare-table td[data-label="商品名称"]{grid-column:1/-1}.compare-product-col{width:auto}
.compare-table td.compare-platform-col{grid-column:1;width:auto;min-width:0}
.compare-table td.compare-price-col{grid-column:2;width:auto;text-align:right;align-self:center}
.compare-table td.compare-stock-col{display:flex;align-items:center;gap:7px;grid-column:1;width:auto;text-align:left;align-self:center}
.compare-table td.compare-stock-col::before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.3px;white-space:nowrap}
.compare-table td.compare-action-col{grid-column:2;width:auto;text-align:right;padding-top:2px;align-self:center}
.compare-product .app-logo{width:30px;height:30px}
.compare-buy{min-width:104px;min-height:44px}
}
@media(max-width:560px){
.compare-include,.compare-exclude{flex:1 1 100%}
.compare-sort{flex:1 1 100%}
.compare-submit{flex:1 1 60%}
.compare-heading h1{font-size:22px}
}
.compare-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:16px;padding:12px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
.compare-pagination-summary{color:var(--muted);font-size:12px}
.compare-pagination .market-pagination{margin-left:auto}
@media(max-width:700px){.compare-pagination{flex-direction:column;align-items:stretch}.compare-pagination .market-pagination{margin-left:0;justify-content:space-between}}
/* Same-product comparison: grouped rows, category tabs and an official anchor
   price that never joins the merchant ranking. */
.compare-view-tabs{align-self:flex-start;width:max-content;max-width:100%;margin:0 0 12px}
.compare-category-card{margin:14px 0 0;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow)}
.compare-category-card .market-category-bar{border-bottom:0}
.compare-official-ref{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:14px 0 0;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--accent) 4%,var(--surface))}
.compare-official-kicker{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:12px;font-weight:750;white-space:nowrap}
.compare-official-kicker svg{width:15px;height:15px}
.compare-official-list{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.compare-official-item{display:inline-flex;align-items:baseline;gap:7px;padding:5px 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font-size:12px;white-space:nowrap}
.compare-official-item:hover{border-color:var(--accent);color:var(--accent)}
.compare-official-plan{font-weight:600}
.compare-official-price{color:var(--accent);font-weight:750;font-variant-numeric:tabular-nums}
.compare-official-price small{color:var(--muted);font-size:10px;font-weight:500}
.compare-official-region{color:var(--muted);font-size:10.5px}
.compare-official-note{flex:1 1 100%;margin:0;color:var(--muted);font-size:10.5px;line-height:1.55}
.compare-scope-note{margin:10px 2px 0;color:var(--muted);font-size:11px;line-height:1.65}
.compare-group-table .compare-group-product-col{width:34%}
.compare-group-table .compare-group-channels-col{width:11%}
.compare-group-table .compare-group-price-col{width:21%}
.compare-group-table .compare-group-spread-col{width:11%}
.compare-group-table .compare-group-latest-col{width:12%}
.compare-group-table .compare-action-col{width:11%}
.compare-group-table th,.compare-group-table td{padding-left:16px;padding-right:16px}
.compare-group-copy{min-width:0}
.compare-group-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.compare-tag{display:inline-flex;align-items:center;padding:2px 7px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--muted);font-size:10px;font-weight:600;line-height:1.5;white-space:nowrap}
.compare-tag.is-category{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,var(--line));background:var(--soft)}
.compare-group-channels{color:var(--text);font-size:17px;font-weight:750;font-variant-numeric:tabular-nums}
.compare-group-channel-count{display:inline-block;white-space:nowrap}
.compare-group-channel-count .compare-group-channels{display:inline}
.compare-group-table th.compare-group-product-col,.compare-group-table td.compare-group-product-col{text-align:left}
.compare-group-table .compare-product{justify-content:flex-start}
.compare-group-channels-col small,.compare-group-price-col small,.compare-group-spread-col small{display:block;margin-top:2px;color:var(--muted);font-size:10.5px}
.compare-price-dash{margin:0 2px;color:var(--muted);font-weight:500}
.compare-spread{display:inline-block;color:var(--accent);font-size:14px;font-weight:750;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:780px){
.compare-view-tabs{margin-bottom:10px;width:100%}
.compare-view-tabs .market-tab{flex:1;justify-content:center;min-height:44px}
.compare-category-card{margin-top:10px}
.compare-official-ref{padding:11px 12px}
.compare-official-list{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.compare-official-item{flex:none}
.compare-group-table{display:block}
.compare-group-table tbody{display:grid;gap:10px}
.compare-group-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:14px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.compare-group-table td{display:block;padding:0;border:0}
.compare-group-table td.compare-group-product-col{grid-column:1/-1;width:auto}
.compare-group-table td.compare-group-channels-col{grid-column:1;display:flex;align-items:baseline;gap:5px;width:auto}
.compare-group-table td.compare-group-channels-col small{display:inline;margin-top:0}
.compare-group-table td.compare-group-price-col{grid-column:2;width:auto;text-align:right;align-self:center}
.compare-group-table td.compare-group-spread-col{grid-column:1;display:flex;align-items:baseline;gap:6px;width:auto}
.compare-group-table td.compare-group-spread-col::before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}
.compare-group-table td.compare-group-spread-col small{display:inline;margin-top:0}
.compare-group-table td.compare-group-latest-col{grid-column:2;width:auto;text-align:right}
.compare-group-table td.compare-action-col{grid-column:1/-1;width:auto;text-align:right;padding-top:2px}
.compare-group-tags{gap:3px}
.compare-tag{padding:2px 6px;font-size:9.5px}
}
.market-empty{padding:56px 24px;text-align:center;color:var(--muted)}
.market-empty-icon{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--soft);color:var(--accent);margin-bottom:10px}
.market-empty-icon svg{width:22px;height:22px}
.market-empty h2{color:var(--text);font-size:19px;margin-bottom:6px}
.market-empty p{font-size:12.5px;margin-bottom:14px}
@media(max-width:860px){.market-controls{padding:12px;gap:9px}.market-search{order:4;flex-basis:100%;min-width:0}.market-filter{order:5;margin-left:auto}.market-filter-panel{position:static;width:100%;max-width:none;margin-top:10px;box-shadow:none;border-radius:12px}.market-footer{align-items:flex-start}.market-pagination{margin-left:auto}}
@media(max-width:780px){.market-table-scroll{overflow:visible}.market-table{min-width:0;display:block}.market-table thead{display:none}.market-table tbody{display:block}.market-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;padding:15px 16px;border-bottom:1px solid var(--line)}.market-entry:hover td{background:transparent}.market-entry td{display:block;padding:0;border:0;background:transparent}.market-entry td.market-seq{display:none}.market-entry td[data-label="平台"],.market-entry td[data-label="商品"],.market-entry td[data-label="热门商品"],.market-entry td.market-action{grid-column:1/-1}.market-entry td[data-label="平台"],.market-entry td[data-label="商品"]{padding-bottom:2px}.market-entry td[data-label="热门商品"]{padding-top:4px}.market-entry td[data-label="平台系统"],.market-entry td[data-label="商品数"],.market-entry td[data-label="评分"],.market-entry td[data-label="最近更新"],.market-entry td[data-label="价格"],.market-entry td[data-label="库存"]{display:flex;align-items:center;gap:7px;text-align:left;justify-content:flex-start}.market-entry td[data-label]:not([data-label="平台"]):not([data-label="商品"]):not([data-label="热门商品"])::before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.3px;white-space:nowrap}.market-entry td.market-action{display:flex;justify-content:flex-end;padding-top:2px}.market-products{max-width:none;min-width:0}.market-platform,.market-item{max-width:none;min-width:0}.market-avatar{width:36px;height:36px}.market-platform-copy p{max-width:none;-webkit-line-clamp:3}.market-product-table .market-num small{text-align:left}.market-footer{flex-direction:column;align-items:stretch}.market-pagination{justify-content:space-between;margin-left:0}.market-page-jump{flex:1 0 100%;justify-content:flex-end}.market-summary{order:2}.market-chips{padding:9px 12px}.market-chips-clear{margin-left:0}}
@media(min-width:561px) and (max-width:860px){.market-filter{order:3;margin-left:auto}.market-search{order:4}}
@media(max-width:560px){.market-tabs{flex:1}.market-tab{flex:1;justify-content:center}.market-filter{margin-left:0;width:100%}.market-filter-trigger{width:100%;justify-content:center}.market-filter-panel{width:100%}}
.official-maintenance{margin-bottom:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
.official-maintenance-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;list-style:none;color:var(--text)}
.official-maintenance-summary::-webkit-details-marker{display:none}
.official-maintenance-summary>span{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px}
.official-maintenance-summary b{font-size:15px}
.official-maintenance-summary small{color:var(--muted);font-size:12px;font-weight:400}
.official-maintenance-summary i{flex:none;width:8px;height:8px;margin-right:4px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg)}
.official-maintenance[open]>.official-maintenance-summary{border-bottom:1px solid var(--line)}
.official-maintenance[open]>.official-maintenance-summary i{transform:rotate(225deg)}
.official-maintenance>section,.official-maintenance>.official-admin-tools{margin:16px}
.official-sync-job{position:relative;padding:14px 16px;margin:0 0 14px;background:var(--bg);border:1px solid var(--line);border-radius:13px}
.official-sync-job-head{padding-right:145px;min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px}
.official-sync-job-head>div{flex-wrap:wrap;display:flex;align-items:center;gap:9px}
.official-sync-job-head>span{font-variant-numeric:tabular-nums;font-weight:700;color:var(--accent)}
.official-sync-bar{height:7px;margin:9px 0 7px;background:color-mix(in srgb,var(--line) 55%,transparent);border-radius:20px;overflow:hidden}
.official-sync-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 55%,#fff));border-radius:20px;transition:width .3s}
.official-sync-job p{margin:0;color:var(--muted);font-size:11.5px;line-height:1.6}
.official-sync-refresh{display:inline-block;margin-top:7px;font-size:11.5px;font-weight:650}
.official-sync-states{min-width:0}
.official-sync-states>.official-sync-state-toggle{position:absolute;top:14px;right:16px;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:5px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--accent);font-size:12px;font-weight:600;line-height:20px;white-space:nowrap;cursor:pointer;list-style:none;transition:background .15s,border-color .15s}
.official-sync-states>.official-sync-state-toggle:hover{background:var(--soft);border-color:var(--accent)}
.official-sync-states>summary::-webkit-details-marker{display:none}
.official-sync-states>summary svg{transition:transform .15s}
.official-sync-states[open]>summary svg{transform:rotate(180deg)}
.official-sync-states[open]{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.official-sync-states .table-scroll{margin-top:10px}
.official-sync-states table{min-width:700px}

/* Fixed market column tracks keep the dense table readable at every width. */
.market-platform-table,.market-product-table{table-layout:fixed}
.market-col-seq{width:38px}
.market-col-shop{width:110px}
.market-col-count{width:88px}
.market-col-products{width:320px}
.market-col-score{width:136px}
.market-col-updated{width:132px}
.market-col-action{width:108px}
.market-col-price{width:112px}
.market-col-stock{width:82px}
.market-col-platform{width:160px}
@media(max-width:780px){.market-platform-table,.market-product-table{table-layout:auto}.market-col-seq,.market-col-shop,.market-col-count,.market-col-products,.market-col-score,.market-col-updated,.market-col-action,.market-col-price,.market-col-stock,.market-col-platform{width:auto}}

/* Flat official heading and a single search/stats command row. */
.official-admin-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 14px;padding:0;background:none;border:0;box-shadow:none}
.official-admin-heading .official-admin-copy h1{margin:2px 0 5px;font-size:27px;letter-spacing:-.03em}
.official-admin-heading .official-admin-copy>p:not(.eyebrow){max-width:720px;margin:0;color:var(--muted);font-size:12.5px;line-height:1.65}
.official-admin-heading .official-head-actions{margin:0 0 2px;flex:none}
.official-command{display:flex;align-items:center;gap:16px;margin:0 0 18px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.official-command-stats{display:flex;align-items:stretch;flex:none}
.official-command-stat{display:flex;flex-direction:column;justify-content:center;min-width:76px;padding:0 15px;border-left:1px solid var(--line)}
.official-command-stat:first-child{padding-left:2px;border-left:0}
.official-command-stat small{color:var(--muted);font-size:10.5px;white-space:nowrap}
.official-command-stat b{margin-top:1px;font-size:21px;line-height:1.15;font-variant-numeric:tabular-nums}
.official-command-search{display:flex;align-items:center;gap:7px;flex:1;min-width:0;max-width:680px;margin-left:4px}
.official-command-search input{flex:1;min-width:0;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font:inherit;font-size:13px}
.official-command-search .btn{flex:none;min-height:38px;margin:0;white-space:nowrap}
@media(max-width:900px){.official-admin-heading{flex-direction:column;align-items:flex-start}.official-command{flex-wrap:wrap}.official-command-stats{width:100%}.official-command-stat{flex:1;min-width:0}.official-command-search{max-width:none;width:100%;margin-left:0}}
@media(max-width:520px){.official-command-search{flex-wrap:wrap}.official-command-search input{flex-basis:100%}.official-command-search .btn{flex:1}}
.official-sync-live{display:inline-block;margin-top:7px;color:var(--muted);font-size:11px}
.official-sync-live::before{content:"";display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--accent);animation:officialPulse 1.4s ease-in-out infinite;vertical-align:1px}
@keyframes officialPulse{0%,100%{opacity:.35}50%{opacity:1}}

/* Product-first market labels: quick category bar and per-product tag rows. */
.market-category-bar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 42%,var(--surface))}
.market-category-label{flex:none;margin-right:2px;color:var(--muted);font-size:11.5px;font-weight:700;letter-spacing:.2px;white-space:nowrap}
.market-category{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--muted);font-size:11.5px;font-weight:600;line-height:1.5;white-space:nowrap;transition:border-color .16s,background .16s,color .16s}
.market-category span{color:inherit;font-size:10px;font-weight:750;font-variant-numeric:tabular-nums;opacity:.72}
.market-category:hover{border-color:var(--accent);color:var(--accent)}
.market-category.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.market-category.is-active span{opacity:.86}
.market-item-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.market-item-tag{display:inline-flex;align-items:center;max-width:180px;padding:1px 6px;border:1px solid var(--line);border-radius:5px;background:var(--bg);color:var(--muted);font-size:10px;line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.market-item-tag.is-category{background:var(--soft);border-color:color-mix(in srgb,var(--accent) 16%,var(--line));color:var(--accent);font-weight:700}
@media(max-width:860px){.market-category-bar{flex-wrap:nowrap;overflow-x:auto;padding:9px 12px;scrollbar-width:thin}.market-category{flex:none}}
@media(max-width:780px){.market-item-tag{max-width:220px}.market-item-tags{margin-top:4px}}

/* Compact one-row official quote table. */
.official-prices-section{margin-top:18px}
.official-price-table{min-width:1040px}
.official-price-table th{padding:10px 12px;white-space:nowrap}
.official-price-table td{padding:9px 12px;font-size:12.5px;vertical-align:middle;white-space:nowrap}
.official-row-product{display:flex;align-items:baseline;gap:7px;max-width:300px;min-width:0}
.official-row-product b{font-size:12.5px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.official-row-product small{color:var(--muted);font-size:10.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.official-row-region{display:inline-block;font-weight:650;margin-right:5px}
.official-price-table td>small{color:var(--muted);font-size:10.5px}
.official-row-price{color:var(--accent);font-size:13px;font-variant-numeric:tabular-nums}
.official-row-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}
.official-row-actions form{display:inline;margin:0}
.official-row-actions .btn,.official-row-actions .ghost{min-height:27px;padding:3px 8px;font-size:11px;margin:0;line-height:1.2}
.official-row-actions .ghost{border-radius:8px}
@media(max-width:800px){.official-price-table{min-width:960px}}

/* Official price list controls stay beside the table they filter. */
.official-admin-filter{max-width:none;margin:0 0 12px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.official-admin-filter .input-wrap{flex:1 1 220px}
.official-admin-filter>input,.official-admin-filter select{min-height:42px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);padding:0 11px;font:inherit}
@media(max-width:700px){.official-admin-filter{display:grid;grid-template-columns:1fr 1fr}.official-admin-filter .input-wrap{grid-column:1/-1}.official-admin-filter>input,.official-admin-filter select{width:100%;min-width:0}}

.official-quick-plans{margin:0 0 18px;min-width:0}
.official-product-tabs{display:flex;gap:0 4px;flex-wrap:wrap;overflow:visible;border-bottom:1px solid var(--line)}
.official-product-tabs>a{display:inline-flex;align-items:center;gap:9px;flex:none;padding:14px 16px;border-bottom:3px solid transparent;color:var(--muted);font-size:16px;font-weight:550;white-space:nowrap}
.official-product-tabs>a:hover,.official-product-tabs>a[aria-current]{color:var(--accent)}
.official-product-tabs>a[aria-current]{border-bottom-color:var(--accent)}
.official-product-initial{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--soft);color:var(--accent);font-size:16px;font-weight:700}
.official-product-initial img{width:74%;height:74%;object-fit:contain;display:block}
html[data-theme=dark] .official-product-initial img.is-mono{filter:invert(1)}
.official-quick-tiers{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0 0}
.official-quick-tiers a{display:inline-flex;align-items:center;min-height:32px;padding:5px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:12px;line-height:1.5}
.official-quick-tiers a:hover,.official-quick-tiers a[aria-current]{color:var(--accent);border-color:var(--accent);background:var(--soft)}
.official-quick-tiers a[aria-current]{font-weight:650}
@media(max-width:1100px){.official-product-tabs{gap:0 4px;flex-wrap:wrap;overflow:visible}.official-product-tabs>a{padding:10px 14px;font-size:15px}}
@media(max-width:560px){.official-product-tabs{gap:0 4px;flex-wrap:wrap;overflow:visible}.official-product-tabs>a{padding:10px 12px;font-size:14px}}

/* Homepage official lowest-price cards: product plans with native expandable regions. */
.official-lowest-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.official-lowest-card{display:flex;flex-direction:column;min-width:0;height:100%;padding:24px 20px 18px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.official-lowest-head{display:flex;align-items:center;gap:13px}
.official-lowest-head .app-logo{width:46px;height:46px;border-radius:14px;font-size:23px}
.official-lowest-head h3{font-size:21px;font-weight:700;letter-spacing:-.4px;overflow-wrap:anywhere}
.official-lowest-desc{margin-top:10px;color:var(--muted);font-size:13px;line-height:1.6}
.official-lowest-divider{margin:16px 0 6px;border:0;border-top:1px dashed var(--line)}
.official-plan{min-width:0}
.official-plan-row{display:flex;align-items:center;gap:5px;padding:12px 5px;border-radius:10px;list-style:none;cursor:pointer;transition:background .15s}
.official-plan-row::-webkit-details-marker{display:none}
.official-plan-row:hover{background:var(--soft)}
.official-plan[open]>.official-plan-row{background:color-mix(in srgb,var(--soft) 62%,transparent)}
.official-plan-name{min-width:0;font-size:14px;font-weight:700;line-height:1.45;overflow-wrap:anywhere}
.official-plan-row .billing-pill{flex:none;padding:2px 6px;font-size:10px}
.official-plan-quote{display:flex;align-items:center;gap:7px;flex:none;margin-left:auto}
.official-plan-region{color:var(--muted);font-size:11px;white-space:nowrap}
.official-plan-price{color:var(--text);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.official-plan-caret{flex:none;width:7px;height:7px;margin-left:2px;border-right:1.6px solid var(--muted);border-bottom:1.6px solid var(--muted);transform:rotate(45deg) translateY(-2px);transition:transform .18s}
.official-plan[open]>.official-plan-row .official-plan-caret{transform:rotate(-135deg) translateY(-1px)}
.official-regions{list-style:none;margin:4px 0 8px;padding:8px;border-radius:12px;background:var(--bg)}
.official-region-row{display:grid;grid-template-columns:20px minmax(0,1fr) minmax(68px,auto) minmax(66px,auto);gap:9px;align-items:center;padding:7px 9px;border-radius:8px;font-size:13px}
.official-region-row:nth-child(odd){background:color-mix(in srgb,var(--surface) 62%,transparent)}
.official-region-rank{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums;text-align:center}
.official-region-name{min-width:0;color:var(--text);font-weight:650;overflow-wrap:anywhere}
.official-region-original{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.official-region-cny{color:var(--text);font-weight:700;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.official-region-row:first-child .official-region-name,.official-region-row:first-child .official-region-cny{color:var(--accent)}
.official-region-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;padding:2px 9px 6px;color:var(--muted);font-size:11px;line-height:1.6}
.official-region-foot a{color:var(--accent);font-weight:650;white-space:nowrap}
.official-more{margin-top:8px}
.official-more>summary{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);font-size:13px;font-weight:600;list-style:none;cursor:pointer}
.official-more>summary::-webkit-details-marker{display:none}
.official-more>summary:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.official-more .more-close-label{display:none}
.official-more[open] .more-open-label{display:none}
.official-more[open] .more-close-label{display:inline}
.official-more[open]>summary{margin-bottom:4px}
.official-more>summary .official-plan-caret{transform:rotate(45deg) translateY(-2px)}
.official-more[open]>summary .official-plan-caret{transform:rotate(-135deg) translateY(-1px)}
.official-card-link{margin-top:auto;padding-top:13px;border-top:1px solid var(--line);color:var(--accent);font-size:12px;font-weight:650}
.official-card-link:hover{text-decoration:underline}
.official-lowest-note{margin-top:14px;color:var(--muted);font-size:12px;line-height:1.8}
@media(max-width:1023px){.official-lowest-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media(min-width:1024px) and (max-width:1239px){
.official-plan-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name billing caret" "quote quote quote";gap:4px 6px;align-items:center}
.official-plan-name{grid-area:name}
.official-plan-row .billing-pill{grid-area:billing}
.official-plan-quote{grid-area:quote;margin-left:0;justify-content:flex-end}
.official-plan-caret{grid-area:caret}
}

@media(max-width:760px){
.official-lowest-grid{grid-template-columns:1fr;gap:13px}
.official-lowest-card{padding:20px 17px 15px}
.official-lowest-head h3{font-size:19px}
.official-plan-name{font-size:14px}
.official-plan-price{font-size:14px}
.official-plan-region{font-size:11px}
.official-region-row{grid-template-columns:18px minmax(0,1fr) minmax(62px,auto) minmax(60px,auto);gap:7px;padding:7px}
.official-region-name{font-size:12.5px}
.official-region-original{font-size:11px}
.official-region-cny{font-size:12.5px}
}
@media(max-width:380px){
.official-plan-quote{width:100%;justify-content:flex-end;margin-left:0}
.official-plan-row{flex-wrap:wrap}
}


/* Product initials keep their tone in dark mode without a light pastel glare. */

/* Platform card hot products */
@media(max-width:700px){
.card-hot-item{font-size:12px;padding:6px 9px}
.card-hot-item b{font-size:12px}
.card-hot-title,.card-hot-empty{font-size:10px}
}

/* Public API relay directory */
.relay-workspace{margin-top:0;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}
.relay-search{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 14px;border-bottom:1px solid var(--line)}
.relay-search .market-search{flex:1 1 320px}
.relay-reset{color:var(--muted);font-size:12px;white-space:nowrap}
.relay-reset:hover{color:var(--accent)}
.relay-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 40%,var(--surface));color:var(--muted);font-size:12px}
.relay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}
.relay-card{display:flex;flex-direction:column;gap:12px;min-width:0;padding:18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(150deg,color-mix(in srgb,var(--soft) 34%,var(--surface)),var(--surface) 62%);transition:border-color .18s,transform .18s,box-shadow .18s}
.relay-card:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));transform:translateY(-2px);box-shadow:var(--shadow)}
.relay-head{display:flex;align-items:flex-start;gap:11px;min-width:0}
.relay-logo{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:13px;background:var(--soft);color:var(--accent);font-size:18px;font-weight:750;letter-spacing:-.5px}
.relay-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex:1;min-width:0}
.relay-name{min-width:0}
.relay-name h2{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:16px;line-height:1.4;letter-spacing:-.2px}
.relay-name h2 a{overflow-wrap:anywhere}
.relay-name h2 a:hover{color:var(--accent)}
.relay-host{display:block;margin-top:2px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}
.relay-sponsor{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;background:color-mix(in srgb,var(--support-ink) 11%,var(--surface));border:1px solid color-mix(in srgb,var(--support-ink) 26%,var(--line));color:var(--support-ink);font-size:10px;font-weight:700;white-space:nowrap}
.relay-sponsor svg{width:10px;height:10px;stroke-width:2.3;fill:color-mix(in srgb,var(--support-ink) 18%,transparent)}
.relay-score{display:grid;place-items:center;flex:none;min-width:46px;padding:4px 8px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--accent)}
.relay-score b{font-size:15px;line-height:1.25;font-variant-numeric:tabular-nums}
.relay-score small{color:var(--muted);font-size:9px;line-height:1.25}
.relay-summary{color:var(--muted);font-size:12.5px;line-height:1.7}
.relay-meta{display:grid;gap:7px;padding-top:11px;border-top:1px dashed var(--line)}
.relay-row{display:flex;align-items:flex-start;gap:9px;min-width:0}
.relay-row-label{flex:none;width:56px;color:var(--muted);font-size:11px;line-height:1.8}
.relay-tags{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0}
.relay-chip{padding:2px 7px;border:1px solid var(--line);border-radius:20px;background:var(--bg);color:var(--muted);font-size:11px;line-height:1.5;white-space:nowrap}
.relay-muted{color:var(--muted);font-size:11px;line-height:1.8}
.relay-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.relay-stats{display:flex;align-items:center;gap:11px;flex-wrap:wrap;color:var(--muted);font-size:11px}
.relay-stats b{color:var(--text);font-size:13px;font-variant-numeric:tabular-nums}
.relay-refresh{padding-left:11px;border-left:1px solid var(--line)}
.relay-visit{color:var(--accent);font-size:12px;font-weight:650;white-space:nowrap}
.relay-visit:hover{text-decoration:underline}
.relay-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 16px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 38%,var(--surface));border-radius:0 0 20px 20px}
.relay-summary-text{color:var(--muted);font-size:12px}
.relay-empty{padding:56px 24px;text-align:center;color:var(--muted)}
.relay-empty h2{margin:0 0 6px;color:var(--text);font-size:19px}
.relay-empty p{margin:0 0 14px;font-size:12.5px;line-height:1.8}
@media(max-width:1000px){.relay-grid{grid-template-columns:1fr}}
@media(max-width:860px){
.relay-grid{padding:12px;gap:11px}
.relay-card{padding:15px}
}
@media(max-width:560px){
.relay-search{padding:11px}
.relay-search .market-search{flex-basis:100%}
.relay-row{display:grid;gap:3px}
.relay-row-label{width:auto}
.relay-toolbar{padding:9px 12px}
.relay-foot{align-items:flex-start}
}


/* Review queues: pending submissions use a distinct amber badge and quick filter. */
.status-pending{background:var(--pending-bg);color:var(--pending);border:1px solid var(--pending-line)}
.review-stat-pending small{color:var(--pending)}
.review-stat-pending b{color:var(--pending)}
.review-filter-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:-10px 0 16px}
.review-filter{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:5px 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:12.5px;font-weight:650;transition:background .18s,color .18s,border-color .18s}
.review-filter b{min-width:20px;padding:1px 6px;border-radius:999px;background:var(--bg);color:var(--text);font-size:11px;text-align:center;font-variant-numeric:tabular-nums}
.review-filter:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--accent)}
.review-filter.is-active{background:var(--soft);border-color:color-mix(in srgb,var(--accent) 30%,var(--line));color:var(--accent)}
.review-filter-pending{color:var(--pending);border-color:var(--pending-line);background:var(--pending-bg)}
.review-filter-pending b{background:color-mix(in srgb,var(--pending) 12%,var(--surface));color:var(--pending)}
.review-filter-pending:hover,.review-filter-pending.is-active{color:var(--pending);border-color:color-mix(in srgb,var(--pending) 52%,var(--line));background:color-mix(in srgb,var(--pending) 14%,var(--surface))}
.review-queue-hint{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:11px 14px;border:1px solid var(--pending-line);border-left:4px solid var(--pending);border-radius:10px;background:color-mix(in srgb,var(--pending-bg) 76%,var(--surface));color:var(--text);font-size:12.5px;line-height:1.7}
.review-queue-hint a{margin-left:auto;color:var(--pending);font-weight:700;white-space:nowrap}
.review-stat-pending:hover b{color:var(--pending)}
.admin-app .admin-nav .admin-nav-badge{width:auto;min-width:20px;height:19px;padding:0 6px;margin-left:auto;border:1px solid var(--pending-line);border-radius:999px;background:var(--pending-bg);color:var(--pending);font-size:10.5px;font-weight:750;line-height:17px;text-align:center;font-variant-numeric:tabular-nums;box-shadow:none}
.admin-app .admin-nav a.active .admin-nav-badge{border-color:color-mix(in srgb,var(--pending) 46%,var(--line));background:color-mix(in srgb,var(--pending) 18%,var(--surface));color:var(--pending)}
.gateway-contact-warn{color:var(--pending)}
.gateway-api{display:block;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.gateway-name{flex-wrap:wrap}
.source-submission-note{display:-webkit-box;max-width:430px;margin-top:5px;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.6;overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical}

/* Public submission flow: type tabs, editable form, confirmation and receipt. */
.submit-head{max-width:860px}
.submit-head p{max-width:760px;line-height:1.85}
.submit-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:940px;margin:0 0 20px}
.submit-tab{display:flex;align-items:center;gap:14px;min-width:0;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:15px;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s}
.submit-tab:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 34%,var(--line));box-shadow:var(--shadow)}
.submit-tab.is-active{border-color:color-mix(in srgb,var(--accent) 46%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 11%,var(--surface)),var(--surface));box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 8%,transparent)}
.submit-tab-index{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;background:var(--soft);color:var(--accent);font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}
.submit-tab.is-active .submit-tab-index{background:var(--accent);color:var(--accent-ink)}
.submit-tab-copy{display:grid;gap:2px;min-width:0}
.submit-tab-copy b{font-size:15px;color:var(--text)}
.submit-tab-copy small{color:var(--muted);font-size:11.5px;line-height:1.6}
.submit-tab.is-active .submit-tab-copy b{color:var(--accent)}
.submit-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.72fr);gap:22px;align-items:start;max-width:1120px}
.submit-form{max-width:none;margin:0;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.submit-form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-bottom:6px}
.submit-form-head h2{font-size:20px;line-height:1.4}
.submit-step-mark{padding:4px 10px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:11px;font-weight:700;white-space:nowrap}
.submit-form .row{grid-template-columns:repeat(2,minmax(0,1fr))}
.submit-form-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding-top:4px}
.submit-form-foot p{display:flex;align-items:flex-start;gap:7px;max-width:380px;color:var(--muted);font-size:12px;line-height:1.7}
.submit-form-foot .submit-ok{color:var(--accent);flex:none}
.submit-form-foot .btn{min-width:180px}
.submit-error{max-width:940px;border-color:color-mix(in srgb,var(--danger) 35%,var(--line));background:color-mix(in srgb,var(--danger) 8%,var(--surface))}
.submit-guide{position:sticky;top:18px;display:grid;gap:16px;padding:22px;background:linear-gradient(165deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),var(--surface) 62%);border:1px solid var(--line);border-radius:18px}
.submit-guide h2{font-size:17px}
.submit-guide-list{display:grid;gap:0;margin:0;padding:0;list-style:none;counter-reset:submit-guide}
.submit-guide-list li{position:relative;display:grid;gap:2px;padding:0 0 15px 32px;counter-increment:submit-guide}
.submit-guide-list li::before{content:counter(submit-guide);position:absolute;left:0;top:1px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface);border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));color:var(--accent);font-size:11px;font-weight:800}
.submit-guide-list li:not(:last-child)::after{content:"";position:absolute;left:10.5px;top:26px;bottom:3px;width:1px;background:var(--line)}
.submit-guide-list b{font-size:13px}
.submit-guide-list span{color:var(--muted);font-size:11.5px;line-height:1.75}
.submit-guide-note{padding:14px;border-radius:12px;background:var(--bg);border:1px solid var(--line)}
.submit-guide-note b{font-size:12px;color:var(--pending)}
.submit-guide-note p{margin-top:4px;color:var(--muted);font-size:11.5px;line-height:1.75}
.submit-guide .btn{justify-self:start}
.submit-review-card{max-width:860px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.submit-review-list{display:grid;gap:0;margin:0 0 22px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.submit-review-list>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;padding:13px 16px;border-bottom:1px solid var(--line)}
.submit-review-list>div:last-child{border-bottom:0}
.submit-review-list dt{color:var(--muted);font-size:12px;font-weight:650}
.submit-review-list dd{min-width:0;margin:0;font-size:13.5px;overflow-wrap:anywhere;white-space:pre-wrap}
.submit-review-list dd a{color:var(--accent);overflow-wrap:anywhere}
.submit-confirm-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.submit-legal{margin-top:14px;color:var(--muted);font-size:11.5px;line-height:1.75}
.submit-done{max-width:760px;margin:18px auto 30px;text-align:center;padding:32px 28px;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}
.submit-done-mark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 16px;border-radius:50%;background:var(--soft);color:var(--accent)}
.submit-done-mark svg{width:28px;height:28px;stroke-width:2.2}
.submit-done .eyebrow{color:var(--accent)}
.submit-done h1{margin:8px 0 12px;font-size:30px;letter-spacing:-.6px}
.submit-done-lead{max-width:600px;margin:0 auto 14px;color:var(--muted);line-height:1.9;font-size:14px}
.submit-ref{display:inline-flex;align-items:center;gap:8px;margin:2px 0 18px;padding:5px 13px;border-radius:999px;background:var(--pending-bg);border:1px solid var(--pending-line);color:var(--pending);font-size:12px;font-weight:650}
.submit-ref code{color:inherit;font-size:12.5px;font-weight:800;letter-spacing:.04em}
.submit-next{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 22px;padding:0;list-style:none;text-align:left}
.submit-next li{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.submit-next b{font-size:12.5px}
.submit-next span{color:var(--muted);font-size:11.5px;line-height:1.7}
.submit-done-actions{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}
@media(max-width:980px){.submit-layout{grid-template-columns:1fr}.submit-guide{position:static;grid-template-columns:1fr;order:2}.submit-next{grid-template-columns:1fr}}
@media(max-width:640px){.submit-tabs{grid-template-columns:1fr}.submit-form{padding:18px 15px}.submit-form .row{grid-template-columns:1fr}.submit-form-foot{align-items:stretch;flex-direction:column}.submit-form-foot .btn{width:100%}.submit-review-card{padding:18px 15px}.submit-review-list>div{grid-template-columns:1fr;gap:3px;padding:11px 13px}.submit-confirm-actions .btn{flex:1 1 140px}.submit-done{padding:26px 18px}.submit-done h1{font-size:25px}.submit-done-actions .btn{flex:1 1 140px}}

.source-review-actions .btn:disabled{background:var(--bg);border:1px solid var(--line);color:var(--muted);box-shadow:none;cursor:not-allowed;transform:none}

/* 合作与赞赏：前台说明页、名单与订单页，以及后台审核表。
   两个快捷入口用“赞赏=暖金、合作=靛紫”的语义色区分，色值只来自 theme.css。 */
.header-quick{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 13px;border-radius:10px;font-size:13px;font-weight:700;border:1px solid transparent;transition:background .18s,color .18s,border-color .18s}
.header-quick svg{width:15px;height:15px;stroke-width:1.9}
.header-quick.is-support{color:var(--support-strong);background:var(--support-fill);border-color:color-mix(in srgb,var(--support-ink) 30%,var(--support-fill))}
.header-quick.is-support:hover{background:color-mix(in srgb,var(--support-ink) 8%,var(--support-fill));border-color:color-mix(in srgb,var(--support-ink) 48%,var(--support-fill))}
.header-quick.is-coop{color:var(--coop-ink);background:var(--coop-fill);border-color:color-mix(in srgb,var(--coop-ink) 28%,var(--coop-fill))}
.header-quick.is-coop:hover{background:color-mix(in srgb,var(--coop-ink) 6%,var(--coop-fill));border-color:color-mix(in srgb,var(--coop-ink) 46%,var(--coop-fill))}
.header-quick.is-support.is-active{background:color-mix(in srgb,var(--support-ink) 8%,var(--support-fill));border-color:color-mix(in srgb,var(--support-ink) 48%,var(--support-fill))}
.header-quick.is-coop.is-active{background:color-mix(in srgb,var(--coop-ink) 6%,var(--coop-fill));border-color:color-mix(in srgb,var(--coop-ink) 46%,var(--coop-fill))}
.header-quick.is-active{font-weight:750}
@media(max-width:800px){.header-quick{display:none}}
.mobile-navigation nav a.mobile-nav-support,.mobile-navigation nav a.mobile-nav-coop{display:flex;align-items:center;gap:9px;font-weight:700}
.mobile-navigation nav a.mobile-nav-support{color:var(--support-strong);background:var(--support-fill)}
.mobile-navigation nav a.mobile-nav-coop{color:var(--coop-ink);background:var(--coop-fill)}
.mobile-navigation nav a.mobile-nav-support svg,.mobile-navigation nav a.mobile-nav-coop svg{width:16px;height:16px}
.mobile-navigation nav a.mobile-nav-support:hover{background:color-mix(in srgb,var(--support-ink) 8%,var(--support-fill))}
.mobile-navigation nav a.mobile-nav-coop:hover{background:color-mix(in srgb,var(--coop-ink) 6%,var(--coop-fill))}
.btn.is-support{color:var(--support-strong);background:var(--support-fill);border:1px solid color-mix(in srgb,var(--support-ink) 34%,var(--support-fill))}
.btn.is-support:hover:not(:disabled){background:color-mix(in srgb,var(--support-ink) 10%,var(--support-fill));border-color:color-mix(in srgb,var(--support-ink) 52%,var(--support-fill))}
.btn.is-coop{color:var(--coop-ink);background:var(--coop-fill);border:1px solid color-mix(in srgb,var(--coop-ink) 32%,var(--coop-fill))}
.btn.is-coop:hover:not(:disabled){background:color-mix(in srgb,var(--coop-ink) 6%,var(--coop-fill));border-color:color-mix(in srgb,var(--coop-ink) 50%,var(--coop-fill))}
.header-quick.is-support:focus-visible,.mobile-navigation nav a.mobile-nav-support:focus-visible,.btn.is-support:focus-visible{outline-color:var(--support-ink)}
.header-quick.is-coop:focus-visible,.mobile-navigation nav a.mobile-nav-coop:focus-visible,.btn.is-coop:focus-visible{outline-color:var(--coop-ink)}

.partner-hero,.support-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:34px;align-items:stretch;padding:38px 40px;background:var(--intro);border:1px solid var(--line);border-radius:28px;margin:8px 0 22px;position:relative;overflow:hidden}
.partner-hero:after,.support-hero:after{content:"";position:absolute;width:260px;height:260px;border:1px solid var(--ring);border-radius:50%;right:-90px;bottom:-150px;pointer-events:none}
.partner-hero-copy,.support-hero-copy{position:relative;z-index:1;min-width:0;align-self:center}
.partner-hero h1,.support-hero h1{font-size:clamp(30px,3.2vw,43px);line-height:1.28;letter-spacing:-1.2px;max-width:15em}
.partner-hero p,.support-hero p{margin-top:15px;color:var(--muted);font-size:14px;line-height:1.95;max-width:660px}
.partner-hero-actions,.support-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.partner-hero-side,.support-hero-side{position:relative;z-index:1;display:flex;flex-direction:column;gap:14px;justify-content:center;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);min-width:0}
.partner-metrics,.support-metrics{display:grid;gap:9px}
.partner-metrics div,.support-metrics div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--bg);border-radius:11px}
.partner-metrics span,.support-metrics span{color:var(--muted);font-size:12px}
.partner-metrics strong,.support-metrics strong{font-size:19px;letter-spacing:-.5px;color:var(--accent);font-variant-numeric:tabular-nums}
.partner-hero-side>p,.support-hero-side>p{font-size:12px;line-height:1.8;margin:0;color:var(--muted)}
.partner-notice,.support-notice{margin:0 0 18px}

.partner-section,.supporter-list-section,.support-section{margin:26px 0}
.partner-section-head,.supporter-list-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:16px;flex-wrap:wrap}
.partner-section-head h2,.supporter-list-head h2,.support-form-head h2{font-size:25px;letter-spacing:-.7px}
.partner-section-head>p,.supporter-list-head>p{max-width:520px;color:var(--muted);font-size:13px;line-height:1.8}
.partner-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.partner-option{display:flex;flex-direction:column;gap:14px;padding:23px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}
.partner-option header{display:flex;gap:12px;align-items:flex-start}
.partner-option-index{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--soft);color:var(--accent);font-size:13px;font-weight:750;flex:none}
.partner-option h3{font-size:17px;letter-spacing:-.3px}
.partner-option header p{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.7}
.partner-steps{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:step}
.partner-steps li{position:relative;padding-left:25px;counter-increment:step;display:grid;gap:2px}
.partner-steps li:before{content:counter(step);position:absolute;left:0;top:1px;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:var(--soft);color:var(--accent);font-size:10px;font-weight:700}
.partner-steps b{font-size:12.5px}
.partner-steps span{color:var(--muted);font-size:12px;line-height:1.7}
.partner-placement{margin:0;padding:11px 12px;border-radius:10px;background:var(--bg);color:var(--muted);font-size:12px;line-height:1.8}
.partner-placement b{display:block;color:var(--text);margin-bottom:2px}
.partner-option .btn{margin-top:auto;align-self:flex-start}

.partner-rule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.partner-panel{padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.partner-panel h3{font-size:16px;margin-bottom:10px}
.partner-panel ul{margin:0;padding-left:19px;display:grid;gap:8px;color:var(--muted);font-size:12.5px;line-height:1.8}
.partner-points p{color:var(--muted);font-size:12.5px;line-height:1.85}
.partner-formula{margin:11px 0!important;padding:12px;border-radius:10px;background:var(--bg);color:var(--accent)!important;font-size:13px!important;text-align:center;font-weight:650}
.partner-inline-link,.support-partner-link{display:inline-block;margin-top:12px;color:var(--accent);font-size:12.5px;font-weight:650;border-bottom:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}
.partner-inline-link.is-support,.support-partner-link.is-support{color:var(--support-ink);border-bottom-color:color-mix(in srgb,var(--support-ink) 45%,transparent)}
.partner-inline-link.is-coop,.support-partner-link.is-coop{color:var(--coop-ink);border-bottom-color:color-mix(in srgb,var(--coop-ink) 45%,transparent)}
.partner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.partner-card{position:relative;display:grid;gap:5px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);transition:transform .18s,border-color .18s}
.partner-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--coop-ink) 55%,var(--line))}
.partner-card-mark{display:inline-flex;align-items:center;gap:4px;align-self:start;width:max-content;padding:3px 9px 3px 8px;border-radius:20px;background:color-mix(in srgb,var(--coop-ink) 11%,var(--surface));border:1px solid color-mix(in srgb,var(--coop-ink) 30%,var(--line));color:var(--coop-ink);font-size:10px;font-weight:700;margin-bottom:6px}
.partner-card-mark svg{width:11px;height:11px;stroke-width:2.3}
.partner-card-name{font-size:17px;font-weight:700;letter-spacing:-.3px;overflow-wrap:anywhere}
.partner-card-kind{font-size:11px;color:var(--muted)}
.partner-card-note{font-size:12.5px;color:var(--muted);line-height:1.8;margin-top:4px}
.partner-card-host{font-size:11px;color:var(--accent);margin-top:8px}
.partner-apply-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:18px;align-items:start}
.partner-form,.support-form{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.partner-form-head,.support-form-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.partner-form-head h3{font-size:19px}
.partner-form-head>span,.support-form-head>span{font-size:11px;color:var(--muted);padding:4px 9px;border-radius:20px;background:var(--bg);white-space:nowrap}
.partner-form-foot,.support-form-foot{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.partner-form-foot p,.support-form-foot p{display:flex;align-items:flex-start;gap:7px;max-width:420px;color:var(--muted);font-size:12px;line-height:1.7}
.partner-form-foot svg{width:16px;height:16px;color:var(--accent);margin-top:2px}
.partner-contact-panel{padding:24px;background:var(--intro);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:12px;align-content:start}
.partner-contact-mark{display:grid;place-items:center;width:45px;height:45px;border-radius:50%;background:var(--surface);color:var(--accent);font-size:22px}
.partner-contact-panel h3{font-size:19px;letter-spacing:-.4px}
.partner-contact-panel>p{color:var(--muted);font-size:12.5px;line-height:1.85}
.partner-contact-box,.support-contact{display:grid;gap:3px;padding:13px 14px;background:var(--surface);border:1px solid var(--line);border-radius:11px;overflow-wrap:anywhere}
.partner-contact-box span,.support-contact span{font-size:10.5px;color:var(--muted)}
.partner-contact-box b,.support-contact b{font-size:13px}
.partner-contact-box a,.support-contact a{font-size:13px;color:var(--accent);font-weight:650}
.partner-contact-empty{color:var(--muted);font-size:12px;line-height:1.8}
.partner-contact-list{margin:0;padding-left:18px;display:grid;gap:7px;color:var(--muted);font-size:12px;line-height:1.75}

.support-hero{background:linear-gradient(135deg,var(--intro),var(--bg))}
.support-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.support-metrics div{display:grid;gap:3px;text-align:left}
.support-metrics strong{font-size:17px}
.support-notice{margin-top:0}
.supporter-list-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.supporter-list-total{font-size:12px;color:var(--muted);padding:7px 11px;border-radius:20px;background:var(--surface);border:1px solid var(--line);white-space:nowrap}
.supporter-filters{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 14px}
.supporter-filter{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:20px;background:var(--surface);border:1px solid var(--line);color:var(--muted);font-size:12.5px;font-weight:600}
.supporter-filter b{font-size:11px;padding:1px 6px;border-radius:10px;background:var(--bg);color:var(--muted)}
.supporter-filter:hover{color:var(--accent);border-color:var(--accent)}
.supporter-filter.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.supporter-filter.is-active b{background:color-mix(in srgb,var(--accent-ink) 20%,transparent);color:var(--accent-ink)}
.supporter-table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow)}
.supporter-table{width:100%;border-collapse:collapse;min-width:760px}
.supporter-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:650;color:var(--muted);background:var(--bg);border-bottom:1px solid var(--line);white-space:nowrap}
.supporter-table th.num,.supporter-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.supporter-table td{padding:14px 16px;border-bottom:1px solid var(--line);vertical-align:top;font-size:13px}
.supporter-table tr:last-child td{border-bottom:0}
.supporter-table tbody tr:hover{background:color-mix(in srgb,var(--soft) 55%,transparent)}
.supporter-rank{width:54px;color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}
.supporter-name{font-weight:650;overflow-wrap:anywhere}
a.supporter-name:hover{color:var(--accent)}
.supporter-message{max-width:360px;color:var(--muted);line-height:1.75;overflow-wrap:anywhere}
.supporter-message-mobile{display:none}
.supporter-kind{display:inline-block;padding:3px 8px;border-radius:20px;font-size:10.5px;font-weight:650;white-space:nowrap;background:var(--soft);color:var(--accent)}
.supporter-kind-person{background:var(--bg);color:var(--muted)}
.supporter-amount{font-weight:700;color:var(--accent);white-space:nowrap}
.supporter-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;color:var(--muted);font-size:12.5px}
.supporter-pagination a{color:var(--accent);font-weight:600}
.supporter-pagination .is-disabled{opacity:.45}
.supporter-empty{padding:52px 24px;text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius)}
.supporter-empty-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:var(--soft);color:var(--accent);font-size:22px}
.supporter-empty h3{font-size:18px}
.supporter-empty p{max-width:520px;margin:7px auto 16px;color:var(--muted);font-size:12.5px;line-height:1.8}

.support-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr);gap:18px;align-items:start}
.support-identities,.support-payments{border:0;padding:0;margin:0 0 15px}
.support-identities legend,.support-payments legend{font-size:12px;font-weight:650;margin-bottom:8px;color:var(--text)}
.support-identities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.support-identities legend{grid-column:1/-1}
.support-identities label{display:flex;align-items:flex-start;gap:8px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--bg);cursor:pointer;transition:border-color .18s,background .18s}
.support-identities label:hover,.support-payments label:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--line))}
.support-identities label:has(input:checked){border-color:var(--accent);background:var(--soft)}
.support-identities input,.support-payments input{margin-top:4px;accent-color:var(--accent)}
.support-identities span{display:grid;gap:2px}
.support-identities b{font-size:12.5px}
.support-identities small{color:var(--muted);font-size:11px;line-height:1.6}
.support-payments{display:flex;gap:9px;flex-wrap:wrap}
.support-payments legend{width:100%}
.support-payments label{display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border:1px solid var(--line);border-radius:20px;background:var(--bg);font-size:12.5px;cursor:pointer;transition:border-color .18s,background .18s}
.support-payments label:has(input:checked){border-color:var(--accent);background:var(--soft);color:var(--accent);font-weight:650}
.support-form-foot{margin-top:18px}
.support-ok{color:var(--accent);font-size:16px}
.support-guide{display:grid;gap:14px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);position:sticky;top:18px}
.support-guide h3{font-size:18px}
.support-guide-list{display:grid;gap:10px;margin:0;padding:0;list-style:none;counter-reset:supportstep}
.support-guide-list li{position:relative;padding-left:28px;counter-increment:supportstep;display:grid;gap:2px}
.support-guide-list li:before{content:counter(supportstep);position:absolute;left:0;top:0;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--soft);color:var(--accent);font-size:10px;font-weight:700}
.support-guide-list b{font-size:12.5px}
.support-guide-list span{color:var(--muted);font-size:12px;line-height:1.7}
.support-instructions{padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:var(--bg)}
.support-instructions b{font-size:11px;color:var(--muted);display:block;margin-bottom:4px}
.support-instructions p{font-size:12.5px;line-height:1.8;white-space:pre-line;overflow-wrap:anywhere}
.support-note{margin:0;color:var(--muted);font-size:11.5px;line-height:1.8}
.support-partner-link{margin-top:0}

.support-order-page{display:grid;place-items:center;padding:26px 0}
.support-order-card{width:min(720px,100%);padding:34px;background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}
.support-order-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;margin-bottom:16px;background:var(--soft);color:var(--accent);font-size:25px;font-weight:750}
.support-order-mark-paid{background:var(--accent);color:var(--accent-ink)}
.support-order-mark-rejected{background:var(--pending-bg);color:var(--pending)}
.support-order-mark-cancelled{background:var(--bg);color:var(--muted)}
.support-order-card h1{font-size:clamp(24px,3vw,33px);letter-spacing:-.8px;line-height:1.35;margin-top:4px}
.support-order-lead{margin-top:12px;color:var(--muted);font-size:13px;line-height:1.9}
.support-order-status{display:inline-flex;margin-top:16px;padding:5px 12px;border-radius:20px;font-size:11.5px;font-weight:650;background:var(--soft);color:var(--accent)}
.support-order-status-pending{background:var(--pending-bg);color:var(--pending)}
.support-order-status-rejected{background:var(--pending-bg);color:var(--danger)}
.support-order-status-cancelled{background:var(--bg);color:var(--muted)}
.support-order-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0 0}
.support-order-summary>div{display:grid;gap:3px;padding:12px 14px;background:var(--bg);border-radius:11px;min-width:0}
.support-order-summary dt{font-size:10.5px;color:var(--muted)}
.support-order-summary dd{margin:0;font-size:13.5px;font-weight:600;overflow-wrap:anywhere}
.support-order-summary code{font-size:12.5px}
.support-order-amount{color:var(--accent);font-size:19px!important;font-variant-numeric:tabular-nums}
.support-order-message{grid-column:1/-1}
.support-order-message dd{font-weight:400;line-height:1.8;color:var(--muted)}
.support-order-pay{margin-top:20px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--intro)}
.support-order-pay h2{font-size:17px;margin-bottom:8px}
.support-order-instructions{font-size:13px;line-height:1.9;white-space:pre-line;overflow-wrap:anywhere}
.support-order-hint{margin-top:8px;color:var(--muted);font-size:11.5px;line-height:1.75}
.support-order-contact{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.support-order-contact a{color:var(--accent);font-weight:650}
.support-order-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:22px}
.support-order-actions form{margin:0}
.support-order-foot{margin-top:16px;color:var(--muted);font-size:11px;line-height:1.7}

.partnership-admin-hint{margin:0 0 14px}
.partnership-admin-name{display:block;font-size:13.5px;overflow-wrap:anywhere}
.partnership-admin-contact{display:block;font-size:12px;color:var(--muted);overflow-wrap:anywhere;margin-top:3px}
.partnership-admin-note{display:block;margin-top:6px;color:var(--muted);line-height:1.7}
.partnership-admin-table{min-width:1050px}
.partnership-admin-actions{display:grid;gap:7px;min-width:190px}
.partnership-review-form{display:grid;gap:6px;margin:0}
.partnership-review-form input[name=admin_note]{min-height:34px;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font-size:12px;width:100%}
.partnership-review-buttons{display:flex;gap:6px;flex-wrap:wrap}
.support-review-form{display:grid;gap:6px;margin:0}
.support-review-form input[name=note],.support-review-form input[name=trade_no]{min-height:32px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);font-size:12px;width:100%}
.support-review-extra summary{cursor:pointer;font-size:12px;color:var(--muted);padding:2px 0}
.support-review-extra[open] summary{color:var(--accent)}
.support-review-fields{display:grid;gap:5px;margin-top:4px}
.support-admin-trade,.support-admin-note{display:block;max-width:100%;overflow-wrap:anywhere}
.support-admin-note{color:var(--accent)}
@media(max-width:700px){.support-review-form input[name=note],.support-review-form input[name=trade_no]{font-size:16px}}
.support-admin-amount{color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}
.support-admin-table{min-width:1120px}
/* Settings page: one calm sheet with hairline sections and a direct save row. */
.settings-form{display:block;max-width:none;margin:0}
.settings-saved{display:flex;align-items:center;gap:9px;margin:0 0 14px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--soft) 48%,var(--surface));color:var(--text);font-size:12px;line-height:1.6}
.settings-saved svg{width:16px;height:16px;flex:none;color:var(--accent)}
.settings-sheet{padding:0 34px;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}
.settings-section{padding:26px 0;border-top:1px solid var(--line)}
.settings-section:first-child{padding-top:28px;border-top:0}
.settings-section-head{display:grid;gap:4px;max-width:740px;margin:0 0 16px}
.settings-section-head h2{font-size:18px;line-height:1.35;letter-spacing:-.3px}
.settings-section-head p{color:var(--muted);font-size:12.5px;line-height:1.7}
.settings-brand{display:grid;grid-template-columns:1fr;gap:18px;align-items:start}
.settings-brand-fields{display:grid;gap:16px;min-width:0}
.settings-form .settings-field{display:grid;align-content:start;gap:7px;min-width:0;color:var(--muted);font-size:12px;font-weight:600}
.settings-label{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;min-width:0}
.settings-label>span{min-width:0;overflow-wrap:anywhere}
.settings-label small{flex:none;color:var(--muted);font-size:12px;font-weight:400;line-height:1.5;white-space:nowrap}
.settings-field input,.settings-field textarea{width:100%;border-radius:10px;background:var(--bg);color:var(--text);font-size:14px;font-weight:400}
.settings-field textarea{padding:12px 14px;min-height:96px;resize:vertical}
.settings-field-wide textarea{min-height:112px}

.settings-form .settings-logo-field>.settings-label{display:flex;align-items:baseline;gap:8px;min-height:0}
.settings-logo-box{display:grid;grid-template-columns:minmax(0,1fr);align-content:start;gap:10px;max-width:560px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
.settings-logo-head{display:flex;align-items:center;gap:11px;min-width:0}
.settings-logo-preview{display:grid;place-items:center;width:54px;height:54px;flex:none;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--accent)}
.settings-logo-preview img{width:100%;height:100%;padding:5px;object-fit:contain}
.settings-logo-preview svg{width:22px;height:22px}
.settings-logo-preview.is-builtin svg{width:100%;height:100%;padding:4px}
.settings-logo-copy{display:grid;gap:3px;min-width:0}
.settings-logo-copy small{color:var(--muted);font-size:12px;font-weight:400;line-height:1.55}
.settings-form .settings-logo-box input[type=file]{display:block;width:100%;max-width:100%;min-width:0;height:46px;min-height:46px;padding:4px 8px;line-height:1.4;overflow:hidden;background:var(--surface);border-radius:9px}
.settings-form .settings-logo-box input[type=file]::file-selector-button{box-sizing:border-box;height:32px;margin:0 8px 0 0;padding:0 9px;line-height:30px}
.settings-logo-box .check{justify-self:start;min-height:36px;margin-top:-2px;color:var(--muted);font-size:12px;font-weight:500}
.settings-logo-box .check input{width:16px;height:16px}
.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.theme-card{--swatch-bg:var(--bg);--swatch-soft:var(--soft);--swatch-accent:var(--accent);--swatch-surface:var(--surface);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"preview preview" "copy radio";gap:9px 8px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s,transform .18s}
.theme-card:hover{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));transform:translateY(-1px)}
.theme-card:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--soft) 40%,var(--surface));box-shadow:inset 0 0 0 1px var(--accent)}
.theme-card:focus-within{outline:3px solid var(--accent);outline-offset:2px}
.theme-preview{grid-area:preview;position:relative;height:92px;overflow:hidden;border:1px solid color-mix(in srgb,var(--line) 78%,var(--text));border-radius:10px;background:var(--swatch-bg)}
.theme-preview-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:3px;height:20px;padding:0 8px;border-bottom:1px solid var(--swatch-soft);background:var(--swatch-surface)}
.theme-preview-top i{width:4px;height:4px;border-radius:50%;background:var(--swatch-soft)}
.theme-preview-body{position:absolute;top:28px;left:8px;right:8px;bottom:8px;display:grid;align-content:start;gap:5px;padding:7px;border-radius:6px;background:var(--swatch-surface);box-shadow:0 4px 10px color-mix(in srgb,var(--swatch-accent) 9%,transparent)}
.theme-preview-body b{display:block;height:3px;border-radius:2px;background:var(--swatch-soft)}
.theme-preview-body b:first-child{width:52%;background:var(--swatch-accent)}
.theme-preview-body b:nth-child(2){width:82%}
.theme-preview-body b:nth-child(3){width:38%}
.theme-preview-pill{display:block;width:38px;height:10px;margin-top:1px;border-radius:4px;background:var(--swatch-accent)}
.theme-copy{grid-area:copy;display:grid;gap:2px;align-self:center;min-width:0}
.theme-copy strong{color:var(--text);font-size:13px;line-height:1.4}
.theme-copy small{color:var(--muted);font-size:12px;line-height:1.4}
.theme-card input{grid-area:radio;align-self:center;width:18px;height:18px;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:none;accent-color:var(--accent);flex:none;cursor:pointer}
.theme-card input:focus-visible{outline:none}
.settings-collab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.settings-field-wide{grid-column:1/-1}
.settings-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 -34px;padding:13px 34px;border-top:1px solid var(--line);border-radius:0 0 22px 22px;background:var(--surface)}
.settings-actions>span{color:var(--muted);font-size:12px;line-height:1.6}
.settings-form .settings-save{min-width:140px;height:44px;padding:0 24px;border-radius:10px;font-size:14px}
@media(min-width:720px){.settings-brand{grid-template-columns:minmax(0,1fr) 292px;gap:22px;align-items:stretch}.settings-logo-box{max-width:none}}
@media(min-width:1100px){.settings-collab-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr)}.settings-field-wide{grid-column:auto}}
@media(min-width:1200px){.settings-brand{grid-template-columns:minmax(0,1fr) 360px}.settings-logo-box{max-width:none}}
@media(min-width:1500px){.settings-brand{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) 360px}.settings-brand-fields{display:contents}}
@media(max-width:900px){.settings-sheet{padding:0 24px}.settings-actions{margin:0 -24px;padding:12px 24px}}
@media(max-width:700px){.settings-collab-grid{grid-template-columns:1fr}.settings-field-wide{grid-column:auto}}
@media(max-width:620px){.theme-grid{grid-template-columns:1fr}.theme-card{grid-template-columns:84px minmax(0,1fr) auto;grid-template-areas:"preview copy radio";align-items:center;gap:10px;padding:8px 10px}.theme-preview{height:60px}.theme-preview-top{height:15px;padding:0 5px}.theme-preview-top i{width:3px;height:3px}.theme-preview-body{top:19px;left:5px;right:5px;bottom:5px;padding:4px;gap:3px}.theme-preview-body b{height:2px}.theme-preview-pill{width:28px;height:7px;margin-top:0}}
@media(max-width:560px){.settings-sheet{padding:0 16px;border-radius:18px}.settings-section{padding:22px 0}.settings-section:first-child{padding-top:24px}.settings-section-head{margin-bottom:16px}.settings-section-head h2{font-size:17px}.settings-brand{gap:16px}.settings-actions{margin:0 -16px;padding:12px 16px;border-radius:0 0 18px 18px}.settings-actions>span{display:none}.settings-form .settings-save{width:100%}.settings-saved{padding:10px 12px}}

@media(max-width:1050px){.partner-options,.partner-rule-grid,.partner-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.partner-hero,.support-hero{grid-template-columns:1fr;padding:30px 28px}.partner-hero-side,.support-hero-side{max-width:560px}.partner-apply-layout,.support-layout{grid-template-columns:1fr}.support-guide{position:static}.support-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.partner-hero,.support-hero{padding:24px 20px;border-radius:22px}.partner-hero h1,.support-hero h1{font-size:29px}.partner-options,.partner-rule-grid,.partner-grid{grid-template-columns:1fr}.partner-hero-side,.support-hero-side{padding:16px}.partner-option,.partner-panel,.partner-contact-panel,.partner-form,.support-form,.support-guide{padding:18px 16px}.partner-section-head,.supporter-list-head{align-items:flex-start;flex-direction:column;gap:7px}.support-identities{grid-template-columns:1fr}.support-metrics{grid-template-columns:1fr}.supporter-table{min-width:0}.supporter-table thead{display:none}.supporter-table,.supporter-table tbody,.supporter-table tr,.supporter-table td{display:block;width:auto}.supporter-table tr{display:grid;grid-template-columns:42px minmax(0,1fr);gap:3px 9px;padding:14px;border-bottom:1px solid var(--line)}.supporter-table tr:last-child{border-bottom:0}.supporter-table td{border:0;padding:2px 0;min-width:0}.supporter-table td.supporter-rank{grid-row:1/3;grid-column:1;align-self:start;color:var(--accent);font-size:18px}.supporter-table td.supporter-name-cell{grid-column:2}.supporter-table td:nth-child(3){grid-column:2}.supporter-table td.supporter-message{display:none}.supporter-table td:nth-child(5),.supporter-table td:nth-child(6){grid-column:2;display:inline-flex;gap:6px;align-items:center;text-align:left;font-size:12px}.supporter-table td:nth-child(5):before{content:"累计 "}.supporter-table td:nth-child(6):before{content:"积分 ";color:var(--muted)}.supporter-table td:nth-child(5),.supporter-table td:nth-child(6){justify-self:start}.supporter-name-cell{display:grid!important;gap:2px}.supporter-message-mobile{display:block;color:var(--muted);font-size:12px;line-height:1.7}.supporter-amount{font-size:14px!important}.supporter-pagination{gap:10px;flex-wrap:wrap}.support-order-card{padding:22px 18px;border-radius:18px}.support-order-summary{grid-template-columns:1fr}.support-order-message{grid-column:auto}.support-order-actions .btn,.support-order-actions form{flex:1 1 150px}.support-order-actions .btn{width:100%}.supporter-list-actions{width:100%;justify-content:space-between}}
@media(max-width:450px){.partner-form-foot .btn,.support-form-foot .btn{width:100%}.supporter-filter{font-size:12px;padding:7px 10px}.support-hero-actions .btn,.partner-hero-actions .btn{flex:1 1 140px}}
.home-community-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.home-community-card{display:flex;align-items:flex-start;gap:16px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .18s,border-color .18s}
.home-community-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.home-community-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--soft);color:var(--accent);flex:none}
.home-community-icon svg{width:22px;height:22px}
.home-community-copy{display:grid;gap:5px;min-width:0}
.home-community-copy small{font-size:10px;letter-spacing:1.5px;color:var(--accent);font-weight:700}
.home-community-copy h3{font-size:19px;letter-spacing:-.4px}
.home-community-copy p{color:var(--muted);font-size:12.5px;line-height:1.8}
.home-community-link{margin-top:5px;color:var(--accent);font-size:12.5px;font-weight:650}
.home-community-card.home-community-support:hover{border-color:color-mix(in srgb,var(--support-ink) 55%,var(--line))}
.home-community-support .home-community-icon{background:color-mix(in srgb,var(--support-ink) 12%,var(--surface));color:var(--support-ink)}
.home-community-support .home-community-copy small,.home-community-support .home-community-link{color:var(--support-ink)}
.home-community-card.home-community-partner:hover{border-color:color-mix(in srgb,var(--coop-ink) 55%,var(--line))}
.home-community-partner .home-community-icon{background:color-mix(in srgb,var(--coop-ink) 12%,var(--surface));color:var(--coop-ink)}
.home-community-partner .home-community-copy small,.home-community-partner .home-community-link{color:var(--coop-ink)}
@media(max-width:700px){.home-community-grid{grid-template-columns:1fr}.home-community-card{padding:19px 17px}}

/* Rating panels: product and shop scores share the same editorial vocabulary. */
.market-score small{color:var(--muted);font-size:10px;font-variant-numeric:tabular-nums}
.rating-panel{margin:0 0 18px;padding:22px}
.rating-panel-head{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;flex-wrap:wrap}
.rating-panel-head h2{display:flex;align-items:baseline;gap:6px;margin:6px 0 0;font-size:23px;letter-spacing:-.4px}
.rating-panel-head h2 b{color:var(--accent);font-size:34px;line-height:1;font-variant-numeric:tabular-nums}
.rating-panel-head h2 small{color:var(--muted);font-size:12px;font-weight:600}
.rating-panel-head p{max-width:620px;margin-top:8px;color:var(--muted);font-size:12px;line-height:1.8}
.rating-panel-side{display:grid;gap:5px;justify-items:end;min-width:130px;padding:12px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.rating-panel-side span{color:var(--muted);font-size:11px}
.rating-panel-side b{color:var(--accent);font-size:16px;font-variant-numeric:tabular-nums}
.rating-panel-side small{color:var(--muted);font-size:11px}
.rating-component-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin-top:18px}
.rating-component{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);min-width:0}
.rating-component span{display:flex;justify-content:space-between;gap:6px;color:var(--muted);font-size:11px;white-space:nowrap}
.rating-component em{font-style:normal;color:var(--muted);font-size:10px}
.rating-component b{color:var(--accent);font-size:20px;line-height:1.15;font-variant-numeric:tabular-nums}
.rating-component small{color:var(--muted);font-size:11px;line-height:1.5}
.rating-disclaimer{display:flex;gap:7px;align-items:flex-start;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;line-height:1.7}
.rating-disclaimer svg{flex:none;width:15px;height:15px;margin-top:2px;color:var(--accent)}
.profile-rating-note{display:flex;align-items:center;gap:5px;margin-top:6px;color:var(--muted);font-size:11px}
.profile-rating-note svg{width:13px;height:13px;color:var(--accent)}
.rating-breakdown{margin:4px 0 16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.rating-breakdown-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.rating-breakdown-head b{font-size:13px;color:var(--accent)}
.rating-breakdown-head span{color:var(--muted);font-size:11px}
.rating-breakdown-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.rating-breakdown-grid>div{display:grid;gap:2px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.rating-breakdown-grid span{color:var(--muted);font-size:10px;line-height:1.4}
.rating-breakdown-grid b{color:var(--accent);font-size:17px;font-variant-numeric:tabular-nums}
.rating-breakdown-grid small{color:var(--muted);font-size:10px;line-height:1.45}
.rating-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 18px;padding:12px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.rating-toolbar-note{display:flex;align-items:flex-start;gap:8px;flex:1 1 280px;max-width:760px;min-width:0;margin:0;color:var(--muted);font-size:12px;line-height:1.65}
.rating-toolbar-note svg{flex:none;width:16px;height:16px;margin-top:1px;color:var(--accent)}
.rating-toolbar form{flex:none;margin:0}
.rating-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.rating-stat-card{min-height:146px;gap:6px;padding:17px 18px 15px}
.rating-stat-top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px}
.rating-stat-top small{color:var(--muted);font-size:12px;font-weight:650}
.rating-stat-card .admin-stat-icon{position:static;width:34px;height:34px;border-radius:10px}
.rating-stat-card .admin-stat-icon svg{width:18px;height:18px}
.rating-stat-card strong{display:block;font-size:23px;line-height:1.22;letter-spacing:-.4px;overflow-wrap:anywhere}
.rating-stat-unit{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:0}
.rating-stat-card em{color:var(--muted);font-size:11px;line-height:1.5}
.rating-stat-sum{font-variant-numeric:tabular-nums}
.rating-stat-date{font-size:19px!important;letter-spacing:0!important;font-variant-numeric:tabular-nums}
.rating-form{display:grid;gap:16px;max-width:none;margin:0 0 22px}
.rating-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.rating-rule-panel{display:flex;flex-direction:column;margin:0;padding:0;overflow:hidden;border-radius:16px}
.rating-rule-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:17px 20px 15px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--accent) 4%,var(--surface))}
.rating-rule-head>div{min-width:0}
.rating-rule-head h2{margin:0;font-size:17px;line-height:1.35;letter-spacing:-.2px}
.rating-rule-head p{margin:4px 0 0;color:var(--muted);font-size:11.5px;line-height:1.6}
.rating-total{display:grid;justify-items:end;gap:1px;flex:none;min-width:64px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:10px;background:var(--surface);text-align:right}
.rating-total small{color:var(--muted);font-size:10px;line-height:1.2}
.rating-total b{color:var(--accent);font-size:15px;line-height:1.3;font-variant-numeric:tabular-nums}
.rating-total.is-invalid{border-color:var(--danger)}
.rating-total.is-invalid b{color:var(--danger)}
.rating-weight-list{display:grid;padding:0 20px}
.rating-weight-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:11px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 62%,transparent)}
.rating-weight-row:last-child{border-bottom:0}
.rating-weight-copy{display:grid;gap:2px;min-width:0}
.rating-weight-copy b{font-size:13px;font-weight:650;line-height:1.45}
.rating-weight-copy small{color:var(--muted);font-size:11px;line-height:1.55}
.rating-weight-field{display:flex;align-items:center;flex:none;border:1px solid var(--line);border-radius:9px;background:var(--bg);transition:border-color .15s,box-shadow .15s}
.rating-weight-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.rating-weight-field input{width:62px;height:40px;padding:0 2px 0 10px;border:0;background:transparent;color:var(--text);font:inherit;font-size:14px;font-weight:650;text-align:right;font-variant-numeric:tabular-nums;-webkit-appearance:textfield;appearance:textfield}
.rating-weight-field input::-webkit-outer-spin-button,.rating-weight-field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.rating-weight-field input:focus-visible{outline:none}
.rating-weight-field>span{padding:0 10px 0 3px;color:var(--muted);font-size:12px;font-weight:600}
.rating-rule-note{margin:auto 0 0;padding:12px 20px 15px;border-top:1px solid color-mix(in srgb,var(--line) 62%,transparent);background:color-mix(in srgb,var(--bg) 55%,var(--surface));color:var(--muted);font-size:11px;line-height:1.7}
.rating-form-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.rating-form-actions p{display:grid;gap:1px;margin:0;font-size:12.5px;font-weight:650;line-height:1.5}
.rating-form-actions p small{color:var(--muted);font-size:11px;font-weight:400}
.rating-form-buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rating-form-buttons .btn{margin:0}
.rating-preview{margin:0;padding:0;overflow:hidden;border-radius:16px}
.rating-preview .review-panel-head{align-items:center;margin:0;padding:18px 22px 15px;border-bottom:1px solid var(--line)}
.rating-preview .review-panel-head h2{margin:0;font-size:18px}
.rating-preview .review-panel-head p{max-width:780px;margin-top:4px;font-size:11.5px;line-height:1.65}
.rating-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.rating-preview-card{min-width:0;padding:16px 22px 18px}
.rating-preview-card+.rating-preview-card{border-left:1px solid var(--line)}
.rating-preview-card h3{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 8px;font-size:14px;line-height:1.4}
.rating-preview-card-note{color:var(--muted);font-size:10.5px;font-weight:500}
.rating-preview-list{display:grid;margin:0;padding:0;list-style:none}
.rating-preview-list li{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
.rating-preview-list li:last-child{border-bottom:0;padding-bottom:0}
.rating-preview-list li:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.rating-preview-list li:focus-within{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}
.rating-preview-rank{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--soft);color:var(--muted);font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}
.rating-preview-list li:nth-child(-n+3) .rating-preview-rank{background:var(--accent);color:var(--accent-ink)}
.rating-preview-copy{display:grid;gap:2px;min-width:0}
.rating-preview-copy a{display:-webkit-box;overflow:hidden;color:var(--text);font-size:12.5px;font-weight:600;line-height:1.45;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.rating-preview-copy a:hover{color:var(--accent)}
.rating-preview-copy a::after{content:"";position:absolute;inset:0;z-index:1;border-radius:8px}
.rating-preview-copy a:focus-visible{outline:none}
.rating-preview-copy small{overflow:hidden;color:var(--muted);font-size:10.5px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.rating-preview-score{display:grid;justify-items:end;gap:1px;min-width:40px;text-align:right}
.rating-preview-score b{color:var(--accent);font-size:18px;line-height:1.1;font-variant-numeric:tabular-nums}
.rating-preview-score small{color:var(--muted);font-size:9.5px;line-height:1.3;white-space:nowrap}
.rating-preview-empty{display:block!important;padding:18px 0!important;color:var(--muted);font-size:12px;text-align:center}
.rating-doc{margin:18px 0 0;padding:20px 22px;border-radius:16px}
.rating-doc h2{margin:0 0 8px;font-size:17px}
.rating-doc p{max-width:110ch;margin:6px 0 0;color:var(--muted);font-size:11.5px;line-height:1.8}
@media(max-width:1100px){.rating-component-grid,.rating-breakdown-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.rating-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1240px){.rating-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1100px){.rating-form-grid,.rating-preview-grid{grid-template-columns:1fr}.rating-preview-card+.rating-preview-card{border-left:0;border-top:1px solid var(--line)}.rating-preview .review-panel-head{align-items:flex-start}}
@media(max-width:800px){.rating-component-grid,.rating-breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rating-panel{padding:17px}.rating-panel-side{justify-items:start;width:100%}.rating-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.rating-stat-card{min-height:0;padding:14px 14px 13px}.rating-stat-card strong{font-size:20px}.rating-stat-date{font-size:15px!important}.rating-stat-card em{font-size:10.5px}.rating-rule-head{padding:15px 16px 13px}.rating-weight-list{padding:0 16px}.rating-weight-row{gap:12px;padding:10px 0}.rating-weight-field input{width:64px;height:44px;font-size:16px}.rating-rule-note{padding:11px 16px 14px}.rating-form-actions{padding:14px}.rating-preview .review-panel-head{padding:16px 16px 13px}.rating-preview-card{padding:14px 16px 16px}.rating-doc{padding:18px 16px}}
@media(max-width:560px){.rating-toolbar{padding:12px 14px}.rating-toolbar form,.rating-toolbar .btn{width:100%}.rating-toolbar .btn{justify-content:center}.rating-form-buttons{flex-direction:column-reverse;width:100%}.rating-form-buttons .btn{width:100%;justify-content:center}.rating-preview-card-note{display:none}.rating-preview-copy small{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.45}}
@media(max-width:380px){.rating-stat-grid{gap:10px}.rating-stat-card{padding:13px 12px}.rating-stat-card small{font-size:11px}.rating-stat-card strong{font-size:18px}.rating-stat-date{font-size:13px!important}.rating-stat-sum{font-size:15px!important}.rating-stat-card em{font-size:10px;line-height:1.45}.rating-stat-card .admin-stat-icon{width:30px;height:30px}.rating-stat-card .admin-stat-icon svg{width:16px;height:16px}.rating-weight-field input{width:58px}}
@media(max-width:480px){.rating-component-grid,.rating-breakdown-grid{grid-template-columns:1fr}.rating-panel-head h2{font-size:20px}.rating-panel-head h2 b{font-size:30px}}
/* Balanced list columns: the widest text column must not crowd numeric columns. */
.market-col-seq{width:3%}
.market-col-shop{width:8.5%}
.market-col-count{width:8.5%}
.market-col-products{width:21%}
.market-col-score{width:12%}
.market-col-updated{width:11%}
.market-col-action{width:10.5%}
.market-col-price{width:11%}
.market-col-stock{width:10%}
.market-col-platform{width:12.5%}
.market-product-table .market-col-action{width:12%}
@media(max-width:780px){.market-col-seq,.market-col-shop,.market-col-count,.market-col-products,.market-col-score,.market-col-updated,.market-col-action,.market-col-price,.market-col-stock,.market-col-platform{width:auto}}

.compare-product-col{width:31%}
.compare-platform-col{width:22%}
.compare-price-col{width:17%}
.compare-stock-col{width:12%}
.compare-action-col{width:18%}

.official-table{table-layout:fixed}
.official-col-plan{width:37%}
.official-col-billing{width:12%}
.official-col-region{width:19%}
.official-col-price{width:19%}
.official-col-action{width:13%}
.official-app-section .official-table{min-width:860px}
.official-app-section .official-table th:nth-child(2),.official-app-section .official-table td:nth-child(2),.official-app-section .official-table th:nth-child(5),.official-app-section .official-table td:nth-child(5){width:auto}
.official-plan-table{table-layout:fixed}
.official-plan-table th:nth-child(1){width:15%}
.official-plan-table th:nth-child(2){width:14%}
.official-plan-table th:nth-child(3){width:12%}
.official-plan-table th:nth-child(4){width:16%}
.official-plan-table th:nth-child(5){width:16%}
.official-plan-table th:nth-child(6){width:12%}
.official-plan-table th:nth-child(7){width:15%}

.quote-table{table-layout:fixed;min-width:960px}
.quote-table:not(.history-table) th:nth-child(1){width:28%}
.quote-table:not(.history-table) th:nth-child(2){width:14%}
.quote-table:not(.history-table) th:nth-child(3){width:16%}
.quote-table:not(.history-table) th:nth-child(4){width:10%}
.quote-table:not(.history-table) th:nth-child(5){width:18%}
.quote-table:not(.history-table) th:nth-child(6){width:14%}
.history-table th:nth-child(1){width:34%}
.history-table th:nth-child(2){width:28%}
.history-table th:nth-child(3){width:38%}
.history-table{min-width:540px}

.supporter-table{table-layout:fixed}
.supporter-table th:nth-child(1){width:7%}
.supporter-table th:nth-child(2){width:22%}
.supporter-table th:nth-child(3){width:12%}
.supporter-table th:nth-child(4){width:29%}
.supporter-table th:nth-child(5){width:15%}
.supporter-table th:nth-child(6){width:15%}

.sources-table,.product-table,.official-sync-table,.official-pending-table,.official-price-table,.gateway-table,.partnership-admin-table,.support-admin-table{table-layout:fixed}
.sources-table th:nth-child(1){width:4%}
.sources-table th:nth-child(2){width:19%}
.sources-table th:nth-child(3){width:10%}
.sources-table th:nth-child(4){width:11%}
.sources-table th:nth-child(5){width:13%}
.sources-table th:nth-child(6){width:14%}
.sources-table th:nth-child(7){width:8%}
.sources-table th:nth-child(8){width:10%}
.sources-table th:nth-child(9){width:11%}
.product-table th:nth-child(1){width:25%}
.product-table th:nth-child(2){width:12%}
.product-table th:nth-child(3){width:11%}
.product-table th:nth-child(4){width:14%}
.product-table th:nth-child(5){width:9%}
.product-table th:nth-child(6){width:12%}
.product-table th:nth-child(7){width:17%}
.official-sync-states table{min-width:960px}
.official-sync-table th:nth-child(1){width:10%}
.official-sync-table th:nth-child(2){width:10%}
.official-sync-table th:nth-child(3){width:11%}
.official-sync-table th:nth-child(4){width:22%}
.official-sync-table th:nth-child(5){width:22%}
.official-sync-table th:nth-child(6){width:25%}
.official-pending-table th:nth-child(1){width:26%}
.official-pending-table th:nth-child(2){width:24%}
.official-pending-table th:nth-child(3){width:12%}
.official-pending-table th:nth-child(4){width:18%}
.official-pending-table th:nth-child(5){width:20%}
.official-price-table th:nth-child(1){width:20.5%}
.official-price-table th:nth-child(2){width:15.5%}
.official-price-table th:nth-child(3){width:10%}
.official-price-table th:nth-child(4){width:11%}
.official-price-table th:nth-child(5){width:9%}
.official-price-table th:nth-child(6){width:11%}
.official-price-table th:nth-child(7){width:9%}
.official-price-table th:nth-child(8){width:14%}
.gateway-table th:nth-child(1){width:16%}
.gateway-table th:nth-child(2){width:8.5%}
.gateway-table th:nth-child(3){width:15%}
.gateway-table th:nth-child(4){width:18%}
.gateway-table th:nth-child(5){width:11%}
.gateway-table th:nth-child(6){width:9%}
.gateway-table th:nth-child(7){width:12%}
.gateway-table th:nth-child(8){width:10.5%}
.partnership-admin-table th:nth-child(1){width:14%}
.partnership-admin-table th:nth-child(2){width:10%}
.partnership-admin-table th:nth-child(3){width:15%}
.partnership-admin-table th:nth-child(4){width:20%}
.partnership-admin-table th:nth-child(5){width:8%}
.partnership-admin-table th:nth-child(6){width:14%}
.partnership-admin-table th:nth-child(7){width:19%}
.support-admin-table th:nth-child(1){width:12%}
.support-admin-table th:nth-child(2){width:12%}
.support-admin-table th:nth-child(3){width:15%}
.support-admin-table th:nth-child(4){width:9%}
.support-admin-table th:nth-child(5){width:8%}
.support-admin-table th:nth-child(6){width:11%}
.support-admin-table th:nth-child(7){width:14%}
.support-admin-table th:nth-child(8){width:19%}

@media(max-width:800px){.card-name h3{display:-webkit-box;white-space:normal;overflow:hidden;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.35}}

/* Mobile compatibility hardening.
   Shared rules for public and admin pages; see
   .agents/skills/qingyu-ai-development/references/mobile-and-responsive.md.
   Keep this block last so it can correct older page-specific media queries. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.table-scroll,.source-table-scroll,.market-table-scroll,.supporter-table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.table-scroll:focus-visible,.source-table-scroll:focus-visible,.market-table-scroll:focus-visible,.supporter-table-wrap:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

/* Touch keyboards need at least 16px to avoid iOS Safari auto-zoom.
   The high-specificity body prefix intentionally overrides compact desktop rules. */
@media (max-width:900px),(pointer:coarse){
  body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=submit]):not([type=button]):not([type=reset]),
  body select,
  body textarea{font-size:16px!important}
  .admin-app .admin-pin-form input[type=number]{width:68px;min-height:38px}
  .admin-app .admin-pin-form .btn{min-height:38px}

  /* Primary touch targets: keep compact layout but avoid precision taps. */
  .brand{min-height:40px}
  .faq-grid summary{display:flex;align-items:center;min-height:44px}
  .chip{display:inline-flex;align-items:center;min-height:34px}
  .btn.small{min-height:36px}
  .market-tab{min-height:38px}
  .market-category{min-height:36px}
  .market-search-button{height:38px;min-height:38px}
  .compare-reset{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px}
  .market-pagination a,.market-pagination .is-disabled{display:inline-flex;align-items:center;min-height:38px;padding-top:0;padding-bottom:0}
  .market-page-jump input{height:38px}
  .market-page-jump button{min-height:38px;padding-top:0;padding-bottom:0}
  .footer-links a{display:inline-flex;align-items:center;min-height:36px}
  .official-card-link{display:inline-flex;align-items:center;min-height:40px}
  .market-link{min-height:36px}
  .product-name,.market-item-name,.compare-product-name,.compare-platform,.market-table-link{padding-top:4px;padding-bottom:4px}
  .official-table .sort-link,.official-table td a,.quote-table th .sort-link,.supporter-table th .sort-link{display:inline-flex;align-items:center;min-height:36px}
  .supporter-filter{min-height:36px}

  /* Admin rows are dense but still need forgiving tap targets. */
  .admin-app .btn.small{min-height:36px;padding-top:6px;padding-bottom:6px}
  .admin-app .ghost{min-height:36px;padding-top:6px;padding-bottom:6px}
  .admin-app .source-mini-link{min-height:32px;padding:5px 7px}
  .admin-app .official-sync-mini{min-height:34px;padding:5px 9px}
  .admin-app .admin-icon-link{width:40px;height:40px}
  .admin-app .admin-list-actions a{display:inline-flex;align-items:center;min-height:36px}
}

/* Tablets keep the compact header but must still reach every public destination.
   The quick links and submit button are hidden up to 900px/800px respectively,
   so the mobile menu becomes the complete navigation from 800px down. */
@media (max-width:800px){
  .topbar{position:relative}
  .nav,.green .nav{display:none}
  .mobile-navigation{display:block}
  .mobile-navigation summary{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;font-size:21px;list-style:none;cursor:pointer}
  .mobile-navigation summary::-webkit-details-marker{display:none}
  .mobile-navigation[open] nav{position:absolute;top:100%;left:18px;right:18px;z-index:30;display:grid;gap:4px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
  .mobile-navigation nav a{padding:10px 14px;border-radius:8px;min-height:44px}
  .mobile-navigation nav a:hover{background:var(--soft)}
  .mobile-navigation nav a:focus-visible{outline-offset:2px}
  .table-scroll-hint{display:block;margin:0 0 8px;color:var(--muted);font-size:12px}
}

/* Unified centered lists: every table header and cell shares one center axis. */
.market-table thead th{text-align:center}
.market-table th,.market-table td,
.compare-table th,.compare-table td,
.official-table th,.official-table td,
.quote-table th,.quote-table td,
.supporter-table th,.supporter-table td,
.source-table th,.source-table td{text-align:center}
.market-table thead th.market-name-col{padding-left:12px}
.market-table thead th.market-num .sort-link{flex-direction:row}
.market-table th.market-seq,.market-table td.market-seq{text-align:center;padding-left:12px}
.market-table th.market-num,.market-table td.market-num{text-align:center}
.market-table td.market-action{text-align:center}
.market-table .market-num small{text-align:center}
.market-platform,.compare-product,.compare-platform{justify-content:center}
.market-platform-copy{text-align:center}
.market-item-tags{justify-content:center}
.market-products{justify-items:center;justify-content:center}
.market-score{justify-content:center}
.compare-table th.compare-action-col,.compare-table td.compare-action-col{text-align:center}
.compare-table td.compare-price-col{text-align:center}
.supporter-table th.num,.supporter-table td.num{text-align:center}
.supporter-name-cell{justify-items:center}
.source-site,.source-count,.product-title,.source-review-actions{justify-items:center}
.partnership-admin-actions{justify-items:center}
.source-site b,.source-site small,.product-title b,.product-title small{max-width:100%}

/* Mobile list readability: long names and admin metadata wrap instead of
   being clipped to a few characters. Keep after page-specific rules. */
@media(max-width:800px){
  .admin-list-body p,
  .admin-list-body small,
  .source-site small{max-width:100%;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.5}
}
@media(max-width:780px){
  .market-item-name{display:-webkit-box;white-space:normal;overflow:hidden;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.45}
  .card-hot-name{display:-webkit-box;white-space:normal;overflow:hidden;text-overflow:clip;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-height:1.35}
}
@media(max-width:560px){
  .card-hot-item{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;align-items:start}
  .card-hot-item b{justify-self:start}
}
@media(max-width:380px){
  .review-stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:8px}
  .review-stat{padding:4px 6px;border-right:0}
  .review-stat:nth-child(odd){border-right:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
  .review-stat:nth-child(-n+2){border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);padding-bottom:8px}
  .review-stat:last-child{border-right:0}
}

/* Remaining mobile list fixes: compare cards must span the row, official app
   captions and long region names must wrap instead of overlapping. */
@media(max-width:780px){
  .compare-table td.compare-product-col,
  .compare-table td.compare-platform-col,
  .compare-table td.compare-price-col,
  .compare-table td.compare-stock-col,
  .compare-table td.compare-action-col{width:auto}
}
@media(max-width:900px){
  .official-region{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.4}
}
@media(max-width:640px){
  .official-app-copy small{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.45}
}
@media(max-width:780px){
  .compare-product-name{flex:1 1 auto;min-width:0}
}
@media(max-width:380px){
  .compare-product{gap:8px}
}

/* Admin table cells at narrow widths: wrapped metadata instead of clipped. */
@media(max-width:800px){
  .official-row-product{display:grid;gap:2px;max-width:none}
  .official-row-product b,
  .official-row-product small{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
  .gateway-url{max-width:100%;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
}

/* Administrative visit analytics. All colors use theme variables so the
   daily/weekly/monthly/yearly report, region bars and device split render in
   both light and dark mode without hard-coded white or green values. */
.analytics-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.analytics-tab{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:13px;font-weight:700;transition:background .18s,color .18s,border-color .18s}
.analytics-tab:hover{border-color:var(--accent);color:var(--accent)}
.analytics-tab.is-active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 20%,transparent)}
.analytics-tabs-note{margin-left:auto;color:var(--muted);font-size:12px;line-height:1.6}
.analytics-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.analytics-card{display:grid;gap:6px;min-width:0;padding:18px 18px 16px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);transition:transform .18s,border-color .18s,background .18s}
.analytics-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.analytics-card.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 26%,transparent)}
.analytics-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.analytics-card small{color:var(--muted);font-size:12px;font-weight:700}
.analytics-card strong{font-size:30px;line-height:1.15;letter-spacing:-.6px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.analytics-card-meta{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.analytics-card-note{color:var(--muted);font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.analytics-delta{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap;font-variant-numeric:tabular-nums}
.delta-up{color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line))}
.delta-down{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--danger) 24%,var(--line))}
.delta-flat{color:var(--muted);background:var(--bg);border:1px solid var(--line)}
.analytics-panel{margin-top:18px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);min-width:0}
.analytics-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.analytics-panel-head h2{font-size:18px;letter-spacing:-.3px}
.analytics-panel-head h2 .analytics-count{display:inline-flex;margin-left:6px;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:12px;vertical-align:middle}
.analytics-panel-head p{margin-top:5px;color:var(--muted);font-size:12px;line-height:1.7}
.analytics-panel-badge{flex:none;padding:5px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap}
.analytics-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.analytics-metric{display:grid;gap:4px;min-width:0;padding:14px 15px;border:1px solid var(--line);border-radius:13px;background:var(--bg)}
.analytics-metric small{color:var(--muted);font-size:11px;font-weight:700}
.analytics-metric b{font-size:25px;line-height:1.2;letter-spacing:-.5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.analytics-metric em{color:var(--muted);font-size:11px;line-height:1.5;overflow-wrap:anywhere}
.analytics-trend{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:7px;align-items:end;min-height:160px;padding:4px 2px 0}
.analytics-trend-col{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:5px;align-items:end;justify-items:center;min-width:0;border-radius:8px}
.analytics-trend-value{color:var(--muted);font-size:10px;line-height:1.2;font-variant-numeric:tabular-nums;white-space:nowrap}
.analytics-trend-track{display:flex;align-items:flex-end;width:100%;height:104px;background:var(--bg);border-radius:7px;overflow:hidden}
.analytics-trend-fill{display:block;width:100%;min-height:0;border-radius:6px 6px 2px 2px;background:color-mix(in srgb,var(--accent) 58%,var(--line))}
.analytics-trend-col.is-today .analytics-trend-fill{background:var(--accent)}
.analytics-trend-label{display:flex;align-items:center;justify-content:center;gap:2px;color:var(--muted);font-size:10px;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}
.analytics-trend-label b{color:var(--accent);font-size:9px}
.analytics-trend-col.is-today .analytics-trend-label{color:var(--accent);font-weight:700}
.analytics-split{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:18px;margin-top:18px}
.analytics-split>.analytics-panel{margin-top:0}
.analytics-share-list{display:grid;gap:10px}
.analytics-share-row{display:grid;grid-template-columns:minmax(92px,150px) minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0}
.analytics-share-name{min-width:0;font-size:13px;font-weight:600;overflow-wrap:anywhere;line-height:1.45}
.analytics-path-name{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;font-weight:500}
.analytics-share-bar{display:block;width:100%;height:9px;border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:999px;background:var(--bg);overflow:hidden;appearance:none;-webkit-appearance:none}
.analytics-share-bar::-webkit-progress-bar{background:var(--bg);border-radius:999px}
.analytics-share-bar::-webkit-progress-value{background:color-mix(in srgb,var(--accent) 72%,var(--line));border-radius:999px}
.analytics-share-bar::-moz-progress-bar{background:color-mix(in srgb,var(--accent) 72%,var(--line));border-radius:999px}
.analytics-share-value{display:flex;align-items:baseline;gap:6px;color:var(--text);font-size:12px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.analytics-share-value small{color:var(--muted);font-size:10px;font-weight:600}
.analytics-device-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.analytics-device-card{display:grid;gap:4px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--bg)}
.analytics-device-card small{color:var(--muted);font-size:11px;font-weight:700}
.analytics-device-card b{font-size:25px;line-height:1.2;letter-spacing:-.5px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.analytics-device-card span{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.analytics-device-card .analytics-share-bar{margin-top:5px}
.analytics-empty{padding:18px 14px;border:1px dashed var(--line);border-radius:12px;background:var(--bg);color:var(--muted);font-size:13px;text-align:center;line-height:1.8}
.analytics-hint{margin-top:12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--pending) 40%,var(--line));border-radius:10px;background:var(--pending-bg);color:var(--text);font-size:12px;line-height:1.7}
.analytics-filter{margin:0 0 16px;max-width:none;flex-wrap:wrap}
.analytics-filter .admin-search{max-width:none;flex:1 1 540px}
.analytics-table-scroll{margin-top:2px}
.analytics-table{min-width:880px}
.analytics-table thead th{white-space:nowrap}
.analytics-table td{vertical-align:middle}
.analytics-time{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}
.analytics-ip{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}
.analytics-region{font-weight:600;overflow-wrap:anywhere}
.analytics-region-detail{display:block;margin-top:2px;color:var(--muted);font-size:10px;line-height:1.4;overflow-wrap:anywhere;white-space:normal}
.analytics-path{display:inline-block;max-width:280px;padding:2px 7px;border-radius:6px;background:var(--bg);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.6;overflow-wrap:anywhere;white-space:normal;text-align:left}
.analytics-browser{font-size:12px;font-weight:600;overflow-wrap:anywhere}
.analytics-browser small{color:var(--muted);font-weight:600}
.analytics-os{display:block;margin-top:2px;color:var(--muted);font-size:10px}
.analytics-dwell{white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}
.analytics-device-pill{display:inline-flex;align-items:center;justify-content:center;padding:3px 9px;border-radius:999px;border:1px solid var(--line);font-size:11px;font-weight:700;white-space:nowrap}
.analytics-device-pill.device-mobile{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface));border-color:color-mix(in srgb,var(--accent) 25%,var(--line))}
.analytics-device-pill.device-desktop{color:var(--text);background:var(--bg)}
.analytics-device-pill.device-tablet{color:var(--pending);background:var(--pending-bg);border-color:var(--pending-line)}
.analytics-device-pill.device-unknown{color:var(--muted);background:var(--bg)}
.analytics-footnote{margin:16px 0 0;color:var(--muted);font-size:11px;line-height:1.8}
@media(max-width:1050px){
  .analytics-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analytics-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analytics-split{grid-template-columns:minmax(0,1fr)}
  .analytics-tabs-note{margin-left:0;flex-basis:100%}
}
@media(max-width:1000px){
  /* Between 801 and 1000px the admin rail still leaves a narrow column. */
  .analytics-trend{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-height:0}
  .analytics-trend-col:nth-child(-n+7){display:none}
  .analytics-trend-track{height:86px}
  .analytics-trend-value{font-size:9px}
}
@media(max-width:800px){
  .analytics-panel{padding:16px;border-radius:15px}
  .analytics-panel-head{flex-direction:column;gap:8px}
  .analytics-panel-badge{white-space:normal}
  .analytics-card{padding:15px 14px}
  .analytics-card strong{font-size:26px}
  .analytics-trend{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-height:0}
  /* Phones show a single readable week instead of squeezing 14 columns. */
  .analytics-trend-col:nth-child(-n+7){display:none}
  .analytics-trend-track{height:86px}
  .analytics-trend-value{font-size:9px}
  .analytics-tab{min-height:44px;padding:0 15px}
  .analytics-filter .admin-search{max-width:none;flex:1 1 100%}
  .analytics-filter{flex-direction:column;align-items:stretch}
  .analytics-filter .admin-list-summary{white-space:normal}
  .analytics-table{min-width:780px}
}
@media(max-width:600px){
  .analytics-share-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px}
  .analytics-share-bar{grid-column:1/-1}
  .analytics-share-value{font-size:12px}
  .analytics-device-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analytics-path{max-width:220px}
  /* A "今日" suffix makes the 320–390px date label wider than its column. */
  .analytics-trend-label b{display:none}
  .analytics-overview{gap:10px}
  .analytics-metric-grid{gap:10px}
  .analytics-metric{padding:12px}
  .analytics-metric b{font-size:22px}
  .analytics-card-note{font-size:10px}
}
@media(max-width:380px){
  .analytics-overview{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analytics-card{padding:12px 11px}
  .analytics-card strong{font-size:23px}
  .analytics-card-top{flex-wrap:wrap}
  .analytics-delta{font-size:10px}
  .analytics-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analytics-trend{gap:4px}
  .analytics-trend-track{height:72px}
  .analytics-trend-value{font-size:9px}
  .analytics-trend-label{font-size:9px}
}

/* Analytics touch targets: the filter submit and pagination are primary
   actions on phones, so keep them at 44px even though the shared admin
   toolbar is compact on desktop. */
@media (max-width:900px),(pointer:coarse){
  .analytics-tab{min-height:44px}
  .analytics-filter .btn,
  .analytics-filter input,
  .analytics-filter select{height:44px;min-height:44px}
  .analytics-visits .admin-pagination a{display:inline-flex;align-items:center;min-height:44px;padding-top:0;padding-bottom:0}
  .analytics-visits .pagination-jump input,
  .analytics-visits .pagination-jump .btn{height:44px;min-height:44px}
}

/* SEO product/gateway landing pages: shared breadcrumb + related-link blocks. */
.related-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.related-offer{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;min-width:0;background:var(--surface)}
.related-offer:hover{border-color:var(--accent)}
.related-offer-copy{display:flex;flex-direction:column;min-width:0;gap:2px}
.related-offer-copy b{font-size:13px;overflow-wrap:anywhere}
.related-offer-copy small{font-size:11px;color:var(--muted);overflow-wrap:anywhere;line-height:1.5}
.related-offer strong{margin-left:auto;color:var(--accent);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.relay-detail-meta{margin-top:18px;display:grid;gap:10px}
.relay-detail-stats{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.gateway-facts{grid-template-columns:repeat(4,minmax(0,1fr))}
.gateway-facts dt{color:var(--muted);font-size:11px}
.gateway-facts dd{margin:4px 0 0;font-size:12px;font-weight:600;overflow-wrap:anywhere}
/* CardNav-style relay table: same public parameters as the reference list. */
.relay-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.relay-table{width:100%;min-width:840px;border-collapse:collapse;font-size:12.5px;table-layout:auto}
.relay-table th{padding:10px 12px;background:color-mix(in srgb,var(--bg) 50%,var(--surface));color:var(--muted);font-size:11px;font-weight:700;text-align:center;white-space:nowrap;border-bottom:1px solid var(--line)}
.relay-sort{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:28px;color:inherit;font:inherit;font-weight:700}
.relay-sort:hover{color:var(--accent)}
.relay-sort-arrow{color:var(--muted);font-size:10px;font-weight:500;opacity:.7}
.relay-th{position:relative;display:inline-flex;align-items:center;gap:3px}
.relay-th-help{position:relative;display:inline-flex;align-items:center}
.relay-th-help .relay-help{width:19px;height:19px;margin-left:1px}
.relay-tip{position:absolute;top:calc(100% + 8px);left:50%;z-index:40;display:none;width:240px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 12px 30px rgb(0 0 0 / .14);color:var(--muted);font-size:11.5px;font-weight:500;line-height:1.7;text-align:left;white-space:normal;transform:translateX(-50%)}
.relay-th-help:hover .relay-tip,.relay-th-help:focus-within .relay-tip{display:block}
.relay-th-help.tip-end .relay-tip{left:auto;right:0;transform:none}
.relay-table th[aria-sort] .relay-sort{color:var(--text)}
.relay-table th[aria-sort] .relay-sort-arrow{color:var(--accent);opacity:1}
.relay-table td{padding:14px 12px;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);text-align:center;vertical-align:top}
.relay-table tr:last-child td{border-bottom:0}
.relay-table tbody tr:hover td{background:color-mix(in srgb,var(--soft) 38%,transparent)}
.relay-seq{width:58px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:center}
.relay-seq-badge{display:none}
.relay-basic{text-align:left!important}
.relay-table-title{display:flex;align-items:center;justify-content:space-between;gap:10px 12px;flex-wrap:wrap}
.relay-table-name{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
.relay-table-name a{font-size:15px;font-weight:750;letter-spacing:-.2px;overflow-wrap:anywhere}
.relay-table-actions{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:12px;white-space:nowrap}
.relay-table-actions a{color:var(--accent);font-weight:650}
.relay-table-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:460px;margin:5px 0 4px;color:var(--muted);font-size:11.5px;line-height:1.75}
.relay-table-host{color:var(--muted);font-size:11px;overflow-wrap:anywhere}
.relay-score-cell{width:136px;min-width:124px;white-space:nowrap}
.relay-score-value{display:inline-flex;align-items:baseline;justify-content:center;gap:2px}
.relay-score-cell b{font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.relay-score-cell small{margin-left:2px;color:var(--muted);font-size:10px}
.relay-help{display:inline-grid;place-items:center;width:21px;height:21px;margin-left:4px;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:10px;font-weight:700;line-height:1;vertical-align:middle}
.relay-help:hover,.relay-help:focus-visible{color:var(--accent);border-color:var(--accent)}
.relay-help-mobile{display:none}
.relay-count-cell{font-variant-numeric:tabular-nums;white-space:nowrap}
.relay-count{font-size:16px;font-weight:700}
.relay-data-state{display:block;margin-top:3px;color:var(--muted);font-size:10px;white-space:nowrap}
.relay-family-cell{max-width:340px}
.relay-pay-cell{max-width:220px}
.relay-family-cell .relay-tags,.relay-pay-cell .relay-tags{justify-content:center}
.relay-chip{display:inline-flex;align-items:center;gap:4px}
.relay-chip-icon{width:14px;height:14px;flex:none;object-fit:contain}
.relay-chip-icon.is-mono{padding:1px;background:#fff;border-radius:3px;box-sizing:content-box}
.relay-help-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.relay-help-notes>div{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);scroll-margin-top:20px}
.relay-help-notes b{font-size:11px;color:var(--text)}
.relay-help-notes p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.7}
@media(max-width:900px){
  .relay-workspace .table-scroll-hint{display:none}
  .relay-table-wrap{overflow:visible;border:0;border-radius:0;background:transparent}
  .relay-table{display:block;min-width:0}
  .relay-table thead{display:none}
  .relay-table tbody{display:grid;gap:10px}
  .relay-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
  .relay-table td{display:block;padding:0;border:0}
  .relay-table tbody tr:hover td{background:transparent}
  .relay-table td.relay-seq{display:none}
  .relay-seq-badge{display:inline;color:var(--muted);font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}
  .relay-basic{grid-column:1/-1}
  .relay-score-cell{grid-column:2;grid-row:2;text-align:right;width:auto;min-width:0}
  .relay-score-value{justify-content:flex-end}
  .relay-help{width:36px;height:36px;margin-left:6px;font-size:12px}
  .relay-help-mobile{display:inline-grid}
  .relay-family-cell,.relay-count-cell,.relay-pay-cell{grid-column:1/-1}
  .relay-table td[data-label]:not(.relay-basic):not(.relay-seq)::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--muted);font-size:10px;font-weight:700}
  .relay-score-cell::before{text-align:right}
  .relay-family-cell,.relay-pay-cell{max-width:none}
  .relay-family-cell .relay-tags,.relay-pay-cell .relay-tags{justify-content:flex-start}
  .relay-table-summary{max-width:none}
  .relay-help-notes{grid-template-columns:1fr}
}

/* Relay detail: price table on the left, probe and profile facts on the right. */
.relay-detail-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.relay-detail-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.relay-detail-head .identity{flex:1 1 auto;min-width:0;padding:0;border:0}
.relay-detail-head .identity h1{font-size:30px}
.relay-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}
.relay-detail-main{grid-column:1;grid-row:1;min-width:0}
.relay-detail-aside{grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:14px;min-width:0}
.relay-side-panel{padding:18px}
.relay-side-panel h2{margin:0 0 10px;font-size:14px;letter-spacing:-.1px}
.relay-side-summary{margin:0 0 12px;color:var(--muted);font-size:12px;line-height:1.85;overflow-wrap:anywhere}
.relay-side-visit{width:100%;justify-content:center;text-align:center}
.relay-side-panel .relay-chip-icon{width:16px;height:16px}
.relay-side-facts{display:grid;gap:9px;margin:0}
.relay-side-facts>div{display:flex;justify-content:space-between;gap:12px;font-size:12px;line-height:1.6}
.relay-side-facts dt{flex:none;color:var(--muted);white-space:nowrap}
.relay-side-facts dd{margin:0;min-width:0;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.relay-side-facts dd a{overflow-wrap:anywhere}
.relay-side-note{margin:10px 0 0;padding-top:9px;border-top:1px solid var(--line);color:var(--muted);font-size:11.5px;line-height:1.8}
.relay-price-table{min-width:820px}
.relay-price-seq{width:46px;color:var(--muted);text-align:center}
.relay-price-model{min-width:180px;font-weight:650}
.relay-price-num{text-align:right;white-space:nowrap}
@media(max-width:1120px){.relay-detail-grid{grid-template-columns:minmax(0,1fr) 270px;gap:18px}}
@media(max-width:900px){.relay-detail-grid{grid-template-columns:1fr;gap:16px}.relay-detail-aside{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.relay-detail-main{grid-column:1;grid-row:2}.relay-side-visit{width:auto}}
@media(max-width:700px){.relay-detail-head .identity h1{font-size:25px}.relay-detail-aside{grid-template-columns:1fr}.relay-side-panel{padding:16px}.relay-side-note{font-size:11px}}
.relay-price-panel{margin-top:18px}
.relay-price-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.relay-price-table{width:100%;min-width:720px;border-collapse:collapse;font-size:12.5px}
.relay-price-table th{padding:10px 12px;background:color-mix(in srgb,var(--bg) 45%,var(--surface));color:var(--muted);font-size:11px;font-weight:700;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}
.relay-price-table td{padding:11px 12px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.relay-price-table tr:last-child td{border-bottom:0}
.relay-price-table tbody tr:hover td{background:color-mix(in srgb,var(--soft) 40%,transparent)}
.relay-price-table td:first-child{font-weight:650}
.relay-price-unit{color:var(--muted);white-space:nowrap}
.relay-price-filter{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:0 0 14px}
.relay-price-filter label{display:grid;gap:5px;font-size:11px;color:var(--muted)}
.relay-price-filter select,.relay-price-filter input{height:38px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-size:13px}
.relay-price-filter input{min-width:220px}
.relay-price-pagination{justify-content:flex-start;margin:12px 0 4px}
@media(max-width:700px){.relay-price-filter{align-items:stretch}.relay-price-filter label:last-of-type{flex:1 1 100%}.relay-price-filter input{min-width:0;width:100%;font-size:16px}}
@media(max-width:700px){.related-offers{grid-template-columns:1fr}.related-offer{min-height:52px}.gateway-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.gateway-facts{grid-template-columns:1fr}}

/* CSP-safe trend heights: inline style attributes are blocked by style-src self. */
.analytics-h-0{height:0%}
.analytics-h-5{height:5%}
.analytics-h-10{height:10%}
.analytics-h-15{height:15%}
.analytics-h-20{height:20%}
.analytics-h-25{height:25%}
.analytics-h-30{height:30%}
.analytics-h-35{height:35%}
.analytics-h-40{height:40%}
.analytics-h-45{height:45%}
.analytics-h-50{height:50%}
.analytics-h-55{height:55%}
.analytics-h-60{height:60%}
.analytics-h-65{height:65%}
.analytics-h-70{height:70%}
.analytics-h-75{height:75%}
.analytics-h-80{height:80%}
.analytics-h-85{height:85%}
.analytics-h-90{height:90%}
.analytics-h-95{height:95%}
.analytics-h-100{height:100%}

/* Keep the compact admin tab strip comfortably tappable on phones. */
@media(max-width:800px){
  .admin-app .admin-nav a{min-height:44px}
}

/* Closed mobile navigation must not reserve layout or expose a narrow column
   of links. Older rules only positioned the open panel. */
@media(max-width:900px),(pointer:coarse){
  .mobile-navigation:not([open]) nav{display:none}
}
@media(max-width:1024px),(pointer:coarse){
  body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=submit]):not([type=button]):not([type=reset]),
  body select,
  body textarea{font-size:16px!important}
  .relay-visit{display:inline-flex;align-items:center;min-height:36px}
}

/* The 880px visit table still scrolls below ~1200px; keep the hint visible. */
@media(max-width:1200px){
  .analytics-visits .table-scroll-hint{display:block}
}

/* Phone/tablet form controls must stay comfortably tappable even when a
   component (supporter form, market filters, compare range) has its own
   smaller desktop sizing. Keep checkboxes/radios compact. */
@media(max-width:1024px),(pointer:coarse){
  body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]):not([type=submit]):not([type=button]):not([type=reset]),
  body select,
  body textarea{min-height:44px}
  .honeypot input{min-height:1px!important}
  .chip,.market-category,.market-filter-clear,.table-action{display:inline-flex;align-items:center;min-height:36px}
  .market-tab{display:inline-flex;align-items:center;min-height:40px}
  .market-search-button{min-height:44px}
}
@media(max-width:1024px),(pointer:coarse){
  .mobile-sort-form select{min-height:44px}
  .mobile-sort-form .btn{min-height:44px}
}

/* Period switches are primary navigation; keep them 44px on tablets too. */
@media(max-width:1050px){
  .analytics-tab{min-height:44px}
}

/* The hero line only needs a deliberate third line on narrow phones. */
.mobile-break{display:none}
@media(max-width:700px){.mobile-break{display:inline}}
@media(max-width:1024px),(pointer:coarse){.empty .btn{min-height:44px}}
@media(max-width:1024px),(pointer:coarse){
  .btn:not(.small){min-height:44px}
  .btn.small{min-height:36px}
}
@media(max-width:1024px),(pointer:coarse){
  .theme-toggle{width:44px;height:44px}
  .mobile-navigation summary{width:44px;height:44px}
  details summary{min-height:44px;display:flex;align-items:center}
}
@media(max-width:1024px),(pointer:coarse){
  .market-filter-trigger{min-height:44px}
  .compare-reset{width:44px;height:44px}
  .market-pagination a,.market-pagination .is-disabled{min-height:44px}
  .market-page-jump input,.market-page-jump button{height:44px;min-height:44px}
  .official-card-link{min-height:44px}
}
@media(max-width:1024px),(pointer:coarse){.btn.primary.small{min-height:44px}}


/* Visit analytics summary: two calm groups, three period cards each, plus a
   compact year row. This replaces the former tab + four-card + metric-grid
   stack that made the top of the page feel crowded. */
.analytics-stat-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0 0 18px}
.analytics-stat-panel{min-width:0;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}
.analytics-stat-head{display:flex;align-items:center;gap:10px;margin:0 0 14px}
.analytics-stat-head h2{margin:0;font-size:18px;line-height:1.3}
.analytics-stat-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent)}
.analytics-stat-icon svg{width:20px;height:20px}
.analytics-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.analytics-stat-card{position:relative;display:grid;gap:8px;min-width:0;padding:15px 14px 13px;border:1px solid var(--line);border-radius:13px;background:var(--surface);transition:transform .18s,border-color .18s,background .18s}
.analytics-stat-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.analytics-stat-card.is-active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 22%,transparent)}
.analytics-stat-label{padding-right:28px;color:var(--muted);font-size:12px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.analytics-stat-mark{position:absolute;top:14px;right:13px;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent)}
.analytics-stat-mark svg{width:14px;height:14px}
.analytics-stat-card strong{font-size:clamp(24px,2.4vw,30px);line-height:1.1;letter-spacing:-.6px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.analytics-stat-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0;color:var(--muted);font-size:11px;line-height:1.4;font-variant-numeric:tabular-nums}
.analytics-stat-foot>span:first-child{overflow-wrap:anywhere}
.analytics-stat-delta{flex:none;padding:0;border:0;background:none;border-radius:0;font-size:11px;font-weight:750;white-space:nowrap}
.analytics-stat-delta.delta-up{color:var(--accent);background:none;border:0}
.analytics-stat-delta.delta-down{color:var(--danger);background:none;border:0}
.analytics-stat-delta.delta-flat{color:var(--muted);background:none;border:0}
.analytics-year-link{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:12px 0 0;padding:10px 2px 0;border-top:1px solid var(--line);color:var(--muted);font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums}
.analytics-year-link>b{color:var(--text);font-size:15px;letter-spacing:-.2px}
.analytics-year-link .analytics-stat-delta{margin-left:auto}
.analytics-year-link.is-active{color:var(--accent)}
.analytics-year-link.is-active>b{color:var(--accent)}
.analytics-year-prev{color:var(--muted)}
.analytics-scope{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0 0 18px;color:var(--muted);font-size:12px;line-height:1.7}
.analytics-scope-period{display:inline-flex;align-items:center;padding:3px 9px;border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--accent);font-weight:750}
@media(max-width:1100px){
  .analytics-stat-groups{grid-template-columns:1fr}
}
@media(max-width:600px){
  .analytics-stat-panel{padding:14px;border-radius:15px}
  .analytics-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .analytics-stat-card:last-child{grid-column:1/-1}
  .analytics-stat-card{padding:13px 12px 11px}
  .analytics-stat-card strong{font-size:26px}
  .analytics-stat-foot{font-size:10px}
  .analytics-stat-delta{font-size:10px}
  .analytics-stat-head h2{font-size:17px}
  .analytics-scope{gap:5px 10px;font-size:11px}
}
@media(max-width:380px){
  .analytics-stat-card strong{font-size:24px}
  .analytics-stat-label{font-size:11px}
}
.analytics-stat-card,.analytics-year-link{color:inherit;text-decoration:none}
.analytics-year-link{color:var(--muted)}

/* Public footer pond: a quiet waterline above a full-width warm-sand footer.
   The canvas fish are decorative; every navigation link and the data note
   remain normal server-rendered HTML and work without JavaScript. */
.footer-stage{position:relative;margin-top:54px;overflow:clip}
.footer-pond{
  position:relative;
  height:clamp(108px,9.5vw,150px);
  overflow:hidden;
  isolation:isolate;
  contain:layout paint;
  background:linear-gradient(180deg,transparent 0 55.9%,var(--footer-water) 56% 100%);
}
.footer-pond::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 58% 62% at 50% 100%,var(--footer-glow),transparent 72%),
    linear-gradient(180deg,transparent 0 54%,color-mix(in srgb,var(--footer-glow) 60%,transparent) 72%,transparent 100%);
}
.footer-fish-canvas{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;pointer-events:none}
.site-footer{
  position:relative;
  z-index:1;
  overflow:hidden;
  padding:0 0 calc(22px + env(safe-area-inset-bottom,0px));
  background:
    radial-gradient(70% 100% at 12% 42%,var(--footer-glow),transparent 68%),
    radial-gradient(52% 80% at 88% 54%,var(--footer-glow),transparent 72%),
    linear-gradient(180deg,var(--footer-water) 0%,var(--footer-deep) 100%);
  color:var(--footer-copy);
}
.site-footer>.shell{position:relative;z-index:1}
.site-footer-data{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:26px;
  align-items:start;
  padding:20px 0 18px;
  border-bottom:1px solid var(--footer-hairline);
}
.site-footer-data-label{display:flex;align-items:center;gap:8px;min-width:0}
.site-footer-data-label>span{flex:none;width:5px;height:5px;border-radius:50%;background:var(--footer-warm)}
.site-footer-data-label h2{margin:0;color:var(--footer-heading);font-size:12px;font-weight:700;letter-spacing:.8px;line-height:1.5}
.site-footer-data-copy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 30px;min-width:0}
.site-footer-data-copy p{margin:0;color:var(--footer-copy);font-size:12.5px;line-height:1.85;overflow-wrap:anywhere}
.site-footer-main{
  display:grid;
  grid-template-columns:minmax(280px,.95fr) minmax(0,1.2fr);
  gap:48px;
  padding:22px 0 38px;
}
.site-footer-brand{min-width:0;max-width:520px}
.site-footer-logo{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-width:0;
  min-height:44px;
  color:var(--footer-ink);
  font-size:20px;
  font-weight:750;
  letter-spacing:-.4px;
  line-height:1.3;
}
.site-footer-logo .brand-icon{
  width:34px;
  height:34px;
  border-radius:10px;
  background:var(--footer-accent);
  color:var(--footer-icon-ink);
  box-shadow:var(--footer-icon-shadow);
}
.site-footer-logo>span:last-child{overflow-wrap:anywhere}
.site-footer-tagline{margin-top:17px;color:var(--footer-heading);font-size:15px;font-weight:650;line-height:1.65}
.site-footer-intro{max-width:470px;margin-top:9px;font-size:13px;line-height:1.85}
.site-footer-disclaimer{
  max-width:470px;
  margin-top:14px;
  padding-top:13px;
  border-top:1px solid var(--footer-hairline);
  color:var(--footer-copy);
  font-size:12px;
  line-height:1.8;
}
.site-footer-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;min-width:0;width:100%;max-width:560px;justify-self:end}
.site-footer-col{min-width:0}
.site-footer-col h2{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 9px;
  color:var(--footer-heading);
  font-size:12px;
  font-weight:700;
  letter-spacing:.8px;
  line-height:1.5;
}
.site-footer-col h2::before{content:"";flex:none;width:5px;height:5px;border-radius:50%;background:var(--footer-warm)}
.site-footer-col a{
  display:flex;
  align-items:center;
  width:fit-content;
  min-height:36px;
  font-size:13px;
  color:var(--footer-link);
  overflow-wrap:anywhere;
  transition:color .15s,transform .15s;
}
.site-footer-col a:hover{color:var(--footer-accent);transform:translateX(2px)}
.site-footer-col a:focus-visible,.site-footer-top:focus-visible,.site-footer-logo:focus-visible{outline-color:var(--footer-accent)}
.site-footer-col p{margin-top:7px;color:var(--footer-copy);font-size:12px;line-height:1.85;overflow-wrap:anywhere}
.site-footer-bottom{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 22px;
  padding-top:16px;
  border-top:1px solid var(--footer-hairline);
  color:var(--footer-subtle);
  font-size:11px;
  line-height:1.7;
}
.site-footer-bottom>span:first-child{color:var(--footer-copy)}
.site-footer-top{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  margin-left:auto;
  color:var(--footer-warm);
  font-weight:650;
  white-space:nowrap;
}
.site-footer-top:hover{color:var(--footer-accent);text-decoration:underline;text-underline-offset:3px}
@media(max-width:1000px){
  .site-footer-main{grid-template-columns:1fr;gap:28px;padding-bottom:28px}
  .site-footer-brand{max-width:640px}
  .site-footer-nav{gap:22px;max-width:none;justify-self:stretch}
}
@media(max-width:700px){
  .footer-stage{margin-top:32px}
  .footer-pond{height:96px}
  .site-footer .shell{padding-left:18px;padding-right:18px}
  .site-footer-data{grid-template-columns:1fr;gap:7px;padding:16px 0 14px}
  .site-footer-data-copy{grid-template-columns:1fr;gap:3px}
  .site-footer-data-copy p{font-size:12px;line-height:1.8}
  .site-footer-main{gap:24px;padding:18px 0 24px}
  .site-footer-logo{font-size:19px}
  .site-footer-tagline{margin-top:14px;font-size:14px}
  .site-footer-intro{font-size:13px;line-height:1.8}
  .site-footer-disclaimer{margin-top:12px;padding-top:11px;font-size:11.5px}
  .site-footer-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 16px}
  .site-footer-col a{min-height:40px;font-size:14px}
  .site-footer-col h2{margin-bottom:5px;font-size:12px}
  .site-footer-col p{font-size:12px}
  .site-footer-bottom{gap:2px 16px;padding-top:14px;font-size:11px}
  .site-footer-top{min-height:40px}
}
@media(max-width:390px){
  .footer-pond{height:88px}
  .site-footer-main{gap:22px}
}
@media(max-width:360px){
  .site-footer-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}
  .site-footer-col-about{grid-column:1/-1}
  .site-footer-col a{font-size:13.5px}
}
@media(prefers-reduced-motion:reduce){
  .site-footer-col a{transition:none}
}

/* Official subscriptions overview: editorial hero, product index, filter bar and plan cards. */
.official-page{--brand:var(--accent);--brand-soft:var(--soft)}
.official-page .app-logo{width:38px;height:38px;font-size:19px}
.official-page .app-logo.gpt,.official-product-card.tone-gpt,.official-product-section.tone-gpt,.official-sync-card.tone-gpt{--brand:var(--brand-gpt);--brand-soft:var(--brand-gpt-soft)}
.official-page .app-logo.claude,.official-product-card.tone-claude,.official-product-section.tone-claude,.official-sync-card.tone-claude{--brand:var(--brand-claude);--brand-soft:var(--brand-claude-soft)}
.official-page .app-logo.gemini,.official-product-card.tone-gemini,.official-product-section.tone-gemini,.official-sync-card.tone-gemini{--brand:var(--brand-gemini);--brand-soft:var(--brand-gemini-soft)}
.official-page .app-logo.grok,.official-product-card.tone-grok,.official-product-section.tone-grok,.official-sync-card.tone-grok{--brand:var(--brand-grok);--brand-soft:var(--brand-grok-soft)}
.official-page .app-logo.x,.official-product-card.tone-x,.official-product-section.tone-x,.official-sync-card.tone-x{--brand:var(--brand-x);--brand-soft:var(--brand-x-soft)}
.official-page .app-logo.cursor,.official-product-card.tone-cursor,.official-product-section.tone-cursor,.official-sync-card.tone-cursor{--brand:var(--brand-cursor);--brand-soft:var(--brand-cursor-soft)}



.official-products{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0 0 18px}
.official-product-card{position:relative;display:flex;flex-direction:column;gap:14px;min-width:0;padding:18px 18px 16px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:linear-gradient(155deg,color-mix(in srgb,var(--brand-soft) 48%,var(--surface)),var(--surface) 72%);transition:transform .2s,border-color .2s,box-shadow .2s}
.official-product-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--brand);opacity:.5}
.official-product-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--brand) 45%,var(--line));box-shadow:var(--shadow)}
.official-product-card.is-empty{cursor:default}
.official-product-card.is-empty:hover{transform:none;border-color:var(--line);box-shadow:none}
.official-product-top{display:flex;align-items:center;gap:11px;min-width:0}
.official-product-top .app-logo{width:42px;height:42px;font-size:21px;border-radius:13px}
.official-product-title{min-width:0;flex:1}
.official-product-title b{display:block;font-size:16px;line-height:1.3;letter-spacing:-.2px;overflow-wrap:anywhere}
.official-product-title small{display:block;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.5}
.official-product-arrow{flex:none;color:var(--muted);font-size:15px;line-height:1;transition:color .18s,transform .18s}
.official-product-card:hover .official-product-arrow{color:var(--brand);transform:translateY(2px)}
.official-product-low{display:flex;flex-direction:column;gap:2px;min-width:0;padding-top:11px;border-top:1px dashed color-mix(in srgb,var(--line) 80%,transparent)}
.official-product-low small{color:var(--muted);font-size:10.5px;line-height:1.4}
.official-product-low strong{display:flex;align-items:baseline;gap:2px;color:var(--accent);font-size:23px;line-height:1.2;font-weight:600;letter-spacing:-.6px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.official-product-low strong.is-pending{color:var(--muted);font-size:15px;font-weight:600;letter-spacing:0}
.official-product-low em{display:block;color:var(--muted);font-size:10.5px;font-style:normal;line-height:1.5;overflow-wrap:anywhere}
.official-approx{font-size:14px;font-weight:500;color:var(--muted);letter-spacing:0}

.official-toolbar{margin:0 0 20px;padding:20px 22px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}
.official-filter-top{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.official-search-field{display:flex;align-items:center;gap:10px;flex:1 1 420px;min-width:0;height:46px;padding:0 15px;border:1px solid var(--line);border-radius:13px;background:var(--bg);color:var(--muted)}
.official-search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 11%,transparent)}
.official-search-field svg{width:18px;height:18px}
.official-search-field input{flex:1;min-width:0;width:100%;height:100%;border:0;outline:none;background:none;color:var(--text);font:inherit;font-size:14px}
.official-filter-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}
.official-field{display:grid;gap:5px;min-width:0}
.official-field>span{color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:.02em;line-height:1.4}
.official-field select,.official-field input{width:100%;min-width:0;height:42px;padding:0 11px;border:1px solid var(--line);border-radius:11px;background:var(--bg);color:var(--text);font:inherit;font-size:13px}
.official-field select:focus-visible,.official-field input:focus-visible,.official-search-field input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.official-search-field input:focus-visible{outline:none}
.official-filter-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:15px;padding-top:14px;border-top:1px dashed var(--line)}
.official-filter-submit{min-height:44px;padding:0 24px}
.official-filter-reset{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;color:var(--muted);font-size:12.5px;font-weight:600}
.official-filter-reset:hover{color:var(--accent)}
.official-filter-count{margin-left:auto;color:var(--muted);font-size:12px;line-height:1.6}
.official-filter-count b{color:var(--text);font-variant-numeric:tabular-nums}
.official-active-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:11.5px}
.official-active-filters>span:first-child{font-weight:700;color:var(--text)}
.official-filter-chip{padding:4px 9px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:999px;background:var(--soft);color:var(--accent);line-height:1.4;overflow-wrap:anywhere}
.official-active-clear{margin-left:2px;color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.official-active-clear:hover{color:var(--accent)}

.official-list-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:0 2px 16px;scroll-margin-top:20px}
.official-list-head h2{font-size:22px;font-weight:650;letter-spacing:-.4px;line-height:1.3}
.official-list-count{margin-left:auto;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap;font-variant-numeric:tabular-nums}
.official-product-section{margin:0 0 26px;scroll-margin-top:22px}
.official-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px;padding:0 3px 13px;border-bottom:1px solid var(--line)}
.official-section-id{display:flex;align-items:center;gap:12px;min-width:0}
.official-section-id .app-logo{width:44px;height:44px;font-size:21px;border-radius:14px}
.official-section-title{min-width:0}
.official-section-title h2{display:flex;align-items:center;gap:8px;font-size:22px;line-height:1.25;letter-spacing:-.4px;font-weight:650;overflow-wrap:anywhere}
.official-section-title p{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.official-section-title a{color:var(--accent);font-weight:600}
.official-section-title a:hover{text-decoration:underline}
.official-section-meta{display:flex;align-items:flex-end;gap:16px;flex:none}
.official-section-count{padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:11px;font-weight:650;line-height:1.5;white-space:nowrap;font-variant-numeric:tabular-nums}
.official-section-best{text-align:right}
.official-section-best small{display:block;color:var(--muted);font-size:10px;line-height:1.4;white-space:nowrap}
.official-section-best strong{display:flex;align-items:baseline;justify-content:flex-end;gap:2px;margin-top:1px;color:var(--accent);font-size:19px;font-weight:650;line-height:1.2;letter-spacing:-.3px;font-variant-numeric:tabular-nums;white-space:nowrap}
.official-plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.official-plan-card{position:relative;display:flex;flex-direction:column;min-width:0;padding:15px 16px 0;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;transition:transform .18s,border-color .18s,box-shadow .18s}
.official-plan-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 38%,var(--line));box-shadow:var(--shadow)}
.official-plan-card.is-stale{background:color-mix(in srgb,var(--bg) 48%,var(--surface))}
.official-plan-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}
.official-plan-top .billing-pill{padding:3px 8px;font-size:10.5px}
.official-plan-diff{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:10.5px;line-height:1.4;white-space:nowrap;font-variant-numeric:tabular-nums}
.official-plan-diff small{color:var(--muted);font-size:9.5px;font-weight:500}
.official-plan-diff.is-lower{color:var(--accent);font-weight:700}
.official-plan-diff.is-higher{color:var(--muted)}
.official-plan-card .official-plan-name{margin:9px 0 0;min-height:44px;font-size:15px;line-height:1.45;font-weight:650;letter-spacing:-.1px;overflow-wrap:anywhere}
.official-plan-price{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:5px}
.official-plan-price strong{color:var(--accent);font-size:29px;line-height:1.15;font-weight:600;letter-spacing:-1.1px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.official-plan-original{color:var(--muted);font-size:10.5px;line-height:1.5;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.official-plan-region{display:flex;align-items:center;gap:8px;min-width:0;margin-top:10px;padding:9px 0;border-top:1px dashed var(--line)}
.official-plan-flag{flex:none;font-size:16px;line-height:1}
.official-plan-region-text{min-width:0;color:var(--text);font-size:12px;font-weight:650;line-height:1.35;overflow-wrap:anywhere}
.official-plan-region-text small{display:block;margin-top:1px;color:var(--muted);font-size:9.5px;font-weight:400;line-height:1.4}
.official-plan-badge{flex:none;margin-left:auto;padding:2px 7px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 10%,var(--surface));color:var(--accent);font-size:9.5px;font-weight:750;line-height:1.6;white-space:nowrap}
.official-plan-badge.is-stale{border-color:var(--line);background:var(--bg);color:var(--muted)}
.official-plan-link{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;margin:0 -16px;padding:0 16px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 38%,var(--surface));color:var(--accent);font-size:11.5px;font-weight:650;line-height:1.5}
.official-plan-link:hover{background:var(--soft)}
.official-plan-link span:last-child{font-size:14px;transition:transform .18s}
.official-plan-card:hover .official-plan-link span:last-child{transform:translateX(3px)}
.official-plan-empty{margin:22px 0;color:var(--muted);font-size:12px}

.official-empty{display:grid;justify-items:center;gap:8px;padding:52px 22px;border:1px dashed color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:22px;background:var(--surface);text-align:center}
.official-empty-icon{display:grid;place-items:center;width:52px;height:52px;margin-bottom:4px;border-radius:50%;background:var(--soft);color:var(--accent)}
.official-empty-icon svg{width:22px;height:22px}
.official-empty h2{font-size:20px;font-weight:650}
.official-empty p{max-width:480px;color:var(--muted);font-size:13px;line-height:1.8}
.official-empty .btn{margin-top:8px}
.official-notes{margin-top:28px;border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden}
.official-notes summary{display:flex;align-items:center;gap:12px;min-height:60px;padding:13px 18px;cursor:pointer;list-style:none}
.official-notes summary::-webkit-details-marker{display:none}
.official-notes summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.official-notes-icon{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:10px;background:var(--soft);color:var(--accent)}
.official-notes-icon svg{width:17px;height:17px}
.official-notes-copy{min-width:0;display:grid;gap:2px}
.official-notes-copy b{font-size:13px;line-height:1.4}
.official-notes-copy small{color:var(--muted);font-size:11px;line-height:1.5}
.official-notes-caret{flex:none;width:8px;height:8px;margin-left:auto;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg) translateY(-2px);transition:transform .18s}
.official-notes[open] .official-notes-caret{transform:rotate(-135deg) translateY(-1px)}
.official-notes-body{display:grid;gap:8px;padding:0 18px 18px;color:var(--muted);font-size:12.5px;line-height:1.85}
.official-notes-body p{padding-top:10px;border-top:1px dashed var(--line)}

@media(max-width:1280px){.official-plan-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1280px){.official-products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.official-products{grid-template-columns:repeat(2,minmax(0,1fr))}.official-filter-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:980px){.official-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.official-section-head{align-items:flex-start}.official-section-meta{gap:10px}.official-plan-grid{gap:10px}}
@media(max-width:700px){.official-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.official-filter-count{width:100%;margin-left:0}.official-section-head{display:block}.official-section-meta{margin-top:11px;justify-content:flex-start}.official-section-best{margin-left:auto;text-align:right}.official-plan-grid{grid-template-columns:1fr}.official-plan-name{min-height:0}.official-list-head h2{font-size:20px}.official-notes-body{padding:0 15px 16px;font-size:12px}}
@media(max-width:520px){.official-products{grid-template-columns:1fr}.official-product-card{padding:15px 16px}.official-product-low strong{font-size:22px}.official-filter-fields{grid-template-columns:1fr}.official-toolbar{padding:16px 15px}.official-filter-submit{flex:1}.official-filter-reset{flex:none}.official-section-id .app-logo{width:40px;height:40px}.official-section-title h2{font-size:20px}.official-list-count{margin-left:0}.official-plan-price strong{font-size:27px}.official-empty{padding:40px 16px}.official-notes summary{padding:12px 14px;gap:10px}.official-notes-copy small{display:none}}
@media(max-width:360px){.official-product-title b{font-size:15px}.official-filter-actions{gap:6px}}
@media(prefers-reduced-motion:reduce){.official-product-card,.official-plan-card,.official-plan-link span:last-child,.official-product-arrow{transition:none}}

/* Official overview refinements: inline section count and quieter lowest badge. */
.official-section-title h2 .official-section-count{display:inline-flex;align-items:center;height:21px;margin-left:2px;padding:0 8px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:10.5px;font-weight:650;letter-spacing:0;line-height:1;white-space:nowrap}
.official-plan-badge{display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:none;color:var(--accent);font-size:10px;font-weight:750;line-height:1.6;white-space:nowrap}
.official-plan-badge::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.official-plan-badge.is-stale{border:0;background:none;color:var(--muted)}
@media(max-width:520px){.official-section-title h2{flex-wrap:wrap;gap:6px}.official-section-title h2 .official-section-count{height:19px}}

/* Official product index uses a compact row on phones so prices start sooner. */
.official-product-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main arrow" "low low";gap:14px 10px}
.official-product-main{grid-area:main;display:flex;align-items:center;gap:11px;min-width:0}
.official-product-low{grid-area:low}
.official-product-arrow{grid-area:arrow;align-self:start;margin-top:3px}
@media(max-width:700px){
.official-products{gap:8px}
.official-product-card{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"main low arrow";align-items:center;gap:10px;padding:11px 13px;border-radius:14px}
.official-product-card::before{width:3px;height:100%;inset:0 auto 0 0}
.official-product-main{gap:10px}
.official-product-main .app-logo{width:38px;height:38px;font-size:18px;border-radius:11px}
.official-product-title b{font-size:14.5px}
.official-product-title small{font-size:10px;margin-top:1px}
.official-product-low{padding-top:0;border-top:0;align-items:flex-end;text-align:right;gap:1px}
.official-product-low small{font-size:9.5px}
.official-product-low strong{font-size:20px;justify-content:flex-end}
.official-product-low em{font-size:9.5px}
.official-product-arrow{align-self:center;margin:0;font-size:13px}
}
@media(max-width:520px){.official-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:360px){
.official-filter-fields{grid-template-columns:1fr}
.official-product-card{gap:7px;padding:10px 11px}
.official-product-main{gap:8px}
.official-product-main .app-logo{width:34px;height:34px;font-size:16px}
.official-product-title small{font-size:9px}
.official-product-low strong{font-size:18px}
}

/* Official overview: balance filter rows. */
@media(max-width:1100px){.official-field:last-child{grid-column:span 2}}
@media(max-width:360px){
.official-field:last-child{grid-column:auto}
}
.official-plan-approx{font-size:15px;font-weight:500;letter-spacing:0;color:var(--muted)}
.official-section-title h2{flex-wrap:wrap;min-width:0}

/* Official overview readability: supplemental labels stay above the 10px floor. */
.official-product-title small{font-size:11.5px}
.official-product-low small{font-size:11px}
.official-product-low em{font-size:11px}
.official-field>span{font-size:11.5px}
.official-plan-diff{font-size:11px}
.official-plan-diff small{font-size:10px}
.official-plan-original{font-size:11px}
.official-plan-region-text{font-size:12.5px}
.official-plan-region-text small{font-size:10.5px}
.official-plan-badge{font-size:10.5px}
.official-section-count,.official-section-title h2 .official-section-count{font-size:11px}
.official-section-best small{font-size:10.5px}
.official-active-filters{font-size:12px}
.official-notes-copy small{font-size:11.5px}
@media(max-width:700px){
.official-product-title small{font-size:10.5px}
.official-product-low small{font-size:10px}
.official-product-low em{font-size:10px}
}

/* Cross-document view transitions: public pages stay plain full-page GET
   navigations, but the browser cross-fades the old and new document instead of
   flashing an empty white page. Browsers without support simply navigate. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:qingyu-page-out .12s ease both}
::view-transition-new(root){animation:qingyu-page-in .18s ease both}
@keyframes qingyu-page-out{to{opacity:0}}
@keyframes qingyu-page-in{from{opacity:0}}
@media(prefers-reduced-motion:reduce){
::view-transition-old(root),::view-transition-new(root){animation:none}
}

/* Async search keeps the page shell mounted; only the content region dims
   while a replacement document is loading. */
.view[aria-busy=true]{opacity:.72;transition:opacity .16s ease}
@media(prefers-reduced-motion:reduce){.view[aria-busy=true]{transition:none}}

/* 控件细节：文件选择、悬停与禁用状态跟随当前色板，避免浏览器默认蓝灰。 */
.form input[type=file]{padding:7px 10px;cursor:pointer}
.form input[type=file]::file-selector-button{margin-right:12px;padding:7px 13px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:8px;background:var(--soft);color:var(--accent);font:inherit;font-weight:650;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.form input[type=file]::file-selector-button:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.form input:hover:not(:disabled),.form select:hover:not(:disabled),.form textarea:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}

/* 文本输入与下拉的统一悬停反馈：不改变尺寸，只提升边框可读性。 */
input,select,textarea{transition:border-color .18s,background .18s,color .18s}
input:hover:not(:disabled):not([type=checkbox]):not([type=radio]):not([type=range]),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}

/* 后台官方报价：周期未标注套餐的可展开核对面板。 */
.official-billing-panel{margin:0 0 18px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.official-billing-details>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:62px;padding:15px 18px;list-style:none;cursor:pointer}
.official-billing-summary::-webkit-details-marker,.official-billing-group-summary::-webkit-details-marker{display:none}
.official-billing-summary-copy{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;min-width:0}
.official-billing-summary-copy>b{font-size:15px;letter-spacing:-.1px}
.official-billing-count{flex:none;padding:3px 10px;border-radius:20px;background:var(--soft);color:var(--accent);font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.official-billing-summary-copy small{flex:1 0 100%;color:var(--muted);font-size:12px;line-height:1.7}
.official-billing-caret{flex:none;width:8px;height:8px;margin-right:3px;border-right:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(45deg);transition:transform .18s}
.official-billing-details[open]>.official-billing-summary{border-bottom:1px solid var(--line)}
.official-billing-details[open]>.official-billing-summary .official-billing-caret{transform:rotate(225deg)}
.official-billing-body{padding:16px 18px 18px}
.official-billing-body>.review-form-hint{margin-bottom:14px}
.official-billing-group{border:1px solid var(--line);border-radius:13px;background:var(--bg);overflow:hidden}
.official-billing-group+.official-billing-group{margin-top:10px}
.official-billing-group[open]{background:var(--surface)}
.official-billing-group-summary{display:flex;align-items:center;gap:10px;min-height:52px;padding:12px 15px;list-style:none;cursor:pointer}
.official-billing-group-summary>span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.official-billing-group-summary b{font-size:13.5px;overflow-wrap:anywhere}
.official-billing-group-summary small{color:var(--muted);font-size:11px;overflow-wrap:anywhere}
.official-billing-group-badge{flex:none;margin-left:auto;padding:2px 9px;border-radius:20px;background:var(--soft);color:var(--accent);font-size:11px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.official-billing-group[open]>.official-billing-group-summary{border-bottom:1px solid var(--line)}
.official-billing-group[open]>.official-billing-group-summary .official-billing-caret{transform:rotate(225deg)}
.official-billing-quick-form{padding:13px 15px 0}
.official-billing-form{padding:0 15px 15px}
.official-billing-quick{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 12px;padding:11px 13px;background:var(--bg);border:1px solid var(--line);border-radius:11px}
.official-billing-quick label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:650}
.official-billing-quick select{min-height:40px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:13px}
.official-billing-quick .btn{flex:none;min-height:40px;margin:0;padding:7px 13px;font-size:12.5px}
.official-billing-quick>span{color:var(--muted);font-size:11.5px;line-height:1.6}
.official-billing-table{min-width:860px}
.official-billing-table th{padding:10px 12px}
.official-billing-table td{padding:9px 12px;font-size:12.5px;vertical-align:middle;white-space:nowrap}
.official-billing-table td>small{color:var(--muted);font-size:10.5px}
.official-billing-table select{min-height:36px;max-width:100%;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;font-size:12px}
.official-billing-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;margin-top:12px}
.official-billing-actions .btn{flex:none;min-height:40px;margin:0}
.official-billing-actions .review-form-hint{flex:1 1 240px;font-size:11.5px}
@media(max-width:800px){.official-billing-body{padding:14px}.official-billing-quick-form{padding:12px 13px 0}.official-billing-form{padding:0 13px 14px}.official-billing-table{min-width:820px}.official-billing-quick select,.official-billing-quick .btn,.official-billing-actions .btn{min-height:44px}}
@media(max-width:620px){
.official-billing-summary{gap:10px;padding:14px}
.official-billing-summary-copy small{font-size:11.5px}
.official-billing-body{padding:12px}
.official-billing-group-summary{gap:8px;padding:11px 12px}
.official-billing-group-badge{font-size:10.5px}
.official-billing-quick{align-items:stretch;flex-direction:column;gap:8px}
.official-billing-quick label{justify-content:space-between;gap:10px}
.official-billing-quick select{flex:1 1 auto;min-width:0;min-height:44px;font-size:16px}
.official-billing-quick .btn{width:100%;min-height:44px}
.official-billing-quick>span{font-size:11px}
.official-billing-table select{min-height:44px;min-width:124px;font-size:16px}
.official-billing-actions .btn{width:100%;min-height:44px}
.official-billing-actions .review-form-hint{flex:auto}
}

/* 后台官方报价列表：行内编辑使用原生 dialog 弹窗，只操作当前页数据，不整页跳转。 */
.official-prices-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 4px}
.official-prices-head h2{margin:0}
.official-prices-head .btn{flex:none;min-height:40px;white-space:nowrap}
.official-admin-tools.is-single{grid-template-columns:minmax(0,1fr)}
.admin-dialog{width:min(760px,calc(100vw - 32px));max-height:88vh;max-height:min(88dvh,980px);margin:auto;padding:0;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-float);overflow:auto}
.admin-dialog::backdrop{background:rgba(0,0,0,.45)}
html.dialog-open{overflow:hidden}
.admin-dialog-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;background:var(--surface);border-bottom:1px solid var(--line)}
.admin-dialog-head>div{min-width:0}
.admin-dialog-head h2{margin:0;font-size:18px;line-height:1.4;overflow-wrap:anywhere}
.admin-dialog-head p{margin:4px 0 0;color:var(--muted);font-size:12.5px;line-height:1.6;overflow-wrap:anywhere}
.admin-dialog-close{flex:none;display:grid;place-items:center;width:44px;height:44px;margin:-8px -8px 0 0;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--muted);font:inherit;font-size:24px;line-height:1;cursor:pointer}
.admin-dialog-close:hover{background:var(--soft);color:var(--accent)}
.admin-dialog-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.admin-dialog .form{max-width:none;margin:0;padding:18px 20px 22px}
@media(max-width:700px){
.admin-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0}
.admin-dialog-head{padding:14px 16px}
.admin-dialog .form{padding:16px}
.official-prices-head{gap:8px}
.official-prices-head .btn{flex:1 1 100%}
}

/* 订阅市集与中转站 Logo：采集成功显示图片，缺失或文件不可用时模板回退首字。 */
.platform-logo>img,.compare-platform-logo>img,.market-avatar>img,.relay-logo>img,.relay-line-mark>img,.relay-table-logo>img,.admin-list-avatar>img,.gateway-avatar>img,.source-logo>img,.sponsor-avatar>img{display:block;width:68%;height:68%;object-fit:contain}
.profile-panel .identity .platform-logo>img{width:72%;height:72%}
.gateway-site-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:11px;align-items:start;text-align:left;min-width:0}
.gateway-avatar{width:36px;height:36px;display:grid;place-items:center;overflow:hidden;flex:none;border-radius:10px;background:var(--soft);color:var(--accent);font-size:15px;font-weight:750}
.gateway-site-body{min-width:0}
.gateway-actions{flex-wrap:wrap}
.source-site-row{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:start;text-align:left;min-width:0}
.source-logo{width:40px;height:40px;display:grid;place-items:center;overflow:hidden;flex:none;border-radius:11px;background:var(--soft);color:var(--accent);font-size:16px;font-weight:750}
.source-site-body{min-width:0}
.relay-table-logo{width:28px;height:28px;display:inline-grid;place-items:center;overflow:hidden;flex:none;border-radius:8px;background:var(--soft);color:var(--accent);font-size:13px;font-weight:750}
@media(max-width:700px){.source-site-row{grid-template-columns:34px minmax(0,1fr);gap:8px}.source-logo{width:34px;height:34px;font-size:14px}.gateway-site-row{grid-template-columns:32px minmax(0,1fr);gap:9px}.gateway-avatar{width:32px;height:32px;font-size:14px}}

/* 内置品牌 Logo：前台、后台与页脚共用同一枚内联 SVG；颜色由 theme.css 的 --brand-mark-* 提供。 */
html[data-theme] .brand-icon.is-builtin,
html[data-theme] .admin-app .admin-brand .brand-icon.is-builtin,
html[data-theme] .site-footer-logo .brand-icon.is-builtin{background:transparent;color:inherit;border-radius:0;transform:none;box-shadow:none;overflow:visible}
html[data-theme] .brand-icon.is-builtin svg,
html[data-theme] .admin-app .admin-brand .brand-icon.is-builtin svg,
html[data-theme] .site-footer-logo .brand-icon.is-builtin svg{width:100%;height:100%;display:block}
html[data-theme] .settings-logo-preview.is-builtin svg{width:100%;height:100%;padding:4px}

/* 关于、免责声明与隐私政策：窄栏阅读页，左侧目录在桌面吸附，手机折叠为目录面板。 */
.legal-page{
  display:grid;
  grid-template-columns:200px minmax(0,780px);
  gap:46px;
  align-items:start;
  justify-content:center;
  margin:6px 0 44px;
}
.legal-aside{position:sticky;top:24px;display:flex;flex-direction:column;gap:18px;min-width:0}
.legal-toc{padding:15px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.legal-toc>p{margin:0 0 8px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em}
.legal-toc ol{list-style:none;margin:0;padding:0}
.legal-toc a{display:flex;align-items:center;min-height:36px;padding:5px 7px;border-radius:7px;color:var(--muted);font-size:12.5px;line-height:1.55;transition:color .15s,background .15s}
.legal-toc a:hover{color:var(--accent);background:var(--soft)}
.legal-toc a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.legal-side-note{padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}
.legal-side-note span{display:block;color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:.06em}
.legal-side-note b{display:block;margin-top:3px;color:var(--text);font-size:12.5px;line-height:1.5}
.legal-side-note a{display:inline-flex;align-items:center;min-height:36px;margin-top:9px;color:var(--accent);font-size:12.5px;font-weight:650}
.legal-side-note a:hover{text-decoration:underline}
.legal-article{
  min-width:0;
  padding:42px 48px 32px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--surface);
  box-shadow:var(--shadow);
}
.legal-toc-mobile{display:none}
.legal-hero{padding-bottom:26px;border-bottom:1px solid var(--line)}
.legal-hero .eyebrow{margin:0 0 14px;font-size:11px;letter-spacing:.09em}
.legal-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--soft)}
.legal-hero h1{margin:0;color:var(--text);font-size:38px;font-weight:780;letter-spacing:-.03em;line-height:1.24;overflow-wrap:anywhere}
.legal-lead{max-width:660px;margin:15px 0 0;color:var(--muted);font-size:16.5px;line-height:1.9}
.legal-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px;margin:15px 0 0;color:var(--muted);font-size:12px;line-height:1.6}
.legal-summary{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin:22px 0 0;
  padding:14px 16px;
  border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));
  border-radius:12px;
  background:var(--soft);
  color:var(--text);
  font-size:13.5px;
  line-height:1.85;
}
.legal-summary-label{flex:none;margin-top:2px;padding:1px 7px;border-radius:5px;background:var(--accent);color:var(--accent-ink);font-size:10.5px;font-weight:700;letter-spacing:.05em}
.legal-section{padding-top:27px;margin-top:32px;border-top:1px solid var(--line);scroll-margin-top:20px}
.legal-section:first-of-type{border-top:0}
.legal-section-head{display:flex;align-items:baseline;gap:11px;margin:0 0 12px}
.legal-section-index{flex:none;color:var(--accent);font-size:11px;font-weight:750;letter-spacing:.08em;font-variant-numeric:tabular-nums}
.legal-section h2{margin:0;color:var(--text);font-size:22px;font-weight:720;letter-spacing:-.02em;line-height:1.4;overflow-wrap:anywhere}
.legal-section p{margin:12px 0 0;color:var(--text);font-size:15.5px;line-height:1.95;overflow-wrap:anywhere}
.legal-section p+ p{margin-top:10px}
.legal-list{list-style:none;margin:13px 0 0;padding:0;display:grid;gap:8px}
.legal-list li{position:relative;padding-left:19px;color:var(--text);font-size:15px;line-height:1.9;overflow-wrap:anywhere}
.legal-list li::before{content:"";position:absolute;left:1px;top:.78em;width:6px;height:6px;border-radius:2px;background:var(--accent);opacity:.8}
.legal-note{
  margin:16px 0 0 !important;
  padding:13px 16px;
  border-left:3px solid var(--accent);
  border-radius:0 9px 9px 0;
  background:var(--bg);
  color:var(--muted) !important;
  font-size:13.5px !important;
  line-height:1.85 !important;
}
.legal-footer{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:18px 24px;
  margin-top:36px;
  padding-top:24px;
  border-top:1px solid var(--line);
}
.legal-footer-copy{display:grid;gap:3px;min-width:0}
.legal-footer-copy b{color:var(--text);font-size:15px;line-height:1.6}
.legal-footer-copy span{color:var(--muted);font-size:12.5px;line-height:1.7}
.legal-footer-actions{display:flex;flex-wrap:wrap;gap:9px;flex:none}
.legal-footer-actions .btn{min-height:44px}
.legal-related{display:flex;flex-wrap:wrap;align-items:center;gap:0 10px;margin-top:20px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}
.legal-related a{display:inline-flex;align-items:center;min-height:36px;color:var(--muted)}
.legal-related a:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.legal-related a[aria-current="page"]{color:var(--text);font-weight:650}
.legal-related a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media(max-width:1100px){
  .legal-page{grid-template-columns:180px minmax(0,1fr);gap:32px}
  .legal-article{padding:36px 38px 28px}
  .legal-hero h1{font-size:34px}
}
@media(max-width:980px){
  .legal-page{display:block;max-width:820px;margin:4px auto 38px}
  .legal-aside{display:none}
  .legal-article{padding:34px 36px 28px}
  .legal-toc-mobile{display:block;margin:0 0 24px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
  .legal-toc-mobile summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 14px;cursor:pointer;list-style:none;color:var(--text);font-size:13px;font-weight:650}
  .legal-toc-mobile summary::-webkit-details-marker{display:none}
  .legal-toc-mobile summary span{color:var(--muted);font-size:11.5px;font-weight:500;white-space:nowrap}
  .legal-toc-mobile summary::after{content:"+";flex:none;color:var(--accent);font-size:18px;font-weight:600;line-height:1}
  .legal-toc-mobile[open] summary::after{content:"−"}
  .legal-toc-mobile ol{list-style:none;margin:0;padding:2px 8px 10px;border-top:1px solid var(--line)}
  .legal-toc-mobile a{display:flex;align-items:center;min-height:44px;padding:6px 8px;border-radius:7px;color:var(--muted);font-size:13.5px;line-height:1.55}
  .legal-toc-mobile a:hover{color:var(--accent);background:var(--soft)}
  .legal-toc-mobile a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
}
@media(max-width:700px){
  .legal-page{margin-bottom:30px}
  .legal-article{padding:24px 18px 22px;border-radius:16px}
  .legal-hero{padding-bottom:21px}
  .legal-hero .eyebrow{margin-bottom:11px;font-size:10px}
  .legal-hero h1{font-size:30px;letter-spacing:-.02em}
  .legal-lead{margin-top:12px;font-size:15px;line-height:1.85}
  .legal-meta{margin-top:12px;font-size:11.5px}
  .legal-summary{flex-direction:column;gap:7px;margin-top:18px;padding:12px 13px;font-size:13px}
  .legal-summary-label{margin-top:0}
  .legal-section{padding-top:22px;margin-top:24px;scroll-margin-top:12px}
  .legal-section h2{font-size:19.5px}
  .legal-section p{font-size:15px;line-height:1.9}
  .legal-list li{font-size:14.5px;line-height:1.85}
  .legal-note{padding:12px 13px;font-size:12.5px !important;line-height:1.8 !important}
  .legal-footer{margin-top:28px;padding-top:20px;gap:14px}
  .legal-footer-actions{width:100%}
  .legal-footer-actions .btn{flex:1 1 100%;min-height:46px}
  .legal-related{gap:0 8px;font-size:11.5px}
  .legal-related a{min-height:40px}
}
@media(max-width:380px){
  .legal-article{padding:20px 14px 18px}
  .legal-hero h1{font-size:28px}
}
@media(prefers-reduced-motion:reduce){
  .legal-toc a,.legal-related a,.legal-toc-mobile a{transition:none}
}

/* ---------- 首页价格雷达横幅（方案 A） ----------
   搜索、信任入口与官方主套餐快照合并在首屏，颜色继续全部来自 theme.css。 */
.home-banner{
  position:relative;overflow:hidden;display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(356px,.92fr);
  gap:46px;align-items:center;min-height:430px;padding:44px 48px;
  background:var(--hero);border:1px solid var(--ring);border-radius:24px;
}
.home-banner:after{
  content:"";position:absolute;left:-140px;bottom:-190px;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 13%,transparent),transparent 68%);
  pointer-events:none;
}
.banner-orbit{
  position:absolute;right:-150px;top:-150px;width:430px;height:430px;border:1px solid var(--ring);
  border-radius:50%;opacity:.55;pointer-events:none;
}
.banner-orbit:before,.banner-orbit:after{
  content:"";position:absolute;border:1px solid var(--ring);border-radius:50%;
}
.banner-orbit:before{inset:56px}
.banner-orbit:after{inset:124px}
.banner-copy{position:relative;z-index:1;min-width:0}
.home-banner h1{
  margin:15px 0 14px;font-size:36px;line-height:1.3;letter-spacing:-1px;font-weight:700;max-width:9.6em;
}
.banner-mark{
  color:var(--accent);white-space:nowrap;
  background:linear-gradient(180deg,transparent 66%,color-mix(in srgb,var(--accent) 20%,transparent) 66%);
}
.banner-lede{margin:0;max-width:35em;color:var(--muted);font-size:15px;line-height:1.85}
.banner-search{
  display:flex;align-items:center;gap:8px;max-width:560px;margin-top:24px;padding:6px;
  background:var(--surface);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);transition:border-color .18s,box-shadow .18s;
}
.banner-search:focus-within{
  border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 17%,transparent);
  outline:3px solid var(--accent);outline-offset:2px;
}
.banner-search>.icon{width:20px;height:20px;color:var(--muted);margin-left:8px}
.banner-search input{
  flex:1;min-width:0;height:44px;border:0;background:transparent;color:var(--text);
  font:inherit;font-size:15px;padding:0 2px;outline:none;
}
.banner-search input:focus-visible{outline:none}
.banner-search input::placeholder{color:var(--muted)}
.banner-search-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;
  padding:0 20px;border:0;border-radius:11px;background:var(--accent);color:var(--accent-ink);
  font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;flex:none;
  box-shadow:0 6px 14px color-mix(in srgb,var(--accent) 22%,transparent);
}
.banner-search-btn:hover{background:color-mix(in srgb,var(--accent) 88%,var(--accent-deep))}
.banner-search-short{display:none}
.banner-search-arrow{font-size:15px;line-height:1}
.banner-quick{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;min-height:32px}
.banner-quick>span{font-size:12px;color:var(--muted);margin-right:1px}
.banner-quick a{
  display:inline-flex;align-items:center;min-height:36px;padding:0 11px;border-radius:999px;
  border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 55%,transparent);
  font-size:12px;font-weight:550;color:var(--text);
}
.banner-quick a:hover{border-color:var(--accent);color:var(--accent);background:var(--surface)}
.banner-trust{
  display:flex;align-items:stretch;gap:0;margin-top:24px;padding-top:9px;
  border-top:1px solid color-mix(in srgb,var(--ring) 70%,transparent);max-width:560px;
}
.banner-trust a{
  display:flex;align-items:center;gap:6px;min-height:36px;padding:8px 18px;
  border-left:1px solid color-mix(in srgb,var(--ring) 70%,transparent);
}
.banner-trust a:first-child{padding-left:0;border-left:0}
.banner-trust a:hover span{color:var(--accent)}
.banner-trust b{
  font-size:19px;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums;
  font-weight:750;letter-spacing:-.3px;
}
.banner-trust span{font-size:12px;color:var(--muted);line-height:1.3}
.banner-radar{
  position:relative;z-index:1;width:100%;max-width:402px;justify-self:end;
  background:var(--surface);border:1px solid var(--line);border-radius:20px;
  box-shadow:var(--shadow-float);overflow:hidden;
}
.radar-head{display:flex;align-items:center;gap:10px;padding:14px 15px 12px}
.radar-icon{
  display:grid;place-items:center;width:35px;height:35px;border-radius:11px;
  background:var(--soft);color:var(--accent);flex:none;
}
.radar-icon .icon{width:19px;height:19px}
.radar-heading{min-width:0;flex:1}
.radar-title{font-size:14px;font-weight:750;line-height:1.25;letter-spacing:-.1px}
.radar-sub{font-size:11px;color:var(--muted);line-height:1.3;margin-top:2px}
.radar-live{
  display:inline-flex;align-items:center;gap:5px;flex:none;padding:5px 8px;border-radius:999px;
  background:var(--soft);color:var(--accent);font-size:10px;font-weight:700;white-space:nowrap;
}
.radar-live i{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}
.radar-live.is-waiting{color:var(--muted);background:var(--soft)}
.radar-live.is-waiting i{background:var(--muted)}
.radar-row{
  display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;
  min-height:58px;padding:11px 15px;
  border-top:1px solid color-mix(in srgb,var(--line) 80%,transparent);
  transition:background .18s;
}
a.radar-row:hover{background:color-mix(in srgb,var(--soft) 52%,transparent)}
.radar-logo{
  display:grid;place-items:center;width:34px;height:34px;border-radius:10px;
  background:var(--soft);color:var(--accent);flex:none;
}
.radar-logo img{width:19px;height:19px;object-fit:contain}
html[data-theme=dark] .radar-logo img.is-mono{filter:invert(1)}
.radar-logo.gpt{background:var(--brand-gpt-soft)}
.radar-logo.claude{background:var(--brand-claude-soft)}
.radar-logo.gemini{background:var(--brand-gemini-soft)}
.radar-logo.grok{background:var(--brand-grok-soft)}
.radar-logo-channel{background:var(--soft)}
.radar-logo-channel .icon{width:18px;height:18px}
.radar-main{min-width:0}
.radar-name{
  display:flex;align-items:center;gap:6px;font-size:13px;font-weight:650;line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.radar-badge{
  flex:none;padding:2px 5px;border-radius:4px;background:var(--soft);color:var(--accent);
  font-size:9px;font-weight:700;line-height:1.2;
}
.radar-badge.is-neutral{color:var(--muted)}
.radar-meta{
  display:block;margin-top:2px;font-size:11px;color:var(--muted);line-height:1.35;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.radar-price{
  font-size:20px;font-weight:750;letter-spacing:-.5px;font-variant-numeric:tabular-nums;
  white-space:nowrap;line-height:1.2;color:var(--text);
}
.radar-count{
  font-size:19px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:-.4px;
  white-space:nowrap;
}
.radar-count small{font-size:10px;font-weight:600;color:var(--muted);margin-left:2px;letter-spacing:0}
.radar-foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 15px;
  border-top:1px solid color-mix(in srgb,var(--line) 80%,transparent);
  background:color-mix(in srgb,var(--soft) 34%,transparent);font-size:10px;color:var(--muted);
}
.radar-foot a{
  display:inline-flex;align-items:center;gap:3px;min-height:36px;color:var(--accent);
  font-size:11px;font-weight:700;white-space:nowrap;
}
.radar-empty{display:none;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;padding:24px 20px 22px;min-height:226px}
.radar-empty .empty-icon{
  display:grid;place-items:center;width:40px;height:40px;border-radius:12px;
  background:var(--soft);color:var(--accent);margin-bottom:2px;
}
.radar-empty .empty-icon .icon{width:21px;height:21px}
.radar-empty h3{margin:0;font-size:14px;font-weight:750;line-height:1.35}
.radar-empty p{margin:0;font-size:12px;line-height:1.65;color:var(--muted);max-width:24em}
.radar-empty a{
  display:inline-flex;align-items:center;gap:4px;margin-top:4px;min-height:36px;
  color:var(--accent);font-size:12px;font-weight:700;
}
.banner-radar.is-empty .radar-empty{display:flex}
.banner-radar.is-empty .radar-foot{display:none}
.banner-fallback{
  display:none;align-items:center;gap:10px;margin-top:20px;max-width:620px;padding:12px 14px;
  border:1px dashed color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:12px;
  font-size:12px;color:var(--muted);background:color-mix(in srgb,var(--surface) 46%,transparent);
}
.banner-fallback>.icon{color:var(--accent);width:18px;height:18px}
.banner-fallback a{
  display:inline-flex;align-items:center;min-height:36px;margin-left:auto;
  color:var(--accent);font-weight:650;white-space:nowrap;
}

@media(max-width:1120px){
  .home-banner{padding:36px 34px;gap:30px;grid-template-columns:minmax(0,1.05fr) minmax(330px,.95fr)}
  .home-banner h1{font-size:34px}
  .banner-radar{max-width:370px}
}
@media(max-width:900px){
  .home-banner{grid-template-columns:minmax(0,1fr);padding:32px 30px;gap:22px;min-height:0}
  .banner-copy{max-width:none}
  .home-banner h1{font-size:33px;max-width:12em}
  .banner-lede{max-width:40em}
  .banner-search,.banner-trust{max-width:none}
  .banner-search input{font-size:16px}
  .banner-radar{justify-self:stretch;max-width:none;margin-top:4px}
  .radar-row{padding:10px 14px;min-height:55px}
  .radar-row.radar-extra{display:none}
  .radar-foot a{min-height:44px}
  .banner-orbit{right:-190px;top:-210px}
  .banner-radar.is-empty{display:none}
  .banner-fallback{display:flex}
}
@media(max-width:700px){
  .home-banner{padding:24px 20px;border-radius:20px;gap:18px}
  .home-banner h1{font-size:30px;line-height:1.32;letter-spacing:-.6px;margin:12px 0;max-width:11em}
  .banner-lede{font-size:14px;line-height:1.8}
  .banner-search{margin-top:18px;padding:5px;border-radius:14px}
  .banner-search>.icon{width:18px;height:18px;margin-left:6px}
  .banner-search input{font-size:16px;height:44px}
  .banner-search-btn{min-height:44px;padding:0 15px;border-radius:10px;font-size:13px}
  .banner-quick{margin-top:10px;gap:7px}
  .banner-quick a{min-height:40px;padding:0 12px}
  .banner-quick>span{display:none}
  .banner-trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:18px;padding-top:14px}
  .banner-trust a{
    display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;
    padding:0;border-left:0;min-height:44px;
  }
  .banner-trust b{font-size:18px}
  .banner-trust span{font-size:11px;line-height:1.3}
  .banner-fallback{align-items:flex-start;flex-wrap:wrap;font-size:11px;padding:10px 12px}
  .banner-fallback a{margin-left:0;min-height:44px}
  .banner-radar{border-radius:18px}
  .radar-head{padding:11px 13px 10px;gap:9px}
  .radar-icon{width:32px;height:32px;border-radius:9px}
  .radar-title{font-size:13px}
  .radar-sub{font-size:10px}
  .radar-live{font-size:9px;padding:4px 7px}
  .radar-row{min-height:52px;padding:9px 13px;grid-template-columns:30px minmax(0,1fr) auto;gap:9px}
  .radar-logo{width:30px;height:30px;border-radius:9px}
  .radar-logo img{width:17px;height:17px}
  .radar-name{font-size:12px}
  .radar-meta{font-size:10px;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
  .radar-price{font-size:18px}
  .radar-foot{padding:8px 13px;font-size:10px}
}
@media(max-width:1120px){
  .radar-meta{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
}
@media(max-width:380px){
  .home-banner{padding:22px 16px;border-radius:18px}
  .home-banner h1{font-size:26px;letter-spacing:-.4px}
  .banner-lede{font-size:13px}
  .banner-search input{font-size:16px}
  .banner-search-btn{padding:0 12px}
  .banner-search-long{display:none}
  .banner-search-short{display:inline}
  .banner-quick a{padding:0 10px;font-size:11px}
  .banner-trust b{font-size:16px}
  .banner-trust span{font-size:10px}
  .radar-row{grid-template-columns:28px minmax(0,1fr) auto;gap:8px;padding:8px 11px}
  .radar-logo{width:28px;height:28px}
  .radar-logo img{width:16px;height:16px}
  .radar-name{font-size:11px}
  .radar-price{font-size:17px}
  .radar-meta{font-size:9.5px}
  .radar-foot{font-size:9.5px;padding:7px 11px}
  .radar-foot span{display:none}
  .radar-foot{justify-content:flex-end}
}

/* 赞助公开页：独立于比价与自然目录，使用清晰的位置标签和排期说明。 */
.sponsor-head{max-width:880px;padding-top:28px}
.sponsor-head h1{font-size:42px}
.sponsor-head>p:last-child{color:var(--muted);font-size:14px;line-height:1.9;margin-top:12px}
.sponsor-policy{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0 34px}
.sponsor-policy>div{padding:16px 18px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.sponsor-policy strong{display:block;font-size:13px;margin-bottom:5px}
.sponsor-policy span{display:block;color:var(--muted);font-size:12px;line-height:1.7}
.sponsor-section{margin:0 0 38px}
.sponsor-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.sponsor-section-head .eyebrow{margin-bottom:6px}
.sponsor-section-head h2{font-size:24px}
.sponsor-section-head>span{color:var(--muted);font-size:12px;white-space:nowrap}
.sponsor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.sponsor-card{display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-soft);min-width:0}
.sponsor-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.sponsor-logo{width:48px;height:48px;border-radius:12px;object-fit:contain;background:var(--soft);padding:5px}
.sponsor-initial{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--soft);color:var(--accent);font-size:20px;font-weight:750}
.sponsor-badge{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.6px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line))}
.sponsor-card h3{font-size:17px;overflow-wrap:anywhere}
.sponsor-card p{color:var(--muted);font-size:12.5px;line-height:1.75;overflow-wrap:anywhere}
.sponsor-card .sponsor-summary-empty{font-style:italic}
.sponsor-meta{margin-top:auto;font-size:11px!important;color:var(--muted)}
.sponsor-visit{width:100%;margin-top:2px}
.sponsor-empty{padding:44px 24px;text-align:center;border:1px dashed var(--line);border-radius:16px;background:var(--surface);margin-bottom:30px}
.sponsor-empty h2{font-size:20px;margin-bottom:8px}
.sponsor-empty p{color:var(--muted);font-size:13px;max-width:560px;margin:0 auto 18px}
.sponsor-footnote{border-top:1px solid var(--line);padding-top:24px;max-width:820px}
.sponsor-footnote h2{font-size:16px;margin-bottom:8px}
.sponsor-footnote p{color:var(--muted);font-size:12.5px;line-height:1.8}
.sponsor-footnote a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
@media(max-width:980px){
  .sponsor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sponsor-policy{grid-template-columns:1fr}
}
@media(max-width:680px){
  .sponsor-head h1{font-size:32px}
  .sponsor-grid{grid-template-columns:1fr}
  .sponsor-section-head{align-items:flex-start;flex-direction:column;gap:6px}
  .sponsor-card{padding:17px}
}

/* 赞助位有两个筛选条件，命令栏分两行：概览/操作一行，搜索一行，避免搜索框被压窄。 */
.sponsor-command{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:center}
.sponsor-command .review-stats{grid-column:1;grid-row:1}
.sponsor-command .review-command-actions{grid-column:2;grid-row:1;justify-self:end}
.sponsor-command .review-search{grid-column:1/-1;grid-row:2;min-width:0;max-width:none;padding-left:0;border-left:0}
#sponsor-editor .source-editor-close{width:36px;height:36px}
.sponsor-live{margin-left:7px;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:10.5px;font-weight:650;letter-spacing:.2px;vertical-align:middle;white-space:nowrap}
@media(max-width:800px){
  .sponsor-command{grid-template-columns:1fr}
  .sponsor-command .review-stats,.sponsor-command .review-search,.sponsor-command .review-command-actions{grid-column:1;grid-row:auto}
  .sponsor-command .review-command-actions{justify-self:stretch}
  .sponsor-command .review-search-query{flex:1 1 100%;width:100%}
  .sponsor-command .review-search-query input{width:100%;max-width:none}
}
@media(min-width:561px) and (max-width:800px){
  .sponsor-command .review-search-filter{flex:0 0 calc(50% - 4px);width:calc(50% - 4px)}
}
@media(min-width:801px){
  .sponsor-command .review-search-query{flex:1 1 280px}
}
.sponsor-admin-table{min-width:820px}
.sponsor-admin-table td{vertical-align:top}
.sponsor-site-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;align-items:start;min-width:0;text-align:left}
.sponsor-avatar{display:grid;place-items:center;width:36px;height:36px;overflow:hidden;border-radius:10px;background:var(--soft);color:var(--accent);font-size:15px;font-weight:750}
.sponsor-site-body{min-width:0}
.sponsor-admin-meta{display:block;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.6}
.sponsor-admin-meta.is-warn{color:var(--pending)}
.sponsor-slot{display:grid;justify-items:center;gap:2px}
.sponsor-row-actions{display:grid;gap:4px;min-width:170px}
.sponsor-logo-field{display:grid;gap:10px;max-width:560px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
.sponsor-logo-field input[type=file]{display:block;width:100%;height:46px;min-height:46px;padding:4px 8px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font:inherit;font-size:12px}
.sponsor-logo-field .check{justify-self:start;min-height:36px;color:var(--muted);font-size:12px;font-weight:500}
.sponsor-logo-field .settings-logo-preview .sponsor-initial{width:100%;height:100%;border-radius:0;background:transparent;font-size:20px}

@media(max-width:680px){
  .sponsor-admin-table{min-width:760px}
  .sponsor-row-actions{min-width:150px}
}

/* 后台工作台：数字卡片之后是可操作的队列与真实审计摘要。 */
.dashboard-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}
.dashboard-panel-block{display:block;margin-top:0}
.dashboard-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.dashboard-queue-list{display:grid;gap:2px;margin-top:14px}
.dashboard-queue-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:9px 10px;border-radius:9px;border-bottom:1px solid var(--line);font-size:13px}
.dashboard-queue-list a:last-child{border-bottom:0}
.dashboard-queue-list a:hover{background:var(--soft)}
.dashboard-queue-list b{font-variant-numeric:tabular-nums;color:var(--accent);font-size:16px}
.dashboard-text-value{font-size:11px!important;color:var(--muted)!important;font-weight:500!important;text-align:right}
.dashboard-feed{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:2px}
.dashboard-feed li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line)}
.dashboard-feed li:last-child{border-bottom:0}
.dashboard-feed span{display:grid;gap:3px;min-width:0}
.dashboard-feed b{font-size:12.5px;font-weight:600;overflow-wrap:anywhere}
.dashboard-feed small{color:var(--muted);font-size:11px}
.dashboard-feed em{flex:none}
.dashboard-click-count{font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums}
.dashboard-empty{color:var(--muted);font-size:12.5px;margin-top:14px}
.dashboard-system-actions{display:flex;align-items:center;gap:10px;flex:none}
.dashboard-system-actions form{margin:0}
@media(max-width:1100px){.dashboard-columns{grid-template-columns:1fr}}
@media(max-width:680px){.dashboard-panel-head{flex-direction:column}.dashboard-system-actions{width:100%;justify-content:space-between}.dashboard-queue-list a{min-height:46px}.dashboard-feed li{gap:8px}}

.audit-table td{vertical-align:top}
.audit-action{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;background:var(--soft);padding:3px 6px;border-radius:5px;white-space:nowrap}
.audit-target{display:block;max-width:360px;overflow-wrap:anywhere;font-size:12px}

/* 数据与备份：创建按钮、敏感文件说明和恢复检查清单。 */
.backup-create{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:4px}
.backup-create span{color:var(--muted);font-size:12px;max-width:680px}
.backup-name{display:block;max-width:360px;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.backup-restore-note{display:grid;gap:9px;color:var(--muted);font-size:13px;line-height:1.8;max-width:880px}
.backup-restore-note code{background:var(--soft);padding:2px 5px;border-radius:4px;color:var(--text);overflow-wrap:anywhere}
@media(max-width:680px){.backup-create{align-items:flex-start;flex-direction:column}.backup-create .btn{width:100%}}

/* 管理员与安全：账号概览 + 两列安全卡片。
   旧版把表单直接铺在页面背景上，操作行用负外边距撑出容器，信息没有边界。
   现在所有设置收进卡片，概览只在顶部出现一次。 */
.account-page{display:grid;gap:18px}
.account-hero{position:relative;overflow:hidden;padding:20px 22px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-soft)}
.account-avatar{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:14px;background:color-mix(in srgb,var(--accent) 13%,var(--surface));color:var(--accent);font-size:19px;font-weight:750;line-height:1;letter-spacing:-.5px}
.account-hero-main{display:flex;align-items:center;gap:16px;flex-wrap:wrap;min-width:0}
.account-hero-copy{display:grid;gap:6px;flex:1 1 260px;min-width:0}
.account-hero-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.account-hero-title h2{font-size:20px;line-height:1.3;letter-spacing:-.3px;overflow-wrap:anywhere}
.account-hero-note{color:var(--muted);font-size:12.5px;line-height:1.7;overflow-wrap:anywhere}
.account-badge{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.5;white-space:nowrap}
.account-badge svg{width:13px;height:13px;stroke-width:2}
.account-badge.is-self{background:var(--soft);color:var(--muted)}
.account-badge.is-secure{border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));background:color-mix(in srgb,var(--accent) 11%,var(--surface));color:var(--accent)}
.account-badge.is-attention{border:1px solid var(--pending-line);background:var(--pending-bg);color:var(--pending)}
.account-hero-cta{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;min-height:44px;padding:0 15px;border:1px solid color-mix(in srgb,var(--pending) 34%,var(--line));border-radius:10px;background:var(--pending-bg);color:var(--pending);font-size:12.5px;font-weight:700;white-space:nowrap}
.account-hero-cta:hover{background:color-mix(in srgb,var(--pending) 10%,var(--pending-bg))}
.account-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0 0;padding:14px 0 0;border-top:1px solid var(--line)}
.account-facts>div{min-width:0;padding:0 18px;border-left:1px solid var(--line)}
.account-facts>div:first-child{padding-left:0;border-left:0}
.account-facts dt{margin-bottom:5px;color:var(--muted);font-size:11px;font-weight:600}
.account-facts dd{font-size:13.5px;font-weight:650;line-height:1.5;overflow-wrap:anywhere}
.account-facts code{padding:2px 7px;border-radius:6px;background:var(--soft);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;overflow-wrap:anywhere}
.account-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.account-column{display:grid;align-content:start;gap:16px;min-width:0}
.account-group-title{display:flex;align-items:center;gap:10px;margin:0 2px -4px;color:var(--muted);font-size:12px;font-weight:700}
.account-group-title::after{content:"";flex:1;height:1px;background:var(--line)}
.account-card{min-width:0;padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-soft);scroll-margin-top:18px}
.account-card:target{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent),var(--shadow)}
.account-card-head{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;min-width:0}
.account-card-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;background:color-mix(in srgb,var(--accent) 11%,var(--surface));color:var(--accent)}
.account-card-icon svg{width:17px;height:17px}
.account-card-head-copy{display:grid;gap:4px;flex:1 1 160px;min-width:0}
.account-card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.account-card-title h2{font-size:16.5px;line-height:1.35;letter-spacing:-.2px;overflow-wrap:anywhere}
.account-card-head p{color:var(--muted);font-size:12.5px;line-height:1.7}
.account-saved{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:11px;font-weight:700}
.account-saved svg{width:12px;height:12px;stroke-width:2.4}
.account-count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:22px;padding:0 8px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:11px;font-weight:750;font-variant-numeric:tabular-nums}
.account-form{display:grid;gap:16px;margin-top:18px}
.account-form .settings-field{display:grid;align-content:start;gap:7px;min-width:0;color:var(--muted);font-size:12px;font-weight:600}
.account-form .settings-label{flex-wrap:wrap}
.account-form .settings-field input{min-height:44px;padding:0 13px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--text);font-size:14px;font-weight:400}
.account-form .settings-field input:hover{border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}
.account-form .settings-field input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.account-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.account-field-wide{grid-column:1/-1}
.account-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:16px;border-top:1px solid var(--line)}
.account-actions>span{flex:1 1 200px;min-width:0;color:var(--muted);font-size:11.5px;line-height:1.65}
.account-actions .btn{flex:none}
.account-steps{display:grid;gap:16px;margin-top:18px}
.account-step{display:flex;gap:11px;min-width:0}
.account-step-no{display:grid;place-items:center;width:24px;height:24px;flex:none;border-radius:50%;background:var(--soft);color:var(--accent);font-size:11px;font-weight:750}
.account-step-body{display:grid;gap:7px;flex:1;min-width:0}
.account-step-body h3{font-size:13.5px;line-height:1.5}
.account-step-body p{color:var(--muted);font-size:12px;line-height:1.7}
.account-secret{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 13px;border:1px dashed var(--line);border-radius:10px;background:var(--bg)}
.account-secret span{color:var(--muted);font-size:11px;font-weight:600}
.account-secret code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.5px;overflow-wrap:anywhere;user-select:all}
.account-uri{border-top:1px solid var(--line);padding-top:6px}
.account-uri summary{display:flex;align-items:center;min-height:36px;color:var(--muted);font-size:11.5px;cursor:pointer}
.account-uri summary:hover{color:var(--accent)}
.account-uri summary::after{content:"展开";margin-left:auto;color:var(--muted);font-size:10.5px}
.account-uri[open] summary::after{content:"收起"}
.account-uri input{width:100%;min-height:40px;padding:8px 11px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}
.account-current{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:var(--bg)}
.account-current span{color:var(--muted);font-size:11.5px;font-weight:600}
.account-current code{padding:2px 8px;border-radius:6px;background:var(--soft);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;overflow-wrap:anywhere}
.account-users{display:grid;margin:16px 0 0;padding:0;list-style:none}
.account-user{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);min-width:0}
.account-user:first-child{border-top:0;padding-top:2px}
.account-user-avatar{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:10px;background:var(--soft);color:var(--accent);font-size:12px;font-weight:750}
.account-user-copy{display:grid;gap:2px;min-width:0}
.account-user-copy strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.account-user-copy small{color:var(--muted);font-size:11px}
.account-user-state{display:flex;justify-content:flex-end}
.account-admins-title,.account-admins{grid-column:1/-1}
.account-add{margin-top:14px;border-top:1px solid var(--line)}
.account-add summary{display:flex;align-items:center;gap:8px;min-height:44px;color:var(--accent);font-size:12.5px;font-weight:700;cursor:pointer;list-style:none}
.account-add summary::-webkit-details-marker{display:none}
.account-add summary:hover{color:color-mix(in srgb,var(--accent) 78%,var(--text))}
.account-add summary::after{content:"展开";margin-left:auto;color:var(--muted);font-size:11px;font-weight:600}
.account-add[open] summary::after{content:"收起"}
.account-add-plus{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--soft);color:var(--accent);font-size:15px;font-weight:600;line-height:1}
.account-add[open] .account-add-plus{background:var(--accent);color:var(--accent-ink)}
.account-add .account-form{margin-top:2px}
.account-empty{margin-top:16px;color:var(--muted);font-size:13px;line-height:1.7}
.account-setup{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}
.account-setup>summary{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:10px;background:var(--surface);color:var(--accent);font-size:12.5px;font-weight:700;cursor:pointer;list-style:none}
.account-setup>summary::-webkit-details-marker{display:none}
.account-setup>summary:hover{background:var(--soft)}
.account-setup[open]>summary{background:var(--soft)}
.account-setup .account-steps{margin-top:14px}
.account-recovery{margin:0 0 18px;padding:20px 22px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.account-recovery-head{display:flex;align-items:flex-start;gap:11px}
.account-recovery-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;background:var(--accent);color:var(--accent-ink)}
.account-recovery-icon svg{width:17px;height:17px}
.account-recovery h2{font-size:16px;line-height:1.4}
.account-recovery p{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.7}
.recovery-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:14px 0 0;padding:0;list-style:none}
.recovery-codes li{min-width:0}
.recovery-codes code{display:block;padding:8px 10px;border:1px dashed var(--line);border-radius:8px;background:var(--surface);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;letter-spacing:.4px;overflow-wrap:anywhere;user-select:all}
@media(min-width:1000px){
  .account-admins .account-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
  .account-admins .account-field-wide{grid-column:auto}
}
@media(max-width:1100px){.account-columns{grid-template-columns:1fr}.account-column{display:contents}}
@media(max-width:900px){.account-hero{padding:20px}.account-facts{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}.account-facts>div{padding:0 16px}.account-facts>div:nth-child(odd){padding-left:0;border-left:0}}
@media(max-width:700px){.account-fields{grid-template-columns:1fr}.account-field-wide{grid-column:auto}.account-hero,.account-card{padding:16px}.account-hero-cta{flex:1 1 100%;margin-left:0}}
@media(max-width:560px){.account-actions{align-items:stretch;flex-direction:column}.account-actions>span{flex:none}.account-actions .btn{width:100%}.account-setup>summary{width:100%;justify-content:center}.account-recovery{padding:16px}.recovery-codes{grid-template-columns:1fr}}
@media(max-width:380px){.account-facts>div{padding:0 10px}.account-avatar{width:44px;height:44px;border-radius:13px;font-size:18px}.account-hero-title h2{font-size:19px}}
@media(max-width:1024px),(pointer:coarse){.account-hero-cta{min-height:44px}}

/* 纠错反馈：公开表单与后台线索卡片，窄屏不依赖横向滚动。 */
.feedback-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:20px;align-items:start}
.feedback-head h1{font-size:38px}
.feedback-form,.feedback-guide{padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-soft)}
.feedback-form{display:grid;gap:14px}
.feedback-form-head h2{font-size:20px}
.feedback-form-head .eyebrow{margin-bottom:5px}
.feedback-form label,.feedback-guide h2{font-size:13px}
.feedback-form input,.feedback-form select,.feedback-form textarea{width:100%;margin-top:6px}
.feedback-form small{display:block;margin-top:5px;color:var(--muted);font-size:11px;line-height:1.6}
.feedback-form-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}
.feedback-form-foot p{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11.5px}
.feedback-form-foot svg{width:15px;height:15px;color:var(--accent)}
.feedback-done{display:flex;align-items:flex-start;gap:12px;margin:18px 0;padding:16px 18px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:13px;background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.feedback-done svg{color:var(--accent);margin-top:2px}
.feedback-done p{color:var(--muted);font-size:12.5px;line-height:1.7;margin-top:3px}
.feedback-guide h2{font-size:18px;margin-bottom:12px}
.feedback-guide ol{list-style:none;counter-reset:feedback;margin:0;padding:0;display:grid;gap:12px}
.feedback-guide li{counter-increment:feedback;display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;align-items:start}
.feedback-guide li:before{content:counter(feedback,decimal-leading-zero);color:var(--accent);font-size:11px;font-weight:700;padding-top:2px}
.feedback-guide b{display:block;font-size:12.5px}
.feedback-guide span{display:block;color:var(--muted);font-size:12px;line-height:1.7;margin-top:2px}
.feedback-guide-note{margin:16px 0;padding:13px 14px;border:1px dashed var(--line);border-radius:10px;background:var(--soft)}
.feedback-guide-note b{font-size:12px}
.feedback-guide-note p{color:var(--muted);font-size:11.5px;line-height:1.7;margin-top:4px}
.feedback-admin-list{display:grid;gap:12px;margin-top:14px}
.feedback-admin-card{padding:16px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.feedback-admin-card>header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.feedback-admin-card>header>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.feedback-admin-card>header small{color:var(--muted);font-size:11px}
.feedback-kind{font-size:11px;font-weight:700;color:var(--accent)}
.feedback-admin-message{margin-top:10px;font-size:13px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}
.feedback-admin-meta{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:9px;color:var(--muted);font-size:11.5px}
.feedback-admin-meta a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.feedback-admin-note{margin-top:9px;padding:8px 10px;border-radius:7px;background:var(--soft);color:var(--muted);font-size:11.5px;line-height:1.7}
.feedback-admin-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;padding-top:11px;border-top:1px solid var(--line)}
.feedback-admin-actions form{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0;flex:1;min-width:240px}
.feedback-admin-actions form input{flex:1;min-width:150px}
@media(max-width:980px){.feedback-layout{grid-template-columns:1fr}.feedback-head h1{font-size:32px}}
@media(max-width:620px){.feedback-form,.feedback-guide{padding:16px}.feedback-form-foot{align-items:flex-start;flex-direction:column}.feedback-form-foot .btn{width:100%}.feedback-admin-actions form{flex-direction:column;align-items:stretch;min-width:0}.feedback-admin-actions{flex-direction:column;align-items:stretch}.feedback-admin-actions .source-mini-link{min-height:40px}}

/* CSV 导出入口：与工作台卡片一致的权重，但强调一次性下载。 */
.export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.export-card{display:grid;gap:7px;padding:19px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .18s,transform .18s}
.export-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.export-card strong{font-size:16px}
.export-card p{color:var(--muted);font-size:12px;line-height:1.7}
.export-card em{margin-top:5px;color:var(--accent);font-size:12px;font-style:normal}
.export-note{margin-top:14px;color:var(--muted);font-size:12px;line-height:1.7}
@media(max-width:760px){.export-grid{grid-template-columns:1fr}}

/* 来源默认规格：只用于新采集，明确区分“未配置”。 */
.source-defaults{margin:16px 0 18px;padding:14px 15px;border:1px dashed var(--line);border-radius:11px;background:var(--soft)}
.source-defaults legend{padding:0 6px;color:var(--accent);font-size:12px;font-weight:700}
.source-defaults>p{color:var(--muted);font-size:11.5px;line-height:1.7;margin-bottom:10px}
.source-defaults .row{margin-top:8px}
.source-defaults-apply{display:flex;align-items:center;gap:7px;font-size:12px;align-self:end;min-height:44px}
@media(max-width:680px){.source-defaults{padding:12px}.source-defaults-apply{align-self:start}}

.run-result{display:block;max-width:520px;overflow-wrap:anywhere;font-size:12px}

/* 后台通知：顶部铃铛只做站内提醒，未读数同时用文字标签。 */
.admin-bell{position:relative}
.admin-bell-badge{position:absolute;top:-4px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--danger);color:#fff;font-size:10px;font-weight:800;line-height:17px;text-align:center}
.notification-list{display:grid;gap:10px}
.notification-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:start;padding:13px 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.notification-item.is-unread{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.notification-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--soft);color:var(--accent)}
.notification-icon svg{width:18px;height:18px}
.notification-copy{min-width:0}
.notification-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:10.5px;margin-bottom:3px}
.notification-meta>span{color:var(--accent);font-weight:700}
.notification-unread{color:var(--danger);font-size:10px}
.notification-copy>strong{display:block;font-size:13px;overflow-wrap:anywhere}
.notification-copy>p{color:var(--muted);font-size:12px;line-height:1.65;margin:4px 0 0;overflow-wrap:anywhere}
.notification-link{display:inline-block;margin-top:6px;font-size:11.5px;font-weight:700;color:var(--accent)}
@media(max-width:620px){.notification-item{grid-template-columns:30px minmax(0,1fr);padding:12px}.notification-item>form{grid-column:1/-1;justify-self:start}.notification-icon{width:30px;height:30px}}

/* Final mobile touch corrections for compact admin links and file inputs. */
@media(max-width:1024px),(pointer:coarse){
  .admin-app .source-mini-link{min-height:36px;padding:6px 8px}
  .admin-breadcrumb a{display:inline-flex;align-items:center;min-height:36px}
  .footer-links a,.footer-links button{display:inline-flex;align-items:center;min-height:36px}
  .form input[type=file],.settings-logo-box input[type=file]{font-size:16px}
  .form input[type=file]::file-selector-button,.settings-logo-box input[type=file]::file-selector-button{font-size:16px;min-height:36px}
}
@media(max-width:1024px),(pointer:coarse){
  .breadcrumb a,.site-footer-col a,.admin-app .footer>a,.section-head>a{display:inline-flex;align-items:center;min-height:36px}
}

/* 商品聚合页：同一标准化商品的多渠道报价。 */
.product-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:center;padding:24px}
.product-kicker{display:inline-flex;padding:4px 9px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.04em}
.product-hero h1{font-size:clamp(24px,4vw,38px);margin:10px 0 8px;overflow-wrap:anywhere}
.product-hero p{color:var(--muted);font-size:13px;line-height:1.8;max-width:720px}
.product-hero-stats{display:flex;gap:20px;flex-wrap:wrap;margin-top:14px;color:var(--muted);font-size:12px}
.product-hero-stats b{color:var(--text);font-size:18px;margin-right:3px}
.product-hero-side{display:flex;flex-direction:column;gap:8px;min-width:170px}
.product-quotes{margin-top:18px}
.product-quote-table{min-width:820px}
.product-platform{display:flex;align-items:center;gap:9px;min-width:0}
.product-platform-logo{width:30px;height:30px;flex:none;border-radius:8px;display:grid;place-items:center;overflow:hidden;background:var(--soft);color:var(--accent);font-size:12px;font-weight:800}
.product-platform-logo img{width:100%;height:100%;object-fit:contain}
.product-platform b{display:block;font-size:12.5px;overflow-wrap:anywhere}
.product-platform small{display:block;color:var(--muted);font-size:10.5px}
.quote-spec{display:block;font-size:12px}
.product-quote-table td small{display:block;color:var(--muted);margin-top:3px}
.product-quote-table tr.is-stale{opacity:.68}
.status-pill{display:inline-flex;align-items:center;min-height:26px;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:700;white-space:nowrap}
.status-pill.ok{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}
.status-pill.muted{background:var(--soft);color:var(--muted)}
.product-quote-note{color:var(--muted);font-size:11.5px;line-height:1.75;margin-top:10px}
.product-links{margin-top:18px}
.product-links h2{font-size:15px;margin-bottom:10px}
.product-link-row{display:flex;gap:16px;flex-wrap:wrap}
.product-link-row a{display:inline-flex;align-items:center;min-height:36px;color:var(--accent);font-size:12.5px;font-weight:700}
@media(max-width:760px){.product-hero{grid-template-columns:1fr;padding:18px}.product-hero-side{flex-direction:row;flex-wrap:wrap;min-width:0}.product-hero-side .btn{flex:1 1 150px}.product-quote-table{min-width:760px}}

/* 固定对比页：两侧官方最低价并排，不混合商家报价。 */
.comparison-hero{text-align:center;padding:28px 22px 24px}
.comparison-hero h1{font-size:clamp(24px,4vw,36px);margin:10px 0 8px}
.comparison-hero p{max-width:760px;margin:0 auto;color:var(--muted);font-size:13px;line-height:1.8}
.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
.comparison-card{display:flex;flex-direction:column;gap:9px;padding:20px}
.comparison-card header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.comparison-name{font-size:18px;font-weight:800}
.comparison-card header a{display:inline-flex;align-items:center;min-height:36px;color:var(--accent);font-size:12px;font-weight:700}
.comparison-plan{color:var(--muted);font-size:12.5px}
.comparison-price{font-size:clamp(24px,4vw,34px);font-weight:800;font-variant-numeric:tabular-nums;line-height:1.2}
.comparison-price small{display:block;margin-top:4px;color:var(--muted);font-size:11px;font-weight:500}
.comparison-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 8px;padding-top:10px;border-top:1px solid var(--line)}
.comparison-meta div{min-width:0}
.comparison-meta dt{color:var(--muted);font-size:10.5px;margin-bottom:2px}
.comparison-meta dd{font-size:12px;overflow-wrap:anywhere}
.comparison-card .btn{justify-content:center}
.comparison-source{display:inline-flex;align-items:center;min-height:36px;color:var(--muted);font-size:11.5px}
.comparison-notes{margin-top:18px;padding:20px}
.comparison-notes h2{font-size:16px;margin-bottom:8px}
.comparison-notes ul{display:grid;gap:5px;padding-left:20px;color:var(--muted);font-size:12px;line-height:1.75}
@media(max-width:700px){.comparison-grid{grid-template-columns:1fr}.comparison-hero{padding:20px 16px}.comparison-meta{grid-template-columns:1fr}}

/* 提交收录：模型与支付方式使用可选择的标签输入。无 JS 时仍是普通逗号分隔输入框。 */
.tag-field{display:grid;gap:6px;min-width:0;align-content:start}
.tag-control{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:46px;min-width:0;padding:5px 6px 5px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:border-color .18s,box-shadow .18s}
.tag-control:focus-within{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.tag-list{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-width:0}
.tag-list:empty{display:none}
.tag-chip{display:inline-flex;align-items:center;gap:3px;min-height:32px;max-width:100%;padding:2px 2px 2px 10px;border-radius:999px;background:var(--soft);color:var(--accent);font-size:12px;font-weight:650;line-height:1.5}
.tag-chip-text{min-width:0;padding-right:2px;overflow-wrap:anywhere}
.tag-field .tag-chip-remove{display:grid;place-items:center;flex:none;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font:inherit;font-size:16px;line-height:1;cursor:pointer;transition:background .18s,color .18s}
.tag-field .tag-chip-remove:hover{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.tag-entry{display:flex;align-items:center;gap:6px;flex:1 1 170px;min-width:0}
.form .tag-input{flex:1 1 auto;min-width:0;width:100%;min-height:34px;padding:2px 2px 2px 0;border:0;border-radius:0;background:transparent;color:var(--text);font:inherit;font-size:15px;box-shadow:none}
.form .tag-input:hover:not(:disabled){border-color:transparent}
.tag-field .tag-add{flex:none;min-height:34px;padding:0 12px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:999px;background:var(--soft);color:var(--accent);font:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.tag-field .tag-add:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tag-options{min-width:0}
.tag-options[hidden]{display:none}
.tag-options>summary{display:inline-flex;align-items:center;gap:5px;width:max-content;max-width:100%;min-height:32px;padding:0 11px;border:1px dashed var(--line);border-radius:999px;background:var(--bg);color:var(--muted);font-size:12px;font-weight:700;list-style:none;cursor:pointer;transition:color .18s,border-color .18s,background .18s}
.tag-options>summary:hover{border-color:color-mix(in srgb,var(--accent) 36%,var(--line));background:var(--surface);color:var(--accent)}
.tag-options[open]>summary{border-style:solid;border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:var(--soft);color:var(--accent)}
.tag-options>summary::-webkit-details-marker{display:none}
.tag-options>summary::after{content:"▾";font-size:10px;line-height:1;transition:transform .18s}
.tag-options[open]>summary{color:var(--accent)}
.tag-options[open]>summary::after{transform:rotate(180deg)}
.tag-option-list{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin-top:2px}
.tag-field .tag-option{display:inline-flex;align-items:center;min-height:32px;padding:3px 10px;border:1px dashed var(--line);border-radius:999px;background:var(--bg);color:var(--muted);font:inherit;font-size:12px;font-weight:650;cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.tag-field .tag-option:hover{border-color:color-mix(in srgb,var(--accent) 36%,var(--line));background:var(--surface);color:var(--accent)}
.tag-field .tag-option[aria-pressed=true]{border-style:solid;border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:var(--soft);color:var(--accent)}
.tag-field .tag-status{margin:0;color:var(--accent);font-size:11.5px;font-weight:650;line-height:1.65}
.tag-field .tag-status:empty{display:none}
.tag-noscript{display:block;color:var(--muted);font-size:11.5px;line-height:1.65;font-weight:400}
@media(max-width:640px){.tag-entry{flex-basis:100%}}
@media (max-width:900px),(pointer:coarse){
  .tag-field .tag-add,.tag-field .tag-option,.tag-options>summary{min-height:36px}
  .tag-field .tag-chip{min-height:36px}
  .tag-field .tag-chip-remove{width:36px;height:36px}
}

/* Offer detail: quote sheet, price stub, spec strip and score gauge (2026-10-29). */
.offer-sheet{padding:0;overflow:hidden}
.offer-head{display:grid;grid-template-columns:minmax(0,1fr) 272px;align-items:stretch}
.offer-copy{display:flex;flex-direction:column;justify-content:center;gap:10px;min-width:0;padding:26px 28px 24px}
.offer-title{display:flex;align-items:flex-start;gap:14px;min-width:0}
.offer-logo{width:48px;height:48px;font-size:21px;border-radius:13px;flex:none}
.offer-title-main{flex:1 1 auto;min-width:0}
.offer-kicker{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:7px}
.offer-source{color:var(--muted);font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.offer-source a{color:var(--accent);font-weight:650}
.offer-source a:hover{text-decoration:underline}
.offer-all-link{display:inline-flex;align-items:center;gap:4px;min-height:32px;margin-left:auto;color:var(--accent);font-size:12px;font-weight:700;white-space:nowrap}
.offer-all-link:hover{text-decoration:underline}
.offer-sheet h1{margin:0;font-size:27px;line-height:1.34;font-weight:800;letter-spacing:-.5px;overflow-wrap:anywhere}
.offer-meta{margin:0;color:var(--muted);font-size:12.5px;line-height:1.7;overflow-wrap:anywhere}
.offer-stub{display:flex;flex-direction:column;justify-content:center;gap:8px;padding:22px;background:var(--soft);border-left:1px dashed color-mix(in srgb,var(--accent) 30%,var(--line))}
.offer-stub-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.offer-stub-label{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em}
.offer-stub-label::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--accent);flex:none}
.offer-stub-price{display:block;color:var(--accent);font-size:33px;line-height:1.1;font-weight:800;letter-spacing:-1.2px;font-variant-numeric:tabular-nums}
.offer-stub-cta{justify-content:center;width:100%;min-height:44px;margin-top:2px}
.offer-stub .secondary{background:var(--surface)}
.offer-stub-meta{color:var(--muted);font-size:11px;line-height:1.65}
.offer-specs{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 0;margin:0}
.offer-specs>div{display:flex;align-items:baseline;gap:5px;min-width:0;max-width:100%}
.offer-specs>div+div{margin-left:14px;padding-left:14px;border-left:1px solid var(--line)}
.offer-specs dt{flex:none;color:var(--muted);font-size:11.5px;font-weight:600;line-height:1.6}
.offer-specs dd{margin:0;color:var(--text);font-size:12.5px;font-weight:700;line-height:1.6;overflow-wrap:anywhere}
.offer-rating{margin:0;padding:20px}
.offer-rating-head{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap}
.offer-rating-title{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;min-width:0}
.offer-rating-title h2{margin:0;font-size:16px;font-weight:800;letter-spacing:-.2px}
.offer-rating-title span{color:var(--muted);font-size:11px}
.offer-shop-score{display:inline-flex;align-items:center;gap:5px;margin-left:auto;min-height:36px;padding:3px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:11px;font-weight:650;white-space:nowrap}
.offer-shop-score b{color:var(--accent);font-size:14px;font-variant-numeric:tabular-nums}
.offer-shop-score span{color:var(--muted);font-size:10px}
.offer-shop-score:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.offer-rating-body{display:flex;flex-direction:column;align-items:stretch;gap:14px;margin-top:12px}
.offer-gauge{position:relative;flex:none;align-self:center;width:112px;height:112px}
.offer-gauge svg{position:relative;display:block;width:100%;height:100%}
.offer-gauge circle{fill:none;stroke-width:3.4}
.offer-gauge-track{stroke:color-mix(in srgb,var(--muted) 32%,var(--line))}
.offer-gauge-value{stroke:var(--accent);stroke-linecap:round}
.offer-gauge::before{content:"";position:absolute;inset:10.5%;border-radius:50%;background:var(--soft)}
.offer-gauge-num{position:absolute;inset:0;display:grid;place-items:center;color:var(--text);font-size:34px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-1px}
.offer-rating-list{flex:1 1 auto;min-width:0}
.offer-rating-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:baseline;gap:10px;padding:5px 0;line-height:1.4;border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent)}
.offer-rating-row:first-child{padding-top:0;border-top:0}
.offer-rating-row dt{color:var(--text);font-size:12.5px;font-weight:600;overflow-wrap:anywhere}
.offer-rating-weight{color:var(--muted);font-size:10.5px;font-variant-numeric:tabular-nums}
.offer-rating-row dd{margin:0;min-width:30px;text-align:right;font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}
@media(max-width:1260px){
.offer-head{grid-template-columns:minmax(0,1fr)}
.offer-stub{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;padding:16px 22px;border-left:0;border-top:1px dashed color-mix(in srgb,var(--accent) 30%,var(--line))}
.offer-stub-main{flex:1 1 auto;flex-direction:row;align-items:baseline;gap:10px}
.offer-stub-price{font-size:31px}
.offer-stub-cta{flex:none;width:auto;min-height:44px;margin:0}
.offer-stub-meta{order:3;flex:0 0 100%;font-size:11px;line-height:1.6}
}
@media(max-width:900px){
.offer-copy{padding:22px 22px 20px}
.offer-sheet h1{font-size:24px}
.offer-rating{padding:20px}
}
@media(max-width:700px){
.offer-copy{padding:18px 18px 16px}
.offer-logo{width:42px;height:42px;font-size:19px;border-radius:12px}
.offer-kicker{gap:8px;margin-bottom:6px}
.offer-sheet h1{font-size:22px;line-height:1.36}
.offer-meta{font-size:12px}
.offer-all-link{min-height:40px}
.offer-stub{padding:15px 18px}
.offer-stub-price{font-size:28px}
.offer-stub-meta{font-size:10.5px}
.offer-specs{row-gap:2px}
.offer-rating{padding:18px}
.offer-rating-title h2{font-size:15px}
.offer-rating-body{flex-direction:row;align-items:center;gap:16px}
.offer-gauge{width:88px;height:88px;align-self:center}
.offer-gauge-num{font-size:26px}
.offer-rating-row{gap:8px;padding:4px 0}
.offer-rating-row dt{font-size:12px}
.offer-rating-row dd{font-size:13px;min-width:26px}
}
@media(max-width:560px){
.offer-stub{flex-direction:column;align-items:stretch}
.offer-stub-main{flex-direction:column;align-items:flex-start;gap:2px}
.offer-stub-cta{width:100%}
.offer-stub-meta{flex:0 0 auto}
}
@media(max-width:420px){
.offer-sheet h1{font-size:20px}
.offer-gauge{width:80px;height:80px}
.offer-gauge-num{font-size:23px}
.offer-rating-row dt{font-size:11.5px}
.offer-rating-weight{font-size:10px}
}
/* Shared panel rhythm used by the offer detail card stack. */
.rating-panel{margin:20px 0 18px}
.related-offers{padding:14px 20px 20px}
/* Long product names stay on one breadcrumb line instead of pushing the page down. */
.breadcrumb span[aria-current="page"]{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Offer detail: recommended products strip at the bottom of the main column. */
.offer-recos{margin-top:20px;padding:18px 20px 20px}
.offer-recos-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.offer-recos-head h2{margin:0;font-size:15px;font-weight:800;letter-spacing:-.2px}
.offer-recos-head a{display:inline-flex;align-items:center;min-height:36px;color:var(--accent);font-size:12px;font-weight:650;white-space:nowrap}
.offer-recos-head a:hover{text-decoration:underline}
.offer-recos-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.offer-reco{display:flex;align-items:center;gap:10px;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.offer-reco:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.offer-reco .app-logo{flex:none;width:30px;height:30px;border-radius:9px;font-size:13px}
.offer-reco-main{display:flex;flex:1 1 auto;flex-direction:column;gap:2px;min-width:0}
.offer-reco-main b{display:-webkit-box;overflow:hidden;font-size:12.5px;font-weight:700;line-height:1.45;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.offer-reco-main small{overflow:hidden;color:var(--muted);font-size:10.5px;white-space:nowrap;text-overflow:ellipsis}
.offer-reco-side{display:flex;flex:none;flex-direction:column;align-items:flex-end;gap:1px}
.offer-reco-side strong{color:var(--accent);font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.offer-reco-side small{color:var(--muted);font-size:10px;white-space:nowrap}
@media(max-width:1279px){.offer-recos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.offer-recos-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.offer-recos{padding:16px}.offer-recos-grid{grid-template-columns:minmax(0,1fr)}}

/* Market score cells: the subscription market uses the relay directory's rating
   presentation (large number, / 100 and an explanation control) so both public
   lists read the same. The tip/help button reuses the relay help widgets. */
.market-th{display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap}
.market-th .relay-help{width:19px;height:19px;margin-left:1px}
.market-score-cell .market-score-value{display:inline-flex;align-items:baseline;justify-content:center;gap:2px;white-space:nowrap}
.market-score-cell .market-score-value b{font-size:22px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums}
.market-score-cell .market-score-value small{display:inline;margin:0 0 0 2px;color:var(--muted);font-size:10px;line-height:1.2;white-space:nowrap}
.market-score-cell .market-score-value.is-pending b{color:var(--muted);font-size:18px}
.market-help-mobile{display:none}
.market-help-notes{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);scroll-margin-top:20px}
.market-help-notes b{font-size:11px;color:var(--text)}
.market-help-notes p{margin:3px 0 0;color:var(--muted);font-size:11px;line-height:1.7}
@media(max-width:780px){
  .market-score-cell .market-score-value{justify-content:flex-start}
  .market-help-mobile{display:inline-grid}
  .market-score-cell .relay-help.market-help-mobile{flex:none;width:36px;height:36px;margin-left:6px;font-size:12px}
}
/* At 320px the two-column card cannot hold the score plus its help control,
   so the score and update time each take a full row instead of being squeezed. */
@media(max-width:360px){
  .market-score-cell,.market-entry td[data-label="最近更新"]{grid-column:1/-1}
}

