/* Ferramentexto application shell — Tabler components + project layout */
:root{
  --ft-sidebar-w:17.5rem;
  --ft-sidebar-bg:#111827;
  --ft-sidebar-line:rgba(255,255,255,.085);
  --ft-sidebar-text:rgba(255,255,255,.72);
  --ft-code:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;
  --ft-radius:.5rem;
  --ft-topbar-h:4rem;
}
html{scroll-behavior:smooth}
body.ft-app{min-height:100vh;background:var(--tblr-body-bg,#f4f6f8);overflow-x:hidden}
.ft-app .page{min-height:100vh;display:block}
.ft-app .page-wrapper{min-width:0;min-height:100vh;display:flex;flex-direction:column}
.ft-app svg{stroke-width:1.8}
.min-w-0{min-width:0}.text-truncate-2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}

/* Navigation shell */
.ft-sidebar{position:fixed;inset:0 auto 0 0;width:var(--ft-sidebar-w);z-index:1040;display:flex;flex-direction:column;background:var(--ft-sidebar-bg);color:#fff;border-right:1px solid rgba(0,0,0,.12)}
.ft-sidebar-head{height:var(--ft-topbar-h);display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;border-bottom:1px solid var(--ft-sidebar-line);flex:0 0 auto}
.ft-brand{display:flex;align-items:center;gap:.7rem;min-width:0;color:#fff;text-decoration:none;flex:1}.ft-brand:hover{color:#fff;text-decoration:none}
.ft-brand-icon{width:32px;height:32px;object-fit:contain;flex:0 0 auto}.ft-brand span{display:block;min-width:0}.ft-brand strong{display:block;font-size:.91rem;line-height:1.1;letter-spacing:-.015em}.ft-brand small{display:block;margin-top:.2rem;color:rgba(255,255,255,.47);font-size:.67rem;font-weight:500}
.ft-sidebar-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;flex:1;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
.ft-primary-nav{padding:.7rem .65rem .55rem;border-bottom:1px solid var(--ft-sidebar-line)}
.ft-primary-link{display:flex;align-items:center;gap:.7rem;min-height:2.45rem;padding:.48rem .65rem;border-radius:.38rem;color:var(--ft-sidebar-text);text-decoration:none;font-size:.82rem;font-weight:600;position:relative}
.ft-primary-link:hover{background:rgba(255,255,255,.055);color:#fff;text-decoration:none}.ft-primary-link.active{background:rgba(255,255,255,.095);color:#fff}.ft-primary-link.active:before{content:"";position:absolute;left:-.65rem;top:.45rem;bottom:.45rem;width:2px;background:#4dabf7}
.ft-primary-link svg{width:17px;height:17px;flex:0 0 auto}.ft-primary-link .ft-ext-icon{width:13px;height:13px;margin-left:auto;opacity:.55}
.ft-sidebar-filter{padding:.7rem .75rem .25rem}.ft-sidebar-filter .form-control{height:2.15rem;background:rgba(255,255,255,.065);border-color:rgba(255,255,255,.105);color:#fff;font-size:.76rem}.ft-sidebar-filter .form-control::placeholder{color:rgba(255,255,255,.42)}.ft-sidebar-filter .input-icon-addon{color:rgba(255,255,255,.42)}.ft-sidebar-filter .input-icon-addon svg{width:14px;height:14px}
.ft-side-groups{padding:.35rem .65rem 1rem}.ft-side-group{margin:.08rem 0 .2rem}.ft-side-group-btn{width:100%;border:0;background:transparent;color:rgba(255,255,255,.5);display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.46rem .55rem;border-radius:.35rem;text-align:left;font-size:.685rem;font-weight:700;letter-spacing:.035em;text-transform:uppercase;cursor:pointer}.ft-side-group-btn:hover{background:rgba(255,255,255,.04);color:rgba(255,255,255,.78)}.ft-side-group-btn>span:first-child{display:flex;align-items:center;gap:.5rem;min-width:0}.ft-side-group-btn svg{width:14px;height:14px}.ft-side-group-btn .badge{font-size:.61rem;font-weight:600}
.ft-side-links{display:none;padding:.12rem 0 .35rem}.ft-side-links.show{display:block}.ft-side-link{display:flex;align-items:center;gap:.6rem;min-height:2.18rem;padding:.38rem .55rem;border-radius:.34rem;color:rgba(255,255,255,.66);font-size:.76rem;text-decoration:none}.ft-side-link:hover{background:rgba(255,255,255,.05);color:#fff;text-decoration:none}.ft-side-link.active{background:rgba(32,107,196,.28);color:#fff}.ft-side-link-icon{width:1.35rem;display:grid;place-items:center;flex:0 0 1.35rem}.ft-side-link-icon svg{width:14px;height:14px}
.ft-sidebar-bottom{padding:.7rem .8rem .8rem;border-top:1px solid var(--ft-sidebar-line);flex:0 0 auto}.ft-mini-links{display:flex;gap:.35rem;margin-bottom:.45rem}.ft-mini-links a{display:inline-flex;align-items:center;gap:.2rem;color:rgba(255,255,255,.65);text-decoration:none;font-size:.68rem}.ft-mini-links a:hover{color:#fff}.ft-mini-links svg{width:11px;height:11px}
.ft-nav-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.48);z-index:1035;backdrop-filter:blur(1px)}

/* Topbar */
.ft-topbar{position:sticky;top:0;z-index:1025;height:var(--ft-topbar-h);background:color-mix(in srgb,var(--tblr-bg-surface,#fff) 96%,transparent);border-bottom:1px solid var(--tblr-border-color,#e1e5ea);backdrop-filter:saturate(140%) blur(8px)}
.ft-topbar-inner{height:100%;display:flex;align-items:center;gap:.7rem;padding:.55rem 1rem;max-width:1600px;margin:0 auto}
.ft-global-search{width:min(100%,40rem);flex:1}.ft-global-search .form-control{height:2.45rem;background:var(--tblr-bg-surface-secondary,#f5f7f9);border-color:transparent}.ft-global-search .form-control:focus{background:var(--tblr-bg-surface,#fff);border-color:rgba(32,107,196,.38);box-shadow:0 0 0 .2rem rgba(32,107,196,.1)}.ft-global-search kbd{font-size:.65rem;color:var(--tblr-secondary-color,#667382);background:transparent;border:1px solid var(--tblr-border-color,#d9dbde);box-shadow:none}
.ft-search-results{top:calc(100% + .42rem);max-height:28rem;overflow:auto;margin:0;display:none;border-radius:.45rem;box-shadow:0 .9rem 2.2rem rgba(15,23,42,.13)}.ft-search-results.show{display:block}.ft-search-result{display:flex;align-items:center;gap:.6rem;min-height:2.65rem}.ft-search-result-icon{width:1.7rem;height:1.7rem;border-radius:.35rem;display:grid;place-items:center;background:var(--tblr-bg-surface-secondary,#eef1f4);color:var(--tblr-primary,#206bc4);flex:0 0 1.7rem}.ft-search-result-icon svg{width:15px;height:15px}
.ft-topbar-actions{display:flex;align-items:center;gap:.4rem;margin-left:auto;flex:0 0 auto}.ft-lang-menu{position:relative}.ft-lang-menu summary{list-style:none;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.ft-lang-menu summary::-webkit-details-marker{display:none}.ft-lang-menu summary .ft-chevron{width:13px;height:13px;margin-left:.08rem}.ft-lang-menu[open] summary{background:var(--tblr-bg-surface-secondary,#f1f3f5)}.ft-lang-popover{position:absolute;right:0;top:calc(100% + .45rem);z-index:1060;width:13.5rem;padding:.35rem;background:var(--tblr-bg-surface,#fff);border:1px solid var(--tblr-border-color,#dfe3e7);border-radius:.45rem;box-shadow:0 .9rem 2.2rem rgba(15,23,42,.14)}.ft-lang-option{display:grid;grid-template-columns:2rem 1fr 1rem;align-items:center;gap:.45rem;padding:.48rem .55rem;border-radius:.35rem;color:var(--tblr-body-color,#182433);text-decoration:none;font-size:.76rem}.ft-lang-option:hover{background:var(--tblr-bg-surface-secondary,#f4f6f8);text-decoration:none;color:inherit}.ft-lang-option.active{background:rgba(32,107,196,.09);color:var(--tblr-primary,#206bc4)}.ft-lang-option span{font:700 .65rem var(--ft-code);color:var(--tblr-secondary-color,#667382)}.ft-lang-option svg{width:14px;height:14px}

/* Main */
.ft-page-body{padding:1.15rem 0 2.5rem;flex:1}.ft-page-body>.container-xl{max-width:1460px}.ft-page-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.ft-page-title-row .page-title{font-size:1.45rem;letter-spacing:-.025em;margin-bottom:.2rem}.ft-page-description{max-width:48rem;font-size:.82rem;color:var(--tblr-secondary-color,#667382);margin-top:.35rem;line-height:1.5}.ft-page-meta{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.65rem}.ft-page-meta .badge{font-weight:500}
.ft-catalog-toolbar{display:flex;gap:.38rem;overflow:auto;padding:.05rem 0 .45rem;margin-bottom:.85rem;scrollbar-width:thin}.ft-catalog-toolbar .btn{white-space:nowrap;border-color:var(--tblr-border-color,#dfe3e7);background:var(--tblr-bg-surface,#fff)}
.ft-catalog-section{margin-bottom:.85rem;border-color:var(--tblr-border-color,#e0e4e8);box-shadow:none;scroll-margin-top:5rem}.ft-catalog-section .card-header{min-height:3rem;padding:.7rem .9rem;background:var(--tblr-bg-surface,#fff)}.ft-catalog-title{display:flex;align-items:center;gap:.55rem;font-size:.82rem;font-weight:700}.ft-catalog-title svg{width:16px;height:16px;color:var(--tblr-primary,#206bc4)}.ft-catalog-section .card-body{padding:.7rem}
.ft-tool-card{height:100%;text-decoration:none;color:inherit;border-color:transparent;background:var(--tblr-bg-surface-secondary,#f6f8fa);box-shadow:none;transition:background-color .12s ease,border-color .12s ease,transform .12s ease}.ft-tool-card:hover{color:inherit;text-decoration:none;background:var(--tblr-bg-surface,#fff);border-color:rgba(32,107,196,.34);transform:translateY(-1px)}.ft-tool-card .card-body{display:grid;grid-template-columns:2.15rem minmax(0,1fr);align-items:center;gap:.65rem;min-height:4.15rem;padding:.68rem}.ft-tool-icon{width:2.15rem;height:2.15rem;border-radius:.38rem;background:var(--tblr-bg-surface,#fff);border:1px solid var(--tblr-border-color,#e2e6ea);display:grid;place-items:center;color:var(--tblr-primary,#206bc4)}.ft-tool-icon svg{width:17px;height:17px}.ft-tool-name{display:block;font-weight:650;font-size:.82rem;line-height:1.25}.ft-tool-path{display:block;margin-top:.17rem;font:.63rem/1.2 var(--ft-code);color:var(--tblr-secondary-color,#667382);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ft-search-meta{margin-bottom:.8rem}
.ft-feature-strip{display:grid;grid-template-columns:minmax(0,1.7fr) repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:.9rem}.ft-feature-card{display:flex;align-items:center;gap:.7rem;min-height:4.3rem;padding:.75rem .85rem;border:1px solid var(--tblr-border-color,#e0e4e8);border-radius:.45rem;background:var(--tblr-bg-surface,#fff);text-decoration:none;color:inherit}.ft-feature-card:hover{color:inherit;text-decoration:none;border-color:rgba(32,107,196,.38)}.ft-feature-card>span:first-child{width:2.3rem;height:2.3rem;display:grid;place-items:center;border-radius:.4rem;background:rgba(32,107,196,.09);color:var(--tblr-primary,#206bc4);flex:0 0 auto}.ft-feature-card svg{width:17px;height:17px}.ft-feature-card strong{display:block;font-size:.79rem}.ft-feature-card small{display:block;color:var(--tblr-secondary-color,#667382);font-size:.68rem;margin-top:.12rem}

/* Tool canvas — align old tool pages to the same surface without overriding their internal behavior. */
.ft-tool-content{min-width:0}.ft-tool-content>section.glass,.ft-tool-content>.glass,.ft-tool-page,.ft-workspace{background:var(--tblr-bg-surface,#fff);border:1px solid var(--tblr-border-color,#e0e4e8);border-radius:var(--ft-radius);box-shadow:0 1px 2px rgba(15,23,42,.03)}.ft-tool-content>section.glass{padding:1rem}.ft-tool-content>section.glass>header,.ft-tool-page-head{border-bottom:1px solid var(--tblr-border-color,#e6e9ec);padding-bottom:.9rem;margin-bottom:.9rem}.ft-tool-content>section.glass h1,.ft-tool-page h1,.ft-workspace h1{font-size:1.18rem;letter-spacing:-.02em;margin:0;color:var(--tblr-body-color,#182433)}.ft-tool-content>section.glass>header p{color:var(--tblr-secondary-color,#667382);max-width:54rem;font-size:.82rem;line-height:1.5}.ft-tool-content input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),.ft-tool-content textarea,.ft-tool-content select{border-color:var(--tblr-border-color,#d9dde2)}.ft-tool-content textarea{max-width:100%}.ft-tool-content .section-block,.ft-tool-content .panel.bordered,.ft-tool-content .box,.ft-tool-content .result,.ft-tool-content .output{border-color:var(--tblr-border-color,#e2e6ea);box-shadow:none}
.ft-workspace{overflow:hidden}.ft-workspace-head,.ft-tool-page-head{min-height:4.15rem;padding:.9rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.ft-workspace-head{border-bottom:1px solid var(--tblr-border-color,#e2e6ea)}.ft-workspace-title{display:flex;align-items:center;gap:.7rem;min-width:0}.ft-workspace-title .appicon{width:2.25rem;height:2.25rem;display:grid;place-items:center;border-radius:.4rem;background:rgba(32,107,196,.09);color:var(--tblr-primary,#206bc4);flex:0 0 auto}.ft-workspace-title .appicon svg{width:17px;height:17px}.ft-workspace-title h1{font-size:1rem;margin:0}.ft-workspace-title p{font-size:.7rem;color:var(--tblr-secondary-color,#667382);margin:.16rem 0 0;max-width:48rem}.ft-workspace-body,.ft-tool-page-body{padding:.9rem}.ft-workspace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.ft-pane,.ft-panel{min-width:0;border:1px solid var(--tblr-border-color,#e2e6ea);border-radius:.4rem;background:var(--tblr-bg-surface,#fff);overflow:hidden}.ft-pane-head,.ft-panel-title{min-height:2.55rem;padding:.58rem .72rem;border-bottom:1px solid var(--tblr-border-color,#e2e6ea);display:flex;align-items:center;justify-content:space-between;gap:.7rem;font-size:.72rem;font-weight:650;color:var(--tblr-secondary-color,#667382);background:var(--tblr-bg-surface-secondary,#f7f8fa)}.ft-pane-body,.ft-panel{padding:.72rem}.ft-panel>.ft-panel-title{margin:-.72rem -.72rem .72rem}.ft-stack{display:grid;gap:.68rem}.ft-field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.68rem}.ft-label{display:block;font-size:.69rem;font-weight:650;margin-bottom:.28rem;color:var(--tblr-secondary-color,#667382)}.ft-input,.ft-select,.ft-textarea{width:100%;border:1px solid var(--tblr-border-color,#d9dde2);border-radius:.35rem;background:var(--tblr-bg-surface,#fff);color:var(--tblr-body-color,#182433);outline:0;font-size:.8rem}.ft-input,.ft-select{min-height:2.25rem;padding:.42rem .6rem}.ft-textarea{min-height:16rem;padding:.65rem;resize:vertical;font:.77rem/1.5 var(--ft-code)}.ft-input:focus,.ft-select:focus,.ft-textarea:focus{border-color:rgba(32,107,196,.65);box-shadow:0 0 0 .18rem rgba(32,107,196,.09)}.ft-actions{display:flex;align-items:center;gap:.42rem;flex-wrap:wrap}.ft-action{min-height:2.12rem;padding:.38rem .62rem;border:1px solid var(--tblr-border-color,#d9dde2);border-radius:.34rem;background:var(--tblr-bg-surface,#fff);color:var(--tblr-body-color,#182433);font-size:.73rem;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;cursor:pointer;text-decoration:none}.ft-action:hover{background:var(--tblr-bg-surface-secondary,#f1f3f5);text-decoration:none;color:inherit}.ft-action.primary{background:var(--tblr-primary,#206bc4);border-color:var(--tblr-primary,#206bc4);color:#fff}.ft-action svg{width:13px;height:13px}.ft-output,.ft-codeout{min-height:16rem;margin:0;padding:.68rem;border:1px solid var(--tblr-border-color,#e1e5e9);border-radius:.35rem;background:var(--tblr-bg-surface-secondary,#f6f8fa);white-space:pre-wrap;overflow:auto;overflow-wrap:anywhere;font:.76rem/1.52 var(--ft-code);color:var(--tblr-body-color,#182433)}.ft-output.empty{color:var(--tblr-secondary-color,#667382)}.ft-status{margin-left:auto;font-size:.68rem;color:var(--tblr-secondary-color,#667382)}.ft-success{color:var(--tblr-success,#2fb344)}.ft-error{color:var(--tblr-danger,#d63939)}.ft-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.ft-stat{padding:.62rem;border:1px solid var(--tblr-border-color,#e2e6ea);border-radius:.35rem;background:var(--tblr-bg-surface,#fff)}.ft-stat small{display:block;color:var(--tblr-secondary-color,#667382);font-size:.63rem}.ft-stat strong{display:block;margin-top:.16rem;font-size:.95rem}.ft-kv{display:grid;grid-template-columns:minmax(8rem,14rem) minmax(0,1fr);border:1px solid var(--tblr-border-color,#e2e6ea);border-radius:.35rem;overflow:hidden}.ft-kv>div{padding:.52rem .65rem;border-bottom:1px solid var(--tblr-border-color,#e2e6ea);overflow-wrap:anywhere}.ft-kv>div:nth-child(odd){font-weight:650;background:var(--tblr-bg-surface-secondary,#f6f8fa)}.ft-kv>div:nth-last-child(-n+2){border-bottom:0}.ft-inline-code{font-family:var(--ft-code);background:var(--tblr-bg-surface-secondary,#f1f3f5);padding:.1rem .28rem;border-radius:.25rem}
#iftViewport{max-width:100%}#iftViewport iframe{display:block;width:100%;height:100%;border:0;background:#fff}
.ft-easing-track{height:4rem;background:var(--tblr-bg-surface-secondary,#f4f6f8);border:1px solid var(--tblr-border-color,#e0e4e8);border-radius:.35rem;position:relative;overflow:hidden}.ft-easing-track span{position:absolute;left:.45rem;top:50%;width:1.4rem;height:1.4rem;border-radius:50%;background:var(--tblr-primary,#206bc4);transform:translateY(-50%);transition-property:left;transition-duration:1s}.ft-easing-track span.go{left:calc(100% - 1.85rem)}.ft-serp{padding:1rem;border:1px solid var(--tblr-border-color,#e2e6ea);border-radius:.4rem;background:#fff;color:#202124}.ft-serp-url{font-size:.72rem;color:#202124;margin-bottom:.25rem;word-break:break-all}.ft-serp-title{font:1.08rem/1.3 Arial,sans-serif;color:#1a0dab;margin-bottom:.25rem}.ft-serp-desc{font:.78rem/1.45 Arial,sans-serif;color:#4d5156}
.footer{border-top:1px solid var(--tblr-border-color,#e1e5e9);background:transparent}.footer .container-xl{max-width:1460px}

@media (min-width:992px){.ft-app .page-wrapper{margin-left:var(--ft-sidebar-w)}}
@media (max-width:991.98px){
  .ft-sidebar{transform:translateX(-101%);transition:transform .18s ease;width:min(88vw,20rem);box-shadow:1rem 0 2rem rgba(15,23,42,.18)}
  body.ft-nav-open .ft-sidebar{transform:translateX(0)}body.ft-nav-open{overflow:hidden}.ft-topbar{top:0}.ft-topbar-inner{padding-inline:.7rem}.ft-workspace-grid{grid-template-columns:1fr}.ft-feature-strip{grid-template-columns:1fr 1fr}.ft-feature-strip .ft-feature-card:first-child{grid-column:1/-1}
}
@media (max-width:767.98px){.ft-page-body{padding-top:.8rem}.ft-page-title-row{align-items:flex-start}.ft-page-title-row .page-title{font-size:1.25rem}.ft-workspace-head,.ft-tool-page-head{align-items:flex-start;flex-direction:column}.ft-field-row{grid-template-columns:1fr}.ft-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-kv{grid-template-columns:1fr}.ft-kv>div:nth-child(odd){border-bottom:0;padding-bottom:.2rem}.ft-kv>div:nth-child(even){padding-top:.2rem}.ft-global-search{min-width:0}.ft-topbar-actions .btn span{display:none}.ft-lang-menu summary{padding-inline:.55rem}.ft-feature-strip{grid-template-columns:1fr}.ft-feature-strip .ft-feature-card:first-child{grid-column:auto}.ft-catalog-section .card-body{padding:.55rem}}
@media (max-width:420px){.ft-topbar-inner{gap:.35rem}.ft-topbar-actions{gap:.2rem}.ft-global-search .input-icon-addon:last-child{display:none}.ft-stat-grid{grid-template-columns:1fr 1fr}}
