/* 数据更新仅提示，由用户决定是否刷新。 */
.data-update-dialog { margin:auto; width:min(420px,calc(100% - 32px)); padding:24px; border:1px solid var(--border-color); border-radius:var(--radius-lg); background:var(--bg-secondary); color:var(--text-primary); box-shadow:var(--shadow-xl); }
.data-update-dialog::backdrop { background:rgb(15 23 42 / .35); }
.data-update-dialog h2 { font-size:18px; margin:0 0 12px; }
.data-update-dialog p { color:var(--text-secondary); line-height:1.6; margin:0; }
.data-update-dialog footer { display:flex; justify-content:flex-end; gap:10px; margin-top:24px; }
/* 控件：一种基础样式，主操作和选中状态是明确的变体。 */
body :is(.tool-button, .filter-state-btn, .updates-toggle, .guide-button, .back-home-btn,
  .platform-comparison-secondary-btn, .platform-comparison-primary-btn, .platform-detail-action,
  .platform-detail-jump-plans, .guide-options > button) {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: var(--control-height); padding: 8px 14px; border: 1px solid var(--border-color);
  border-radius: var(--radius-md); background: var(--bg-secondary); color: var(--text-primary);
  font-size: 14px; line-height: 1.5; font-weight: 400; text-decoration: none;
  box-shadow: none; cursor: pointer; transition: background .15s, border-color .15s;
}
body :is(.tool-button, .filter-state-btn, .updates-toggle, .guide-button, .back-home-btn,
  .platform-comparison-secondary-btn, .platform-comparison-primary-btn, .platform-detail-action,
  .platform-detail-jump-plans, .guide-options > button):hover {
  background: var(--bg-tertiary); border-color: var(--border-strong); color: var(--text-primary); text-decoration: none; transform: none; box-shadow: none;
}
body :is(.tool-button.primary, .filter-state-btn.primary, .guide-button:not(.secondary), .platform-comparison-primary-btn) {
  color: white; background: var(--accent-primary); border-color: var(--accent-primary); font-weight: 600;
}
body :is(.tool-button.primary, .filter-state-btn.primary, .guide-button:not(.secondary), .platform-comparison-primary-btn):hover {
  color: white; background: var(--accent-hover); border-color: var(--accent-hover);
}
body :is(button, .tool-button):disabled { opacity: .5; cursor: not-allowed; }
body :is(input[type="search"], input[type="text"], input[type="number"], select, textarea) {
  min-height: var(--control-height); padding: 8px 12px; border: 1px solid var(--border-color);
  border-radius: var(--radius-md); background-color: var(--bg-secondary); color: var(--text-primary);
  font-size: 14px; line-height: 1.5; box-shadow: none;
}
body select, body :is(.model-browser-controls, .platform-hub-tools, .filter-inline, .platform-comparison-select-card) select,
body:is(.homepage-unified-active, .tool-unified-active) .filter-choice select {
  appearance: none; padding-right: 32px; cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23596678' stroke-width='1.5' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 10px center; background-size: 16px;
  min-height: var(--control-height); border-radius: var(--radius-md); font-size: 14px;
}
body :is(input, textarea)::placeholder { color: var(--text-secondary); opacity: .8; }
body :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--accent-primary); width: 16px; height: 16px; flex: 0 0 auto; }
body .toggle-switch input { width: 1px; height: 1px; }
.toggle-switch:has(input:focus-visible) { outline: 2px solid var(--accent-primary); outline-offset: 4px; border-radius: 12px; }
body .usage-segments { padding: 3px; gap: 2px; border: 1px solid var(--border-color); border-radius: 8px; background: var(--bg-tertiary); }
body .usage-segments button { min-height: 32px; padding: 5px 12px; border: 0; border-radius: 5px; font-size: 13px; font-weight: 400; color: var(--text-secondary); background: transparent; box-shadow: none; }
body .usage-segments button:hover { background: var(--bg-secondary); color: var(--text-primary); }
body .usage-segments :is(.is-active, [aria-pressed="true"]) { background: var(--bg-secondary); color: var(--accent-primary); font-weight: 600; box-shadow: none; }


