:root {
  --bg:         #060810;
  --bg-card:    #0d0818;
  --bg-header:  rgba(6,8,16,0.92);
  --bg-form:    #0f0820;
  --bg-input:   #090615;
  --p600:       #5b2b85;
  --p500:       #4a2270;
  --p400:       #6d3a9e;
  --p300:       #b87fd4;
  --p200:       #d4b8ea;
  --border:     rgba(130,75,185,0.3);
  --text:       #ffffff;
  --text-sub:   rgba(255,255,255,0.65);
  --text-muted: rgba(190,145,220,0.65);
  --r-sm:6px; --r-md:8px; --r-lg:12px; --r-xl:16px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html,body{
  height:100%;
  background:var(--bg);
  color:var(--text);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  overflow:hidden;
}

/* ===== ANIMAÇÕES ===== */
@keyframes cardIn{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes rowIn{
  from{opacity:0;transform:translateY(-6px)}
  to{opacity:1;transform:translateY(0)}
}

/* ===== HEADER ===== */
.app-header{
  position:fixed;top:0;left:0;right:0;height:58px;
  background:var(--bg-header);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(130,75,185,0.12);
  display:flex;align-items:center;padding:0 20px;gap:16px;z-index:200;
}
.header-left{display:flex;align-items:center;gap:12px;flex-shrink:0}

/* GOX brand logo */
.brand-logo-img{height:34px;width:auto;object-fit:contain;border-radius:6px}
.brand-divider{width:1px;height:22px;background:rgba(130,75,185,0.35)}
.brand-product{display:flex;flex-direction:column;line-height:1.15}
.brand-product-name{font-size:13px;font-weight:600;color:rgba(255,255,255,0.9);letter-spacing:.3px}
.brand-product-sub{font-size:9px;font-weight:500;color:rgba(190,145,220,0.65);letter-spacing:1.5px;text-transform:uppercase}
.header-center{flex:1;max-width:420px}
.header-right{margin-left:auto;display:flex;align-items:center;gap:8px}

.search-wrap{position:relative}
.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--text-muted);pointer-events:none}
.search-wrap input{
  width:100%;background:rgba(6,8,16,0.8);
  border:1px solid rgba(130,75,185,0.18);color:white;
  padding:7px 12px 7px 32px;border-radius:var(--r-md);font-size:13px;outline:none;
  transition:border-color .15s;
}
.search-wrap input:focus{border-color:var(--p300)}
.search-wrap input::placeholder{color:var(--text-muted)}

