.osint2d-world{width:1450px!important}
.osint2d-lines{width:1450px!important}
.tree-pc{left:535px!important}
.tree-pc.fleet-pc{left:535px!important;width:245px}
.tree-group.fleet-category{left:820px;width:180px}
.tree-pc.fleet-tool{left:1030px!important;width:330px}
.tree-pc.active{border-color:#31bce9;color:#75ddff;box-shadow:0 0 12px rgba(45,174,229,.2)}
@keyframes emilyOperationBlink{0%,100%{filter:none;box-shadow:0 0 0 rgba(184,191,196,0)}50%{background-color:#9aa0a4;border-color:#e1e4e6;color:#172027;filter:grayscale(1);box-shadow:0 0 17px rgba(205,211,215,.82)}}
.tree-pc.operation-running,.tree-group.operation-running,.selected-station.operation-running{animation:emilyOperationBlink 1.15s ease-in-out infinite;will-change:background-color,filter,box-shadow}
.tree-group[draggable=true]{cursor:grab}.tree-group.drag-target{outline:2px dashed #ffe889!important;outline-offset:3px;filter:brightness(1.2)}
@media(prefers-reduced-motion:reduce){.tree-pc.operation-running,.tree-group.operation-running,.selected-station.operation-running{animation-duration:2.4s}}

/* Módulo 3D: mesma árvore e mesmos eventos, apenas com profundidade visual. */
body.display-3d .osint2d-viewport{perspective:1250px;perspective-origin:50% 44%}
body.display-3d .osint2d-world{transform-style:preserve-3d;transform:rotateX(1.5deg) rotateY(-3deg);transition:transform .3s ease}
body.display-3d .tree-root{transform:translateZ(34px);filter:drop-shadow(8px 10px 8px rgba(0,0,0,.45))}
body.display-3d .tree-group{transform:translateZ(18px) rotateY(-2deg);box-shadow:7px 9px 14px rgba(0,0,0,.3);transition:transform .2s ease,box-shadow .2s ease}
body.display-3d .tree-pc{transform:translateZ(30px) rotateY(2deg);box-shadow:9px 11px 17px rgba(0,0,0,.36);transition:transform .2s ease,box-shadow .2s ease}
body.display-3d .tree-group:hover,body.display-3d .tree-group.active{transform:translateZ(42px) translateX(4px)}
body.display-3d .tree-pc:hover,body.display-3d .tree-pc.active{transform:translateZ(55px) translateX(5px)}
body.display-3d .osint2d-lines{transform:translateZ(4px);filter:drop-shadow(4px 6px 4px rgba(0,0,0,.4))}

/* Cascata: os mesmos nós são empilhados de cima para baixo. */
body.display-cascade .osint2d-world{width:min(920px,calc(100vw - 90px))!important;min-height:100%;margin:0 auto;padding:62px 18px 90px;box-sizing:border-box;zoom:100%!important}
body.display-cascade .osint2d-lines{display:none!important}
body.display-cascade .tree-root{position:relative!important;display:block;left:auto!important;top:auto!important;width:min(460px,90%)!important;height:38px;margin:0 auto 14px;text-align:center!important;border:1px solid currentColor;border-radius:9px;background:rgba(8,25,33,.78)!important}
body.display-cascade #treeCategories,body.display-cascade #treeTools,body.display-cascade #treeFleetCategories,body.display-cascade #treeFleetTools{display:grid;position:relative;z-index:8;gap:7px;width:min(680px,94%);margin:0 auto 12px}
body.display-cascade .tree-group,body.display-cascade .tree-pc,body.display-cascade .tree-group.fleet-category,body.display-cascade .tree-pc.fleet-pc,body.display-cascade .tree-pc.fleet-tool{position:relative!important;left:auto!important;top:auto!important;width:100%!important;min-height:38px!important;height:auto!important;margin:0!important;padding:7px 13px!important;transform:none!important}
body.display-cascade .tree-group{text-align:left}
body.display-cascade .tree-pc{box-shadow:0 5px 15px rgba(0,0,0,.2)}
body.display-cascade .osint2d-scale{display:none}

/* Hierarquia de grupos: pasta, subpasta e alvos de arraste. */
.fleet-tree-help{display:block;margin:-4px 0 12px;color:#789ba8}
.fleet-groups{display:flex;flex-direction:column;gap:7px}
.fleet-group{margin-left:calc(var(--depth,0)*22px);transition:border-color .15s,background .15s,transform .15s}
.fleet-group[draggable=true]{cursor:grab}
.fleet-group.dragging,.tree-group.group-folder.dragging{opacity:.55}
.fleet-group.drag-target{border-color:#ffe889;background:#283019;transform:translateX(4px);box-shadow:0 0 0 2px rgba(255,232,137,.18)}
.fleet-group-name{min-width:0}
.fleet-group-path{max-width:520px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fleet-group-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}
.fleet-group-buttons button{margin-left:0}
.fleet-device[draggable=true],.tree-pc[draggable=true]{cursor:grab}
.fleet-device.device-dragging,.tree-pc.device-dragging{opacity:.5;filter:saturate(.65);transform:scale(.985)}
.fleet-drag-hint{display:inline-block;margin-left:8px;padding:2px 5px;border:1px solid #266b83;border-radius:4px;color:#61d9ff;font-size:8px;vertical-align:2px}
.fleet-group.drag-target,.tree-group.drag-target{border-color:#ffe889!important;background:#29301a!important;box-shadow:0 0 0 2px rgba(255,232,137,.2),0 0 18px rgba(255,232,137,.16)!important}

/* Organizador visual de servidores, pastas e subpastas. */
.folder-organizer{position:fixed;z-index:340;inset:0;display:grid;place-items:center;padding:24px;background:rgba(0,5,8,.86);backdrop-filter:blur(5px);box-sizing:border-box}
.folder-organizer-dialog{display:flex;flex-direction:column;width:min(940px,96vw);height:min(760px,92vh);overflow:hidden;border:1px solid #278fbd;border-radius:14px;background:#07141b;color:#dff7ff;box-shadow:0 30px 100px #000;font-family:Consolas,monospace}
.folder-organizer-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #1e4b5e;background:linear-gradient(135deg,#0c2631,#07141b)}
.folder-organizer-dialog>header small{color:#49d5ff;font-weight:bold;letter-spacing:1.3px}.folder-organizer-dialog>header h2{margin:5px 0 3px;color:#f4fbff;font-size:23px}.folder-organizer-dialog>header p{margin:0;color:#86adbd}.folder-organizer-dialog>header button{border:0;background:transparent;color:#91b0bc;font-size:28px;cursor:pointer}
.folder-guide{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:11px 18px;border-bottom:1px solid #173b4a;background:#091d26}.folder-guide span{display:flex;align-items:center;gap:7px;color:#91b4c2;font-size:10px}.folder-guide b{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#123c4d;color:#67ddff}
.folder-organizer-body{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,.75fr);gap:14px;min-height:0;flex:1;padding:16px}.folder-browser-panel,.folder-create-panel{min-height:0;padding:14px;border:1px solid #1b4658;border-radius:9px;background:#091b23;box-sizing:border-box}.folder-browser-panel{display:flex;flex-direction:column}.folder-create-panel{overflow:auto}.folder-browser-panel>label,.folder-create-panel>label{display:block;margin-bottom:9px;color:#52d6ff;font-size:10px;font-weight:bold;letter-spacing:1px}
.folder-search{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:0 11px;border:1px solid #286b84;border-radius:7px;background:#061218}.folder-search span{color:#54d8ff;font-size:20px}.folder-search input{width:100%;height:39px;border:0;outline:0;background:transparent;color:#eafaff;font:12px Consolas}
.folder-list{min-height:0;overflow:auto;padding-right:4px}.folder-row{display:grid;grid-template-columns:25px minmax(0,1fr) 22px;align-items:center;gap:8px;width:calc(100% - var(--depth,0)*18px);min-height:52px;margin:0 0 6px calc(var(--depth,0)*18px);padding:7px 10px;border:1px solid #1c4a5b;border-radius:7px;background:#0a2029;color:#d8edf5;text-align:left;cursor:pointer;box-sizing:border-box}.folder-row:hover{border-color:#319bc3;background:#0d2b37}.folder-row.selected{border-color:#55ddff;background:#103545;box-shadow:0 0 0 2px rgba(85,221,255,.12)}.folder-row-icon{font-size:18px}.folder-row b,.folder-row small{display:block}.folder-row b{color:#f0fbff;font-size:12px}.folder-row small{margin-top:3px;overflow:hidden;color:#789dab;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.folder-row i{color:#5fdcff;font-style:normal;font-size:17px;text-align:center}.folder-list-empty{padding:28px 12px;text-align:center;color:#7394a1}
.folder-selected{min-height:56px;padding:10px;border:1px solid #26718e;border-radius:7px;background:#0c2833;color:#8db5c4;box-sizing:border-box}.folder-selected b,.folder-selected small{display:block}.folder-selected b{color:#73e3ff}.folder-selected small{margin-top:5px;word-break:break-word;color:#83a6b3}
.folder-create-box,.folder-tip{margin-top:13px;padding:13px;border:1px solid #1b4554;border-radius:8px;background:#07171e}.folder-create-box>b,.folder-tip>b{color:#62dbff;font-size:11px}.folder-create-box p,.folder-tip p{margin:7px 0 10px;color:#789ba8;font-size:10px;line-height:1.45}.folder-create-box input{box-sizing:border-box;width:100%;height:38px;padding:0 10px;border:1px solid #286a83;border-radius:6px;outline:0;background:#061218;color:#e9faff;font:11px Consolas}.folder-create-box button{width:100%;height:35px;margin-top:8px;border:1px solid #278fbd;border-radius:6px;background:#103746;color:#7ce3ff;font:bold 10px Consolas;cursor:pointer}.folder-create-box small{display:block;min-height:16px;margin-top:7px;color:#ffc876}.folder-tip strong{color:#c7f2ff}
.folder-organizer-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 18px;border-top:1px solid #1e4858;background:#081b23}.folder-organizer-dialog>footer>span{overflow:hidden;color:#88aab7;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.folder-organizer-dialog>footer button{height:36px;padding:0 17px;border:1px solid #286b83;border-radius:6px;background:#0d2934;color:#9bdff7;font:bold 10px Consolas;cursor:pointer}.folder-organizer-dialog>footer button.primary{border-color:#32bce9;background:#124b60;color:#dffaff}.folder-organizer-dialog>footer button:disabled{cursor:not-allowed;opacity:.4}
@media(max-width:760px){.folder-organizer{padding:8px}.folder-organizer-dialog{height:96vh}.folder-guide{grid-template-columns:repeat(2,1fr)}.folder-organizer-body{grid-template-columns:1fr;overflow:auto}.folder-browser-panel{min-height:340px}.folder-organizer-dialog>footer{align-items:flex-start;flex-direction:column}.folder-organizer-dialog>footer>div{display:flex;width:100%;gap:8px}.folder-organizer-dialog>footer button{flex:1}}
