/* Pearto appearance layer. Site settings can override the brand, accent and canvas. */
:root {
  --green: #007b86;
  --green-dark: color-mix(in srgb, var(--green), #102b3a 24%);
  --brand: var(--green);
  --brand-color: var(--green);
  --accent: #f2b35d;
  --canvas: #f4f8fb;
  --surface: #fff;
  --ink: #183548;
  --muted: #5b7180;
  --line: #d9e4ea;
  --soft: #edf3f7;
  --brand-soft: color-mix(in srgb, var(--green) 9%, white);
  --accent-soft: color-mix(in srgb, var(--accent) 20%, white);
  --accent-ink: color-mix(in srgb, var(--accent) 24%, #573200);
  --on-brand: #fff;
  --focus-ring: color-mix(in srgb, var(--green) 32%, transparent);
}

html { scroll-padding-top: 80px; }
body { background: var(--canvas); color: var(--ink); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; font-size: 14px; }
button, input, select, textarea { color: var(--ink); }
::selection { background: var(--accent-soft); color: var(--ink); }
a:hover { color: var(--green-dark); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid var(--green); outline-offset: 3px; }
#page:focus { outline: none; }
.route-error .resource-action { display: inline-flex; margin-left: 12px; }
.adm-unsaved-dialog { width: min(460px, calc(100vw - 32px)); box-sizing: border-box; padding: 24px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--ink); box-shadow: 0 18px 60px #18354840; }
.adm-unsaved-dialog::backdrop { background: #102b3a88; }
.adm-unsaved-dialog h2 { margin: 0 0 12px; font-size: 20px; }
.adm-unsaved-dialog p { margin: 0 0 20px; line-height: 1.6; }
.adm-unsaved-dialog .adm-button { min-height: 44px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }
.skip-link { border: 1px solid var(--line); border-radius: 7px; color: var(--green-dark); }

.global-nav { background: #183548; padding: 0 max(12px, calc((100vw - 1190px) / 2)); }
.global-nav a, .global-nav .language { color: #dbe9f0; font-size: 12px; }
.global-nav a:hover { background: #ffffff16; color: #fff; }
.masthead { height: 88px; }
.logo { gap: 8px; color: var(--green-dark); font: 750 28px/1.2 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; letter-spacing: -.8px; }
.logo svg #Shape { fill: var(--green); }
.logo svg path[fill="#FFAA44"] { fill: var(--accent); }
.logo > img { width: 32px; height: 32px; object-fit: contain; flex: none; }
.search-input input { background: var(--surface); border-color: var(--line); border-radius: 9px; box-shadow: 0 2px 7px #18354804; color: var(--ink); }
.search-input input::placeholder { color: var(--muted); }
.search-input input:focus { border-color: var(--green); background: var(--surface); box-shadow: 0 0 0 3px var(--focus-ring); }
.search-input button { border-radius: 6px; color: var(--green); background: var(--brand-soft); font-weight: 600; }
.search-input button:hover { color: var(--green-dark); background: color-mix(in srgb, var(--green) 15%, white); }
.hot-keywords a { color: var(--muted); background: var(--soft); border-radius: 5px; }
.quick-links a { color: var(--green); }
.quick-links span { color: var(--ink); font-size: 12px; }
.search-history { border-color: var(--line); border-radius: 10px; box-shadow: 0 8px 30px #18354816; }
.history-row:hover { background: var(--brand-soft); }
.history-heading, .history-remove { color: var(--muted); }
.main-nav { min-height: 48px; height: auto; align-items: center; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); padding: 5px 8px; box-shadow: 0 2px 6px #18354803; }
.main-nav > a { height: 36px; line-height: 36px; padding: 0 13px; color: var(--muted); font-size: 14px; border-radius: 7px; }
.main-nav > a:hover { background: var(--soft); color: var(--green-dark); }
.main-nav > a.active { bottom: auto; background: var(--brand-soft); border: 0; border-radius: 7px; color: var(--green-dark); font-weight: 650; }
.main-nav .feedback-link { top: 11px; background: var(--green); color: var(--on-brand); }
.category-tabs, .view-tabs { gap: 7px; margin: 20px 0 16px; padding: 3px 0; }
.category-tabs a, .view-tabs a { border-radius: 7px; padding: 7px 11px; color: var(--muted); font-size: 14px; line-height: 22px; }
.category-tabs a.active, .view-tabs a.active { background: var(--brand-soft); color: var(--green-dark); font-weight: 650; }
.category-tabs a.active::after, .view-tabs a.active::after { display: none; }
.category-tabs a:hover, .view-tabs a:hover { background: var(--soft); }

.tool-grid { gap: 15px; }
.tool-card { height: auto; min-height: 165px; padding: 14px; border-color: var(--line); border-radius: 11px; background: var(--surface); box-shadow: 0 2px 5px #18354804; transition: border-color .15s, box-shadow .15s; }
.tool-card:hover { border-color: color-mix(in srgb, var(--green) 40%, var(--line)); box-shadow: 0 5px 16px #1835480d; }
.card-title-line h2 { font-family: inherit; }
.card-title-line h2 a { color: var(--ink); }
.card-category, .card-desc, .card-url, .external-label { color: var(--muted); }
.card-url { color: var(--muted) !important; font-size: 11px; }
.card-desc { margin: 7px 0 9px; padding-top: 5px; font-size: 12px; }
.favorite-button { color: var(--muted); }
.favorite-button:hover, .favorite-button[aria-pressed=true] { color: var(--green-dark); }
.favorite-button .star { color: #718797; }
.favorite-button[aria-pressed=true] .star { color: var(--accent-ink); }
.card-footer { min-height: 32px; padding-top: 7px; border-top: 1px solid #edf2f5; }
.card-enter { min-height: 30px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; padding: 0 12px; color: var(--green-dark); background: var(--brand-soft); font-size: 12px; font-weight: 600; }
.card-enter:hover { color: var(--green-dark); background: color-mix(in srgb, var(--green) 15%, white); box-shadow: none; }
.external-card { background: var(--surface); border-top: 3px solid var(--accent); }
.featured-label { background: var(--accent-soft); color: var(--accent-ink); border-radius: 5px; }
.list-heading h1, .tool-page-title, .content-page > h1, .catalog-heading, .catalog-detail h1 { color: var(--ink); font-weight: 650; letter-spacing: -.3px; }
.count-label, .note, .muted, .help-text, .loading-message, .tool-page-summary, .breadcrumb, .tool-info p { color: var(--muted); }
.empty-state, .catalog-empty { background: var(--surface); border-color: var(--line); border-radius: 10px; color: var(--muted); }

.tool-workspace, .tool-comments, .profile-form, .resource-card, .side-box, .side-panel, .catalog-main, .catalog-side-box, .wiki-index, .wiki-main { background: var(--surface); border: 1px solid var(--line); border-radius: 11px; }
.tool-workspace { padding: 18px; }
.tool-comments { padding: 18px; }
.tool-info { padding: 5px 2px; }
.tool-info h3, .tool-comments > h3 { font-family: inherit; color: var(--ink); font-weight: 600; }
.side-panel-heading h3, .side-box h2, .catalog-side-box h2 { color: var(--ink); }
.sidebar-news { background: #183548; border-left: 5px solid var(--accent); border-radius: 9px; min-height: 54px; }
.share-row input { background: var(--soft); border: 1px solid var(--line); color: var(--ink); }
.catalog-side-box p, .catalog-side-list a, .catalog-group-index a, .catalog-detail-note, .catalog-snapshot-note, .catalog-source-link, .catalog-results-count, .catalog-loading { color: var(--muted); }
.field-label, .control-field > label, .tool-field > .field-label, .comment-form > label, .profile-form label { color: var(--ink); font-weight: 550; }
.tool-workspace .form-control, .tool-workspace .input, .tool-workspace .field input:not([type=checkbox]):not([type=radio]):not([type=color]), .tool-workspace .field select, .tool-workspace .field textarea, .tool-workspace .control-field input, .tool-workspace .control-field select, .tool-workspace .control-field textarea, .tool-workspace .work-area, .field input:not([type=checkbox]):not([type=radio]):not([type=color]), .field select, .field textarea, .profile-form input, .comment-form textarea { border-color: #c7d7e1; border-radius: 7px; background: var(--surface); padding: 9px 11px; color: var(--ink); }
.tool-workspace .form-control:focus, .field input:focus, .field select:focus, .field textarea:focus, .work-area:focus, .profile-form input:focus, .comment-form textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px var(--focus-ring); }
.tool-workspace button:not(.json-editor-host button):not(.cm-editor button), .comment-form button, .profile-form button, .resource-action { border-color: #bfd1dc; border-radius: 7px; padding: 8px 12px; background: var(--surface); color: var(--green-dark); box-shadow: none; }
.tool-workspace button:not(.json-editor-host button):not(.cm-editor button):hover, .comment-form button:hover, .profile-form button:hover, .resource-action:hover { background: var(--brand-soft); color: var(--green-dark); }
.tool-workspace .action, .tool-workspace .primary, .tool-workspace .btn-primary { background: var(--green); border-color: var(--green); color: var(--on-brand); }
.tool-workspace .action:hover, .tool-workspace .primary:hover, .tool-workspace .btn-primary:hover { background: var(--green-dark); color: var(--on-brand); }
.tool-workspace .actions, .tool-workspace .action-row, .tool-workspace .toolbar, .tool-workspace .button-group, .tool-actions { gap: 8px; }
.tool-status, .notice, .relay-status.available { border-color: color-mix(in srgb, var(--green) 24%, white); background: var(--brand-soft); color: var(--green-dark); border-radius: 8px; }
.preview, .output, .result-box, .results, pre, .native-code-editor { background: #f8fafc; border-color: var(--line); border-radius: 8px; }
.native-code-editor .cm-gutters { background: #f0f5f8; color: #708897; border-color: var(--line); }
.json-editor-host { --jse-theme-color: var(--green); --jse-theme-color-highlight: var(--green-dark); --jse-menu-color: var(--on-brand); --jse-button-primary-color: var(--on-brand); }
.comment-avatar, .profile-avatar { background: var(--brand-soft); color: var(--green-dark); }
.comment-meta time, .comment-actions button, .comment-empty { color: var(--muted); }
.comment-login { border-color: var(--line); background: var(--soft); color: var(--muted); border-radius: 7px; }
.share-dialog { border-color: var(--line); border-radius: 12px; box-shadow: 0 15px 55px #18354833; }
.site-notice { background: var(--accent-soft); border-color: color-mix(in srgb, var(--accent) 55%, white); color: var(--accent-ink); border-radius: 9px; }
.site-footer { border-color: var(--line); color: var(--muted); margin-top: 38px; padding-top: 20px; }
.site-footer a { color: var(--muted); }
.site-footer a:hover { color: var(--green-dark); }
.back-top { width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; color: var(--green-dark); background: var(--surface); box-shadow: 0 3px 10px #18354812; }

.catalog-main { padding: 18px; }
.catalog-tabs { gap: 7px; border-color: var(--line); min-height: 44px; }
.catalog-tabs a { padding: 9px 13px; color: var(--muted); border-radius: 8px 8px 0 0; }
.catalog-tabs a.active { border-color: var(--green); color: var(--green-dark); background: var(--brand-soft); font-weight: 650; }
.catalog-tabs a:hover, .catalog-item-title a:hover, .catalog-topic-link:hover { color: var(--green-dark); }
.catalog-filters, .catalog-group-index { background: var(--soft); border-color: var(--line); border-radius: 8px; }
.catalog-filter-key, .catalog-group-count { color: var(--muted); }
.catalog-filter-values a, .catalog-sort a, .catalog-topic-link { color: var(--muted); }
.catalog-filter-values a.active, .catalog-sort a.active { color: var(--green-dark); }
.catalog-item { border-color: #e7eef3; }
.catalog-item-title a, .catalog-website-link { color: var(--ink); }
.catalog-item-title { font-weight: 550; }
.catalog-item-description, .catalog-website-item p, .catalog-item-meta, .catalog-topic-label, .catalog-software-platforms { color: var(--muted); }
.catalog-bookmark { color: #718797; }
.catalog-bookmark[aria-pressed=true] { color: var(--accent-ink); }
.catalog-picture, .catalog-image-fallback { background: var(--soft); color: #435a4b; }
.catalog-item-software { border-color: var(--line); border-radius: 9px; background: var(--surface); }
.catalog-item-software:hover { border-color: color-mix(in srgb, var(--green) 35%, var(--line)); box-shadow: 0 3px 12px #18354808; }
.catalog-shop-info strong { color: var(--accent-ink); font-weight: 600; }
.catalog-shop-cover { border-color: var(--line); border-radius: 9px; }
.catalog-shop .catalog-filter-values { border-color: var(--line); border-radius: 8px; overflow: hidden; }
.catalog-shop .catalog-filter-values a { border-color: var(--line); }
.catalog-shop .catalog-filter-values a.active { background: var(--green); color: var(--on-brand); }
.catalog-group-title { color: var(--ink); border-color: var(--line); font-weight: 600; }
.catalog-search input { border-color: #c7d7e1; border-radius: 7px 0 0 7px; color: var(--ink); }
.catalog-search button { background: var(--brand-soft); color: var(--green-dark); border-color: #c7d7e1; border-radius: 0 7px 7px 0; }
.catalog-button, .catalog-share-button { border-color: #bfd1dc; border-radius: 7px; color: var(--green-dark); }
.catalog-button:hover, .catalog-share-button:hover { background: var(--brand-soft); }
.catalog-detail-tags a { background: var(--brand-soft); color: var(--green-dark); border-radius: 5px; }
.catalog-pagination { gap: 5px; }
.catalog-pagination a, .catalog-pagination-gap { border-color: var(--line); border-radius: 6px; margin: 0; background: var(--surface); color: var(--muted); }
.catalog-pagination a.active, .catalog-pagination a.active:hover { background: var(--green); border-color: var(--green); color: var(--on-brand); }
.catalog-pagination a:hover { background: var(--brand-soft); }
.wiki-main { padding: 20px; }
.wiki-index { padding: 18px; }

.admin-page { --adm-accent: var(--green); --adm-border: var(--line); --adm-muted: var(--muted); color: var(--ink); }
.admin-page h1, .admin-page h2 { color: var(--ink); }
.admin-page .adm-brand { color: var(--green-dark) !important; }
.admin-page .adm-nav-link { color: #425f72 !important; }
.admin-page .adm-nav-link:hover { background: var(--soft); }
.admin-page .adm-nav-link.active { color: var(--green-dark) !important; background: var(--brand-soft); }
.admin-page .adm-content-nav summary { color: #425f72; }
.admin-page .adm-content-nav[open] summary { color: var(--green-dark); }
.admin-page .adm-button { color: var(--green-dark) !important; border-color: #bfd1dc; }
.admin-page .adm-button:hover { background: var(--brand-soft); }
.admin-page .adm-primary { background: var(--green); border-color: var(--green); color: var(--on-brand) !important; }
.admin-page .adm-primary:hover { background: var(--green-dark); color: var(--on-brand) !important; }
.admin-page .adm-danger { color: #a12d2d !important; border-color: #e8cece; }
.admin-page .adm-danger:hover { background: #fff2f2; }
.adm-sidebar, .adm-panel, .adm-editor, .adm-metric, .adm-asset-card { border-color: var(--line); box-shadow: 0 2px 5px #18354803; }
.adm-metric { color: var(--ink) !important; }
.adm-metric:hover, .adm-section-card:hover { border-color: color-mix(in srgb, var(--green) 36%, var(--line)); }
.adm-section-card { border-color: var(--line); background: #fafcfd; }
.adm-section-card:hover { background: var(--brand-soft); }
.adm-section-card span, .adm-field > label { color: #425f72; }
.adm-input { border-color: #c7d7e1; color: var(--ink); }
.adm-input[readonly] { background: var(--soft); color: var(--muted); }
.adm-filters, .adm-table th { background: var(--soft); }
.adm-table th { color: var(--muted); }
.adm-table td { border-color: #e7eef3; }
.adm-table tbody tr:hover { background: #fafcfd; }
.adm-menu-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr) 24px 44px auto; }
.adm-notice { border-color: color-mix(in srgb, var(--green) 24%, white); background: var(--brand-soft); color: var(--green-dark); }
.adm-error { border-color: #efbdbd; background: #fff4f4; color: #a72c2c; }
.adm-state-published, .adm-state-visible, .adm-state-ready, .adm-state-active, .adm-state-resolved { color: var(--green-dark); background: var(--brand-soft); }
.adm-state-draft, .adm-state-reviewed, .adm-state-new { color: var(--accent-ink); background: var(--accent-soft); }
.adm-audit-detail pre { background: var(--soft); }
.adm-import-review { background: var(--brand-soft); border-color: color-mix(in srgb, var(--green) 24%, white); }
.admin-page .adm-button:focus-visible, .admin-page .adm-input:focus-visible, .admin-page .adm-nav-link:focus-visible, .admin-page summary:focus-visible { outline-color: var(--green); }

@media (max-width: 1199px) and (min-width: 992px) {
  .main-nav > a { padding-left: 10px; padding-right: 10px; font-size: 13px; }
}

@media (max-width: 991px) {
  body { padding-bottom: calc(80px + env(safe-area-inset-bottom)); }
  .masthead { position: sticky; top: 0; z-index: 30; width: 100%; height: auto; min-height: 64px; margin: 0; padding: max(10px, env(safe-area-inset-top)) 15px 10px; gap: 10px; background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: 0 2px 7px #18354805; }
  .logo { width: 32px; font-size: 0; letter-spacing: 0; }
  .logo svg { width: 32px; height: 32px; }
  .search-form { min-width: 0; width: auto; }
  .search-input { height: 44px; }
  .search-input input { height: 44px; padding: 0 10px 0 31px; border-color: var(--line); background: var(--soft); font-size: 16px; }
  .search-input::before { left: 10px; top: 0; line-height: 42px; color: var(--muted); }
  .quick-links { gap: 3px; }
  .quick-links a { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 8px; }
  .quick-links a:hover { background: var(--brand-soft); }
  .quick-links a:first-child { display: none; }
  .quick-links a:nth-child(2) { display: flex; }
  .quick-links span { display: none; }
  .search-history { top: 52px; }
  .history-row, .history-heading button, .history-remove { min-height: 44px; }
  .mobile-nav { height: calc(64px + env(safe-area-inset-bottom)); padding: 5px max(4px, env(safe-area-inset-left)) env(safe-area-inset-bottom) max(4px, env(safe-area-inset-right)); background: var(--surface); border-top: 1px solid var(--line); box-shadow: 0 -3px 18px #1835480d; overflow-x: auto; scrollbar-width: none; }
  .mobile-nav::-webkit-scrollbar { display: none; }
  .mobile-nav a, .mobile-nav button { flex: 1 0 48px; min-width: 48px; min-height: 54px; border-radius: 8px; color: var(--muted); font: 500 11px/1.25 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; gap: 4px; }
  .mobile-nav a:nth-child(4) { font-size: 10px; }
  .mobile-nav span { font-size: 21px; line-height: 1; }
  .mobile-nav a:nth-child(4) span { font-size: 17px; }
  .mobile-nav .active, .mobile-nav button[aria-expanded=true] { color: var(--green-dark); background: var(--brand-soft); }
  .mobile-more-menu { bottom: calc(74px + env(safe-area-inset-bottom)); right: max(10px, env(safe-area-inset-right)); width: min(260px, calc(100vw - 20px)); max-height: calc(100dvh - 160px - env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; border-color: var(--line); border-radius: 12px; box-shadow: 0 9px 35px #18354826; padding: 8px; }
  .mobile-more-menu a { display: flex; align-items: center; min-height: 44px; padding: 10px 13px; border-radius: 7px; color: var(--ink); }
  .mobile-more-menu a:hover { background: var(--brand-soft); color: var(--green-dark); text-decoration: none; }
  .back-top { bottom: calc(78px + env(safe-area-inset-bottom)); right: 10px; width: 44px; height: 44px; }
  .category-tabs a, .view-tabs a, .catalog-tabs a { display: inline-flex; min-height: 44px; align-items: center; }
  #page input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]), #page select, #page textarea, .code-operation-dialog input, .code-operation-dialog textarea { font-size: 16px !important; }
  #page input:not([type=checkbox]):not([type=radio]):not([type=range]), #page select { min-height: 44px; }
  #page button:not(.json-editor-host button):not(.cm-editor button), .code-operation-dialog button, .share-dialog .dialog-close { min-height: 44px; }
  .tool-workspace .source-json-tool > .tool-actions button { height: auto; min-height: 44px; padding: 9px 12px; line-height: 24px; }
  .tool-workspace .source-code-css > .tool-actions button { min-height: 44px; }
  .tool-workspace .native-editor-heading button { min-width: 44px; min-height: 44px; }
  .json-editor-host { --jse-menu-button-size: 44px; --jse-font-size-main-menu: 14px; --jse-font-size: 16px; --jse-font-size-mono: 16px; }
  .json-editor-host .jse-menu { min-height: 50px; height: auto; }
  .json-editor-host .jse-menu .jse-group-button { min-width: 44px; min-height: 44px; height: 44px; margin-top: 3px; margin-bottom: 3px; }
  .tool-share-bar > a, .tool-share-bar > button, .comment-actions button { min-height: 44px; padding: 8px; }
  .site-footer a { display: inline-flex; min-height: 44px; align-items: center; }
  .site-footer nav { gap: 2px 18px; }
}

@media (max-width: 767px) {
  .container { width: auto; margin-left: 14px; margin-right: 14px; }
  .masthead { margin: 0; padding-left: 14px; padding-right: 14px; }
  .tool-grid { gap: 12px; }
  .category-tabs, .view-tabs { margin: 12px 0 13px; gap: 5px; }
  .category-tabs a, .view-tabs a { padding: 9px 11px; }
  .tool-card { min-height: 205px; height: auto; padding: 13px 14px; }
  .card-head { height: auto; min-height: 88px; gap: 11px; }
  .card-title-line { display: flex; align-items: center; gap: 6px; margin: 0; }
  .card-title-line h2 { line-height: 23px; font-size: 17px; }
  .card-title-line h2 { white-space: normal; text-overflow: clip; }
  .card-title-line h2 a { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 44px; line-height: 22px; }
  .card-category { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; }
  .favorite-button { min-height: 44px; font-size: 12px; line-height: 20px; }
  .external-label { display: flex; align-items: center; min-height: 44px; }
  .card-desc { font-size: 13px; padding-top: 5px; margin: 3px 0 9px; }
  .card-footer { min-height: 49px; gap: 8px; padding-top: 5px; }
  .card-url { display: flex; align-items: center; min-height: 44px; font-size: 11px; }
  .card-enter { min-height: 44px; min-width: 70px; padding: 0 14px; font-size: 13px; }
  .tool-layout { padding-top: 14px; }
  .tool-page-title { font-size: 21px; margin: 12px 0; }
  .tool-page-summary { font-size: 13px; line-height: 1.65; }
  .tool-workspace, .tool-comments { padding: 14px; }
  .field-label, .control-field > label, .tool-field > .field-label { font-size: 13px; }
  .tool-workspace .toolbar { gap: 8px; }
  .tool-workspace .toolbar button { padding: 8px 10px; font-size: 13px; }
  .native-code-editor .cm-editor { height: 360px; max-height: 60dvh; }
  .native-code-editor .cm-scroller, .native-code-editor .cm-content { font-size: 16px; }
  .source-json-tool:not(.editor-focused):not(:fullscreen) .json-editor-host { height: 420px; max-height: 65dvh; }
  .catalog-main { padding: 13px; }
  .catalog-tabs { gap: 2px; }
  .catalog-tabs a { padding: 9px 11px; font-size: 14px; }
  .catalog-filters { padding: 8px 10px; }
  .catalog-filter-row { align-items: flex-start; gap: 8px; }
  .catalog-filter-key { padding-top: 12px; }
  .catalog-filter-values { gap: 0 10px; }
  .catalog-filter-values a, .catalog-sort a, .catalog-topic-link, .catalog-website-link, .catalog-group-index a, .wiki-index a { display: inline-flex; align-items: center; min-height: 44px; }
  .catalog-filter-values a { font-size: 13px; }
  .catalog-filterbar { gap: 10px; }
  .catalog-sort { gap: 3px 15px; }
  .catalog-sort a { font-size: 13px; }
  .catalog-search input, .catalog-search button { height: 44px; }
  .catalog-search button { min-width: 72px; }
  .catalog-item-actions { width: 44px; }
  .catalog-bookmark, .catalog-detail-icon { min-width: 44px; min-height: 44px; display: flex; align-items: center; justify-content: center; }
  .catalog-item-title { font-size: 16px; }
  .catalog-item-title a { display: inline-flex; align-items: center; min-height: 44px; }
  .catalog-item-meta { font-size: 12px; }
  .catalog-item-description { font-size: 13px; line-height: 1.75; }
  .catalog-repo-header { gap: 9px; }
  .catalog-repo-header .catalog-item-title { font-size: 16px; }
  .catalog-item-library .catalog-item-content { flex-basis: 180px; }
  .catalog-repo-cover { margin-left: 44px; }
  .catalog-website-grid { gap: 15px 14px; }
  .catalog-website-link { display: flex; width: 100%; max-width: 100%; }
  .catalog-website-link > span:last-child { flex: 1; min-width: 0; }
  .catalog-website-name { font-size: 13px; }
  .catalog-website-item p { font-size: 12px; }
  .catalog-topic-link { font-size: 13px; }
  .catalog-items-software { gap: 12px; }
  .catalog-item-software { padding: 16px 11px; }
  .catalog-item-software .catalog-item-title { font-size: 15px; }
  .catalog-item-software .catalog-item-description { font-size: 12px; }
  .catalog-pagination a, .catalog-pagination-gap { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .catalog-detail-actions .catalog-button, .catalog-share-button, .catalog-row-links a, .catalog-submit-link { min-height: 44px; display: inline-flex; align-items: center; }
  .wiki-main, .wiki-index { padding: 15px; }
  .wiki-index { max-height: 264px; overscroll-behavior: contain; }
  .wiki-index li { margin: 0; }
  .wiki-table td { font-size: 13px; }
  .guide-toc a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; border-radius: 7px; background: var(--surface); border-color: var(--line); }
  .adm-sidebar { padding: 15px; }
  .adm-sidebar nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
  .adm-sidebar nav > .adm-nav-link { order: 1; min-height: 44px; padding: 7px 5px; display: flex; align-items: center; justify-content: center; text-align: center; font-size: 11px; border: 1px solid var(--line); }
  .adm-content-nav { order: 2; grid-column: 1 / -1; margin-top: 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--soft); }
  .adm-content-nav summary { min-height: 44px; padding: 12px; font-size: 12px; }
  .adm-content-nav[open] { display: block; max-height: 268px; overflow-y: auto; overscroll-behavior: contain; }
  .adm-content-nav[open] > .adm-nav-sub { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 12px; margin: 2px; font-size: 12px; }
  .adm-identity { gap: 5px 10px; font-size: 11px; }
  .adm-identity .adm-button { min-height: 44px; padding: 7px 10px; }
  .adm-heading { margin-bottom: 17px; }
  .adm-heading h1 { font-size: 24px; }
  .adm-button { min-height: 44px; }
  .adm-filters { padding: 12px; }
  .adm-field > label { font-size: 13px; }
  .adm-json { line-height: 1.5; }
  .adm-table { font-size: 13px; }
  .adm-table td > .adm-input { min-width: 110px; }
  .adm-menu-row { grid-template-columns: minmax(0, 1fr) 24px 44px auto; }
  .adm-menu-row .adm-button, .adm-asset-card .adm-button { min-height: 44px; }
  .adm-asset-card > img { height: 130px; }
}

@media (prefers-reduced-motion: reduce) {
  .tool-card { transition: none; }
}

@media print {
  body { background: white; padding: 0; }
  .container { width: 100%; margin: 0; }
  .tool-card, .tool-workspace, .catalog-main, .wiki-main { box-shadow: none; }
  .masthead, .mobile-nav, .mobile-more-menu { position: static; }
}

/* Readable secondary text and targets that meet WCAG 2.2 minimum sizing. */
.hot-keywords a { min-height: 24px; line-height: 24px; }
.card-title-line h2 a, .card-category { display: inline-flex; align-items: center; min-height: 24px; }
.auth-legal a { text-decoration: underline; text-underline-offset: 2px; }
.site-footer, .site-footer p, .back-top, .mobile-nav a, .mobile-nav button { color: #626262; }
.tool-icon, .tool-icon::before { color: #0a1711 !important; }
.json-editor-host .jse-status-bar-info { color: #4b5563 !important; }
