

/* Start:/toolse/pwa/css/models-search.css?179017566313062*/
/* The search engine stays shared; this is the application's own workspace. */
.app-models-search .app-tool-content { display: flex; overflow: hidden; }
.models-search-workspace { display: flex; flex-direction: column; width: 100%; min-width: 0; min-height: 0; background: #fff; }
.models-search-start { flex: 0 0 auto; width: min(100%, 844px); margin: auto; padding: 36px 32px; }
.models-search-welcome { text-align: center; }
.models-search-mark { display: grid; place-items: center; width: 72px; height: 68px; margin: 0 auto 24px; }
.models-search-mark svg { width: 61px; height: 61px; stroke-width: 1.6; }
.models-search-welcome :is(h1, h2) { margin: 0 0 14px; color: var(--app-ink); font: inherit; font-size: 42px; font-weight: 600; line-height: 1.15; letter-spacing: -1.5px; }
.models-search-welcome p { margin: 0 0 32px; color: var(--app-muted); font-size: 18px; line-height: 1.6; }
.models-search-form { display: flex; align-items: center; gap: 10px; width: 100%; margin: 0; padding: 10px; border: 1px solid #d9dee7; border-radius: 17px; background: #fff; box-shadow: 0 5px 20px #17223408; }
.models-search-form:focus-within { border-color: #ffb66b; }
.models-search-form input { flex: 1; width: 100%; min-width: 0; min-height: 49px; padding: 12px 10px; border: 0; outline: 0; background: transparent; color: var(--app-ink); font: inherit; font-size: 16px; line-height: 1.5; }
.models-search-form input::placeholder { color: #9099aa; }
.models-search-form input::-webkit-search-cancel-button { -webkit-appearance: none; }
.models-search-submit, .models-search-clear { display: grid; place-items: center; flex-shrink: 0; width: 49px; height: 49px; padding: 0; border: 0; border-radius: 12px; cursor: pointer; }
.models-search-submit { background: var(--app-orange); --app-icon-ink: #fff; --app-icon-accent: #fff; }
.models-search-submit:hover { background: #ec7900; }
.models-search-clear { width: 36px; height: 36px; background: transparent; --app-icon-ink: #000; --app-icon-accent: #000; }
.models-search-clear:hover { background: var(--app-soft); }
.models-search-clear svg { width: 19px; height: 19px; }
.models-search-suggestions { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 24px; }
.models-search-suggestions button { display: flex; align-items: center; gap: 19px; min-height: 82px; padding: 21px 24px; border: 1px solid var(--app-line); border-radius: 12px; background: #fff; color: var(--app-ink); font: inherit; font-size: 15px; text-align: left; cursor: pointer; transition: background .15s, border-color .15s; }
.models-search-suggestions button:hover { background: #fffaf5; border-color: #ffc387; }
.models-search-suggestions svg { width: 30px; height: 30px; flex-shrink: 0; }
.models-search-note { margin: 22px 0 0; color: var(--app-muted); font-size: 12px; line-height: 1.5; text-align: center; }
.models-search-history { max-width: 900px; margin: 14px auto 0; min-width: 0; }
.models-search-history-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--app-muted); font-size: 12px; }
.models-search-history-heading button { padding: 4px 0 4px 10px; border: 0; background: transparent; color: var(--app-muted); font: inherit; cursor: pointer; }
.models-search-history-heading button:hover { color: var(--app-ink); }
.models-search-history-links { display: flex; gap: 8px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; padding: 6px 0; }
.models-search-history-links a { flex: 0 0 auto; max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 1px solid var(--app-line); border-radius: 8px; padding: 7px 11px; color: var(--app-ink); font-size: 13px; text-decoration: none; }
.models-search-history-links a:hover, .models-search-history-links a[aria-current] { border-color: #ffc387; background: #fffaf5; }
.models-search-saved-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.models-search-saved-heading p { margin: 0; color: var(--app-muted); font-size: 13px; }
.models-search-saved-heading button { padding: 8px 12px; border: 1px solid var(--app-line); border-radius: 8px; background: #fff; color: var(--app-ink); font: inherit; font-size: 13px; cursor: pointer; }
.models-search-saved-heading button:hover { border-color: var(--app-orange); }
.models-search-saved-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); align-items: start; gap: 16px; }
.models-search-workspace .models-search-saved-card { width: 100%; min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--app-line); border-radius: 12px; background: #fff; overflow-wrap: anywhere; }
.models-search-saved-card > img { width: 100%; height: 170px; object-fit: contain; background: var(--app-soft); border-radius: 8px; margin-bottom: 14px; }
.models-search-workspace .models-search-saved-card h2 { margin: 0 0 8px; color: var(--app-ink); font: inherit; font-size: 17px; font-weight: 600; line-height: 1.4; }
.models-search-saved-card p { margin: 0 0 12px; font-size: 13px; line-height: 1.6; }
.models-search-saved-card .models-search-saved-host { color: var(--app-muted); font-size: 12px; }
.models-search-saved-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.models-search-saved-actions :is([data-gsc-preview-button], [data-gsc-source-button]) { margin: 0; font-size: 12px; padding: 8px 10px; }
.models-search-feedback { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.models-search-feedback p { margin: 12px 0 0; color: var(--app-muted); font-size: 13px; }
.models-search-feedback button { margin-top: 12px; padding: 6px 10px; border: 1px solid var(--app-line); border-radius: 8px; background: #fff; color: var(--app-ink); font: inherit; font-size: 13px; cursor: pointer; }
.models-search-feedback button:hover { border-color: var(--app-orange); }
.models-search-workspace[data-search-state="error"] .models-search-feedback p { color: #a83418; }
.models-search-workspace[data-state="results"] .models-search-start { width: 100%; margin: 0; padding: 20px 32px; border-bottom: 1px solid var(--app-line); }
.models-search-workspace[data-state="results"] :is(.models-search-form, .models-search-feedback) { max-width: 900px; margin-left: auto; margin-right: auto; }
.models-search-workspace[data-state="results"] :is(.models-search-suggestions, .models-search-note) { display: none; }
.models-search-output { flex: 1; min-height: 0; min-width: 0; overflow: auto; overscroll-behavior: contain; padding: 16px 32px 28px; scroll-padding: 16px; outline: 0; }
.models-search-output:focus-visible { outline: 2px solid var(--app-orange); outline-offset: -4px; }
.models-search-noscript { padding: 16px; text-align: center; }
.models-search-output .gsc-control-cse { width: 100%; margin: 0; padding: 0; border: 0; background: transparent; font: inherit; }
.models-search-output .gsc-wrapper { width: 100%; max-width: none; }
.models-search-output .gsc-results, .models-search-output .gsc-results-wrapper-nooverlay { width: 100%; max-width: none; }
/* Image results are the only search mode; no mode switch is needed. */
.models-search-output .gsc-tabsArea { display: none !important; }
.models-search-output .gsc-webResult.gsc-result { margin-bottom: 12px; padding: 18px; border: 1px solid var(--app-line); border-radius: 12px; }
.models-search-output .gsc-imageResult .gs-image { border-radius: 10px; }
.models-search-output .gsc-cursor-box { margin: 24px 0; }
.models-search-output .gsc-cursor-page { display: inline-block; padding: 8px 12px; border-radius: 8px; }
.models-search-output .gsc-cursor-current-page { background: var(--app-soft); }
.models-search-output :is([data-gsc-preview-button], [data-gsc-source-button]) { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; padding: 10px 14px; border: 1px solid var(--app-line); border-radius: 9px; font-size: 14px; line-height: 1.5; text-decoration: none; }
.models-search-output [data-gsc-preview-button] { border-color: var(--app-orange); background: var(--app-orange); color: #fff; }
.models-search-output [data-gsc-source-button] { background: #fff; color: var(--app-ink); }
.models-search-output .gs-mobilePreview :is([data-gsc-preview-button], [data-gsc-source-button]) { display: block; width: 100%; margin-left: 0; }
.models-order-dialog { width: min(720px, calc(100% - 40px)); max-width: 720px; max-height: 90vh; max-height: 90dvh; margin: auto; padding: 0; overflow: hidden; border: 1px solid var(--app-line); border-radius: 20px; background: #fff; color: var(--app-ink); box-shadow: 0 24px 80px #17223433; }
.models-order-dialog[open] { display: flex; flex-direction: column; }
.models-order-dialog::backdrop { background: #17223480; backdrop-filter: blur(3px); }
.models-order-header { display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; gap: 16px; padding: 20px 24px; border-bottom: 1px solid var(--app-line); }
.models-order-header h2 { margin: 0; color: var(--app-ink); font: inherit; font-size: 22px; font-weight: 600; line-height: 1.3; }
.models-order-header button { flex-shrink: 0; }
.models-order-body { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 20px 24px; }
.models-order-model { margin: 0 0 12px; color: var(--app-muted); font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.models-order-model a { color: var(--app-ink); text-decoration: underline; text-underline-offset: 3px; }
.models-order-feedback p { margin: 8px 0 16px; color: var(--app-muted); font-size: 14px; }
.models-order-feedback button { margin-bottom: 16px; }
#models-order-form { --b24-primary-color: #ff8500; --b24-primary-text-color: #fff; min-height: 0; }
#models-order-form .b24-form-wrapper { min-width: 0; max-width: none; margin: 0; box-shadow: none; }
#models-order-form .b24-form-content { padding: 0; }
#models-order-form .b24-form-btn { background: var(--app-orange); border-radius: 10px; }
#models-order-form .b24-form-btn:hover { background: #ec7900; }
.models-order-footer { flex-shrink: 0; padding: 14px 24px; border-top: 1px solid var(--app-line); }
.models-order-footer a { display: inline-flex; align-items: center; gap: 8px; color: var(--app-muted); font-size: 12px; text-decoration: none; }
.models-order-footer a:hover { color: var(--app-ink); }
.models-order-footer svg { width: 16px; height: 16px; }
.models-source-dialog { width: min(1240px, calc(100% - 40px)); max-width: 1240px; height: min(920px, calc(100dvh - 40px)); max-height: calc(100dvh - 40px); }
.models-source-host { margin: 4px 0 0; color: var(--app-muted); font-size: 12px; overflow-wrap: anywhere; }
.models-source-dialog [data-model-source-close] { --app-icon-ink: #000; --app-icon-accent: #000; }
.models-source-content { flex: 1; min-height: 0; background: #f4f5f7; }
.models-source-content iframe { display: block; width: 100%; height: 100%; border: 0; background: #fff; }
.models-source-footer { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; }
.models-source-footer > span { color: var(--app-muted); font-size: 12px; }
.models-source-footer a { color: var(--app-ink); white-space: nowrap; }
@media (max-width: 1000px) {
  .models-search-welcome :is(h1, h2) { font-size: 36px; }
  .models-search-welcome p { font-size: 16px; }
}
@media (max-width: 700px) {
  .models-search-start { padding: 24px 16px; }
  .models-search-mark { width: 58px; height: 54px; margin-bottom: 18px; }
  .models-search-mark svg { width: 49px; height: 49px; }
  .models-search-welcome :is(h1, h2) { font-size: 30px; letter-spacing: -.8px; }
  .models-search-welcome p { max-width: 300px; margin: 0 auto 24px; font-size: 14px; }
  .models-search-form { gap: 4px; padding: 8px; border-radius: 14px; }
  .models-search-form input { min-height: 44px; padding: 10px 4px; }
  .models-search-submit { width: 44px; height: 44px; }
  .models-search-clear { width: 28px; }
  .models-search-suggestions { gap: 9px; margin-top: 20px; }
  .models-search-suggestions button { flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px 12px; min-height: 88px; font-size: 12px; }
  .models-search-suggestions svg { width: 22px; height: 22px; }
  .models-search-note { font-size: 11px; }
  .models-search-workspace[data-state="results"] .models-search-start { padding: 12px 16px; }
  .models-search-output { padding: 12px 16px 20px; }
  .models-order-dialog { width: calc(100% - 20px); max-height: calc(100dvh - 24px); border-radius: 16px; }
  .models-order-header { padding: 16px; gap: 10px; }
  .models-order-header h2 { font-size: 19px; }
  .models-order-body { padding: 16px; }
  .models-order-footer { padding: 12px 16px; }
  .models-source-dialog { height: calc(100dvh - 24px); max-height: calc(100dvh - 24px); }
}
@media (max-height: 650px) {
  .models-search-workspace[data-state="welcome"] { overflow: auto; }
  .models-search-start { padding-top: 20px; padding-bottom: 20px; }
  .models-search-mark { display: none; }
}

/* End */


/* Start:/toolse/pwa/css/icons.css?179024873110185*/
/* Every glyph has a permanent orange detail and its own motion. */
.tools-app .app-brand-mark { display: block; width: 37px; height: 37px; overflow: visible; }
@media (max-height: 450px) and (min-width: 701px) {
  .tools-app .app-brand-mark { width: 32px; height: 32px; }
}
.tools-app .app-icon {
  color: var(--app-icon-ink, #465063);
  overflow: visible;
  transform-origin: center;
}
.tools-app .app-icon-accent {
  color: var(--app-icon-accent, var(--app-orange));
  stroke: currentColor;
}
.tools-app .app-icon-accent[stroke="none"] { stroke: none; }
.tools-app .app-icon > * { transform-box: fill-box; transform-origin: center; }
.tools-app .ai-send { --app-icon-ink: #fff; --app-icon-accent: #ffe0ba; }
.tools-app :is(.app-nav-link, .app-overflow-link, .app-button, .app-icon-button) {
  transition: background-color .18s ease, border-color .18s ease;
}
.tools-app :is(.app-nav-link, .app-overflow-link, .app-icon-button):not(:disabled):is(:focus-visible, :active) {
  background: var(--app-soft);
}
.tools-app .tool-card:focus-visible { border-color: var(--app-orange); }

/* Motion belongs to a glyph or to an independent part of it. */
[data-app-icon="cube"] { --app-glyph-motion: app-cube-turn; }
[data-app-icon="convert"] > path:first-child { --app-part-motion: app-converter-cube; }
[data-app-icon="convert"] .app-icon-accent { --app-part-motion: app-converter-swap; }
[data-app-icon="qr"] rect { --app-part-motion: app-qr-corner; }
[data-app-icon="qr"] rect:nth-child(2) { --app-part-delay: .09s; }
[data-app-icon="qr"] rect:nth-child(3) { --app-part-delay: .18s; }
[data-app-icon="qr"] .app-icon-accent { --app-part-motion: app-qr-scan; }
:is([data-tool-key="measure"], [data-tool-card="measure"], [data-tool-row="measure"]) [data-app-icon="ruler"] { --app-glyph-motion: app-thickness-check; }
[data-app-icon="chat"] .app-icon-accent { --app-part-motion: app-ai-spark; }
[data-app-icon="grid"] rect { --app-part-motion: app-grid-tile; }
[data-app-icon="grid"] rect:nth-child(2) { --app-part-delay: .08s; }
[data-app-icon="grid"] rect:nth-child(4) { --app-part-delay: .16s; }
[data-app-icon="grid"] rect:nth-child(3) { --app-part-delay: .24s; }
[data-app-icon="calculator"] path { --app-part-motion: app-calculator-key; }
[data-app-icon="calculator"] path:nth-child(3) { --app-part-delay: .1s; }
[data-app-icon="calculator"] path:nth-child(4) { --app-part-delay: .2s; }
[data-app-icon="calculator"] path:nth-child(5) { --app-part-delay: .3s; }
[data-app-icon="layers"] path:first-child { --app-part-motion: app-layer-top; }
[data-app-icon="layers"] path:last-child { --app-part-motion: app-layer-bottom; }
[data-app-icon="search"] { --app-glyph-motion: app-search-scan; }
[data-app-icon="magnifier"] { --app-glyph-motion: app-search-scan; }
[data-app-icon="search"] .app-model-search-cube { --app-part-motion: app-search-model-turn; }
[data-app-icon="split"] path:first-child { --app-part-motion: app-split-left; }
[data-app-icon="split"] path:nth-child(2) { --app-part-motion: app-split-right; }
[data-app-icon="skadis"] path { --app-part-motion: app-panel-assemble; }
[data-app-icon="skadis"] path:nth-child(3) { --app-part-delay: .08s; }
[data-app-icon="skadis"] path:nth-child(4) { --app-part-delay: .16s; }
[data-app-icon="hexagon"] path { --app-part-motion: app-honeycomb-assemble; --app-cell-x: -1.5px; --app-cell-y: -1px; }
[data-app-icon="hexagon"] path:nth-child(2) { --app-cell-x: 1.5px; }
[data-app-icon="hexagon"] path:nth-child(3) { --app-cell-x: 0px; --app-cell-y: 2px; }
[data-app-icon="image"] circle { --app-part-motion: app-image-flash; }
[data-app-icon="image"] .app-icon-accent { --app-part-motion: app-image-develop; }
[data-app-icon="ruler"] .app-icon-accent { --app-part-motion: app-ruler-measure; }
[data-app-icon="type"] .app-icon-accent { --app-part-motion: app-type-flip; }
[data-app-icon="box"] .app-icon-accent { --app-part-motion: app-box-open; }
[data-app-icon="book"] .app-icon-accent { --app-part-motion: app-book-page; transform-origin: left center; }
[data-app-icon="help"] .app-icon-accent { --app-part-motion: app-help-nod; }
[data-app-icon="plus"] { --app-glyph-motion: app-plus-form; }
[data-app-icon="more"] circle { --app-part-motion: app-more-wave; }
[data-app-icon="more"] circle:nth-child(2) { --app-part-delay: .12s; }
[data-app-icon="more"] circle:nth-child(3) { --app-part-delay: .24s; }
[data-app-icon="arrow"] { --app-glyph-motion: app-arrow-launch; }
[data-app-icon="close"] { --app-glyph-motion: app-close-turn; }
[data-app-icon="download"] .app-icon-accent { --app-part-motion: app-download-drop; }
[data-app-icon="external"] .app-icon-accent { --app-part-motion: app-external-go; }
[data-app-icon="boosty"] { --app-glyph-motion: app-boosty-lift; }
.tools-app [data-app-icon="boosty"] > g { transform-box: view-box; transform-origin: 0 0; }

@media (hover: hover) and (pointer: fine) {
  .tools-app :is(.app-nav-link, .app-overflow-link, .app-icon-button):not(:disabled):hover { background: var(--app-soft); }
  .tools-app .app-button:not(:disabled):hover { background: #fffaf5; border-color: #ffbd7a; }
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .tools-app .app-brand-gear {
    transform-box: view-box; transform-origin: center;
  }
  .tools-app .app-brand.is-spinning .app-brand-gear { animation: app-brand-gear-spin 2.8s linear infinite; }
  .tools-app :where(button, a[href], .ai-mark):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible) .app-icon {
    animation-name: var(--app-glyph-motion, none);
    animation-duration: .72s;
    animation-timing-function: ease-in-out;
    animation-fill-mode: both;
  }
  .tools-app :where(button, a[href], .ai-mark):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible) .app-icon > * {
    animation-name: var(--app-part-motion, none);
    animation-duration: .72s;
    animation-timing-function: ease-in-out;
    animation-delay: var(--app-part-delay, 0s);
    animation-fill-mode: both;
  }
}

@keyframes app-brand-gear-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes app-converter-cube { 0%, 100% { transform: perspective(40px) rotateY(0); scale: 1; } 50% { transform: perspective(40px) rotateY(-30deg); scale: .86; } }
@keyframes app-converter-swap { from { rotate: 0deg; } to { rotate: 180deg; } }
@keyframes app-qr-corner { 0%, 100% { scale: 1; } 40% { scale: .72; } 70% { scale: 1.08; } }
@keyframes app-qr-scan { 0%, 100% { opacity: 1; } 30% { opacity: .3; } 65% { opacity: 1; } }
@keyframes app-thickness-check { 0%, 100% { rotate: 0deg; scale: 1; } 35% { rotate: -8deg; scale: 1.08; } 70% { rotate: 4deg; scale: 1; } }
@keyframes app-cube-turn {
  0%, 100% { transform: perspective(80px) rotateY(0) rotateZ(0); }
  40% { transform: perspective(80px) rotateY(-28deg) rotateZ(-5deg); }
  72% { transform: perspective(80px) rotateY(15deg) rotateZ(3deg); }
}
@keyframes app-ai-spark {
  0%, 100% { transform: scale(1) rotate(0); opacity: 1; }
  35% { transform: scale(.65) rotate(-25deg); opacity: .55; }
  65% { transform: scale(1.24) rotate(25deg); opacity: 1; }
}
@keyframes app-grid-tile { 0%, 100% { scale: 1; } 45% { scale: .65; } 70% { scale: 1.08; } }
@keyframes app-calculator-key { 0%, 100% { opacity: 1; translate: 0; } 35% { opacity: .2; translate: 0 1px; } 65% { opacity: 1; translate: 0; stroke: var(--app-orange); } }
@keyframes app-layer-top { 0%, 100% { translate: 0; } 45%, 60% { translate: 0 -3px; } }
@keyframes app-layer-bottom { 0%, 100% { translate: 0; } 45%, 60% { translate: 0 2px; } }
@keyframes app-search-scan { 0%, 100% { translate: 0; rotate: 0deg; } 30% { translate: -2px 1px; rotate: -12deg; } 65% { translate: 2px -1px; rotate: 8deg; } }
@keyframes app-search-model-turn { 0%, 100% { transform: perspective(40px) rotateY(0) scale(1); } 40% { transform: perspective(40px) rotateY(-30deg) scale(.9); } 70% { transform: perspective(40px) rotateY(20deg) scale(1.06); } }
@keyframes app-split-left { 0%, 100% { translate: 0; } 45%, 65% { translate: -3px; } }
@keyframes app-split-right { 0%, 100% { translate: 0; } 45%, 65% { translate: 3px; } }
@keyframes app-panel-assemble { 0%, 100% { translate: 0; scale: 1; } 35% { translate: 0 -1.5px; scale: 1 .75; } 70% { translate: 0 .5px; scale: 1 1.08; } }
@keyframes app-honeycomb-assemble { 0%, 100% { translate: 0; scale: 1; } 45% { translate: var(--app-cell-x) var(--app-cell-y); scale: .9; } 75% { translate: 0; scale: 1.03; } }
@keyframes app-image-flash { 0%, 100% { scale: 1; opacity: 1; } 40% { scale: 2; opacity: .3; } }
@keyframes app-image-develop { 0%, 100% { translate: 0; opacity: 1; } 35% { translate: 0 2px; opacity: .3; } 70% { translate: 0 -1px; opacity: 1; } }
@keyframes app-ruler-measure { 0%, 100% { translate: 0; } 35% { translate: 2px -2px; } 70% { translate: -1px 1px; } }
@keyframes app-type-flip { 0%, 100% { transform: perspective(40px) rotateY(0); } 50% { transform: perspective(40px) rotateY(180deg); } }
@keyframes app-box-open { 0%, 100% { translate: 0; scale: 1; } 45%, 65% { translate: 0 -3px; scale: 1 .8; } }
@keyframes app-book-page { 0%, 100% { transform: skewY(0) scaleX(1); } 45% { transform: skewY(-12deg) scaleX(.15); } 70% { transform: skewY(5deg) scaleX(1); } }
@keyframes app-help-nod { 0%, 100% { rotate: 0deg; translate: 0; } 35% { rotate: 15deg; translate: 0 -1px; } 65% { rotate: -8deg; translate: 0; } }
@keyframes app-plus-form { 0%, 100% { rotate: 0deg; scale: 1; } 45% { rotate: 90deg; scale: .7; } 75% { rotate: 0deg; scale: 1.1; } }
@keyframes app-more-wave { 0%, 65%, 100% { translate: 0; } 32% { translate: 0 -4px; } }
@keyframes app-arrow-launch { 0%, 100% { translate: 0; } 25% { translate: 0 2px; } 60% { translate: 0 -4px; } }
@keyframes app-close-turn { from { rotate: 0deg; } to { rotate: 90deg; } }
@keyframes app-download-drop { 0%, 100% { translate: 0; } 45% { translate: 0 3px; } 70% { translate: 0 -1px; } }
@keyframes app-external-go { 0%, 100% { translate: 0; } 55% { translate: 3px -3px; } }
@keyframes app-boosty-lift { 0%, 100% { translate: 0; scale: 1; } 50% { translate: 0 -3px; scale: 1.08; } }

@media (prefers-reduced-motion: reduce) {
  .tools-app .tool-card:hover { transform: none; }
}

/* End */


/* Start:/toolse/public-workspace.css?17902026865650*/
/* Shared tool surfaces inside the public site's normal header and footer. */
.tool-public-container { margin-top: 40px; }
.tool-public-surface {
  --app-ink: #172234;
  --app-muted: #788293;
  --app-orange: #ff8500;
  --app-line: #e1e5ec;
  --app-soft: #fff3e7;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 720px;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--app-line);
  border-radius: 20px;
  background: #fff;
  color: var(--app-ink);
  box-shadow: 0 12px 40px #17223408;
  font: 15px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  letter-spacing: normal;
  text-align: left;
  color-scheme: light;
}
.tool-public-surface *, .tool-public-surface *::before, .tool-public-surface *::after { box-sizing: border-box; }
.tool-public-surface [hidden] { display: none !important; }
.tool-public-surface :is(button, input, textarea, select) { font-family: inherit; }
.tool-public-surface button { cursor: pointer; }
.tool-public-surface button:disabled { cursor: wait; opacity: .55; }
.tool-public-surface :is(a, button, input, textarea):focus-visible { outline: 3px solid #c76200; outline-offset: 4px; }
.tool-public-surface .app-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
:where(.tool-public-surface) .app-icon { width: 24px; height: 24px; flex-shrink: 0; color: var(--app-icon-ink, #465063); overflow: visible; transform-origin: center; }
.tool-public-surface .app-icon-accent { color: var(--app-icon-accent, var(--app-orange)); stroke: currentColor; }
.tool-public-surface .app-icon-accent[stroke="none"] { stroke: none; }
.tool-public-surface .app-icon > * { transform-box: fill-box; transform-origin: center; }
.tool-public-surface .ai-send { --app-icon-ink: #fff; --app-icon-accent: #ffe0ba; }
.tool-public-surface .ai-welcome h2 { color: var(--app-ink); font-family: inherit; }
.tool-public-surface .ai-welcome > p { line-height: 1.6; }
.tool-public-surface .ai-suggestions button { font-weight: 400; line-height: 1.5; }
.tool-public-surface .ai-compose textarea { width: 100%; border-radius: 0; box-shadow: none; }
.tool-public-surface .ai-links a { color: var(--app-ink); }
.tool-public-surface .models-search-workspace { flex: 1; }
.tool-public-surface .app-icon-button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--app-ink); }
.tool-public-surface .app-icon-button:hover { background: var(--app-soft); }
.tool-public-surface .app-button { padding: 10px 14px; border: 1px solid var(--app-line); border-radius: 9px; background: #fff; color: var(--app-ink); font: inherit; }
.tool-public-surface .app-button:hover { border-color: var(--app-orange); }
.tool-public-surface :is(.models-search-submit, .models-search-clear, .ai-send) { flex-shrink: 0; }
.tool-public-surface .models-search-submit { --app-icon-ink: #fff; --app-icon-accent: #fff; }
.tool-public-surface .models-search-output .header-btn3::after,
.tool-public-surface .models-search-output .header-btn4::after { display: none; }
.tool-public-surface .models-search-output [data-gsc-preview-button]:hover { background: #ec7900; }
.tool-public-surface .models-search-output [data-gsc-source-button]:hover { border-color: var(--app-orange); }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .tool-public-surface :where(button, a[href], .ai-mark):not(:disabled):is(:hover, :focus-visible) .app-icon { animation: var(--app-glyph-motion, none) .72s ease-in-out both; }
  .tool-public-surface :where(button, a[href], .ai-mark):not(:disabled):is(:hover, :focus-visible) .app-icon > * { animation: var(--app-part-motion, none) .72s ease-in-out var(--app-part-delay, 0s) both; }
}
@media (max-width: 700px) {
  .tool-public-container { margin-top: 24px; }
  .tool-public-surface { height: 680px; border-radius: 16px; }
}
@media (max-height: 650px) {
  .tool-public-surface .ai-mark { display: block; }
  .tool-public-surface .models-search-mark { display: grid; }
  .tool-public-surface .ai-welcome { justify-content: center; }
}

/* Let public search results grow with the page instead of nesting a scroll area. */
.tool-public-search:has(.models-search-workspace[data-state="results"]) { height: auto; overflow: visible; }
.tool-public-search .models-search-output { flex: none; overflow: visible; overscroll-behavior: auto; }

/* Match the AI workspace's full-tab control on the public model search page. */
.models-search-form .models-search-expand { display: grid; place-items: center; flex-shrink: 0; width: 36px; height: 40px; padding: 6px; border: 0; border-radius: 8px; background: transparent; color: var(--app-muted); cursor: pointer; }
.models-search-form .models-search-expand:hover { background: var(--app-soft); color: var(--app-orange); }
html.models-search-expanded-lock, body.models-search-expanded-lock { overflow: hidden; }
body > .tool-public-surface.tool-public-search.models-search-is-expanded { position: fixed; inset: 0; z-index: 2147483647; width: 100%; max-width: none; height: 100vh; height: 100dvh; margin: 0; overflow: hidden; border: 0; border-radius: 0; }
.models-search-is-expanded .models-search-workspace[data-state="welcome"] { overflow: auto; }
.models-search-is-expanded .models-search-workspace .models-search-output { flex: 1; overflow: auto; overscroll-behavior: contain; }
@media (max-width: 700px) {
  .models-search-form .models-search-expand { width: 28px; padding: 3px; }
}

/* End */


/* Start:/local/templates/f3dp/template_styles.css?17898126474513*/
/* Трёхколоночный вывод accordion внутри одной колонки */
.accordion-three-cols {
  display: flex;
  flex-wrap: wrap;
}
.accordion-three-cols .three-col-item {
  width: 33.3333%;
  box-sizing: border-box;
  padding: 0 10px 20px 10px;
}
@media (max-width: 991px) {
  .accordion-three-cols .three-col-item {
    width: 100%;
    padding: 0 0 20px 0;
  }
}


/* --- Заголовок страницы тегом h1 ---------------------------------
   Тема оформляет только .heading4 h2, поэтому на страницах главный
   заголовок стоял вторым уровнем, а h1 в документе не было вовсе. Повторяем
   те же правила для h1, чтобы тег можно было менять без правок темы. */
.heading4 h1 {
  font-family: var(--ztc-family-font1);
  font-size: var(--ztc-font-size-font-s44);
  line-height: var(--ztc-font-size-font-s54);
  font-weight: var(--ztc-weight-bold);
  color: var(--ztc-text-text-5);
  margin-bottom: 16px;
}
@media (max-width: 767px) {
  .heading4 h1 {
    font-size: var(--ztc-font-size-font-s32);
    line-height: var(--ztc-font-size-font-s42);
  }
}

/* Заголовок в мобильном меню — был h3 и первым в структуре заголовков
   всего сайта, хотя меню скрыто. Теперь это обычный абзац с тем же видом. */
.allmobilesection .single-footer .allmobile-title {
  font-family: Figtree, sans-serif;
  font-size: 24px;
  line-height: 24px;
  font-weight: 700;
  color: #fff;
  margin: 24px 0 0;
  padding: 0;
}

/* --- Хлебные крошки ------------------------------------------- */
.f3-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 4px 8px;
  margin: 0 0 18px;
  font-family: var(--ztc-family-font1);
  font-size: 14px;
  line-height: 1.4;
  color: var(--ztc-text-text-6);
}
.f3-crumbs a {
  color: var(--ztc-text-text-6);
  text-decoration: none;
  transition: color .2s;
}
.f3-crumbs a:hover { color: var(--ztc-text-text-5); }
.f3-crumbs .sep { opacity: .45; }
.f3-crumbs .current { color: var(--ztc-text-text-5); font-weight: var(--ztc-weight-medium); }
@media (max-width: 767px) {
  .f3-crumbs { font-size: 13px; margin-bottom: 14px; }
}

/* Блоки .heading2 — то же самое: правила темы написаны на h2, повторяем
   их для h1 один в один, включая мобильный вариант и цвет заголовка
   на тёмной секции контактов. */
.heading2 h1 {
  font-family: var(--ztc-family-font1);
  font-size: var(--ztc-font-size-font-s28);
  line-height: var(--ztc-font-size-font-s32);
  font-weight: var(--ztc-weight-bold);
  color: var(--ztc-text-text-3);
  margin-bottom: 16px;
}
@media (max-width: 767px) {
  .heading2 h1 {
    font-size: var(--ztc-font-size-font-s32);
    line-height: var(--ztc-font-size-font-s42);
  }
}
.contact1-section-area .contact-header-area h1,
.contact2-section-area .contact-header-area h1 {
  color: var(--ztc-text-text-1);
}

/* Класс .h2 из bootstrap задаёт свой нижний отступ, а тема обнуляет его
   только для голых тегов. Возвращаем ноль, как было у прежнего h2. */
h1.tg-element-title.h2 { margin-bottom: 0; }


/* Мобильная шапка ---------------------------------------------------------
   Была ростом в сто пикселей — восьмая часть экрана телефона под логотип.
   Уменьшаем и прячем её, когда листают вниз: при движении вверх шапка
   возвращается сразу, не дожидаясь верха страницы. */
@media (max-width: 991px) {
  .mobile-header {
    padding: 10px 0;
    transition: transform .28s ease;
    will-change: transform;
  }

  .mobile-header .mobile-logo img {
    height: 34px;
  }

  /* Высоту ряда задаёт не картинка, а надпись: 44 px с интерлиньяжем 66 */
  .mobile-header .mobile-logo a {
    font-size: 32px;
    line-height: 42px;
  }

  .mobile-header.is-hidden {
    transform: translateY(-100%);
  }
}

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

/* End */
/* /toolse/pwa/css/models-search.css?179017566313062 */
/* /toolse/pwa/css/icons.css?179024873110185 */
/* /toolse/public-workspace.css?17902026865650 */
/* /local/templates/f3dp/template_styles.css?17898126474513 */
