[data-tool="masque-de-texte"]{--tm-action: var(--outil-action);--tm-action-hover: var(--outil-action-hover);--tm-action-text: var(--outil-action-texte);--tm-border: var(--outil-bord);--tm-surface: var(--outil-surface);--tm-surface-hover: var(--outil-surface-hover);--tm-text: var(--outil-texte);--tm-strong: var(--outil-fonce);display: grid;gap: 1rem}[data-tool="masque-de-texte"] *,[data-tool="masque-de-texte"] *::before,[data-tool="masque-de-texte"] *::after{box-sizing: border-box}.text-mask-intro,.text-mask-field-status,.text-mask-main-status,.text-mask-note{margin: 0;color: var(--tm-text);line-height: 1.5}.text-mask-workspace{display: grid;grid-template-columns: minmax(0,0.9fr) minmax(21rem,1.1fr);gap: 1rem;align-items: stretch}.text-mask-source,.text-mask-settings,.text-mask-result{min-width: 0}.text-mask-result{grid-column: 1 / -1;display: grid;gap: 0.8rem}.text-mask-settings{display: grid;gap: 0.85rem;align-content: start}.text-mask-settings h2,.text-mask-result>h2{margin: 0;color: var(--tm-strong);font-size: 1.18rem;font-weight: 900;line-height: 1.2;text-align: center}.text-mask-editor{min-width: 0;display: grid;grid-template-rows: auto minmax(0,1fr) auto;border: 1px solid var(--tm-border);border-radius: 10px;background: #fff;overflow: hidden}.text-mask-source{height: 100%}.text-mask-editor-top,.text-mask-editor-bottom{display: flex;flex-wrap: wrap;gap: 0.55rem;align-items: center;justify-content: space-between;background: var(--tm-surface);padding: 0.55rem}.text-mask-editor-top{border-bottom: 1px solid var(--tm-border)}.text-mask-editor-bottom{border-top: 1px solid var(--tm-border)}.text-mask-editor h2,.text-mask-editor h3,.text-mask-output-head h3{margin: 0;color: var(--tm-strong);font-size: 1rem;font-weight: 900;line-height: 1.2}.text-mask-editor-actions{display: flex;flex-wrap: wrap;gap: 0.35rem;align-items: center;justify-content: flex-end}.text-mask-mini-action,.text-mask-preset-grid button,.text-mask-selector-button,.text-mask-filter-button,.text-mask-stepper button{border: 1px solid var(--tm-border);border-radius: 8px;background: #fff;color: var(--tm-strong);cursor: pointer;font: inherit;font-weight: 850;line-height: 1.15;transition: transform 0.12s ease,border-color 0.16s ease,background-color 0.16s ease,color 0.16s ease,box-shadow 0.16s ease,opacity 0.16s ease}.text-mask-mini-action{min-height: 2.35rem;display: inline-flex;align-items: center;justify-content: center;gap: 0.35rem;padding: 0.38rem 0.52rem;font-size: 0.9rem}.text-mask-icon{width: 18px;height: 18px;flex: 0 0 auto}.text-mask-mini-action:not(:disabled):hover,.text-mask-mini-action:not(:disabled):focus-visible,.text-mask-preset-grid button:not(:disabled):hover,.text-mask-preset-grid button:not(:disabled):focus-visible,.text-mask-selector-button:not(.is-active):not(:disabled):hover,.text-mask-selector-button:not(.is-active):not(:disabled):focus-visible,.text-mask-filter-button:not(.is-active):not(:disabled):hover,.text-mask-filter-button:not(.is-active):not(:disabled):focus-visible,.text-mask-stepper button:not(:disabled):hover,.text-mask-stepper button:not(:disabled):focus-visible{border-color: var(--tm-action-hover);color: var(--tm-action-hover);background: var(--tm-surface-hover);box-shadow: 0 0 0 3px color-mix(in srgb,var(--tm-action) 15%,transparent);outline: 0}.text-mask-mini-action:active,.text-mask-preset-grid button:active,.text-mask-selector-button:active,.text-mask-filter-button:active,.text-mask-stepper button:active{transform: translateY(1px)}.text-mask-mini-action:disabled,.text-mask-preset-grid button:disabled,.text-mask-filter-button:disabled,.text-mask-stepper button:disabled{cursor: not-allowed;opacity: 0.58;transform: none;box-shadow: none}.text-mask-textarea{width: 100%;min-width: 0;border: 0;border-radius: 0;background: #fff;color: var(--tm-strong);font: inherit;font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size: 0.98rem;font-weight: 780;line-height: 1.55;padding: 0.8rem;resize: none}.text-mask-source-textarea{min-height: 23rem}.text-mask-mask-textarea{min-height: 8rem}.text-mask-output{height: 8.5rem;overflow-y: auto;background: var(--tm-surface)}.text-mask-textarea::placeholder,.text-mask-field input::placeholder{color: color-mix(in srgb,var(--tm-text) 72%,#fff)}.text-mask-textarea:focus,.text-mask-field input:focus,.text-mask-stepper input:focus,.text-mask-mini-action:focus-visible,.text-mask-preset-grid button:focus-visible,.text-mask-selector-button:focus-visible,.text-mask-filter-button:focus-visible,.text-mask-stepper button:focus-visible{outline: 3px solid color-mix(in srgb,var(--outil-focus) 30%,transparent);outline-offset: 2px}.text-mask-field-status{min-height: 1.25rem;color: var(--tm-strong);font-size: 0.9rem;font-weight: 850}.text-mask-main-status{min-height: 1.35rem;color: var(--tm-strong);font-weight: 900;text-align: center}.text-mask-setting,.text-mask-mode-panel{display: grid;gap: 0.5rem}.text-mask-mode-panel{display: none}.text-mask-mode-panel.is-active{display: grid}.text-mask-label,.text-mask-field>span{display: block;margin: 0;color: var(--tm-strong);font-weight: 900;line-height: 1.22;text-align: left}.text-mask-note{font-size: 0.92rem;font-weight: 750}.text-mask-selector,.text-mask-filter-grid{display: grid;gap: 0.25rem;border: 1px solid var(--tm-border);border-radius: 14px;background: #fff;padding: 0.25rem}.text-mask-selector-2{grid-template-columns: repeat(2,minmax(0,1fr))}.text-mask-selector-3{grid-template-columns: repeat(3,minmax(0,1fr))}.text-mask-filter-grid{grid-template-columns: repeat(2,minmax(0,1fr))}.text-mask-selector-button,.text-mask-filter-button{min-width: 0;min-height: 2.45rem;border: 0;border-radius: 10px;background: transparent;padding: 0.45rem 0.4rem;text-align: center}.text-mask-selector-button.is-active,.text-mask-filter-button.is-active{background: var(--tm-action);color: var(--tm-action-text)}.text-mask-filter-button.is-unavailable{opacity: 0.55}.text-mask-processing-grid,.text-mask-compact-grid{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 0.75rem}.text-mask-field{display: grid;gap: 0.4rem}.text-mask-field input,.text-mask-stepper input{min-width: 0;min-height: 2.65rem;border: 1px solid var(--tm-border);border-radius: 10px;background: #fff;color: var(--tm-strong);font: inherit;font-weight: 850;padding: 0.55rem 0.68rem}.text-mask-stepper{display: grid;grid-template-columns: 2.65rem minmax(3.3rem,1fr) 2.65rem;gap: 0.45rem}.text-mask-stepper button{width: 2.65rem;min-height: 2.65rem;color: var(--tm-action);font-size: 1.2rem;font-weight: 900}.text-mask-stepper input{text-align: center;appearance: textfield}.text-mask-stepper input::-webkit-outer-spin-button,.text-mask-stepper input::-webkit-inner-spin-button{margin: 0;appearance: none}.text-mask-switch-grid{display: grid;gap: 0.45rem}.text-mask-switch-row{min-height: 3rem;display: flex;gap: 0.85rem;align-items: center;justify-content: space-between;border: 1px solid var(--tm-border);border-radius: 10px;background: #fff;color: var(--tm-strong);font-weight: 900;padding: 0.5rem 0.7rem;transition: background-color 0.16s ease,color 0.16s ease,border-color 0.16s ease}.text-mask-switch-row:has(input:not(:checked)){background: color-mix(in srgb,#fff 88%,var(--tm-border));color: color-mix(in srgb,var(--tm-strong) 78%,#fff)}.text-mask-switch-row input{position: absolute;opacity: 0;pointer-events: none}.text-mask-switch-ui{width: 3.5rem;height: 1.85rem;border: 2px solid var(--tm-action);border-radius: 999px;background: var(--tm-action);position: relative;flex: 0 0 auto}.text-mask-switch-ui::after{content: "";position: absolute;top: 50%;left: calc(100% - 1.35rem);width: 1.18rem;height: 1.18rem;border-radius: 50%;background: #fff;transform: translateY(-50%);transition: left 0.16s ease,background-color 0.16s ease}.text-mask-switch-row input:not(:checked) + .text-mask-switch-ui{border-color: color-mix(in srgb,var(--tm-border) 70%,var(--tm-action));background: color-mix(in srgb,var(--tm-border) 82%,#fff)}.text-mask-switch-row input:not(:checked) + .text-mask-switch-ui::after{left: 0.25rem}.text-mask-preset-grid{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 0.4rem}.text-mask-preset-grid button{min-height: 2.3rem;padding: 0.35rem 0.45rem;font-size: 0.88rem}.text-mask-result-grid{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: 1rem}.text-mask-output-card{min-width: 0;display: grid;gap: 0;border: 1px solid var(--tm-border);border-radius: 10px;background: #fff;overflow: hidden}.text-mask-output-head{display: flex;flex-wrap: wrap;gap: 0.55rem;align-items: center;justify-content: space-between;border-bottom: 1px solid var(--tm-border);background: var(--tm-surface);padding: 0.55rem}.text-mask-copy-proxy{position: fixed;top: -9999px;left: -9999px;width: 1px;height: 1px;opacity: 0}.text-mask-info-grid{display: grid;grid-template-columns: repeat(3,minmax(0,1fr));gap: 0.8rem;margin: 1rem 0}.text-mask-info-card{border: 1px solid var(--tm-border,var(--outil-bord));border-radius: 10px;background: var(--tm-surface,var(--outil-surface));padding: 0.85rem}.text-mask-info-card h3{margin: 0 0 0.4rem;color: var(--tm-strong,var(--outil-fonce));font-size: 1rem;font-weight: 900}.text-mask-info-card p{margin: 0}.text-mask-info-table{width: 100%;margin: 1rem 0;border-collapse: collapse;border: 1px solid var(--tm-border,var(--outil-bord));background: #fff}.text-mask-info-table caption{padding: 0.65rem;color: var(--tm-strong,var(--outil-fonce));font-weight: 900;text-align: left}.text-mask-info-table th,.text-mask-info-table td{border: 1px solid var(--tm-border,var(--outil-bord));padding: 0.62rem 0.7rem;vertical-align: top}.text-mask-info-table th{background: var(--tm-surface,var(--outil-surface));color: var(--tm-strong,var(--outil-fonce));text-align: left}@media (max-width: 980px){.text-mask-workspace,.text-mask-result-grid,.text-mask-info-grid{grid-template-columns: 1fr}.text-mask-source-textarea{min-height: 17rem}}@media (max-width: 640px){.text-mask-selector-2,.text-mask-selector-3,.text-mask-filter-grid,.text-mask-processing-grid,.text-mask-compact-grid,.text-mask-preset-grid{grid-template-columns: 1fr}.text-mask-editor-top,.text-mask-editor-bottom,.text-mask-output-head{display: grid;justify-items: stretch}.text-mask-editor-actions,.text-mask-mini-action{width: 100%}}@media (prefers-reduced-motion: reduce){[data-tool="masque-de-texte"] *,[data-tool="masque-de-texte"] *::before,[data-tool="masque-de-texte"] *::after{animation-duration: 0.01ms;transition-duration: 0.01ms}}