:root{--font-display: "Source Serif 4", Georgia, serif;--font-body: "DM Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace;--color-bg: #faf9f7;--color-card: #ffffff;--color-border: #e8e5df;--color-border-hover: #d0cec8;--color-text: #1c1c1a;--color-text-secondary: #858580;--color-text-tertiary: #b0b0a8;--color-accent: #c45d2c;--color-accent-light: #fdf4ef;--color-accent-hover: #a84d24;--color-success: #2d7a4f;--color-success-light: #eff8f3;--color-success-border: #c8e6d5;--color-error: #b83a3a;--color-error-light: #fdf0f0;--color-error-border: #f5d5d5;--color-hover-bg: #f5f3f0;--cat-formatters: #c45d2c;--cat-converters: #2d7a4f;--cat-encoders: #5b6abf;--cat-text: #b8860b;--cat-crypto: #8b5cf6;--cat-web: #0891b2;--cat-business: #dc2626;--cat-student: #ea580c;--cat-generators: #059669;--cat-network: #7c3aed;--cat-datetime: #0d9488;--cat-data: #6366f1;--cat-math: #d97706;--cat-development: #4f46e5;--cat-validators: #9333ea;--cat-color: #ec4899;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--space-4xl: 48px;--space-5xl: 64px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-2xl: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 8px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .06);--shadow-accent: 0 4px 16px rgba(196, 93, 44, .08);--transition-fast: .12s ease;--transition-normal: .18s ease;--transition-slow: .3s ease;--max-width-page: 1280px;--max-width-narrow: 960px;--max-width-content: 640px;--nav-height: 52px;--bp-sm: 640px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1280px}[data-theme=dark]{--color-bg: #111113;--color-card: #1a1a1e;--color-border: #2a2a33;--color-text: #e4e4e7;--color-text-secondary: #8b8b96;--color-text-tertiary: #5a5a64;--color-accent: #e8845a;--color-accent-light: #2a1810}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--color-bg);color:var(--color-text)}body{font-family:var(--font-body);font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}.editorial-main{min-height:calc(100vh - var(--nav-height))}.page-shell{margin:0 auto;max-width:var(--max-width-page);padding:var(--space-4xl) var(--space-3xl)}.page-shell--narrow{max-width:var(--max-width-narrow)}.section-block+.section-block{margin-top:var(--space-5xl)}.section-heading{margin:0;font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.section-subheading{margin:var(--space-sm) 0 0;color:var(--color-text-secondary);font-size:14px}.editorial-nav{position:sticky;top:0;z-index:40;height:var(--nav-height);border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-card) 96%,transparent);backdrop-filter:blur(6px)}.editorial-nav__inner{margin:0 auto;max-width:var(--max-width-page);height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:0 var(--space-3xl)}.editorial-logo{font-family:var(--font-display);font-size:17px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}.editorial-logo .accent{color:var(--color-accent)}.editorial-nav__links{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.editorial-nav__link{display:inline-flex;align-items:center;height:34px;padding:0 var(--space-md);border-radius:var(--radius-lg);color:var(--color-text-secondary);font-size:13px;font-weight:500;transition:all var(--transition-normal)}.editorial-nav__link:hover{color:var(--color-text);background:var(--color-hover-bg)}.editorial-nav__link.is-active{color:var(--color-accent);font-weight:600}.editorial-nav__right{display:flex;align-items:center;gap:var(--space-md)}.editorial-nav__search-shell{width:clamp(260px,28vw,360px);flex:0 1 360px}.editorial-separator{width:1px;height:20px;background:var(--color-border)}.editorial-nav__search{width:200px;height:34px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:13px;padding:0 12px;outline:none;transition:border-color var(--transition-fast)}.editorial-nav__search:focus{border-color:var(--color-accent)}.editorial-mobile-nav{display:none}.editorial-footer{border-top:1px solid var(--color-border);padding:20px 32px;color:var(--color-text-tertiary);font-size:12px}.editorial-footer__inner{margin:0 auto;max-width:var(--max-width-page);display:flex;justify-content:space-between;gap:var(--space-xl);flex-wrap:wrap}.editorial-footer__links{display:flex;gap:var(--space-lg)}.hero-title{margin:0;max-width:760px;font-family:var(--font-display);font-size:clamp(28px,4vw,42px);line-height:1.15;letter-spacing:-.03em;font-weight:700}.hero-title .accent{color:var(--color-accent)}.hero-subtitle{margin:var(--space-xl) 0 0;color:var(--color-text-secondary);font-size:17px;line-height:1.6;max-width:660px}.hero-search{margin-top:var(--space-3xl)}.hero-search__input{width:min(720px,100%);height:50px;border-radius:12px;border:1px solid var(--color-border);background:var(--color-card);padding:0 16px;font-size:15px;font-family:var(--font-body);color:var(--color-text);outline:none}.hero-search__input:focus{border-color:var(--color-accent)}.chip-list{margin-top:var(--space-md);display:flex;gap:var(--space-sm);flex-wrap:wrap}.chip{display:inline-flex;align-items:center;height:28px;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 10px;font-size:12px;color:var(--color-text-secondary);transition:all var(--transition-fast)}.chip:hover{border-color:var(--color-accent);color:var(--color-accent)}.tool-grid{margin-top:var(--space-2xl);display:grid;gap:var(--space-lg);grid-template-columns:repeat(4,minmax(0,1fr))}.tool-card{position:relative;min-height:120px;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-card);padding:18px 20px;display:flex;flex-direction:column;gap:var(--space-sm);transition:all var(--transition-normal);animation:fadeUp .3s ease calc(var(--index, 0) * .04s) both}.tool-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-accent)}.tool-card__title{margin:0;font-size:15px;font-weight:600}.tool-card__desc{margin:0;font-size:13px;color:var(--color-text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.tool-card__meta{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.tool-card__category{font-size:11px;color:var(--color-text-tertiary)}.tool-card__open{font-size:12px;color:var(--color-accent);opacity:0;transition:opacity var(--transition-normal)}.tool-card:hover .tool-card__open{opacity:1}.category-grid{margin-top:var(--space-2xl);display:grid;gap:var(--space-lg);grid-template-columns:repeat(3,minmax(0,1fr))}.category-card{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-card);padding:16px;display:flex;gap:var(--space-md);transition:all var(--transition-normal);animation:fadeUp .3s ease calc(var(--index, 0) * .04s) both}.category-card:hover{border-color:var(--category-color, var(--color-accent));box-shadow:var(--shadow-md)}.category-card__icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:19px;border:1px solid color-mix(in srgb,var(--category-color, var(--color-accent)) 13%,#ffffff);background:color-mix(in srgb,var(--category-color, var(--color-accent)) 7%,#ffffff);flex:0 0 auto}.category-card__name{margin:0;font-size:14px;font-weight:600}.category-card__desc{margin:4px 0 0;font-size:12px;color:var(--color-text-secondary)}.category-card__count{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--color-text-tertiary)}.trust-strip{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-card);padding:20px;display:grid;gap:var(--space-xl);grid-template-columns:repeat(3,minmax(0,1fr))}.trust-strip h3{margin:0;font-size:13px;font-weight:600;letter-spacing:.02em}.trust-strip p{margin:8px 0 0;font-size:12px;color:var(--color-text-secondary);line-height:1.6}.breadcrumb{margin-bottom:var(--space-lg);font-size:12px;color:var(--color-text-secondary)}.breadcrumb ol{margin:0;padding:0;list-style:none;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.breadcrumb li[aria-current=page]{color:var(--color-text)}.category-header h1,.tool-header h1{margin:0;font-family:var(--font-display);font-size:clamp(26px,3.2vw,32px);line-height:1.2;letter-spacing:-.03em}.category-header p,.tool-header p{margin:10px 0 0;color:var(--color-text-secondary)}.tool-header p{max-width:72ch;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.filter-bar{margin-top:var(--space-2xl);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-card);padding:10px 12px;display:flex;gap:var(--space-md);align-items:center;justify-content:space-between;flex-wrap:wrap}.filter-input{width:min(520px,100%);height:36px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);padding:0 12px;font-size:13px;color:var(--color-text);outline:none}.filter-input:focus{border-color:var(--color-accent)}.filter-controls{display:inline-flex;align-items:center;gap:var(--space-sm);color:var(--color-text-secondary);font-size:12px}.view-toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.view-toggle button{border:0;background:transparent;color:var(--color-text-secondary);font-size:13px;height:28px;min-width:34px;cursor:pointer}.view-toggle button.is-active{background:var(--color-accent-light);color:var(--color-accent)}.tool-list{margin-top:var(--space-lg);display:grid;gap:var(--space-md)}.tool-row{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-card);padding:18px 20px;display:flex;justify-content:space-between;gap:var(--space-xl);transition:all var(--transition-normal);animation:fadeUp .3s ease calc(var(--index, 0) * .04s) both}.tool-row:hover{border-color:var(--color-accent);box-shadow:var(--shadow-accent)}.tool-row__left h3{margin:0;font-size:15px;font-weight:600}.tool-row__left p{margin:8px 0 0;font-size:13px;color:var(--color-text-secondary);max-width:60ch}.badge{display:inline-flex;align-items:center;border-radius:var(--radius-sm);padding:2px 7px;font-size:10px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;vertical-align:middle;margin-left:8px}.badge--popular{color:var(--color-accent);background:var(--color-accent-light)}.tag-list{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}.tag-pill{font-size:10px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-tertiary);border-radius:var(--radius-sm);padding:2px 7px}.tool-row__open{color:var(--color-accent);opacity:0;transition:opacity var(--transition-normal);white-space:nowrap;font-size:12px}.tool-row:hover .tool-row__open{opacity:1}.ffh-mode-pills{display:inline-flex;background:var(--color-bg);border-radius:8px;padding:3px;gap:2px}.ffh-mode-pill{border:0;height:30px;padding:0 12px;border-radius:6px;font-size:13px;font-weight:500;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-normal)}.ffh-mode-pill.is-active{background:var(--color-card);color:var(--color-text);box-shadow:var(--shadow-sm)}.ffh-indent-selector{display:inline-flex;gap:6px;align-items:center}.ffh-indent-btn{width:30px;height:28px;border-radius:6px;font-family:var(--font-mono);font-size:12px;border:1px solid var(--color-border);color:var(--color-text-secondary);background:var(--color-card);cursor:pointer;transition:all var(--transition-normal)}.ffh-indent-btn.is-active{border:1.5px solid var(--color-accent);color:var(--color-accent);background:var(--color-accent-light)}.ffh-example-chips{display:flex;gap:6px;flex-wrap:wrap}.ffh-example-chip{padding:4px 10px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--color-text-secondary);font-size:11px;font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.ffh-example-chip.is-active{border-color:var(--color-accent);background:var(--color-accent-light);color:var(--color-accent)}.tool-grid--category{margin-top:var(--space-lg);display:none;gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr))}.tool-grid--category.is-active{display:grid}.tool-list.is-hidden{display:none}.tool-workspace{margin-top:var(--space-xl)}.tool-toolbar{border:1px solid var(--color-border);border-bottom:0;border-radius:10px 10px 0 0;background:var(--color-card);padding:10px 16px}.tool-editor-shell{border:1px solid var(--color-border);border-radius:0 0 10px 10px;background:var(--color-card);min-height:max(380px,calc(100vh - 310px))}.ffh-json{display:flex;flex-direction:column;gap:10px}.ffh-json-toolbar{border:1px solid var(--color-border);border-bottom:0;border-radius:10px 10px 0 0;background:var(--color-card);padding:10px 16px;display:grid;gap:10px}.ffh-json-toolbar-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ffh-json-toolbar-row--examples{padding-top:2px}.ffh-json-toolbar-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.ffh-json-indent-wrap{display:inline-flex;align-items:center;gap:8px}.ffh-json-checkbox{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary)}.ffh-json-checkbox input{accent-color:var(--color-accent)}.ffh-json-clear-btn{margin-left:auto;border:1px solid var(--color-border);border-radius:6px;height:28px;padding:0 10px;background:var(--color-card);color:var(--color-text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-normal)}.ffh-json-clear-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.ffh-json-examples-scroll{overflow-x:auto;scrollbar-width:thin}.ffh-json-editor{border:1px solid var(--color-border);border-radius:0 0 10px 10px;background:var(--color-card);min-height:max(380px,calc(100vh - 310px));display:grid;grid-template-columns:1fr 1fr}.ffh-json-pane{display:flex;flex-direction:column;min-width:0}.ffh-json-pane+.ffh-json-pane{border-left:1px solid var(--color-border)}.ffh-json-pane-header{height:34px;border-bottom:1px solid var(--color-border);background:var(--color-bg);display:flex;align-items:center;justify-content:space-between;padding:0 12px;gap:8px}.ffh-json-pane-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);font-weight:600}.ffh-json-pane-action{border:0;background:transparent;color:var(--color-accent);font-size:11px;font-weight:600;cursor:pointer;transition:color var(--transition-fast)}.ffh-json-pane-action:disabled{color:var(--color-text-tertiary);cursor:default}.ffh-json-pane-action.is-copied{color:var(--color-success)}.ffh-json-pane-action--secondary{color:var(--color-text-secondary)}.ffh-json-output-actions{display:inline-flex;align-items:center;gap:10px}.ffh-json-input{border:0;resize:none;width:100%;flex:1;min-height:300px;padding:14px 16px;font-family:var(--font-mono);font-size:13px;line-height:1.65;color:var(--color-text);background:var(--color-card);outline:none;transition:background-color var(--transition-normal)}.ffh-json-input::placeholder{color:var(--color-text-tertiary)}.ffh-json-input.is-drag-over{background:var(--color-accent-light)}.ffh-json-pane-footer{border-top:1px solid var(--color-border);padding:6px 12px;font-size:10px;color:var(--color-text-tertiary);font-family:var(--font-mono)}.ffh-json-output{display:grid;grid-template-columns:36px 1fr;min-height:300px;height:100%}.ffh-json-output--single{grid-template-columns:1fr}.ffh-json-line-numbers{margin:0;padding:14px 8px 14px 0;text-align:right;font-family:var(--font-mono);font-size:12px;color:color-mix(in srgb,var(--color-text-tertiary) 70%,transparent);border-right:1px solid var(--color-border);overflow:hidden;user-select:none}.ffh-json-output-text,.ffh-json-error,.ffh-json-output-placeholder{margin:0;padding:14px 16px;font-family:var(--font-mono);font-size:13px;line-height:1.65;white-space:pre-wrap;overflow:auto}.ffh-json-output-text{color:var(--color-text)}.ffh-json-error{grid-column:1 / -1;color:var(--color-error)}.ffh-json-output-placeholder{grid-column:1 / -1;color:var(--color-text-tertiary)}.ffh-json-meta{text-align:right;font-size:11px;color:var(--color-text-secondary)}.ffh-status-bar{margin-top:10px;border-radius:8px;padding:8px 10px;font-size:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ffh-status-bar.is-success{border:1px solid var(--color-success-border);background:var(--color-success-light);color:var(--color-success)}.ffh-status-bar.is-error{border:1px solid var(--color-error-border);background:var(--color-error-light);color:var(--color-error)}.ffh-status-bar__text{font-family:var(--font-mono)}.ffh-editor-pane{display:flex;flex-direction:column;height:100%;min-height:300px}.ffh-editor-pane__header{height:34px;border-bottom:1px solid var(--color-border);background:var(--color-bg);display:flex;align-items:center;justify-content:space-between;padding:0 12px}.ffh-editor-pane__label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);font-weight:600}.ffh-editor-pane__body{display:grid;grid-template-columns:1fr;flex:1}.ffh-editor-pane__body.has-line-numbers{grid-template-columns:36px 1fr}.ffh-editor-pane__line-numbers{margin:0;padding:14px 8px 14px 0;text-align:right;font-family:var(--font-mono);font-size:12px;color:var(--color-text-tertiary);border-right:1px solid var(--color-border);overflow:hidden}.ffh-editor-pane__textarea{border:0;resize:none;width:100%;height:100%;min-height:300px;padding:14px 16px;font-family:var(--font-mono);font-size:13px;line-height:1.65;color:var(--color-text);background:var(--color-card);outline:none}.ffh-tool-loading,.ffh-tool-missing{min-height:320px;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-card);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:28px}.ffh-tool-loading p,.ffh-tool-missing p{margin:0;color:var(--color-text-secondary);font-size:13px;max-width:58ch}.ffh-tool-missing__icon{color:var(--color-error);margin-bottom:12px}.ffh-tool-missing__icon svg{width:48px;height:48px}.ffh-tool-missing h3{margin:0 0 8px;font-size:18px;font-family:var(--font-display);letter-spacing:-.02em}.ffh-tool-missing__button{margin-top:16px;border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;border-radius:8px;padding:0 14px;height:34px;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.ffh-tool-missing__button:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover)}.tool-workspace .tool-panel{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-card);box-shadow:none;overflow:hidden}.tool-workspace .tool-panel+.tool-panel{margin-top:var(--space-md)}.tool-workspace .tool-panel__header{min-height:42px;border-bottom:1px solid var(--color-border);background:var(--color-bg);padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.tool-workspace .tool-panel__header--interactive{cursor:pointer}.tool-workspace .tool-panel__title{display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary);font-weight:600}.tool-workspace .tool-panel__meta{font-family:var(--font-mono);font-size:10px;color:var(--color-text-tertiary);letter-spacing:normal;text-transform:none}.tool-workspace .tool-panel__badge{display:inline-flex;align-items:center;border-radius:var(--radius-sm);padding:2px 7px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:var(--color-accent-light);color:var(--color-accent)}.tool-workspace .tool-panel__badge--danger{background:var(--color-error-light);color:var(--color-error)}.tool-workspace .tool-panel__actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.tool-workspace .tool-panel__body{position:relative}.tool-workspace .tool-panel__description{padding:8px 12px;border-bottom:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-secondary);font-size:12px}.tool-workspace .tool-panel__textarea,.tool-workspace .tool-panel__content{width:100%;border:0;background:var(--color-card);color:var(--color-text);padding:14px 16px;font-family:var(--font-mono);font-size:13px;line-height:1.65;outline:none}.tool-workspace .tool-panel__textarea{resize:vertical;min-height:280px}.tool-workspace .tool-panel__textarea::placeholder{color:var(--color-text-tertiary)}.tool-workspace .tool-panel__content{margin:0;white-space:pre-wrap;overflow:auto}.tool-workspace .tool-panel__content-wrapper{display:grid;grid-template-columns:1fr}.tool-workspace .tool-panel__line-numbers{display:none}.tool-workspace .tool-panel__content--with-lines{border-left:0}.tool-workspace .tool-panel__status{border-top:1px solid var(--color-border);padding:7px 12px;background:var(--color-bg);color:var(--color-text-tertiary);font-size:10px;font-family:var(--font-mono);display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap}.tool-workspace .tool-panel__status-group{display:inline-flex;align-items:center;gap:10px}.tool-workspace .tool-panel__status-warning{color:var(--color-error)}.tool-workspace .tool-panel__notice{padding:7px 12px;border-bottom:1px solid var(--color-border);font-size:12px}.tool-workspace .tool-panel__notice--success{color:var(--color-success);background:var(--color-success-light)}.tool-workspace .tool-panel__notice--error{color:var(--color-error);background:var(--color-error-light)}.tool-workspace .tool-panel__message{padding:14px 16px;display:flex;gap:10px;align-items:flex-start}.tool-workspace .tool-panel__message--error{color:var(--color-error);background:var(--color-error-light)}.tool-workspace .tool-panel__empty{min-height:180px;display:grid;place-items:center;text-align:center;color:var(--color-text-tertiary);font-size:12px;gap:8px}.tool-workspace .tool-panel__empty-icon{font-size:20px}.tool-workspace .tool-panel__loader{min-height:160px;display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--color-text-secondary);font-size:13px;padding:16px}.tool-workspace .loading-spinner{width:14px;height:14px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:ffhSpin .8s linear infinite}.tool-workspace .tool-panel__drop-hint{position:absolute;inset:0;background:color-mix(in srgb,var(--color-accent-light) 92%,white);border:2px dashed var(--color-accent);display:grid;place-items:center;text-align:center;color:var(--color-accent);font-size:12px;z-index:1}.tool-workspace .tool-panel__body--drag .tool-panel__textarea{background:var(--color-accent-light)}.tool-workspace .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:6px;border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-secondary);font-size:12px;font-weight:500;line-height:1;height:28px;padding:0 10px;cursor:pointer;transition:all var(--transition-normal)}.tool-workspace .btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.tool-workspace .btn-primary{border-color:var(--color-accent);background:var(--color-accent);color:#fff}.tool-workspace .btn-primary:hover{border-color:var(--color-accent-hover);background:var(--color-accent-hover);color:#fff}.tool-workspace .btn-outline{background:var(--color-card);color:var(--color-text-secondary)}.tool-workspace .btn-sm{height:28px;font-size:11px;padding:0 8px}.tool-workspace .tool-panel__button-danger:hover{border-color:var(--color-error-border);color:var(--color-error)}.tool-workspace .tool-panel__select,.tool-workspace .form-select,.tool-workspace .form-input{width:100%;min-height:32px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-card);color:var(--color-text);font-size:12px;padding:0 10px;font-family:var(--font-body);outline:none}.tool-workspace .tool-panel__select{width:auto;min-width:140px}.tool-workspace .tool-panel__select:focus,.tool-workspace .form-select:focus,.tool-workspace .form-input:focus{border-color:var(--color-accent)}.tool-workspace .tool-options{padding:12px;display:grid;gap:12px}.tool-workspace .tool-options__group{display:grid;gap:10px}.tool-workspace .tool-options__group-title{font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary)}.tool-workspace .tool-options__item{display:grid;gap:6px}.tool-workspace .tool-options__label{font-size:12px;font-weight:600;color:var(--color-text)}.tool-workspace .tool-options__description{margin:0;font-size:11px;color:var(--color-text-secondary)}.tool-workspace .tool-options__checkbox-row{display:inline-flex;align-items:center;gap:8px}.tool-workspace .tool-options__checkbox{accent-color:var(--color-accent)}.tool-workspace .tool-options__range-value{font-size:11px;color:var(--color-text-secondary);font-family:var(--font-mono);min-width:30px;text-align:right}.tool-workspace .tool-options__reset{margin-right:4px}@keyframes ffhSpin{to{transform:rotate(360deg)}}.ffh-search-form{margin-top:var(--space-2xl);display:grid;gap:var(--space-md)}.ffh-search-line{display:flex;align-items:center;gap:var(--space-md)}.ffh-search-line .hero-search__input{width:100%}.ffh-search-submit{height:50px;border:1px solid var(--color-accent);background:var(--color-accent);color:#fff;border-radius:10px;padding:0 18px;font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-normal)}.ffh-search-submit:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.ffh-search-filters{display:inline-flex;align-items:center;gap:10px;font-size:12px;color:var(--color-text-secondary)}.ffh-search-select{height:34px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-card);color:var(--color-text);padding:0 10px;font-size:12px;outline:none}.ffh-search-groups{margin-top:var(--space-lg);display:grid;gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr))}.ffh-search-group{border:1px solid var(--color-border);border-radius:10px;padding:14px;background:var(--color-card)}.ffh-search-group h3{margin:0;font-size:13px;font-weight:600}.ffh-search-group .chip-list{margin-top:10px}.ffh-empty-state{margin-top:var(--space-lg);border:1px solid var(--color-border);border-radius:10px;background:var(--color-card);padding:24px;text-align:center}.ffh-empty-state h3{margin:0;font-family:var(--font-display);font-size:22px;letter-spacing:-.02em}.ffh-empty-state p{margin:10px 0 0;color:var(--color-text-secondary)}.ffh-empty-state .chip{margin-top:14px}.ffh-blog-grid{display:grid;gap:var(--space-lg);grid-template-columns:repeat(3,minmax(0,1fr))}.ffh-blog-card{border:1px solid var(--color-border);border-radius:10px;background:var(--color-card);padding:18px;display:flex;flex-direction:column;gap:8px;transition:all var(--transition-normal);animation:fadeUp .3s ease calc(var(--index, 0) * .03s) both}.ffh-blog-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-accent)}.ffh-blog-card__category{margin:0;color:var(--color-text-tertiary);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.ffh-blog-card h2{margin:0;font-family:var(--font-display);font-size:21px;letter-spacing:-.02em;line-height:1.2}.ffh-blog-card p{margin:0;color:var(--color-text-secondary)}.ffh-blog-card a{margin-top:auto;font-size:13px;font-weight:600;color:var(--color-accent)}.tool-trust-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--color-success-border);color:var(--color-success);background:var(--color-success-light);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:600}.related-tools-grid{margin-top:var(--space-lg);display:grid;gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.related-tool-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-card);padding:12px;transition:all var(--transition-normal)}.related-tool-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-accent)}.related-tool-card h3{margin:0;font-size:13px;font-weight:600}.related-tool-card p{margin:6px 0 0;font-size:11px;color:var(--color-text-secondary)}.seo-details{margin-top:var(--space-xl);border-top:1px solid var(--color-border);padding-top:var(--space-lg)}.seo-details details>summary{cursor:pointer;color:var(--color-text-secondary);font-size:13px;user-select:none}.seo-details__content{max-width:var(--max-width-content);margin-top:var(--space-md);color:var(--color-text-secondary);font-size:13px;line-height:1.8}.seo-details__content h3{color:var(--color-text);margin:0 0 8px;font-size:14px}.seo-details__content p{margin:0 0 12px}.seo-details__content ul{margin:0;padding-left:18px}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.page-shell{padding:var(--space-4xl) var(--space-2xl)}.tool-grid,.category-grid,.tool-grid--category{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.editorial-nav__links,.editorial-nav__right{display:none}.editorial-mobile-nav{display:block;position:relative}.editorial-mobile-nav details{position:static}.editorial-mobile-nav summary{list-style:none;cursor:pointer;border:1px solid var(--color-border);background:var(--color-card);border-radius:var(--radius-lg);height:34px;min-width:40px;display:grid;place-items:center;color:var(--color-text-secondary)}.editorial-mobile-nav summary::-webkit-details-marker{display:none}.editorial-mobile-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(320px,calc(100vw - 24px));border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-card);box-shadow:var(--shadow-lg);padding:12px;display:grid;gap:6px}.editorial-mobile-panel a{font-size:13px;color:var(--color-text-secondary);border-radius:var(--radius-md);padding:8px 10px}.editorial-mobile-panel a:hover{background:var(--color-hover-bg);color:var(--color-text)}.editorial-mobile-search{width:100%;height:34px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);padding:0 10px;margin-bottom:6px}.page-shell{padding:var(--space-3xl) var(--space-lg)}.tool-grid,.category-grid,.tool-grid--category,.trust-strip{grid-template-columns:1fr}.tool-row{flex-direction:column;gap:var(--space-md)}.tag-list{justify-content:flex-start}.tool-row__open{opacity:1}.editorial-footer__inner{flex-direction:column;align-items:flex-start}.ffh-json-toolbar-row--examples{align-items:flex-start}.ffh-json-clear-btn{margin-left:0}.ffh-json-editor{grid-template-columns:1fr;min-height:0}.ffh-json-pane{min-height:50vh}.ffh-json-pane+.ffh-json-pane{border-left:0;border-top:1px solid var(--color-border)}.ffh-search-line{flex-direction:column;align-items:stretch}.ffh-search-submit{width:100%}.ffh-search-groups,.ffh-blog-grid{grid-template-columns:1fr}.tool-workspace .tool-panel__header{align-items:flex-start}.tool-workspace .tool-panel__actions,.tool-workspace .tool-panel__select{width:100%}}.seo-content p{font-size:15px;line-height:1.7;color:var(--color-text-secondary);max-width:68ch;margin-bottom:var(--space-lg)}.seo-content h3{font-family:var(--font-display);font-size:18px;font-weight:600;color:var(--color-text);margin-top:var(--space-3xl);margin-bottom:var(--space-sm)}.faq-item{border-bottom:1px solid var(--color-border);padding:var(--space-md) 0}.faq-question{font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--color-text);cursor:pointer;list-style:none}.faq-question::marker{content:""}.faq-question:before{content:"+";display:inline-block;width:20px;color:var(--color-accent);font-weight:700}details[open]>.faq-question:before{content:"−"}.faq-answer{font-size:14px;line-height:1.7;color:var(--color-text-secondary);max-width:65ch;padding-top:var(--space-sm);margin-bottom:0}.tool-bottom-ad{max-width:var(--max-width-narrow);margin:var(--space-4xl) auto var(--space-2xl);padding:0 var(--space-lg);text-align:center;min-height:50px;opacity:.85}.tool-bottom-ad .adsbygoogle{max-height:100px}