.search-results{
  display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:600;
  background:rgba(11,4,26,0.98);border:1px solid rgba(130,75,185,0.35);
  border-radius:var(--r-md);max-height:280px;overflow-y:auto;
  box-shadow:0 8px 32px rgba(0,0,0,0.7);
}
.search-results.open{display:block}
.search-result-item{
  padding:9px 12px;cursor:pointer;display:flex;flex-direction:column;gap:2px;
  border-bottom:1px solid rgba(130,75,185,0.07);transition:background .12s;
}
.search-result-item:last-child{border-bottom:none}
.search-result-item:hover{background:rgba(91,43,133,0.2)}
.sri-name{font-size:12px;font-weight:600;color:#fff}
.sri-cargo{font-size:10px;color:rgba(190,145,220,0.65)}
.search-no-results{padding:14px;text-align:center;font-size:12px;color:var(--text-muted)}

@keyframes highlightPulse{
  0%,100%{box-shadow:0 0 0 3px rgba(190,145,220,0.55),0 14px 40px rgba(0,0,0,0.85)}
  50%{box-shadow:0 0 0 7px rgba(190,145,220,0.25),0 14px 40px rgba(0,0,0,0.85),0 0 50px rgba(91,43,133,0.65)}
}
.emp-card.card-highlight{
  border-color:#b87fd4 !important;
  animation:highlightPulse .9s ease 3 !important;
}

/* ===== BUTTONS ===== */
.btn-primary{
  background:var(--p600);color:white;border:none;padding:7px 14px;
  border-radius:var(--r-md);font-size:13px;font-weight:500;cursor:pointer;
  display:flex;align-items:center;gap:5px;transition:background .15s;
}
.btn-primary:hover{background:#4a2270}
.btn-primary:disabled{opacity:.5;cursor:not-allowed}
.btn-secondary{
  background:rgba(130,75,185,0.08);color:var(--p300);
  border:1px solid var(--border);padding:7px 14px;border-radius:var(--r-md);
  font-size:13px;cursor:pointer;transition:background .15s;
}
.btn-secondary:hover{background:rgba(130,75,185,0.15)}
.btn-danger{
  background:rgba(220,38,38,0.1);color:#f87171;
  border:1px solid rgba(248,113,113,0.25);padding:7px 12px;border-radius:var(--r-md);
  font-size:12px;cursor:pointer;display:flex;align-items:center;gap:5px;transition:background .15s;
}
.btn-danger:hover{background:rgba(220,38,38,0.2)}
.btn-edit{
  background:rgba(255,255,255,0.12);color:white;
  border:1px solid rgba(255,255,255,0.25);padding:6px 12px;border-radius:var(--r-md);
  font-size:12px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:background .15s;
}
.btn-edit:hover{background:rgba(255,255,255,0.22)}
.modal-close{
  background:none;border:none;color:white;cursor:pointer;
  font-size:18px;padding:4px;opacity:.7;border-radius:var(--r-sm);line-height:1;
  transition:opacity .15s;
}
.modal-close:hover{opacity:1;background:rgba(255,255,255,0.1)}

/* ===== FAB ===== */
.fab{
  position:fixed;bottom:24px;right:24px;width:50px;height:50px;
  border-radius:50%;background:linear-gradient(135deg,#5b2b85,#3a1857);
  color:white;border:none;cursor:pointer;font-size:22px;
  display:flex;align-items:center;justify-content:center;z-index:150;
  box-shadow:0 4px 20px rgba(91,43,133,0.5),0 0 0 1px rgba(130,75,185,0.3);
  transition:transform .15s,box-shadow .15s;
}
.fab:hover{transform:scale(1.08);box-shadow:0 6px 28px rgba(91,43,133,0.65),0 0 0 1px rgba(130,75,185,0.5)}

/* ===== TREE ===== */
.tree-scroll{
  position:fixed;top:58px;left:0;right:0;bottom:0;overflow:auto;
  cursor:grab;padding:60px;user-select:none;
  background:#000;
}
.tree-scroll.panning{cursor:grabbing}

.tree-wrap{
  position:relative;display:inline-flex;flex-direction:column;
  align-items:center;min-width:100%;min-height:100%;
}

/* ===== NODES ===== */
.tree-node{display:flex;flex-direction:column;align-items:center}
.children-row{display:flex;flex-direction:row;gap:28px;align-items:flex-start;padding-top:72px}
.node-wrap{position:relative;display:flex;flex-direction:column;align-items:center}

/* ===== CARD PHOTO ===== */
.card-photo{
  position:absolute;top:0;left:50%;transform:translateX(-50%);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;color:white;overflow:hidden;
  border-radius:50%;
  border:3px solid #000;
  box-shadow:
    0 8px 24px rgba(0,0,0,0.75),
    0 0 0 1px rgba(130,75,185,0.5),
    0 0 22px rgba(91,43,133,0.4);
  z-index:2;
  background:linear-gradient(145deg,#4a2270,#3a1857);
}
.card-photo img{width:100%;height:100%;object-fit:cover}

/* ===== CARD OUTER (wrapper) ===== */
.card-outer{
  cursor:pointer;
}

/* ===== PURPLE CARD ===== */
.children-row{animation:rowIn .55s cubic-bezier(0.25,0.46,0.45,0.94) both}
.emp-card{
  animation:cardIn .48s cubic-bezier(0.25,0.46,0.45,0.94) both;
  background:#000;
  border-radius:16px;
  border:3px solid rgba(130,75,185,0.78);
  box-shadow:
    0 14px 40px rgba(0,0,0,0.85),
    0 0 0 1px rgba(91,43,133,0.18),
    inset 0 1px 0 rgba(255,255,255,0.07);
  text-align:center;cursor:pointer;position:relative;
  padding-bottom:18px;padding-left:14px;padding-right:14px;
  transition:border-color .22s,box-shadow .22s,transform .22s;
}
.emp-card:hover{
  border-color:#b87fd4;
  box-shadow:
    0 20px 56px rgba(0,0,0,0.9),
    0 0 32px rgba(91,43,133,0.5),
    inset 0 1px 0 rgba(255,255,255,0.1);
  transform:translateY(-4px);
}

/* ===== INFO BADGE (roxo) ===== */
.info-badge{
  position:absolute;top:9px;left:9px;
  background:rgba(91,43,133,0.28);
  color:#d4b8ea;
  border:1px solid rgba(130,75,185,0.55);
  font-size:9px;font-weight:700;letter-spacing:.5px;
  padding:2px 7px 2px 4px;border-radius:20px;
  display:flex;align-items:center;gap:4px;cursor:pointer;
  transition:background .15s;
  z-index:1;
}
.info-badge:hover{background:rgba(91,43,133,0.45)}

/* Círculo do "i" dentro do badge */
.badge-icon{
  width:13px;height:13px;border-radius:50%;
  background:rgba(91,43,133,0.4);
  border:1px solid rgba(190,145,220,0.65);
  color:#d4b8ea;font-size:8px;font-weight:900;font-style:italic;
  display:flex;align-items:center;justify-content:center;line-height:1;
  flex-shrink:0;
}

/* ===== TYPOGRAPHY ===== */
.card-name{
  font-size:12px;font-weight:700;color:#ffffff;
  text-transform:uppercase;letter-spacing:1.4px;
  line-height:1.35;margin-bottom:7px;
  text-shadow:0 2px 8px rgba(0,0,0,0.55);
}
.card-cargo{
  font-size:10px;font-weight:600;
  color:#b87fd4;
  text-transform:uppercase;letter-spacing:.9px;
}
.headcount-pill{
  display:inline-flex;align-items:center;gap:4px;
  font-size:9px;font-weight:600;
  color:rgba(190,145,220,0.75);
  background:rgba(91,43,133,0.15);
  border:1px solid rgba(130,75,185,0.22);
  border-radius:20px;padding:2px 8px 2px 6px;
  margin-top:8px;letter-spacing:.3px;
  pointer-events:none;
}

/* ===== TOGGLE BUTTON ===== */
.tgl-btn{
  position:absolute;bottom:-13px;left:50%;transform:translateX(-50%);
  min-width:26px;height:21px;border-radius:10px;
  background:linear-gradient(160deg,#1e0f40,#120830);
  color:rgba(190,145,220,0.9);
  border:1px solid rgba(130,75,185,0.45);
  cursor:pointer;font-size:10px;
  display:flex;align-items:center;justify-content:center;
  z-index:3;padding:0 6px;gap:2px;
  box-shadow:0 4px 10px rgba(0,0,0,0.5);
  transition:opacity .15s,background .15s,border-color .15s;
}
.tgl-btn:hover{background:rgba(130,75,185,0.18);border-color:rgba(130,75,185,0.7)}
.tgl-btn.tgl-add{opacity:0}
.node-wrap:hover .tgl-btn.tgl-add{opacity:1}

/* ===== EMPTY STATE ===== */
.empty-state{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  text-align:center;color:var(--text-muted);
  display:flex;flex-direction:column;align-items:center;gap:10px;
}

/* ===== MODAL ===== */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.75);
  z-index:1000;display:none;align-items:flex-start;justify-content:center;
  overflow-y:auto;padding:20px;backdrop-filter:blur(4px);
}
.modal-panel{width:100%;margin:auto;border-radius:var(--r-xl);overflow:hidden}
.profile-panel{max-width:620px;background:linear-gradient(160deg,#140d28,#0a0615);border:1px solid rgba(130,75,185,0.22)}
.form-panel   {max-width:500px;background:var(--bg-form);border:1px solid var(--border)}

/* ---- Profile ---- */
.modal-header{
  background:linear-gradient(135deg,#3a1857,#280f3f);
  padding:14px 18px;display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid rgba(130,75,185,0.2);
}
.modal-title{font-weight:600;font-size:14px;display:flex;align-items:center;gap:7px}
.profile-body{padding:22px;display:flex;gap:22px;align-items:flex-start}
.profile-photo{
  width:140px;height:140px;border-radius:var(--r-lg);overflow:hidden;flex-shrink:0;
  border:2px solid rgba(130,75,185,0.4);
  box-shadow:0 8px 24px rgba(0,0,0,0.6),0 0 20px rgba(91,43,133,0.2);
}
.profile-photo img{width:100%;height:100%;object-fit:cover}
.profile-info {flex:1;min-width:0}
.profile-name {
  font-size:18px;font-weight:700;color:var(--p200);
  text-transform:uppercase;letter-spacing:.6px;line-height:1.2;margin-bottom:4px;
  text-shadow:0 2px 8px rgba(0,0,0,0.4);
}
.profile-cargo{font-size:13px;color:var(--text-sub);margin-bottom:16px}
.info-fields{display:flex;flex-direction:column;gap:7px}
.info-row{font-size:12px;color:rgba(255,255,255,0.82);display:flex}
.info-label{color:var(--text-muted);font-weight:500;min-width:115px;flex-shrink:0}
.docs-section{border-top:1px solid rgba(130,75,185,0.12);padding:16px 22px 20px}
.docs-header{font-size:13px;font-weight:500;color:white;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}
.docs-count{font-size:11px;color:var(--text-muted)}
.docs-table{width:100%;border-collapse:collapse;font-size:12px}
.docs-table th{font-size:11px;font-weight:500;color:var(--text-muted);border-bottom:1px solid rgba(130,75,185,0.18);padding:6px 10px;text-align:left}
.docs-table td{color:rgba(255,255,255,0.78);padding:7px 10px;border-bottom:1px solid rgba(130,75,185,0.06);max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.no-docs{text-align:center;color:var(--text-muted);font-size:12px;padding:14px !important}
.download-btn{color:var(--p300);text-decoration:none;font-size:16px;display:flex;align-items:center;justify-content:center}
.download-btn:hover{color:white}

/* ---- Form ---- */
.form-header{
  background:linear-gradient(135deg,#3a1857,#280f3f);
  padding:14px 18px;display:flex;align-items:center;gap:12px;
}
.form-avatar{
  width:48px;height:48px;border-radius:var(--r-md);
  background:rgba(255,255,255,0.12);
  border:2px solid rgba(255,255,255,0.25);
  overflow:hidden;cursor:pointer;position:relative;flex-shrink:0;
}
.form-avatar-inner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:white}
.form-avatar-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.42);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;font-size:16px;color:white}
.form-avatar:hover .form-avatar-overlay{opacity:1}
.form-header-info{flex:1;min-width:0}
.form-header-title{font-weight:600;font-size:14px;color:white;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.form-header-sub{font-size:11px;color:rgba(255,255,255,0.55);margin-top:2px}
.form-body{padding:16px 18px;max-height:520px;overflow-y:auto}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.field-group{margin-bottom:10px}
.field-grid .field-group{margin-bottom:0}
.field-label{display:block;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.field-input{
  width:100%;background:rgba(6,8,16,0.9);border:1px solid rgba(130,75,185,0.18);
  color:white;border-radius:var(--r-md);padding:7px 10px;font-size:12px;font-family:inherit;
  outline:none;transition:border-color .15s;
}
.field-input:focus{border-color:var(--p300)}
.field-input::placeholder{color:rgba(255,255,255,0.18)}
.field-input option{background:#0b0118}
.field-textarea{min-height:55px;resize:vertical}
.docs-upload-section{border-top:1px solid rgba(130,75,185,0.12);padding-top:12px;margin-top:4px}
.docs-upload-title{font-size:12px;font-weight:500;color:white;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.upload-zone{
  border:1px dashed rgba(130,75,185,0.22);border-radius:var(--r-md);
  padding:12px;text-align:center;cursor:pointer;background:rgba(6,8,16,0.6);transition:border-color .15s;
}
.upload-zone:hover{border-color:rgba(130,75,185,0.48)}
.upload-icon{font-size:20px;color:rgba(190,145,220,0.38)}
.upload-zone p{font-size:11px;color:rgba(190,145,220,0.45);margin-top:4px}
.upload-zone strong{color:var(--p300)}
.doc-row{display:grid;grid-template-columns:120px 1fr auto auto;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid rgba(130,75,185,0.07);font-size:11px}
.doc-tipo-input{background:rgba(6,8,16,0.9);border:1px solid rgba(130,75,185,0.15);color:white;border-radius:5px;padding:3px 7px;font-size:10px;font-family:inherit;outline:none;width:100%;transition:border-color .15s}
.doc-tipo-input:focus{border-color:var(--p300)}
.doc-name{color:rgba(255,255,255,0.72);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:4px}
.doc-dl{color:var(--p300);text-decoration:none;font-size:14px}
.doc-dl:hover{color:white}
.doc-rm{background:none;border:none;color:rgba(248,113,113,0.65);cursor:pointer;font-size:13px;padding:0 2px;line-height:1}
.doc-rm:hover{color:#f87171}
.form-footer{padding:10px 18px 15px;border-top:1px solid rgba(130,75,185,0.1);display:flex;align-items:center}

/* ===== CROP MODAL ===== */
.crop-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.88);
  z-index:2000;display:flex;align-items:center;justify-content:center;
  backdrop-filter:blur(6px);
}
.crop-modal{
  background:#110226;border:1px solid rgba(130,75,185,0.3);
  border-radius:var(--r-xl);overflow:hidden;width:420px;max-width:90vw;
}
.crop-header{
  background:linear-gradient(135deg,#3a1857,#280f3f);
  padding:13px 18px;display:flex;align-items:center;justify-content:space-between;
  font-size:14px;font-weight:600;
}
.crop-container{height:320px;background:#000;overflow:hidden}
.crop-container img{display:block;max-width:100%}
.crop-controls{
  padding:10px 16px;display:flex;align-items:center;gap:8px;
  border-top:1px solid rgba(130,75,185,0.1);
}
.crop-ctrl-btn{
  width:32px;height:32px;border-radius:var(--r-md);
  background:rgba(130,75,185,0.1);border:1px solid rgba(130,75,185,0.25);
  color:#b87fd4;cursor:pointer;font-size:15px;
  display:flex;align-items:center;justify-content:center;transition:background .15s;
}
.crop-ctrl-btn:hover{background:rgba(130,75,185,0.22)}
.crop-hint{font-size:10px;color:rgba(190,145,220,0.45);margin-left:auto}
.crop-footer{
  padding:10px 16px 14px;display:flex;justify-content:flex-end;gap:8px;
  border-top:1px solid rgba(130,75,185,0.08);
}

/* ===== TOAST ===== */
.toast{
  position:fixed;bottom:20px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,#5b2b85,#3a1857);
  color:white;padding:9px 20px;border-radius:20px;font-size:12px;font-weight:500;
  opacity:0;transition:opacity .3s;pointer-events:none;white-space:nowrap;z-index:9999;
  box-shadow:0 4px 16px rgba(91,43,133,0.4);
}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:rgba(130,75,185,0.28);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:rgba(130,75,185,0.48)}

/* ===== FULLSCREEN ===== */
.fullscreen .app-header{display:none}
.fullscreen .tree-scroll{top:0}
.fullscreen .fab{display:none}

/* ===== SPIN (usado no loader de export) ===== */
@keyframes spin{to{transform:rotate(360deg)}}
.spin{display:inline-block;animation:spin .9s linear infinite}
