/* Integrated workspace system. Presentation only, opt-in by audited page/family.
   No translated copy, content hiding, DOM reordering, or runtime state changes.
   Output display/hidden state and preview geometry belong to each tool. */
body[data-workspace-page]{--workspace-blue:#1763c9;--workspace-ink:#18324d;--workspace-muted:#50647a;--workspace-line:#cad9e7;--workspace-soft:#edf4fb;--workspace-mint:#edf8f3;background:#f4f8fc;color:var(--workspace-ink)}
body[data-workspace-page] :is(main,.site-header,footer){max-width:1280px}
body[data-workspace-page] main{padding-inline:28px}
body[data-workspace-page] .site-header{background:#f8fbfe;border-bottom:1px solid #dce6ef}
body[data-workspace-page] :is(h1,h2,h3){overflow-wrap:anywhere}
body[data-workspace-page] :is(.breadcrumbs,.footer-links){line-height:1.6}
body[data-workspace-page] .breadcrumbs{padding-block:16px;margin-block:0 8px}
body[data-workspace-page] :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #174ea6;outline-offset:3px}
body[data-workspace-page] :is(.tool-link,.category-card,.home-search-result){border-color:#cdddeb;border-radius:12px;box-shadow:0 3px 12px #244e7306}
body[data-workspace-page] :is(.tool-link,.category-card,.home-search-result):hover{transform:none;border-color:#7ca4d0;box-shadow:0 5px 16px #244e7312}
body[data-workspace-page] :is(.tool-link,.category-card) :is(b,h3){color:#183d68}
body[data-workspace-page] .trust{gap:8px}
body[data-workspace-page] .trust span{background:var(--workspace-mint);border-color:#cce4d8;color:#215b46;line-height:1.4}
/* Compact title / large working surface, not a marketing hero on tools. */
body[data-workspace-page="tool"] :is(.designed-tool-page,.tool-layout){max-width:none}
body[data-workspace-page="tool"] :is(.tool-head,.page-intro){padding-block:8px 20px;margin-bottom:8px}
body[data-workspace-page="tool"] :is(.tool-head,.page-intro) h1{font-size:clamp(1.6rem,2.6vw,2rem);line-height:1.2;letter-spacing:-.035em}
body[data-workspace-page="tool"] :is(.tool-head,.page-intro) p{max-width:80ch;font-size:1rem;line-height:1.65;color:var(--workspace-muted)}
body[data-workspace-page="tool"] .tool-card{width:100%;min-width:0;padding:24px;border:1px solid var(--workspace-line);border-top:3px solid var(--workspace-blue);border-radius:14px;background:#fff;box-shadow:0 12px 32px #244e7310}
body[data-workspace-page="tool"] .tool-card:focus-within{border-color:#7ca4d0;border-top-color:var(--workspace-blue)}
body[data-workspace-page="tool"] .tool-card>label{font-weight:650;line-height:1.5;color:#243f59}
body[data-workspace-page="tool"] .tool-card :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),select,textarea){max-width:100%;border-color:#afc5dc;border-radius:8px;background:#fff;color:#18324d;font-size:1rem}
body[data-workspace-page="tool"] .tool-card textarea{line-height:1.65;resize:vertical}
body[data-workspace-page="tool"] .tool-card :is(.controls,.pro-actions,.practical-actions,.everyday-actions){gap:10px;min-width:0}
body[data-workspace-page="tool"] .tool-card>.controls{padding:14px 16px;border:1px solid #d6e3ee;border-radius:10px;background:var(--workspace-soft);margin-block:16px}
body[data-workspace-page="tool"] .tool-card>.controls label{line-height:1.5}
body[data-workspace-page="tool"] .tool-card>button,body[data-workspace-page="tool"] .tool-card :is(.pro-actions,.practical-actions,.everyday-actions)>button{min-height:44px;max-width:100%;padding:11px 17px;border-radius:8px;box-shadow:none;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
body[data-workspace-page="tool"] .tool-card>button[data-action="run"]{background:#1763c9;color:#fff}
body[data-workspace-page="tool"] .tool-card>button:is([data-action="copy"],[data-action="clear"]){background:#f4f8fc;border:1px solid #c6d6e5;color:#234a75}
body[data-workspace-page="tool"] .tool-card>button:disabled{opacity:.6;cursor:default}
body[data-workspace-page="tool"] .tool-card>output{max-width:100%;padding:20px;border:1px solid #cadce9;border-top:3px solid #79bea7;border-radius:10px;background:#f7fbfe;color:#18324d;overflow-wrap:anywhere}
body[data-workspace-page="tool"] .tool-card>output.is-error{border-color:#d49c9c;border-top-color:#b34242;background:#fff5f5;color:#8b2525}
body[data-workspace-page="tool"] .tool-card :is(.hint,.keyboard-hint,.field-note){color:#50647a;line-height:1.65}
body[data-workspace-page="tool"] .tool-card>.tool-status{min-height:1.6em;padding-top:10px;border-top:1px solid #e0e9f1;color:#4b6076;font-size:.875rem;line-height:1.6}
body[data-workspace-page="tool"] .tool-first-help{margin-block:14px 20px;padding:4px 18px;background:#fff;border:1px solid #d4e1ed;border-radius:10px}
body[data-workspace-page="tool"] .tool-first-help>summary{min-height:44px;padding-block:11px;color:#26496e;font-weight:600;text-decoration:none;line-height:1.5}
body[data-workspace-page="tool"] :is(.answer,.faq,.sources){border:1px solid #d6e3ee;border-radius:12px;background:#fff;padding:22px 24px;margin-block:24px;max-width:none}
body[data-workspace-page="tool"] .answer{border-left:3px solid #75bba4;background:#f5fbf8}
body[data-workspace-page="tool"] :is(.prose,.related){max-width:none}
body[data-workspace-page="tool"] :is(.prose,.faq) p{max-width:90ch;line-height:1.75}
body[data-workspace-page="tool"] .faq summary{min-height:44px;padding-block:10px;line-height:1.5}
/* Runtime audit: app.js core direct textarea/output: json-formatter,
   json-validator, base64, url-encoder, sha-256-hash-generator,
   sha-512-hash-generator, hmac-generator, text-encrypt-decrypt,
   sql-string-escaper. IT/NL use matching direct markup through the emitted
   european-core-data-draft-{crypto,inspectors}-runtime-{it,nl}.js and
   european-extra-complete-ui.js (localization changes text/attributes only).
   Advanced forms deliberately excluded: their rich result is a div, not output.
   The build's audited ID allowlist, not this comment, controls the split marker. */
/* Code/text editors only. Guard on actual direct children; complex editors keep
   their own layout. Source order remains input -> settings -> actions -> output. */
body[data-workspace-family="editor"] .tool-card>textarea{min-height:300px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
body[data-workspace-family="editor"] .tool-card>output{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;line-height:1.7}
@media(min-width:960px){
 body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:24px;align-items:start}
 body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea))>*{grid-column:1;min-width:0}
 body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea))>output{grid-column:2;grid-row:1 / span 30;align-self:stretch;margin-top:0;min-height:380px}
 body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea))>button{justify-self:start;margin:8px 0 0}
}
/* Comparison inputs stay in their authored DOM order; result remains below. */
body[data-workspace-family="compare"] .tool-card textarea{min-height:230px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
body[data-workspace-family="compare"] .tool-card>output{margin-top:22px}
/* Numeric/business forms preserve existing responsive field grids and tables. */
body[data-workspace-family="form"] .tool-card :is(.pro-fields,.practical-fields,.everyday-fields){gap:16px 20px}
body[data-workspace-family="form"] .tool-card :is(.pro-actions,.practical-actions,.everyday-actions){padding-block:16px;margin-top:16px;border-top:1px solid #dce6ef;border-bottom:1px solid #dce6ef}
body[data-workspace-family="form"] .tool-card>output{margin-top:20px}
/* File/visual tool canvases, drag handles, PDF pages and map buttons are owned
   by their native modules. Only the surrounding picker/result surfaces change. */
body:is([data-workspace-family="file"],[data-workspace-family="visual"]) .tool-card>.file-drop{padding:20px;border:1px dashed #8baece;border-radius:10px;background:#f4f9fe;line-height:1.65}
body:is([data-workspace-family="file"],[data-workspace-family="visual"]) .tool-card>.file-drop input{max-width:100%;min-width:0}
body[data-workspace-family="inspector"] .tool-card>output{line-height:1.7}
body[data-workspace-family="generator"] .tool-card>output{font-size:1.1rem;line-height:1.8;letter-spacing:.015em}
/* Home/catalogue: make discovery the primary useful surface, retain all copy. */
body[data-workspace-page="home"] .hero{min-height:0;margin-block:24px 18px;padding:32px 36px;border-radius:16px;gap:32px}
body[data-workspace-page="home"] .hero h1{font-size:clamp(2rem,4vw,3.2rem);letter-spacing:-.04em;line-height:1.1}
body[data-workspace-page="home"] .hero p{font-size:1rem;line-height:1.7}
body[data-workspace-page="home"] .hero-panel{transform:none;min-height:210px;box-shadow:0 10px 24px #071a3230}
body[data-workspace-page="home"] .home-discovery{margin-inline:0;padding:28px;border:1px solid #adc8e2;border-top:3px solid #1763c9;border-radius:14px;background:#fff;box-shadow:0 10px 28px #244e7310}
body[data-workspace-page="home"] .discovery-copy>input{min-height:52px;border-width:2px;border-color:#8fb1d4;border-radius:9px;box-shadow:none}
body[data-workspace-page="home"] .home-privacy-note{border-left-color:#74b59e;background:#f1faf5}
body[data-workspace-page="home"] .home-tools{padding-inline:0;padding-top:32px}
body[data-workspace-page="home"] :is(.professional-teaser,.soft-cta){margin-inline:0;border-radius:12px}
body[data-workspace-page="directory"] .page-intro{padding:20px 0 24px}
body[data-workspace-page="directory"] .page-intro h1{font-size:clamp(1.75rem,3vw,2.5rem);letter-spacing:-.035em}
body[data-workspace-page="directory"] [data-catalog-search]{padding:24px;border:1px solid #adc8e2;border-top:3px solid #1763c9;border-radius:14px;background:#fff;box-shadow:0 8px 24px #244e730a}
body[data-workspace-page="directory"] [data-catalog-search] input{min-height:48px;border-color:#8fb1d4}
body[data-workspace-page="directory"] .tool-grid{gap:14px}
/* Guides/legal/utility pages remain reading surfaces, not faux editor panels. */
body:is([data-workspace-page="article"],[data-workspace-page="utility"]) :is(.article,.european-editorial.prose){max-width:880px;margin-inline:auto;padding:28px 32px 48px;border:1px solid #d6e3ef;border-radius:14px;background:#fff;box-shadow:0 8px 24px #244e7306}
body:is([data-workspace-page="article"],[data-workspace-page="utility"]) :is(.article,.european-editorial.prose) h1{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.2;letter-spacing:-.035em}
body:is([data-workspace-page="article"],[data-workspace-page="utility"]) :is(.article,.european-editorial.prose) :is(p,li){line-height:1.8}
body:is([data-workspace-page="article"],[data-workspace-page="utility"]) :is(.article,.european-editorial.prose) .answer{border-left:3px solid #75bba4;background:#f5fbf8}
body[data-workspace-page] footer{border-top:1px solid #dce6ef;margin-top:36px}
@media(max-width:760px){
 body[data-workspace-page] main{padding-inline:18px}
 body[data-workspace-page="tool"] .tool-card{padding:18px}
 body[data-workspace-page="tool"] .tool-card>output{padding:16px}
 body[data-workspace-page="tool"] :is(.answer,.faq,.sources){padding:18px}
 body[data-workspace-family="editor"] .tool-card>textarea{min-height:220px}
 body[data-workspace-page="home"] .hero{padding:26px 22px;gap:24px}
 body[data-workspace-page="home"] .home-discovery{padding:22px}
 body:is([data-workspace-page="article"],[data-workspace-page="utility"]) :is(.article,.european-editorial.prose){padding:22px}
}
@media(max-width:480px){
 body[data-workspace-page] main{padding-inline:12px}
 body[data-workspace-page] .site-header{padding-inline:14px}
 body[data-workspace-page="tool"] .tool-card{padding:14px;border-radius:12px}
 body[data-workspace-page="tool"] .tool-card>.controls{padding:12px}
 body[data-workspace-page="tool"] .tool-card>button{margin:6px 4px 6px 0;padding:10px 12px}
 body[data-workspace-page="tool"] :is(.answer,.faq,.sources){padding:16px}
 body[data-workspace-page="tool"] .tool-first-help{padding-inline:12px}
 body[data-workspace-page="home"] :is(.hero,.home-discovery){padding:22px 18px}
 body[data-workspace-page="directory"] [data-catalog-search]{padding:18px}
 body:is([data-workspace-page="article"],[data-workspace-page="utility"]) :is(.article,.european-editorial.prose){padding:20px 16px}
}
@media(prefers-reduced-motion:reduce){body[data-workspace-page] :is(.tool-link,.category-card,.home-search-result,.button){transition:none;transform:none}}
@media(forced-colors:active){body[data-workspace-page] .tool-card,body[data-workspace-page] .tool-card>output{border:1px solid CanvasText}body[data-workspace-page] :is(a,button,input,select,textarea,summary):focus-visible{outline-color:Highlight}}
@media print{body[data-workspace-page]{background:#fff}body[data-workspace-page] :is(.tool-card,.article,.hero,.home-discovery){box-shadow:none}body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)){display:block}}

/* Equivalent discovery surfaces used by IT/NL and the European catalogues. */
body:is([data-workspace-page="home"],[data-workspace-page="directory"]) .home-search{padding:24px;border:1px solid #adc8e2;border-top:3px solid #1763c9;border-radius:14px;background:#fff;box-shadow:0 8px 24px #244e730a;margin-block:18px 28px}
body:is([data-workspace-page="home"],[data-workspace-page="directory"]) .home-search input{min-height:48px;max-width:100%;border-color:#8fb1d4;font-size:1rem}
body[data-workspace-page="home"]>.page-intro,body[data-workspace-page="home"] main>.page-intro{padding-block:20px}
body[data-workspace-page="tool"] .tool-card [aria-invalid="true"]{border-color:#a92b2b}
body[data-workspace-page="tool"] .tool-card :is(.field-error,[data-error]){color:#9b2020}
body[data-workspace-page="tool"] .tool-card output[role="alert"]{border-color:#d49c9c;border-top-color:#b34242;background:#fff5f5;color:#8b2525}
@media(max-width:480px){body:is([data-workspace-page="home"],[data-workspace-page="directory"]) .home-search{padding:18px}}

/* Rich advanced results (tables/images/downloads) get a workspace surface only;
   no font family, display, dimensions or child geometry are overridden. */
body[data-workspace-page="tool"] .tool-card>.advanced-result{max-width:100%;padding:20px;border:1px solid #cadce9;border-top:3px solid #79bea7;border-radius:10px;background:#f7fbfe;color:#18324d;overflow-wrap:anywhere}
body[data-workspace-page="tool"] .tool-card>.advanced-result:is(.is-error,[role="alert"]){border-color:#d49c9c;border-top-color:#b34242;background:#fff5f5;color:#8b2525}
@media(max-width:760px){body[data-workspace-page="tool"] .tool-card>.advanced-result{padding:16px}}
/* Long source citations and translated URLs wrap rather than widen phones. */
body[data-workspace-page] :is(.sources,.prose,.article) a{overflow-wrap:anywhere}

/* Compact desktop action bar for the audited three-button sequence only.
   Keep fields in source order; toolbar occupies the original run-button row.
   Hidden direct fields or additional buttons retain the simple safe layout. */
@media screen and (min-width:960px){
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(n+3):nth-child(-n+20)){grid-template-columns:repeat(6,minmax(0,1fr));column-gap:12px}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(n+3):nth-child(-n+20))>*{grid-column:1 / 4}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(n+3):nth-child(-n+20))>output{grid-column:4 / 7}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(n+3):nth-child(-n+20))>textarea{min-height:240px}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(3)){--workspace-action-row:3}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(4)){--workspace-action-row:4}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(5)){--workspace-action-row:5}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(6)){--workspace-action-row:6}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(7)){--workspace-action-row:7}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(8)){--workspace-action-row:8}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(9)){--workspace-action-row:9}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(10)){--workspace-action-row:10}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(11)){--workspace-action-row:11}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(12)){--workspace-action-row:12}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(13)){--workspace-action-row:13}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(14)){--workspace-action-row:14}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(15)){--workspace-action-row:15}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(16)){--workspace-action-row:16}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(17)){--workspace-action-row:17}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(18)){--workspace-action-row:18}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(19)){--workspace-action-row:19}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(20)){--workspace-action-row:20}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(n+3):nth-child(-n+20))>button[data-action="run"]{grid-column:1;grid-row:var(--workspace-action-row);justify-self:stretch;align-self:stretch;margin:8px 0 0;min-width:0;padding-inline:10px}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(n+3):nth-child(-n+20))>button[data-action="copy"]{grid-column:2;grid-row:var(--workspace-action-row);justify-self:stretch;align-self:stretch;margin:8px 0 0;min-width:0;padding-inline:10px}
body[data-workspace-family="editor"] .tool-card[data-workspace-editor="split"]:has(>textarea):has(>output):not(:has(>textarea~textarea)):has(>button[data-action="run"]+button[data-action="copy"]+button[data-action="clear"]):not(:has(>button:not([data-action="run"]):not([data-action="copy"]):not([data-action="clear"]))):not(:has(>[hidden])):has(>button[data-action="run"]:nth-child(n+3):nth-child(-n+20))>button[data-action="clear"]{grid-column:3;grid-row:var(--workspace-action-row);justify-self:stretch;align-self:stretch;margin:8px 0 0;min-width:0;padding-inline:10px}
}
/* Home discovery stays close to the introduction. Decorative artwork scales
   inside its box; the translated caption remains visible and can wrap. */
body[data-workspace-page="home"] .hero-visual{min-height:0;align-self:center;aspect-ratio:auto}
body[data-workspace-page="home"] .hero-visual img{min-height:0;height:300px;max-height:300px;object-fit:contain;object-position:center}
@media(max-width:760px){
 body[data-workspace-page="home"] .hero{padding:22px 20px;gap:16px;margin-block:16px 14px}
 body[data-workspace-page="home"] .hero h1{font-size:clamp(1.9rem,5.6vw,2.4rem);line-height:1.12;margin-block:12px}
 body[data-workspace-page="home"] .hero p{font-size:.9375rem;line-height:1.6;margin-bottom:18px}
 body[data-workspace-page="home"] .hero-visual{height:160px;max-height:160px;border-radius:12px}
 body[data-workspace-page="home"] .hero-visual img{height:120px;max-height:120px}
 body[data-workspace-page="home"] .hero-visual figcaption{left:8px;right:8px;bottom:8px;width:fit-content;max-width:calc(100% - 16px);margin-inline:auto;padding:6px 10px;font-size:.625rem;line-height:1.45;border-radius:10px}
}
@media(max-width:480px){body[data-workspace-page="home"] .hero{padding:20px 16px}}