/* 公共小组件的视觉归属；页面 CSS 只安排位置和间距。 */
body .ui-model-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; min-width: 0; max-width: 100%; }
body .ui-model-tags .model-tag { display: inline-flex; align-items: center; justify-content: center; min-width: 0; max-width: 100%; min-height: 27px; box-sizing: border-box; padding: 3px 6px; margin: 0; border: 1px solid var(--border-light); border-radius: 5px; background: var(--bg-tertiary); color: var(--text-secondary); font: 400 12px/1.6 var(--font-ui); white-space: normal; overflow-wrap: anywhere; }
body .ui-model-tags [hidden] { display: none; }
body .ui-model-tags button.model-tag-more { cursor: pointer; transition: background .16s, color .16s; }
body .ui-model-tags button.model-tag-more:hover { background: color-mix(in srgb, var(--bg-tertiary), var(--border-color) 35%); color: var(--text-primary); }
body .ui-model-tags button.model-tag-more:focus-visible { outline: 2px solid var(--text-secondary); outline-offset: 2px; }
body .section-toc a[aria-current="location"] { background: var(--bg-tertiary); color: var(--text-primary); }

body .link-icon { width: 12px; height: 12px; flex-shrink: 0; vertical-align: middle; }

/* 购买限制使用无底色的警示文字，与浅金色精选标签区分。 */
body :is(.plan-status[data-plan-status="restricted"], .plan-status[data-price-status="restricted"],
  .platform-rush[data-platform-status="restricted"], .platform-detail-rush[data-platform-status="restricted"],
  .platform-comparison-status--restricted, .offer-capabilities > .offer-status[data-offer-status="restricted"]) {
  display: inline-flex; align-items: center; gap: 4px; min-height: 26px;
  padding: 2px 0; border: 0; border-radius: 0; background: transparent;
  color: var(--purchase-restricted-color); font-size: 12px; font-weight: 400; line-height: 1.5; white-space: nowrap;
}
body :is(.plan-status[data-plan-status="restricted"], .plan-status[data-price-status="restricted"],
  .platform-rush[data-platform-status="restricted"], .platform-detail-rush[data-platform-status="restricted"],
  .platform-comparison-status--restricted, .offer-capabilities > .offer-status[data-offer-status="restricted"])::before {
  content: ""; flex: 0 0 13px; width: 13px; height: 13px; background: currentColor;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m8 2 6.5 12h-13Z' fill='none' stroke='black' stroke-width='1.3' stroke-linejoin='round'/%3E%3Cpath d='M8 6v3' stroke='black' stroke-width='1.3' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='11.3' r='.7'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* 图标按钮与信息标签分开：共用图形、状态和命中区，页面只安排位置。 */
body .ui-icon-button {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  width: 32px; height: 32px; padding: 0; border: 1px solid transparent;
  border-radius: var(--radius-md); background: transparent; color: var(--text-secondary);
  cursor: pointer; transition: background .15s, border-color .15s, color .15s;
}
body .ui-icon-button svg { width: 16px; height: 16px; pointer-events: none; }
body .ui-icon-button:hover { background: var(--bg-tertiary); color: var(--text-primary); }
body .ui-icon-button[aria-pressed="true"] { background: var(--accent-soft); color: var(--accent-primary); }
body .ui-icon-button--outlined { border-color: var(--border-color); background: var(--bg-secondary); }
body .ui-pin-button { position: relative; z-index: 2; }
body .plan-open-link { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
body :is(.platform-guide-link, .platform-card-hint) { display: inline-flex; align-items: center; }

@media (max-width: 800px), (pointer: coarse) {
  body .ui-icon-button { width: 44px; height: 44px; }
  body :is(.tool-button, .guide-button, .platform-detail-action, .platform-detail-jump-plans,
    .community-dialog-close, .community-float-dismiss, .table-sort-button, .usage-segments button,
    .platform-guide-link, .platform-card-hint, .plan-open-link, .offer-reasons > summary) { min-height: 44px; }
  body :is(.community-dialog-close, .community-float-dismiss) { min-width: 44px; }
  body :is(.model-offers-link, .model-price-link) { display: flex; align-items: center; box-sizing: border-box; min-height: 32px; padding-block: 4px; }
  body :is(.model-browser-controls, .tool-result-bar) label { min-height: 44px; }
  body #purchaseGuide button { min-height: 44px; }
  body .site-header .settings-unit-options button { min-height: 44px; }
  body .site-header .settings-toggle-row > label:first-child { display: inline-flex; align-items: center; min-height: 44px; }
  body .site-header .toggle-switch { width: 44px; height: 44px; }
  body .site-header .toggle-slider { inset: 12px 4px; }
}

.tool-filter-loading { min-height: 148px; display: grid; place-items: center; margin-bottom: 20px; color: var(--text-secondary); font-size: 13px; }
@media(max-width:600px) { .tool-filter-loading { min-height: 220px; } }
