@font-face { font-family:Manrope; src:url(fonts/Manrope-VariableFont_wght.woff2) format('woff2'); font-weight:200 800; font-display:swap; }
@font-face { font-family:Vollkorn; src:url(fonts/Vollkorn-VariableFont_wght.woff2) format('woff2'); font-weight:400 900; font-display:swap; }
@font-face { font-family:'Roboto Slab'; src:url(fonts/RobotoSlab-VariableFont_wght.woff2) format('woff2'); font-weight:100 900; font-display:swap; }
@font-face { font-family:Platypi; src:url(fonts/Platypi-VariableFont_wght.woff2) format('woff2'); font-weight:300 800; font-display:swap; }
.add-text-tool { padding-block:20px; }
.add-text-tool label { display:flex; flex-direction:column; gap:6px; font-weight:600; min-width:0; }
.add-text-tool input:not([type=range]):not([type=checkbox]),.add-text-tool select,.add-text-tool textarea,.add-text-tool button,.add-text-tool [data-download] { min-height:44px; padding:8px 12px; border:1px solid #aab4bd; border-radius:6px; max-width:100%; font:inherit; }
.add-text-tool input[type=color] { width:100%; padding:4px; }
.add-text-tool input[type=range] { width:100%; min-height:44px; }
.add-text-tool button,.add-text-tool [data-download] { cursor:pointer; background:#163d52; color:#fff; }
.add-text-tool button:disabled { opacity:.5; cursor:default; }
.add-text-tool output { font-weight:400; margin-left:6px; }
.add-text-stage { position:relative; width:fit-content; max-width:100%; margin:12px auto; line-height:0; }
.add-text-stage canvas { display:block; max-width:100%; max-height:70svh; width:auto; height:auto; }
.add-text-boxes { position:absolute; inset:0; }
.add-text-frame { position:absolute; border:1px dashed rgba(255,255,255,.9); outline:1px dashed rgba(0,0,0,.6); cursor:move; touch-action:none; box-sizing:border-box; }
.add-text-frame.is-selected { border:2px solid #ffd54a; outline:1px solid rgba(0,0,0,.7); }
.add-text-handle { position:absolute; right:0; bottom:0; width:44px; height:44px; cursor:ew-resize; touch-action:none; }
.add-text-handle::after { content:''; position:absolute; right:4px; bottom:4px; width:16px; height:16px; background:#ffd54a; border:2px solid #163d52; border-radius:50%; }
.add-text-frame:not(.is-selected) .add-text-handle { display:none; }
.add-text-row { display:flex; flex-wrap:wrap; gap:12px; }
.add-text-row button { flex:1 1 140px; }
.add-text-contrast { list-style:none; padding:0; margin:12px 0; display:grid; gap:8px; }
.add-text-contrast button { width:100%; text-align:left; background:#fff; color:inherit; font-size:14px; line-height:1.35; }
.add-text-contrast button.is-selected { border-color:#163d52; box-shadow:inset 3px 0 #163d52; }
.add-text-tool details { margin-block:12px; }
.add-text-tool summary { cursor:pointer; font-weight:700; min-height:44px; display:flex; align-items:center; }
.add-text-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px 16px; }
.add-text-wide { grid-column:1 / -1; }
.add-text-check { flex-direction:row!important; align-items:center; }
.add-text-check input { width:22px; height:22px; min-height:0; }
.add-text-format { margin-bottom:12px; max-width:240px; }
.add-text-tool [data-result-panel] { margin-top:16px; }
.add-text-tool [data-preview] { display:block; max-width:100%; max-height:420px; object-fit:contain; }
.add-text-tool [data-download] { display:inline-flex; align-items:center; }
@media(max-width:600px) { .add-text-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .add-text-tool.tool-mobile .tool-mobile__preview { max-height:none; width:fit-content; } .add-text-tool.tool-mobile [data-info] { font-size:13px; } }
.add-text-tool [hidden] { display:none!important; }
