:root{--line:#c7ccd1;--line-dark:#aeb5bc;--paper:#fff;--panel:#f5f6f7;--ribbon:#f8f9fa;--ink:#202428;--muted:#626970;--accent:#0078d4;--accent-soft:#dceefe;--tool:#d97819;--danger:#b42318}
.form-section-title{display:flex;align-items:center;gap:7px;margin:16px -10px 10px;padding:8px 10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f4f5f6;font-weight:600}.form-section-title svg{width:16px;color:var(--accent)}
.gp-dock-tablist{display:flex;min-width:0}
.gp-view-menu{position:relative;height:31px}.gp-view-menu>button{height:31px!important;display:flex;align-items:center;gap:4px}.gp-view-menu>button svg{width:13px}.gp-view-menu-popup{position:absolute;z-index:60;top:31px;left:0;width:245px;padding:6px 0;background:#fff;border:1px solid var(--line-dark);box-shadow:0 4px 12px #0003;color:var(--ink)}.gp-view-menu-popup label{height:29px;display:flex;align-items:center;gap:8px;padding:0 12px;font-weight:400}.gp-view-menu-popup label:hover{background:var(--accent-soft)}.gp-view-menu-popup input{accent-color:var(--accent)}.gp-view-menu-label{padding:7px 12px 4px;color:var(--muted);font-size:11px;font-weight:600;text-transform:uppercase}.gp-view-menu-label+label{border-top:1px solid #eef0f2}
.tool-group.collapsed .tool-row{display:none}
.tool-group.collapsed>.tool-group-children,.tool-subgroup.collapsed>.tool-subgroup-children{display:none}.tool-group-title span{flex:1}.tool-group-title svg:first-child,.tool-subgroup-title svg{width:14px;color:var(--muted)}.tool-subgroup-title{width:100%;height:29px;padding:0 10px 0 24px;border:0;background:#fafafa;display:flex;align-items:center;gap:6px;text-align:left;color:#454b50;font-weight:600;font-size:12px}.tool-subgroup-title span{flex:1}.tool-subgroup .tool-row{padding-left:43px}.tool-row>svg{width:14px;height:14px;color:var(--tool)}
.gp-restore{display:none;position:absolute;z-index:18;top:154px;width:31px;padding:6px 4px;border:1px solid var(--line-dark);background:#fff;box-shadow:0 2px 5px #0002;align-items:center;gap:5px;writing-mode:vertical-rl}.gp-restore svg{width:16px}.gp-restore-left{left:0}.gp-restore-right{right:0}.gp-app.left-collapsed .gp-restore-left,.gp-app.right-collapsed .gp-restore-right{display:flex}
.gp-left-rail{grid-area:contents;min-height:0;display:grid;grid-template-rows:34px minmax(0,1fr);border-right:1px solid var(--line);background:var(--paper)}.gp-left-rail>.gp-pane{display:none!important;grid-area:auto;grid-row:2;grid-column:1;min-width:0;min-height:0;height:100%;border:0;overflow:hidden}.gp-left-rail>.gp-pane.active{display:flex!important}.gp-left-rail>.gp-pane>.gp-pane-title{display:none}.gp-project-catalog .gp-tree,.gp-contents .gp-tree{min-height:0}.tree-indent{padding-left:29px}.gp-app.left-collapsed .gp-left-rail{display:none}.tree-row.active{background:var(--accent-soft);box-shadow:inset 3px 0 var(--accent)}.property-list{display:grid;grid-template-columns:minmax(90px,38%) 1fr;border-top:1px solid var(--line)}.property-list dt,.property-list dd{margin:0;padding:7px 8px;border-bottom:1px solid #e2e4e6}.property-list dt{background:#f5f6f7;color:var(--muted)}.property-list dd{overflow-wrap:anywhere}.gp-dock-tabs{display:flex;min-width:0;background:#eef0f2;border-bottom:1px solid var(--line)}.gp-dock-tabs button,.gp-right-tabs button{height:34px;display:flex;align-items:center;gap:7px;padding:0 7px 0 10px;border:0;border-right:1px solid var(--line);border-bottom:2px solid transparent;background:#eef0f2;white-space:nowrap}.gp-dock-tabs button.active,.gp-right-tabs button.active{background:#fff;color:var(--accent);border-bottom-color:var(--accent)}.gp-dock-tabs button svg,.gp-right-tabs button svg{width:13px;height:13px}.gp-dock-tabs .gp-dock-collapse{margin-left:auto;border-right:0;padding:0 8px}.gp-right-tabs button[hidden]{display:none}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;font:13px "Segoe UI",Arial,sans-serif;color:var(--ink);background:#e9ecef}button,input,select,textarea{font:inherit}.gp-app{height:100%;display:grid;grid-template:34px 112px minmax(0,1fr) 25px/260px minmax(420px,1fr) 340px;grid-template-areas:"title title title" "ribbon ribbon ribbon" "contents map catalog" "status status status"}.gp-titlebar{grid-area:title;display:flex;align-items:center;border-bottom:1px solid var(--line);background:#f2f3f4;padding:0 10px}.gp-brand{display:flex;align-items:center;gap:7px;color:inherit;text-decoration:none}.gp-brand img{width:21px;height:21px}.gp-document{position:absolute;left:50%;transform:translateX(-50%);font-weight:600}.gp-save-state{margin-left:auto;color:var(--muted);font-size:12px}.gp-ribbon{grid-area:ribbon;background:var(--ribbon);border-bottom:1px solid var(--line);display:grid;grid-template-rows:31px 1fr}.gp-ribbon-tabs{display:flex;align-items:end;padding-left:10px;border-bottom:1px solid var(--line)}.gp-ribbon-tabs button{height:31px;padding:0 17px;border:0;border-bottom:2px solid transparent;background:transparent}.gp-ribbon-tabs button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.gp-ribbon-tools{display:flex;padding:5px 10px;gap:2px;overflow-x:auto}.ribbon-group{display:flex;align-items:stretch;gap:2px;padding:0 9px;border-right:1px solid var(--line);position:relative;padding-bottom:16px}.ribbon-group::after{content:attr(data-label);position:absolute;bottom:0;left:0;right:0;text-align:center;color:#6b7176;font-size:10px}.ribbon-action{min-width:52px;border:1px solid transparent;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.ribbon-action:hover{background:#e7f1fb;border-color:#b9d7f0}.ribbon-action svg{width:22px;height:22px;stroke-width:1.5}.ribbon-action.toolbox svg{color:var(--tool);fill:#fff0df}.gp-pane{background:var(--paper);min-width:0;display:flex;flex-direction:column}.gp-contents{grid-area:contents;border-right:1px solid var(--line)}.gp-catalog{grid-area:catalog;border-left:1px solid var(--line)}.gp-pane-title{height:34px;display:flex;align-items:center;padding:0 8px 0 10px;border-bottom:1px solid var(--line)}.gp-pane-title .icon-btn{margin-left:auto}.icon-btn{width:27px;height:27px;padding:0;border:1px solid transparent;background:transparent;display:inline-grid;place-items:center}.icon-btn:hover{background:#e8eaec;border-color:var(--line)}.icon-btn svg{width:16px;height:16px}.gp-search{margin:8px;display:flex;align-items:center;border:1px solid var(--line-dark);height:29px;background:#fff}.gp-search svg{width:15px;margin:0 7px;color:#72777c}.gp-search input{border:0;outline:0;min-width:0;width:100%}.gp-pane-tabs{height:33px;display:flex;padding-left:8px;border-bottom:1px solid var(--line)}.gp-pane-tabs button{width:34px;border:0;border-bottom:2px solid transparent;background:transparent}.gp-pane-tabs button.active{border-bottom-color:var(--accent);color:var(--accent)}.gp-pane-tabs svg{width:17px}.gp-section-title{padding:8px 10px;font-weight:600}.gp-tree{overflow:auto;flex:1}.tree-row{height:29px;display:flex;align-items:center;gap:7px;padding:0 8px}.tree-row:hover{background:#eef4fa}.tree-row input{accent-color:var(--accent)}.tree-row svg{width:15px}.tree-row .layer-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-row .layer-actions{margin-left:auto;display:none}.tree-row:hover .layer-actions{display:flex}.gp-map-view{grid-area:map;position:relative;min-width:0;min-height:0;background:#d7e4e8}.gp-view-tabs{height:31px;background:#eef0f2;border-bottom:1px solid var(--line)}.gp-view-tabs button{height:31px;padding:0 12px;border:0;border-right:1px solid var(--line);border-top:2px solid var(--accent);background:#fff}.gp-view-tabs svg{width:14px;vertical-align:-2px}.gp-view-tabs span{margin-left:14px}.gp-map-view #gp-map{position:absolute;inset:31px 0 0}.gp-map-tools{position:absolute;top:42px;left:10px;display:grid;background:#fff;border:1px solid var(--line);box-shadow:0 1px 3px #0002}.gp-drop-zone{display:none;position:absolute;inset:70px 60px 45px;border:2px dashed var(--accent);background:#fffffff2;z-index:10;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--accent)}.gp-drop-zone svg{width:38px;height:38px}.gp-drop-zone span{color:var(--muted)}.gp-map-view.dragging .gp-drop-zone{display:flex}.gp-right-tabs{display:flex;border-bottom:1px solid var(--line);overflow-x:auto}.gp-right-tabs button{height:33px;padding:0 10px;border:0;border-bottom:2px solid transparent;background:transparent;white-space:nowrap}.gp-right-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.gp-right-view{display:none;min-height:0;flex:1;overflow:auto}.gp-right-view.active{display:block}.gp-toolbox{padding-bottom:20px}.tool-group{border-bottom:1px solid #e2e4e6}.tool-group-title{width:100%;height:33px;border:0;background:#f4f5f6;text-align:left;font-weight:600;padding:0 10px;display:flex;align-items:center;gap:7px}.tool-group-title svg{width:15px;color:var(--tool)}.tool-row{width:100%;min-height:34px;border:0;background:#fff;text-align:left;padding:5px 10px 5px 26px;display:flex;align-items:center;gap:8px}.tool-row:hover,.tool-row.selected{background:var(--accent-soft)}.tool-code{font-size:10px;color:#747a80;border:1px solid #d2d6d9;padding:1px 3px}.tool-name{flex:1}.availability{width:7px;height:7px;border-radius:50%;background:#4a9a55}.availability.partial{background:#d59020}.editor-head{padding:10px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}.editor-head h2{font-size:15px;margin:0;flex:1}.editor-body{padding:10px}.field{display:grid;gap:4px;margin-bottom:10px}.field label{font-weight:600;font-size:12px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line-dark);padding:6px;background:#fff}.field textarea{min-height:64px;resize:vertical}.field-check{display:flex;gap:7px;align-items:center;margin-bottom:8px}.editor-actions{display:flex;justify-content:flex-end;gap:6px;padding:10px;border-top:1px solid var(--line);position:sticky;bottom:0;background:#fff}.btn{height:30px;padding:0 12px;border:1px solid var(--line-dark);background:#fff}.btn:hover{background:#edf0f2}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--danger)}.builder-list{display:grid;gap:6px}.builder-item{display:flex;align-items:center;gap:7px;padding:7px;border:1px solid var(--line);background:#fafafa}.builder-item .drag{color:#777}.builder-item strong{flex:1}.empty{padding:24px 14px;text-align:center;color:var(--muted)}.gp-statusbar{grid-area:status;background:#f1f3f4;border-top:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:0 8px;font-size:11px;color:#555}.gp-statusbar #gp-coordinates{margin-left:auto}.gp-log{display:none;position:absolute;right:340px;bottom:25px;width:460px;max-height:190px;overflow:auto;background:#1f2327;color:#d8dde2;padding:9px;z-index:20;font:11px Consolas,monospace;box-shadow:0 0 0 1px #0005}.gp-log.open{display:block}.log-error{color:#ff9b91}.log-ok{color:#91d99b}@media(max-width:900px){.gp-app{grid-template-columns:210px minmax(300px,1fr);grid-template-areas:"title title" "ribbon ribbon" "contents map" "status status"}.gp-catalog{position:absolute;right:0;top:146px;bottom:25px;width:min(340px,92vw);z-index:15;box-shadow:-3px 0 12px #0002}.gp-log{right:0}.gp-document{display:none}}.gp-app.left-collapsed{grid-template-columns:0 minmax(420px,1fr) 340px}.gp-app.left-collapsed .gp-contents{display:none}.gp-app.right-collapsed{grid-template-columns:260px minmax(420px,1fr) 0}.gp-app.right-collapsed .gp-catalog{display:none}
.builder-step{align-items:flex-start}.builder-step>div{display:grid;gap:5px;flex:1;min-width:0}.builder-step textarea{width:100%;resize:vertical;border:1px solid var(--line-dark);font:11px Consolas,monospace;padding:6px}.field-help{font-size:11px;color:var(--muted);margin:3px 0 8px}.attribute-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line)}.attribute-table-wrap table{border-collapse:collapse;font-size:11px}.attribute-table-wrap th,.attribute-table-wrap td{padding:5px 7px;border:1px solid var(--line);white-space:nowrap;text-align:left}.attribute-table-wrap th{position:sticky;top:0;background:#f2f4f5}
/* Recuos graduais para deixar explícita a hierarquia das árvores laterais. */
#gp-layer-list .layer-group-title,#gp-catalog-tree>.catalog-group-title,#gp-right-pane .tool-group-title{padding-left:8px}
#gp-layer-list .tree-indent,#gp-catalog-tree>.catalog-group-children>.catalog-item,#gp-catalog-tree>.catalog-group-children>.catalog-tree-node,#gp-right-pane .tool-group>.tool-row{padding-left:28px}
#gp-catalog-tree .catalog-tree-node--group,#gp-right-pane .tool-subgroup-title{padding-left:48px}
#gp-catalog-tree .catalog-tree-node--group+.catalog-tree-children .catalog-tool-row,#gp-right-pane .tool-subgroup .tool-row{padding-left:68px}

/* Docks e árvores seguem o padrão de painéis contextuais do ArcGIS Pro. */
[hidden]{display:none!important}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
/* Impede scroll vertical espúrio na barra de abas do documento (mapa/modelo). */
.gp-view-tabs{overflow-y:hidden}
/* Diretório de camadas: cabeçalho colapsável + botão de refresh por grupo. */
[data-directory-group] .tool-group-title{cursor:pointer;user-select:none}
[data-directory-group] .tool-group-title .tree-chevron{transition:transform .15s ease}
[data-directory-group].collapsed .tool-group-title .tree-chevron{transform:rotate(0)}
[data-directory-group]:not(.collapsed) .tool-group-title .tree-chevron{transform:rotate(90deg)}
[data-directory-group] .tool-group-title .tool-group-count{margin-left:auto;padding:1px 7px;border-radius:9px;background:#e2e7ec;color:var(--muted);font-size:11px;font-weight:600;flex:0 0 auto;white-space:nowrap}
[data-directory-group] [data-directory-refresh]{margin-left:6px;padding:3px 5px;border:0;background:transparent;color:var(--muted);cursor:pointer}
[data-directory-group] [data-directory-refresh]:hover{color:var(--accent);background:#e7f1fb}
[data-directory-group] [data-directory-refresh] svg{width:14px;height:14px}
[data-directory-group] [data-directory-refresh][disabled]{cursor:progress;opacity:.7}
.spinning{animation:gp-spin .8s linear infinite}
@keyframes gp-spin{to{transform:rotate(360deg)}}
/* Navegador de diretórios (Importar do sistema): breadcrumb + lista de pastas/arquivos. */
.dir-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin:0 0 8px;padding:6px 8px;background:#f4f5f6;border:1px solid var(--line);border-radius:5px;font-size:11px}
.dir-breadcrumb .dir-crumb{border:0;background:transparent;color:var(--accent);cursor:pointer;padding:1px 3px;border-radius:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dir-breadcrumb .dir-crumb:hover{background:#e7f1fb;text-decoration:underline}
.dir-breadcrumb .dir-sep{color:var(--muted)}
.dir-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:5px;overflow:hidden}
.dir-list .tool-row{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:0;border-bottom:1px solid #eceef0;background:#fff;text-align:left;cursor:pointer}
.dir-list .tool-row:last-child{border-bottom:0}
.dir-list .tool-row:hover{background:#eef4fa}
.dir-list .tool-row .tool-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dir-list .tool-row>span:last-child{color:var(--muted);font-size:11px;flex:0 0 auto}
.dir-list .dir-folder>svg{color:#c08a14}
.dir-list .dir-file>svg{color:#1877a8}
.dir-list .dir-up>svg{color:var(--muted)}
.dir-list .tool-row[disabled]{cursor:progress;opacity:.7}

.layer-group{border-bottom:1px solid #e5e7e9}.layer-group-title,.catalog-group-title{width:100%;border:0;background:#fff;text-align:left;cursor:pointer}.layer-group-title:hover,.catalog-group-title:hover{background:#eef4fa}.layer-group-title .tree-chevron,.catalog-group-title .tree-chevron,.tool-group-title>svg:first-child,.tool-subgroup-title>svg:first-child{transition:transform .15s ease}.layer-group.collapsed .layer-group-children{display:none}.layer-group.collapsed .tree-chevron,.catalog-group-title.collapsed .tree-chevron,.tool-group.collapsed .tool-group-title>svg:first-child,.tool-subgroup.collapsed .tool-subgroup-title>svg:first-child{transform:rotate(-90deg)}.empty.compact{padding:14px 12px}.tree-row[tabindex]{cursor:default}.tree-row[tabindex]:focus-visible{outline-offset:-2px}
.editor-head>div{min-width:0}.editor-head p{margin:3px 0 0;color:var(--muted);font-size:11px}.option-list{display:grid;gap:7px}.option-card{display:grid;grid-template-columns:auto 20px 1fr;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);background:#fff;cursor:pointer}.option-card:hover{background:#f5f9fd}.option-card.selected{border-color:var(--accent);background:var(--accent-soft)}.option-card svg{width:18px}.option-card span{display:grid;gap:2px}.option-card small{color:var(--muted)}.notice{display:flex;align-items:flex-start;gap:9px;padding:10px;border-left:3px solid var(--accent);background:#eef6fd}.notice svg{width:18px;flex:0 0 auto;color:var(--accent)}.notice p{margin:0;line-height:1.45}
.gp-app.left-collapsed .gp-left-rail,.gp-app.right-collapsed #gp-right-pane{display:none}.gp-app.left-collapsed .gp-map-view,.gp-app.right-collapsed .gp-map-view{min-width:0}.gp-dock-open{display:none!important}.gp-left-dock-tabs:has([data-left-pane][hidden]) .gp-dock-open{display:flex!important}
@media(max-width:900px){.gp-app.left-collapsed{grid-template-columns:0 minmax(300px,1fr)}.gp-app.right-collapsed{grid-template-columns:210px minmax(300px,1fr)}.gp-app.left-collapsed.right-collapsed{grid-template-columns:0 minmax(300px,1fr)}}
.catalog-group-title{height:29px;display:flex;align-items:center;gap:7px;padding:0 8px}.catalog-group-title svg{width:15px}
.catalog-item,.catalog-service-row{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:7px;padding:5px 8px}.catalog-item:hover,.catalog-service-row:hover{background:#eef4fa}.catalog-item>svg,.catalog-service-row>svg{width:15px;height:15px;color:#58646d}.catalog-item-copy,.catalog-service-copy{min-width:0;display:grid;gap:2px}.catalog-item-copy>span,.catalog-service-copy>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-item-copy small,.catalog-service-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}.catalog-service-copy small b{font-weight:600;color:#4d626f}.catalog-service-row{min-height:48px}.catalog-service-actions{display:flex;align-items:center;gap:1px}.catalog-service-actions .icon-btn{width:24px;height:24px;flex:0 0 24px}.catalog-tree-node{width:100%;min-height:29px;padding:4px 8px;border:0;background:#fff;display:flex;align-items:center;gap:7px;text-align:left;color:var(--ink);cursor:pointer}.catalog-tree-node:hover,.catalog-tool-row:hover{background:#eef4fa}.catalog-tree-node svg,.catalog-tool-row svg{width:15px;height:15px;flex:0 0 auto;color:#58646d}.catalog-tree-node .tree-chevron{transition:transform .15s ease}.catalog-tree-node.collapsed .tree-chevron{transform:rotate(-90deg)}.catalog-tree-node--group{padding-left:24px;background:#fafafa;font-size:12px;font-weight:600}.catalog-tree-node--group+ .catalog-tree-children .catalog-tool-row{padding-left:45px}.catalog-tree-children[hidden]{display:none}.catalog-tool-row{width:100%;min-height:29px;padding:4px 8px 4px 28px;border:0;background:#fff;display:flex;align-items:center;gap:7px;text-align:left;color:var(--ink);cursor:pointer}.catalog-tool-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gp-left-dock-tabs #gp-tab-contents.active{color:#16805b;border-bottom-color:#16805b}.gp-left-dock-tabs #gp-tab-catalog.active{color:#6b4db3;border-bottom-color:#6b4db3}.gp-contents .layer-group-title>svg:nth-child(2){color:#16805b}.gp-contents .layer-group:nth-child(2) .layer-group-title>svg:nth-child(2){color:#1877a8}.catalog-group-title--mapas>svg:nth-child(2),.catalog-item--mapas>svg{color:#16805b}.catalog-group-title--toolboxes>svg:nth-child(2),.catalog-tree-node--group>svg:nth-child(2),.catalog-tool-row>svg{color:#d97819}.catalog-group-title--bancos_de_dados>svg:nth-child(2),.catalog-item--bancos_de_dados>svg{color:#1877a8}.catalog-group-title--pastas>svg:nth-child(2),.catalog-item--pastas>svg{color:#c08a14}.catalog-group-title--conexoes>svg:nth-child(2),.catalog-item--conexoes>svg{color:#6b4db3}.catalog-service-row--stac>svg{color:#1877a8}.catalog-service-row--mapbiomas>svg{color:#16805b}.catalog-service-row--ogcapi>svg{color:#6b4db3}.catalog-service-row--wms>svg,.catalog-service-row--wmts>svg,.catalog-service-row--xyz>svg{color:#d97819}
.portal-results{display:grid;gap:7px;padding:10px}.portal-result{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:5px;padding:8px;border:1px solid var(--line);background:#fff}.portal-result strong,.portal-result small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-result small{color:var(--muted);font-size:11px}.portal-result select{grid-column:1;min-width:0;height:28px;border:1px solid var(--line-dark);background:#fff}.portal-result .portal-add-to-map{grid-column:2;grid-row:1 / span 2;align-self:center;width:30px;height:30px}.portal-result .portal-add-to-map svg{width:16px;height:16px}.portal-result .portal-add-to-map:not(:disabled):hover{color:var(--accent);background:#e7f1fb;border-color:#b9d7f0}
.gp-load-form .field label{font-weight:400}.required-label::before{content:"*";color:#c83b2b;margin-right:4px;font-weight:600}.tool-parameter-head{display:grid;grid-template-columns:27px minmax(0,1fr) 27px}.tool-parameter-head h2{text-align:center;font-weight:400;color:#8b3f27}.tool-head-action{grid-column:3}.tool-head-action svg{width:19px;color:#4f565c}.local-file-picker{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:5px;min-width:0}.local-file-picker input[type="text"]{height:28px;padding:4px 6px;overflow:hidden;text-overflow:ellipsis}.browse-btn{width:30px;height:28px;padding:0;border:0;background:transparent;display:grid;place-items:center;color:#d0a900}.browse-btn:hover{background:#edf2f6}.browse-btn svg{width:18px;fill:#fff5a8}.gp-load-form .editor-actions{padding:10px 12px}.gp-load-form .editor-actions .primary{min-width:92px;white-space:nowrap}
@media(min-width:901px){.gp-app{grid-template-columns:260px minmax(420px,1fr) 380px}.gp-app.left-collapsed{grid-template-columns:0 minmax(420px,1fr) 380px}.gp-app.right-collapsed{grid-template-columns:260px minmax(420px,1fr) 0}.gp-log{right:380px}}
.layer-symbol{width:14px;height:14px;display:inline-block;position:relative;flex:0 0 auto;--layer-color:#1683c4}.layer-symbol.point{width:9px;height:9px;margin:0 2px;border-radius:50%;background:var(--layer-color);border:1px solid #fff;box-shadow:0 0 0 1px var(--layer-color)}.layer-symbol.line::after{content:"";position:absolute;left:0;right:0;top:6px;border-top:2px solid var(--layer-color);transform:rotate(-25deg)}.layer-symbol.polygon{background:color-mix(in srgb,var(--layer-color) 32%,transparent);border:2px solid var(--layer-color)}.layer-symbol.raster{background:linear-gradient(135deg,#f5d76e,#d97819 48%,#438b69)}.layer-symbol.geometry{border:2px solid var(--layer-color);transform:rotate(45deg)}.tree-row .layer-zoom{display:none;margin-left:auto;width:24px;height:24px}.tree-row:hover .layer-zoom,.tree-row.active .layer-zoom{display:grid}.tree-row .layer-zoom svg{width:13px}
#gp-layer-list .layer-symbol{cursor:pointer;border-radius:3px;transition:box-shadow .12s,transform .12s}#gp-layer-list .layer-symbol:hover{transform:scale(1.18)}#gp-layer-list .tree-row:not(.layer-group-title):hover .layer-symbol,#gp-layer-list .tree-row.active .layer-symbol{box-shadow:0 0 0 2px rgba(22,131,196,.35)}
.symbology-menu{position:fixed;z-index:1200;width:260px;max-width:calc(100vw - 16px);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 32px rgba(15,23,42,.22);padding:0 0 10px;font-size:12px}.symbology-menu-head{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 10px;border-bottom:1px solid var(--line);background:#f5f7f9;border-radius:8px 8px 0 0}.symbology-menu-head svg{width:15px;flex:0 0 auto;color:var(--brand,#1683c4)}.symbology-menu-head strong{flex:1;min-width:0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.symbology-menu-close{width:24px;height:24px;flex:0 0 auto}.symbology-menu-close svg{width:14px}.symbology-menu .geo-properties-grid{padding:10px}.symbology-menu-hint{margin:0 10px;color:var(--muted,#64748b);font-size:11px}
.geo-properties-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;align-items:end}.geo-properties-grid label,.geo-properties-grid .sym-field{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:11px;font-weight:600;line-height:1.25;color:var(--text,#334155)}.geo-properties-grid input,.geo-properties-grid select{width:100%;min-width:0;box-sizing:border-box;height:30px;padding:3px 6px;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:12px}.geo-properties-grid input[type="color"]{padding:2px;cursor:pointer}.geo-properties-grid label:has(input[type="range"]){grid-column:1 / -1;gap:5px}.geo-properties-grid input[type="range"]{height:auto;padding:0;border:0;background:transparent;accent-color:var(--brand,#1683c4)}.property-symbology .geo-properties-grid{padding:10px}
.symbol-select{position:relative;min-width:0}.symbol-select-trigger{display:flex;align-items:center;gap:6px;width:100%;height:30px;padding:2px 6px;border:1px solid var(--line);border-radius:5px;background:#fff;cursor:pointer;text-align:left}.symbol-select-trigger:hover{border-color:var(--line-dark,#9aa6b1)}.symbol-select.open .symbol-select-trigger{border-color:var(--brand,#1683c4);box-shadow:0 0 0 2px rgba(22,131,196,.2)}.symbol-select-preview{display:flex;align-items:center;flex:0 0 auto}.symbol-select-preview .sym-preview{width:40px;height:13px}.symbol-select-text{flex:1;min-width:0;font-size:11px;font-weight:400;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.symbol-select-caret{width:13px;flex:0 0 auto;color:var(--muted);transition:transform .12s}.symbol-select.open .symbol-select-caret{transform:rotate(180deg)}.symbol-select-list{position:absolute;z-index:1300;top:calc(100% + 3px);left:0;right:0;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 20px rgba(15,23,42,.18)}.symbol-select-list li{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:4px;cursor:pointer;font-size:11px;font-weight:400;color:var(--ink)}.symbol-select-list li:hover{background:#eef4f9}.symbol-select-list li[aria-selected="true"]{background:#e2eef7}.symbol-select-list .sym-preview{width:44px;height:13px;flex:0 0 auto}.symbol-select-list li span{flex:1;min-width:0}
.geo-properties-grid .color-field{position:relative;display:block;width:100%;height:30px;border:1px solid var(--line);border-radius:5px;background:#fff;overflow:hidden;cursor:pointer}.geo-properties-grid .color-field-preview{position:absolute;inset:0;display:flex;align-items:stretch;padding:4px 6px}.geo-properties-grid .color-field-preview svg{width:100%;height:100%}.geo-properties-grid .color-field input[type="color"]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;opacity:0;cursor:pointer}
.symbology-menu{width:284px}.sym-groups{display:flex;flex-direction:column}.sym-group{padding:8px 10px 10px}.sym-group+.sym-group{border-top:1px solid var(--line)}.sym-group-title{margin:0 0 7px;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#64748b)}.sym-group .geo-properties-grid{padding:0}.symbology-menu .sym-group .geo-properties-grid{padding:0}.property-symbology .sym-group .geo-properties-grid{padding:0}
#gp-editor-view .editor-body{min-height:0}.symbology-actions{position:sticky;bottom:0;z-index:5;display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 12px rgba(15,23,42,.06)}.symbology-actions .btn{min-width:88px;height:32px}.symbology-actions .btn.ghost{background:#fff;border:1px solid var(--line-dark,#9aa6b1);color:var(--ink)}.symbology-actions .btn.ghost:hover{background:#f1f4f6}.symbology-actions.dirty .btn.primary{box-shadow:0 0 0 2px rgba(22,131,196,.25)}
.gp-right-tabbar{height:35px;display:flex;min-width:0;border-bottom:1px solid var(--line);background:#eef0f2}.gp-right-tabbar .gp-right-tabs{flex:1;min-width:0;border-bottom:0}.gp-right-tabbar .gp-right-tabs button{height:34px;padding:0 8px}.gp-right-collapse{width:34px;height:34px;flex:0 0 34px;border-left:1px solid var(--line);background:#eef0f2}.gp-right-collapse svg{width:15px}
.gp-right-tabbar .gp-right-tabs{overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.gp-right-tabbar .gp-right-tabs::-webkit-scrollbar{display:none}.gp-right-tabbar .gp-right-tabs button{min-width:max-content;padding:0 5px 0 7px;font-size:11px;flex:0 0 auto}.gp-right-tabbar .gp-right-tabs button span{white-space:nowrap}.gp-right-tabbar .gp-right-tabs button>svg{width:12px;height:12px;margin-left:1px;border-radius:2px}.gp-right-tabbar .gp-right-tabs button>svg:hover{background:#d6dadd}.editor-head h2{min-width:0;overflow-wrap:anywhere}.property-list{min-width:0}.property-list dd{min-width:0}
.gp-right-tabbar [data-tab-icon]{width:13px!important;height:13px!important;margin:0!important;color:#4e5961}.gp-right-tabbar [data-tab-icon]:hover{background:transparent!important}
.gp-component-placeholder{position:absolute;left:50%;top:56%;transform:translate(-50%,-50%);z-index:5;display:grid;gap:4px;justify-items:center;max-width:min(420px,78%);padding:10px 14px;border:1px solid #d6e0e8;background:#ffffffeb;color:#31404b;box-shadow:0 4px 18px #0d1f2a1a;pointer-events:none}.gp-component-placeholder strong{font-size:13px}.gp-component-placeholder span{font-size:12px;text-align:center;line-height:1.35}
.execution-progress{padding:9px 11px 11px;border-top:1px solid var(--line);background:#eef6fd;color:#245b84}.execution-progress-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;font-size:11px}.execution-progress-head strong{font-variant-numeric:tabular-nums}.execution-progress-track{height:8px;overflow:hidden;border:1px solid #a8c9e2;background:#fff}.execution-progress-track span{display:block;width:0;height:100%;background:var(--accent);transition:width .35s ease}.execution-progress.complete{background:#edf8ef;color:#28733a}.execution-progress.complete .execution-progress-track{border-color:#9bc8a4}.execution-progress.complete .execution-progress-track span{background:#3b914d}.execution-progress.failed{background:#fff0ef;color:var(--danger)}.execution-progress.failed .execution-progress-track span{background:var(--danger)}
.execution-progress-log{max-height:150px;overflow:auto;margin:8px 0 0;padding:6px 0 0;list-style:none;border-top:1px solid #c8ddec;background:transparent;font:10px/1.35 Consolas,"Courier New",monospace}.execution-progress-log li{display:grid;grid-template-columns:58px minmax(0,1fr);gap:6px;padding:2px 0;color:#365b75}.execution-progress-log li.error{color:var(--danger)}.execution-progress-log time{color:#738694;font-variant-numeric:tabular-nums}.execution-progress-log span{overflow-wrap:anywhere}
.history-item{border:1px solid var(--line);border-radius:4px;background:#fff}.history-item summary{display:grid;grid-template-columns:20px minmax(130px,1fr) auto;gap:8px;align-items:center;padding:9px;cursor:pointer}.history-item summary::marker{color:var(--muted)}.history-item summary span{font-size:11px;color:var(--muted)}.history-details{padding:0 12px 12px;border-top:1px solid var(--line)}.history-details>strong{display:block;margin-top:10px;font-size:11px}.history-details pre{max-height:180px;overflow:auto;margin:4px 0 0;padding:8px;background:#f5f6f7;border-radius:3px;font-size:11px;white-space:pre-wrap}
.gp-identify-popup h3{margin:0;padding:8px 36px 8px 10px;border-bottom:1px solid var(--line);font-size:13px;overflow-wrap:anywhere}.gp-identify-popup>p{margin:0;padding:6px 10px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}.gp-popup-attributes{max-height:280px;overflow:auto}.gp-popup-attributes table{width:100%;border-collapse:collapse;font-size:11px}.gp-popup-attributes th,.gp-popup-attributes td{padding:5px 8px;border-bottom:1px solid #e4e7e9;text-align:left;vertical-align:top;overflow-wrap:anywhere}.gp-popup-attributes th{width:38%;background:#f4f5f6;font-weight:600}.maplibregl-popup-content{padding:0!important;border-radius:3px!important;overflow:hidden}.maplibregl-popup-close-button{z-index:1;width:25px;height:25px;font-size:18px}
.gp-status-legend{position:absolute;left:12px;bottom:34px;z-index:5;background:#ffffffee;border:1px solid #cdd6df;border-radius:8px;padding:8px 10px;font-size:11px;color:#22323c;box-shadow:0 2px 10px rgba(15,23,42,.18);max-width:230px}.gp-status-legend-title{font-weight:700;margin-bottom:5px;color:#12303f}.gp-status-legend-item{display:flex;align-items:center;gap:7px;line-height:1.6}.gp-status-legend-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid #111;flex:0 0 auto}
.attribute-workspace{height:100%;min-height:360px;display:grid;grid-template-rows:34px minmax(0,1fr) 34px;background:#fff}.attribute-layer-tabs{display:flex;align-items:end;overflow-x:auto;border-bottom:1px solid var(--line);background:#eef0f2}.attribute-layer-tabs button{height:34px;max-width:240px;padding:0 12px;border:0;border-right:1px solid var(--line);border-bottom:2px solid transparent;background:#eef0f2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attribute-layer-tabs button.active{background:#fff;color:var(--accent);border-bottom-color:var(--accent)}.attribute-table-area{min-height:0;overflow:hidden;padding:7px;display:flex;flex-direction:column}.attribute-table-area .attribute-table-wrap{flex:1;min-height:0}.attribute-table-wrap tbody tr.selected-record td{background:#c8f1fb;border-color:#8dd7e8}.attribute-table-wrap tbody tr.selected-record td:first-child{box-shadow:inset 3px 0 #00a1c9}.attribute-footer{display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);background:#eef0f2;padding-right:9px}.attribute-footer>span{margin-left:auto;color:var(--muted);font-size:11px}.attribute-record-tabs{height:100%;display:flex}.attribute-record-tabs button{height:34px;padding:0 12px;border:0;border-right:1px solid var(--line);border-top:2px solid transparent;background:transparent}.attribute-record-tabs button.active{background:#fff;color:var(--accent);border-top-color:var(--accent)}
.ribbon-action.active-tool{background:var(--accent-soft);border-color:#89bde5;color:#005a9e;box-shadow:inset 0 -2px var(--accent)}
.ribbon-action[data-action="delete-layer"] svg{color:var(--danger);stroke-width:1.5}
.toolbox-ribbon-icon{position:relative;width:28px;height:25px;display:grid;place-items:center;color:var(--tool)}
/* Camadas: símbolo/legenda abaixo do nome */
#gp-layer-list .tree-layer{height:auto;align-items:flex-start;padding-top:5px;padding-bottom:5px}
#gp-layer-list .tree-layer>input[type="checkbox"]{margin-top:2px;flex:0 0 auto}
.layer-entry{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.layer-entry-head{display:flex;align-items:center;gap:6px;min-width:0}
.layer-entry-head .layer-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tree-layer .layer-zoom{margin-left:auto}
.layer-legend{display:flex;flex-direction:column;gap:2px;cursor:pointer;border-radius:4px;padding:1px 2px;transition:background .12s}
#gp-layer-list .tree-layer:hover .layer-legend,#gp-layer-list .tree-layer.active .layer-legend{background:rgba(22,131,196,.08)}
.layer-legend--single{padding-left:1px}
.layer-legend-item{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--muted,#64748b);line-height:1.35;min-width:0}
.layer-legend .legend-swatch{width:13px;height:13px;flex:0 0 auto;border-radius:3px;border:1px solid rgba(15,23,42,.25)}
.layer-legend .legend-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.layer-legend .legend-more{color:var(--accent,#1683c4);font-style:italic}
/* Painel Simbologia (aba dinâmica) */
.sym-editor{display:flex;flex-direction:column;min-height:0}
.sym-typebar{display:flex;gap:4px;padding:8px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}
.sym-typebar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;font-size:10.5px;font-weight:600;color:var(--ink)}
.sym-typebar button svg{width:16px}
.sym-typebar button:hover{border-color:var(--line-dark,#9aa6b1)}
.sym-typebar button.active{background:var(--accent-soft,#e2eef7);border-color:var(--accent,#1683c4);color:#005a9e}
.sym-body{display:flex;flex-direction:column}
.sym-attr .sym-attr-controls{display:flex;flex-wrap:wrap;align-items:end;gap:8px}
.sym-field-block{display:flex;flex-direction:column;gap:3px;min-width:120px;flex:1;font-size:11px;font-weight:600;color:var(--text,#334155)}
.sym-field-block select,.sym-field-block input{height:30px;padding:3px 6px;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:12px;font-weight:400}
.sym-field-block input[type="color"]{padding:2px;cursor:pointer}
.sym-attr-controls .btn{height:30px;display:inline-flex;align-items:center;gap:5px;flex:0 0 auto}
.sym-attr-controls .btn svg{width:14px}
.sym-modo{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:6px;padding:5px 10px;margin:0;flex:1;min-width:150px}
.sym-modo legend{padding:0 4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#64748b)}
.sym-modo label{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:500}
.sym-classes{display:flex;flex-direction:column;gap:5px;margin-top:4px}
.sym-class-row{display:flex;align-items:center;gap:8px}
.sym-class-row input[type="color"]{width:30px;height:28px;flex:0 0 auto;padding:2px;border:1px solid var(--line);border-radius:5px;background:#fff;cursor:pointer}
.sym-class-label{flex:1;min-width:0;height:28px;padding:3px 6px;border:1px solid var(--line);border-radius:5px;font-size:12px}
.sym-class-range{display:flex;align-items:center;gap:5px;flex:1;min-width:0;font-size:11.5px;color:var(--text,#334155);font-variant-numeric:tabular-nums}
.sym-class-range .sym-range-sep{color:var(--muted,#94a3b8)}
.sym-class-range input[type="number"]{width:82px;height:28px;padding:3px 6px;border:1px solid var(--line);border-radius:5px;font-size:12px}
.sym-class-count{min-width:44px;text-align:right;font-size:10.5px;color:var(--muted,#64748b);font-variant-numeric:tabular-nums}
.sym-class-row [data-sym-remove]{width:26px;height:26px;flex:0 0 auto}
.sym-class-row [data-sym-remove] svg{width:14px}
.sym-outros{margin-top:9px;flex-direction:row;align-items:center;gap:8px}
.sym-outros span{flex:1}
.sym-outros input[type="color"]{width:44px}
.sym-hint{margin:2px 0;color:var(--muted,#64748b);font-size:11.5px;line-height:1.4}
.ramp-select{width:100%}
.ramp-swatch{display:block;width:52px;height:13px;flex:0 0 auto;border-radius:3px;border:1px solid rgba(15,23,42,.2)}
.ramp-select .symbol-select-preview{flex:0 0 auto}
.ramp-select .symbol-select-text{flex:1;min-width:0}
.symbol-select-list .ramp-swatch{width:64px;height:14px}
.layer-symbol-shape{width:16px;height:14px;display:inline-flex;align-items:center}
.layer-symbol-shape .sym-preview{width:16px;height:14px}
.campo-select{width:100%}
.campo-select .symbol-select-preview.campo-preview{flex:1;min-width:0;display:flex;align-items:center;gap:6px;overflow:hidden;font-weight:400}
.campo-nome{color:#111;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.campo-count{color:#2f6fb0;font-weight:500;font-size:11px;flex:0 0 auto}
.campo-placeholder{color:var(--muted,#64748b);font-weight:400}
.campo-select .symbol-select-list li{display:flex;align-items:center;gap:6px}
.campo-select .symbol-select-list li .campo-nome{flex:1;min-width:0}
.campo-empty{padding:6px;color:var(--muted,#64748b);font-size:11px}
.toolbox-ribbon-icon svg{width:27px!important;height:25px!important;color:currentColor!important;fill:color-mix(in srgb,currentColor 14%,white)!important}
.toolbox-ribbon-icon b{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);font:700 11px/1 "Segoe UI Symbol","Segoe UI",sans-serif;color:currentColor;text-shadow:0 0 2px #fff,0 0 2px #fff}
.ribbon-action[data-action="tools"] .toolbox-ribbon-icon{color:#b76616}
.ribbon-action[data-action="tools-vector-raster"] .toolbox-ribbon-icon{color:#16805b}
.ribbon-action[data-action="tools-science"] .toolbox-ribbon-icon{color:#6b4db3}
.ribbon-action[data-action="tools-interpolation"] .toolbox-ribbon-icon{color:#1877a8}
.selection-scope{display:flex;align-items:center;gap:12px;margin:0 0 10px;padding:7px 8px;border:1px solid var(--line);min-width:0;white-space:nowrap}
.selection-scope legend{padding:0 4px;font-size:12px;font-weight:600}
.selection-scope label{display:inline-flex;align-items:center;gap:4px;margin:0;font-size:12px;font-weight:400;white-space:nowrap}
.selection-scope input[type="radio"]{width:auto!important;margin:0;flex:0 0 auto}
/* Linguagem visual única para qualquer ferramenta aberta no painel lateral direito. */
#gp-right-pane .editor-head{min-height:48px;padding:10px 12px;background:#fff}#gp-right-pane .editor-head>div{flex:1}#gp-right-pane .editor-head h2{margin:0;min-width:0;text-align:center;color:#8b3f27;font:400 15px "Segoe UI",Arial,sans-serif;line-height:1.25}#gp-right-pane .editor-head p{text-align:center;color:var(--muted);font:400 11px "Segoe UI",Arial,sans-serif}#gp-right-pane .editor-body{padding:12px}#gp-right-pane .field{gap:5px;margin-bottom:11px}#gp-right-pane .field label{color:#343a40;font:400 12px "Segoe UI",Arial,sans-serif}#gp-right-pane .field input,#gp-right-pane .field select,#gp-right-pane .field textarea,#gp-right-pane .builder-step textarea{width:100%;min-width:0;border:1px solid var(--line-dark);border-radius:0;background:#fff;color:var(--ink);font:400 13px "Segoe UI",Arial,sans-serif}#gp-right-pane .field input,#gp-right-pane .field select{height:30px;padding:5px 7px}#gp-right-pane .field textarea,#gp-right-pane .builder-step textarea{min-height:64px;padding:6px 7px;resize:vertical}#gp-right-pane .field input[readonly]{background:#f3f4f5;color:#596168}#gp-right-pane .field input.readonly-active[readonly]{background:#fff;color:var(--ink)}#gp-right-pane .field input:focus,#gp-right-pane .field select:focus,#gp-right-pane .field textarea:focus,#gp-right-pane .builder-step textarea:focus{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:-1px}#gp-right-pane .field-check{color:#343a40;font-weight:400}#gp-right-pane .field-check input{accent-color:var(--accent)}#gp-right-pane .editor-actions{gap:6px;padding:10px 12px;background:#fff}#gp-right-pane .editor-actions .btn{min-width:92px;height:30px;font-weight:400}#gp-right-pane .form-section-title{margin:16px -12px 10px;padding:8px 12px;color:#343a40;font-weight:400}#gp-right-pane .field-help{font:400 11px/1.4 "Segoe UI",Arial,sans-serif}#gp-right-pane .local-file-picker input[type="text"]{height:30px;padding:5px 7px}#gp-right-pane .browse-btn{height:30px}
.property-symbology{margin-top:14px;border:1px solid var(--line);background:#fafafa}.property-symbology h3{margin:0;padding:8px 10px;border-bottom:1px solid var(--line);color:#8b3f27;font-size:12px;font-weight:400}.layer-color-control{display:grid;gap:7px;padding:10px}.layer-color-control>label{color:#343a40;font-size:12px}.layer-color-control>div{display:grid;grid-template-columns:46px 1fr;align-items:center;gap:9px}.layer-color-control input[type="color"]{width:46px;height:31px;padding:2px;border:1px solid var(--line-dark);background:#fff;cursor:pointer}.layer-color-control output{font:12px Consolas,monospace;color:var(--muted)}.layer-color-control p{margin:0;color:var(--muted);font-size:11px;line-height:1.4}

/* Checkboxes compactos dos parâmetros exibidos no painel lateral direito. */
#gp-right-pane .field-check{
  display:flex;
  align-items:center;
  gap:7px;
  min-height:20px;
  line-height:1.25;
}
#gp-right-pane .field-check input[type="checkbox"]{
  flex:0 0 15px;
  width:15px!important;
  height:15px!important;
  min-width:15px;
  margin:0;
  padding:0;
  accent-color:var(--accent);
}

/* Editor visual SIRCADI: linguagem própria para funções e fluxos. */
.gp-view-tabs{display:flex;overflow-x:auto}.gp-view-tabs button{display:flex;align-items:center;gap:6px;white-space:nowrap}.gp-view-tabs button:not(.active){border-top-color:transparent;background:#e9ecef}.gp-view-tabs button>svg:last-child{width:12px;height:12px;margin-left:5px}.gp-modeler-host{position:absolute;inset:31px 0 0;background:#f3f5f6}.gp-model-document{width:100%;height:100%;display:grid;grid-template-columns:230px minmax(480px,1fr) 260px}.model-palette,.model-inspector{min-width:0;background:#fff;display:flex;flex-direction:column}.model-palette{border-right:1px solid var(--line)}.model-inspector{border-left:1px solid var(--line)}.model-palette-head,.model-inspector-head{min-height:36px;padding:10px;border-bottom:1px solid var(--line)}.model-palette-head .gp-search{margin:8px 0 0}.model-palette-list{overflow:auto}.model-palette-group>strong{display:block;padding:8px 10px;background:#f0f2f3;border-block:1px solid #dfe2e4;color:#555;font-size:11px;text-transform:uppercase}.model-palette-group button{width:100%;min-height:31px;padding:5px 10px;border:0;background:#fff;display:flex;align-items:center;gap:7px;text-align:left}.model-palette-group button:hover{background:var(--accent-soft)}.model-palette-group button svg{width:15px;color:#66727a}.model-inspector-body{padding:10px;overflow:auto}.model-canvas-wrap{min-width:0;min-height:0;display:grid;grid-template-rows:39px 1fr}.model-toolbar{display:flex;align-items:center;gap:2px;padding:4px 6px;background:#fff;border-bottom:1px solid var(--line);overflow-x:auto}.model-toolbar button{height:29px;padding:0 8px;border:1px solid transparent;background:#fff;display:flex;align-items:center;gap:5px;white-space:nowrap}.model-toolbar button:hover{background:#eaf3fb;border-color:#b9d7f0}.model-toolbar button svg{width:15px}.model-toolbar span{flex:1}.model-canvas{position:relative;min-width:0;min-height:0;overflow:auto;background-color:#f8fafb;background-image:radial-gradient(#c9d1d6 1px,transparent 1px);background-size:20px 20px}.model-links,.model-nodes{position:absolute;inset:0;width:2000px;height:1400px}.model-links{overflow:visible;pointer-events:none}.model-links path{fill:none;stroke:#617785;stroke-width:2}.model-links marker path{fill:#617785;stroke:none}.model-links text{font:10px "Segoe UI",sans-serif;fill:#59666e}.model-node{position:absolute;width:174px;min-height:68px;display:grid;grid-template-columns:37px 1fr;align-items:center;padding:9px 13px;background:#fff;border:2px solid #668393;border-radius:17px;box-shadow:0 2px 5px #0002;cursor:move;user-select:none}.model-node.algorithm{border-radius:8px;border-color:#b66e2e;background:#fffaf3}.model-node.function{border:4px double #6653a3;background:#faf8ff}.model-node.iterator{border-color:#26806b;background:#f3fcf8;clip-path:polygon(12% 0,88% 0,100% 50%,88% 100%,12% 100%,0 50%);padding-inline:20px}.model-node.input,.model-node.output{border-radius:50%;border-color:#2879aa;background:#f2f9fd}.model-node.selected{filter:drop-shadow(0 0 3px #0078d4);outline:2px solid #62aee4;outline-offset:2px}.model-node .node-icon{display:grid;place-items:center}.model-node .node-icon svg{width:22px;color:#52646e}.model-node strong,.model-node small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-node strong{font-size:12px}.model-node small{margin-top:3px;color:#6b747a;font-size:10px}.node-port{position:absolute;width:13px;height:13px;padding:0;border:2px solid #fff;border-radius:50%;background:#4c7185;box-shadow:0 0 0 1px #4c7185}.node-port.input{left:-8px;top:27px}.node-port.output{right:-8px;top:27px}.model-hint{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);max-width:430px;padding:12px 16px;background:#ffffffd9;border:1px dashed #aeb8be;color:#6c777d;text-align:center;pointer-events:none}.model-nodes:not(:empty)+.model-hint{display:none}@media(max-width:1100px){.gp-model-document{grid-template-columns:190px minmax(400px,1fr)}.model-inspector{position:absolute;right:0;top:39px;bottom:0;width:250px;z-index:4;box-shadow:-3px 0 8px #0002}}
.model-parameters{margin:14px 0;padding-top:10px;border-top:1px solid var(--line)}.model-parameters-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.model-parameter-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr) 26px;gap:5px;align-items:end;padding:7px 0;border-bottom:1px solid #edf0f2}.model-parameter-row .field{margin:0}.model-parameter-row .icon-btn{margin-bottom:2px}.model-parameters code{padding:1px 3px;background:#eef1f3;color:#39434a}
.model-node.variable{border-radius:50%;border-color:#31815e;background:#f1fbf5;min-height:62px}.model-node.variable .node-icon svg{color:#31815e}

.ribbon-action:disabled{opacity:.42;cursor:not-allowed;background:transparent;border-color:transparent}.ribbon-action:disabled:hover{background:transparent;border-color:transparent}.ribbon-action.active-tool{background:var(--accent-soft);border-color:#89bde5;color:#005a9e;box-shadow:inset 0 -2px var(--accent)}
.ribbon-action[data-model-menu]{padding-right:14px}
.ribbon-action[data-model-menu]::after{content:"";position:absolute;right:5px;bottom:22px;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid #6b7176;pointer-events:none}
.ribbon-action[data-model-menu][aria-expanded="true"]{background:var(--accent-soft);border-color:#89bde5}
.model-menu{position:fixed;z-index:200;min-width:230px;max-width:320px;max-height:360px;overflow:hidden;display:flex;flex-direction:column;padding:0;background:#fff;border:1px solid var(--line-dark);box-shadow:0 6px 18px #0003;color:var(--ink);font-size:12px}
.model-menu-search{padding:6px 8px;border-bottom:1px solid #eef0f2;background:#fafbfc}
.model-menu-search input{width:100%;height:26px;padding:0 7px;border:1px solid var(--line-dark);background:#fff}
.model-menu-list{overflow:auto;padding:2px 0}
.model-menu-group{padding:6px 12px 2px;color:var(--muted);font-size:10px;text-transform:uppercase;font-weight:600;letter-spacing:.4px}
.model-menu button{width:100%;min-height:29px;padding:4px 12px;border:0;background:#fff;display:flex;align-items:center;gap:8px;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.model-menu button:hover:not(:disabled),.model-menu button:focus-visible{background:var(--accent-soft);outline:none}
.model-menu button:disabled{opacity:.5;cursor:not-allowed}
.model-menu button svg{width:14px;height:14px;color:#66727a;flex:0 0 auto}
.model-menu button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.model-menu-empty{padding:16px 12px;text-align:center;color:var(--muted);font-size:11px}
.gp-model-document{grid-template-columns:minmax(0,1fr)!important}
.model-canvas-wrap{grid-template-rows:minmax(0,1fr)!important}
#gp-model-elements-view,#gp-model-properties-view{padding:0}
#gp-model-elements-view.active,#gp-model-properties-view.active{display:flex;flex-direction:column;min-height:0;flex:1}
#gp-model-elements-view .model-palette,#gp-model-properties-view .model-inspector{flex:1;min-height:0;border:0}
#gp-model-elements-view .model-palette-head,#gp-model-properties-view .model-inspector-head{background:#fff}

/* Hierarquia visual dos elementos: ícone, nome e classe de arquivo. */
.model-node{width:184px;min-height:94px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 15px;text-align:center}
.model-node .node-icon{width:100%;height:27px;display:grid;place-items:center}
.model-node .node-icon svg{width:23px;height:23px}
.model-node>strong,.model-node>small{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}
.model-node>strong{font-size:12px;line-height:16px}
.model-node>small{margin:0;color:#6b747a;font-size:10px;line-height:14px}
.model-node .node-port.input{top:40px}.model-node .node-port.output{top:40px}

/* Iterador: hexágono em camadas, sem recortar texto ou pontos de conexão. */
.model-node.iterator{
  min-height:104px;
  padding:13px 25px;
  border:0;
  border-radius:0;
  background:transparent;
  clip-path:none;
  box-shadow:none;
  isolation:isolate;
}
.model-node.iterator::before,.model-node.iterator::after{
  content:"";
  position:absolute;
  inset:0;
  clip-path:polygon(13% 0,87% 0,100% 50%,87% 100%,13% 100%,0 50%);
  pointer-events:none;
}
.model-node.iterator::before{z-index:-2;background:#287a65;filter:drop-shadow(0 2px 3px #0003)}
.model-node.iterator::after{z-index:-1;inset:3px;background:linear-gradient(180deg,#f8fffb,#e8f7ef)}
.model-node.iterator .node-icon{
  width:34px;
  height:30px;
  border-radius:50%;
  background:#d6eee3;
  color:#246d5a;
}
.model-node.iterator .node-icon svg{width:19px;height:19px;color:#246d5a}
.model-node.iterator>strong{max-width:132px;color:#204e42}
.model-node.iterator>small{max-width:132px;color:#52756b}
.model-node.iterator .node-port{z-index:3;background:#287a65;box-shadow:0 0 0 1px #287a65}
.model-node.iterator .node-port.input,.model-node.iterator .node-port.output{top:46px}
.model-node.iterator.selected{outline:0;filter:drop-shadow(0 0 4px #168f70)}

.model-process-backdrop{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:24px;background:#12202db8;backdrop-filter:blur(2px)}
.model-process-modal{width:min(620px,calc(100vw - 32px));max-height:min(680px,calc(100vh - 48px));display:grid;grid-template-rows:auto 5px minmax(180px,1fr) auto;overflow:hidden;border:1px solid #8ca9bd;border-radius:10px;background:#f8fbfd;box-shadow:0 22px 70px #07131f80;color:#243746}
.model-process-modal header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 20px;background:#fff;border-bottom:1px solid #d8e3eb}.model-process-modal header small{color:#60798b}.model-process-modal header h2{margin:3px 0 0;font-size:17px}.model-process-running,.model-process-complete,.model-process-failed{flex:none;padding:5px 9px;border-radius:12px;background:#e8f2fa;color:#286487;font-size:11px;font-weight:700}.model-process-complete{background:#e4f4e8;color:#28723a}.model-process-failed{background:#fde8e6;color:#9c3029}
.model-process-track{overflow:hidden;background:#dce8ef}.model-process-track span{display:block;width:38%;height:100%;background:#3184bc;animation:model-process-moving 1.15s ease-in-out infinite}.model-process-modal.complete .model-process-track span{width:100%;animation:none;background:#3b914d}.model-process-modal.failed .model-process-track span{width:100%;animation:none;background:var(--danger)}
@keyframes model-process-moving{0%{transform:translateX(-100%)}100%{transform:translateX(265%)}}
.model-process-log{min-height:230px;overflow:auto;margin:0;padding:14px 20px;list-style:none;background:#f3f8fb;font:11px/1.45 Consolas,"Courier New",monospace}.model-process-log li{display:grid;grid-template-columns:65px 10px minmax(0,1fr);align-items:start;gap:7px;padding:5px 0;color:#36566c}.model-process-log time{color:#738694}.model-process-log i{width:7px;height:7px;margin-top:4px;border-radius:50%;background:#3686bc}.model-process-log li.success i{background:#3b914d}.model-process-log li.error{color:var(--danger)}.model-process-log li.error i{background:var(--danger)}.model-process-log span{overflow-wrap:anywhere}
.model-process-modal footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 20px;border-top:1px solid #d8e3eb;background:#fff}.model-process-modal footer strong{font-size:12px}.model-process-modal footer button:disabled{opacity:.55;cursor:wait}

/* Interações do Model Builder: arestas clicáveis, aresta selecionada, ports com área ampliada. */
.model-links{pointer-events:none}
.model-links path.edge-hit{pointer-events:stroke;cursor:pointer;fill:none;stroke:transparent;stroke-width:14}
.model-links path.edge-visible{pointer-events:none;transition:stroke .12s,stroke-width .12s}
.model-links path.edge-hit:hover + path.edge-visible{stroke:#1476c7;stroke-width:3}
.model-links path.edge-visible.selected{stroke:#0f66b3;stroke-width:3.5;filter:drop-shadow(0 0 3px #1476c7aa)}
.model-links text{pointer-events:none;user-select:none}
.node-port{cursor:crosshair}
.node-port::before{content:"";position:absolute;inset:-7px;border-radius:50%}
.model-node.dragging{opacity:.85;cursor:grabbing}
.model-canvas.panning{cursor:grabbing}
.model-canvas.pan-ready{cursor:grab}
.model-canvas.connect-mode .model-node{cursor:crosshair}
.model-context-menu{position:fixed;z-index:220;min-width:200px;padding:4px 0;background:#fff;border:1px solid var(--line-dark);box-shadow:0 6px 18px #0003;color:var(--ink);font-size:12px}
.model-context-menu button{width:100%;padding:6px 14px;border:0;background:#fff;display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer}
.model-context-menu button:hover{background:var(--accent-soft)}
.model-context-menu button:disabled{color:#9aa3aa;cursor:not-allowed;background:#fff}
.model-context-menu button svg{width:14px;height:14px;color:#66727a;flex:0 0 auto}
.model-context-menu hr{margin:4px 0;border:0;border-top:1px solid #eef0f2}


/* Dicas passo-a-passo do Model Builder */
.model-tips{
  border:1px solid var(--line);
  background:#fffdf3;
  padding:0;
  margin:8px 10px;
  font-size:11px;
  border-radius:3px;
  overflow:hidden;
}
.model-tips>summary{
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 8px;
  cursor:pointer;
  list-style:none;
  background:#fff5c8;
  border-bottom:1px solid #f2e28d;
  color:#6b5a12;
  font-weight:600;
}
.model-tips>summary::-webkit-details-marker{display:none}
.model-tips>summary>svg{width:14px;height:14px;flex:0 0 14px}
.model-tips[open]>summary{background:#fbe999}
.model-tips-intro{margin:8px 10px 6px;color:#3f3a20;line-height:1.4}
.model-tips-steps{margin:6px 10px 8px 24px;padding:0;color:#3f3a20;line-height:1.45;display:grid;gap:4px}
.model-tips-steps li{padding-left:2px}
.model-tips-steps code{background:#efe6c4;padding:0 3px;border-radius:2px;font:11px Consolas,monospace}
.model-tips-hotkeys{margin:6px 10px 10px;padding:6px 8px;background:#fff;border:1px dashed #d8ca7a;border-radius:3px;color:#3f3a20;line-height:1.5}
.model-tips-hotkeys kbd{background:#eee;border:1px solid #ccc;border-bottom-width:2px;border-radius:3px;padding:0 4px;font:11px Consolas,monospace;color:#333}