/* ═══════════════════════════════════════════════════
   DINAMO MODÜLÜ v3 — BK-ŞANTİYE ERP v4
   01-24-dinamo-cari.css
   ═══════════════════════════════════════════════════ */
.dnm-wrap{display:flex;flex-direction:column;height:calc(100vh - 100px);}

/* ═══ ÜST BANT ═══ */
/* 🆕 TUR79 — Bant kenara yapışmasın, hafif margin + yuvarlak köşe.
   Firma göstergesi sola alındı, sağda bol boşluk kalsın. */
.dnm-menubar{
  position:relative;z-index:200;
  background:linear-gradient(180deg,#3674b8 0%,#2a5d97 100%);
  border:1px solid #1e4a7a;border-radius:8px;
  display:flex;align-items:center;flex-wrap:nowrap;
  padding:0;min-height:32px;margin:8px 12px 0;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
  overflow:visible;flex-shrink:0;
}

/* 🆕 TUR79 — Firma göstergesi artık SOLDA (eskiden sağdaydı) */
.dnm-firma-ind{
  padding:4px 14px;
  font-size:11px;font-weight:700;color:#fff;
  background:rgba(0,0,0,.22);border-right:1px solid rgba(255,255,255,.15);
  border-radius:8px 0 0 8px;
  white-space:nowrap;display:flex;align-items:center;gap:6px;flex-shrink:0;
}
.dnm-firma-ind .dot{width:7px;height:7px;border-radius:50%;background:#5bed72;display:inline-block;}
.dnm-ver{font-size:9px;padding:1px 6px;border-radius:4px;background:rgba(255,255,255,.2);color:rgba(255,255,255,.8);font-weight:500;letter-spacing:.3px;}

/* ═══ MENÜ ÖĞESİ (üst bant) ═══ */
/* TUR78c — Orijinal Dinamo ekranındaki gibi kompakt: küçük font, dar padding.
   Tüm menü öğeleri viewport'a sığsın, alt satıra geçmesin. */
.dnm-mi{
  position:relative;padding:6px 9px;
  font-size:11px;font-weight:600;color:#dce8f5;
  cursor:pointer;white-space:nowrap;
  transition:background .1s;user-select:none;
}
.dnm-mi:hover,.dnm-mi.open{background:rgba(255,255,255,.18);color:#fff;}

/* ═══ DROPDOWN (1. seviye) ═══ */
.dnm-dd{
  display:none;position:absolute;top:100%;left:0;
  min-width:320px;
  background:#f0f4f8;border:1px solid #b0bfcf;border-top:3px solid #2a5d97;
  box-shadow:0 8px 28px rgba(0,0,0,.22);z-index:9999;
}
.dnm-mi.open>.dnm-dd{display:block;}

/* ═══ DROPDOWN ITEM ═══ */
.dnm-di{
  padding:6px 16px;font-size:12px;color:#1e3a5f;
  cursor:pointer;display:flex;align-items:center;gap:6px;
  border-bottom:1px solid #dfe6ee;transition:background .08s;
  position:relative;
}
.dnm-di:last-child{border-bottom:none;}
.dnm-di:hover{background:#dbeafe;}
.dnm-di .arrow{margin-left:auto;color:#7a8ea3;font-size:9px;}
.dnm-sep{height:1px;background:#c8d4e0;margin:0;}

/* 🆕 TUR80 — Kilitli menü öğesi (yönetici hakkı yok) */
.dnm-di.is-locked{
  color:#9ca3af !important;
  cursor:not-allowed;
  background:repeating-linear-gradient(45deg,transparent 0,transparent 4px,rgba(148,163,184,.06) 4px,rgba(148,163,184,.06) 8px);
}
.dnm-di.is-locked:hover{background:repeating-linear-gradient(45deg,#fef3c7 0,#fef3c7 4px,#fde68a 4px,#fde68a 8px) !important;color:#92400e !important;}
.dnm-di.is-locked .dnm-lock{margin-left:6px;font-size:10px;opacity:.8;}

/* ═══ ALT MENÜ (2. seviye — sağa açılır) ═══ */
.dnm-di.has-sub>.dnm-sub{
  display:none;position:absolute;top:-1px;left:100%;
  min-width:380px;max-height:500px;overflow-y:auto;
  background:#f8fafb;border:1px solid #b0bfcf;
  box-shadow:4px 4px 18px rgba(0,0,0,.15);z-index:10000;
}
.dnm-di.has-sub:hover>.dnm-sub{display:block;}
.dnm-di.has-sub.open-sub>.dnm-sub{display:block;}

.dnm-sub .dnm-di{font-size:12px;padding:5px 16px;color:#314356;}
.dnm-sub .dnm-di:hover{background:#e2edfa;}

/* ═══ İÇERİK ═══ */
.dnm-content{flex:1;overflow-y:auto;overflow-x:hidden;background:#e8edf3;position:relative;z-index:1;}
.dnm-page{display:none;padding:10px 12px;}
.dnm-page.active{display:block;}

/* Hoşgeldin */
.dnm-welcome{text-align:center;padding:80px 20px;color:#8795a8;}
.dnm-welcome h2{font-size:22px;font-weight:700;color:#314356;margin:0 0 8px;}
.dnm-welcome p{font-size:13px;margin:0;line-height:1.7;}
.dnm-welcome .firm-name{display:inline-block;margin-top:12px;padding:6px 16px;background:#dbeafe;color:#1e40af;border-radius:8px;font-weight:700;font-size:14px;}

/* Yakında */
.dnm-soon{text-align:center;padding:60px 20px;color:#a0aebb;font-size:14px;}
.dnm-soon .icon{font-size:36px;margin-bottom:12px;}

/* ═══ 5 PANELLİ VERİ GEZGİNİ ═══ */
.dnm-mapper{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  grid-template-rows:1fr auto;
  gap:8px;height:calc(100vh - 160px);
  padding:12px;
}
.dnm-mp{
  background:#fff;border:1px solid #d0daea;border-radius:8px;
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,.05);min-width:0;
}
.dnm-mp-wide{
  grid-column:1/-1;
  max-height:250px;
}
.dnm-mp-hdr{
  padding:8px 12px;font-size:11px;font-weight:700;color:#1e3a5f;
  background:#edf1f8;border-bottom:1px solid #d0daea;
  text-transform:uppercase;letter-spacing:.5px;
  display:flex;align-items:center;justify-content:space-between;
  flex-shrink:0;
}
.dnm-mp-hdr .dnm-ver{font-size:8px;padding:1px 5px;border-radius:3px;background:#dbeafe;color:#2563eb;font-weight:600;text-transform:none;}
.dnm-mp-tbl-badge{font-size:9px;padding:1px 6px;border-radius:3px;background:#fef3c7;color:#92400e;font-weight:600;text-transform:none;}
.dnm-mp-search{padding:6px 8px;border-bottom:1px solid #edf1f6;flex-shrink:0;}
.dnm-mp-search input{
  width:100%;box-sizing:border-box;padding:5px 8px;
  border:1px solid #d0daea;border-radius:4px;font-size:11px;
  outline:none;font-family:var(--sans,system-ui,sans-serif);
}
.dnm-mp-search input:focus{border-color:#93b5d4;box-shadow:0 0 0 2px rgba(147,181,212,.2);}
.dnm-mp-body{flex:1;overflow-y:auto;overflow-x:hidden;}

/* Satırlar */
.dnm-mp-row{
  padding:6px 12px;font-size:11px;color:#314356;
  cursor:pointer;border-bottom:1px solid #f0f3f7;
  transition:background .08s;display:flex;align-items:center;gap:6px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dnm-mp-row:hover{background:#edf3fa;}
.dnm-mp-row.active{background:#dbeafe;font-weight:700;color:#1e40af;}
.dnm-mp-row.added{background:#e4f3e7;color:#447257;}
.dnm-mp-row.added::after{content:'✓';margin-left:auto;font-size:10px;color:#447257;}
.dnm-mp-row .bullet{width:8px;height:8px;border-radius:50%;border:2px solid #b0bfcf;flex-shrink:0;}
.dnm-mp-row.active .bullet{background:#2563eb;border-color:#2563eb;}

/* Kolon satırı */
.dnm-mp-col-name{font-family:var(--mono,'Consolas',monospace);font-size:11px;}
.dnm-mp-col-type{margin-left:auto;font-size:9px;color:#8795a8;text-transform:lowercase;flex-shrink:0;}

/* Sabitlenmiş öğeler (panel 3, 5) */
.dnm-mp-fixed{padding:12px;font-size:13px;font-weight:700;color:#1e40af;text-align:center;}
.dnm-mp-fixed-row{
  padding:5px 10px;font-size:11px;color:#314356;
  display:flex;align-items:center;gap:6px;
  border-bottom:1px solid #f0f3f7;
}
.dnm-mp-num{
  width:18px;height:18px;border-radius:50%;
  background:#dbeafe;color:#1e40af;
  font-size:9px;font-weight:700;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.dnm-mp-remove{
  margin-left:auto;background:none;border:none;
  color:#b91c1c;cursor:pointer;font-size:12px;padding:2px 4px;
  opacity:.5;transition:opacity .1s;flex-shrink:0;
}
.dnm-mp-remove:hover{opacity:1;}

/* Boş / temizle */
.dnm-mp-empty{padding:20px 12px;font-size:11px;color:#a0aebb;text-align:center;}
.dnm-mp-clear{
  font-size:9px;padding:2px 8px;border-radius:4px;
  border:1px solid #efc9c5;background:#fee2e2;color:#b91c1c;
  cursor:pointer;font-weight:600;
}
.dnm-mp-clear:hover{background:#fecaca;}

/* ═══ PANEL 6: Tüm Seçimler ═══ */
.dnm-mp-export{
  font-size:9px;padding:2px 8px;border-radius:4px;
  border:1px solid #c6d5e5;background:#edf4fa;color:#38506a;
  cursor:pointer;font-weight:600;margin-left:auto;
}
.dnm-mp-export:hover{background:#dbeafe;border-color:#93b5d4;}
.dnm-p6-group{margin-bottom:4px;}
.dnm-p6-tbl-hdr{
  padding:6px 12px;font-size:11px;font-weight:700;color:#1e3a5f;
  background:#f5f8fb;border-bottom:1px solid #e6edf5;
  position:sticky;top:0;z-index:1;
}
.dnm-p6-count{font-weight:400;color:#8795a8;font-size:10px;}
.dnm-p6-row{
  padding:4px 12px 4px 24px;font-size:11px;color:#314356;
  display:flex;align-items:center;gap:8px;
  border-bottom:1px solid #f5f8fb;
}
.dnm-p6-row:hover{background:#fafbfd;}
.dnm-p6-full{font-family:var(--mono,'Consolas',monospace);font-size:10px;font-weight:500;}
.dnm-p6-row .dnm-mp-col-type{margin-left:auto;}
.dnm-p6-row .dnm-mp-remove{margin-left:8px;}

@media(max-width:1200px){
  .dnm-mapper{grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;height:auto;}
}
@media(max-width:768px){
  .dnm-mapper{grid-template-columns:1fr;height:auto;}
  .dnm-mp{max-height:300px;}
}

/* ═══ CARİ ═══ */
.dnm-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.dnm-bar-left{display:flex;align-items:center;gap:8px;flex:1 1 auto;min-width:0;}
.dnm-bar-right{display:flex;align-items:center;gap:6px;flex:0 0 auto;}
.dnm-search-wrap{position:relative;flex:1 1 auto;max-width:340px;}
.dnm-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:13px;color:#a0aebb;pointer-events:none;}
.dnm-search{background:#f8fafc;border:1px solid #d9e2ed;border-radius:7px;padding:7px 12px 7px 30px;color:#314356;font-size:12px;font-family:var(--sans,system-ui,sans-serif);width:100%;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box;}
.dnm-search:focus{border-color:#93b5d4;box-shadow:0 0 0 3px rgba(147,181,212,.2);}
.dnm-search::placeholder{color:#a0aebb;}
.dnm-status{font-size:11px;color:#8795a8;font-weight:600;letter-spacing:.03em;white-space:nowrap;}
.dnm-status.err{color:#b91c1c;background:#fee2e2;padding:4px 10px;border-radius:6px;}
.dnm-tbox{background:#eff4f8;border:1px solid #d9e2ed;border-radius:10px;overflow:hidden;box-shadow:0 4px 10px rgba(15,23,42,.04);}
.dnm-scroll{max-height:calc(100vh - 240px);overflow-y:auto;overflow-x:auto;}
.dnm-tbox table{width:100%;border-collapse:collapse;}
.dnm-tbox th{background:#e5edf5;padding:5px 8px;text-align:left;font-size:9px;font-weight:600;color:#8795a8;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #dce5ef;white-space:nowrap;position:sticky;top:0;z-index:2;}
.dnm-tbox td{padding:4px 8px;font-size:11px;border-bottom:1px solid #e6edf5;color:#5f6f82;white-space:nowrap;}
.dnm-tbox td.wrap{white-space:normal;}
.dnm-tbox tr:last-child td{border-bottom:none;}
.dnm-tbox tr.dnm-row:hover td{background:#f5f8fb;cursor:pointer;}
.dnm-kod{font-family:var(--mono,'Consolas','Courier New',monospace);font-weight:600;color:#38506a;font-size:10px;white-space:nowrap;}
.dnm-badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:9.5px;font-weight:600;}
.dnm-badge.musteri{background:#e4f3e7;color:#447257;border:1px solid #cce5d2;}
.dnm-badge.satici{background:#edf4fa;color:#38506a;border:1px solid #c6d5e5;}
.dnm-badge.ms{background:linear-gradient(135deg,#e4f3e7,#edf4fa);color:#3b5e4e;border:1px solid #bdd8c8;}
.dnm-detail{display:none;background:#fff;border:1px solid #d9e2ed;border-radius:10px;margin-bottom:10px;box-shadow:0 4px 10px rgba(15,23,42,.04);overflow:hidden;}
.dnm-detail.open{display:block;animation:dnmSlide .2s ease;}
.dnm-detail-hdr{padding:9px 14px;border-bottom:1px solid #e6edf5;display:flex;align-items:center;justify-content:space-between;background:#f8fafc;}
.dnm-detail-hdr h3{margin:0;font-size:13px;font-weight:600;color:#314356;}
.dnm-detail-close{background:none;border:1px solid #d9e2ed;border-radius:5px;padding:3px 9px;font-size:11px;cursor:pointer;color:#8795a8;}
.dnm-detail-close:hover{background:#fee2e2;border-color:#efc9c5;color:#a4625d;}
.dnm-detail-body{padding:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;}
.dnm-field{display:flex;flex-direction:column;gap:1px;}
.dnm-field-label{font-size:9.5px;font-weight:600;color:#8795a8;text-transform:uppercase;letter-spacing:.5px;}
.dnm-field-value{font-size:12px;color:#314356;}
.dnm-loading{text-align:center;padding:30px;color:#8795a8;font-size:12px;}
.dnm-loading::before{content:'';display:block;width:24px;height:24px;border:3px solid #d9e2ed;border-top-color:#93b5d4;border-radius:50%;animation:dnmSpin .6s linear infinite;margin:0 auto 10px;}
.dnm-empty{text-align:center;padding:30px;color:#a0aebb;font-size:12px;}

@keyframes dnmSlide{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes dnmSpin{to{transform:rotate(360deg)}}

@media(max-width:768px){
  .dnm-menubar{flex-wrap:wrap;}
  .dnm-mi{padding:6px 8px;font-size:11px;}
  .dnm-firma-ind{width:100%;border-left:none;border-top:1px solid rgba(255,255,255,.15);}
  .dnm-page{padding:12px;}
  .dnm-bar{flex-direction:column;align-items:stretch;}
  .dnm-search-wrap{max-width:100%;}
  .dnm-detail-body{grid-template-columns:1fr;}
  .dnm-di.has-sub>.dnm-sub{left:0;top:100%;position:relative;box-shadow:none;border-top:1px solid #d0daea;}
}

/* ─── ZORLA GÖRÜNÜRLÜK KORUMASI ─────────────────────────
   Dinamo sekmesi rol sisteminden bağımsız olarak her zaman görünür.
   qtrApplyErpRoleAccess fonksiyonu hidden yapsa bile CSS ile gösterilir. */
.nav .ntab[data-role-target="dinamo"]{
  display: inline-flex !important;
  visibility: visible !important;
}
.nav .ntab[data-role-target="dinamo"][hidden]{
  display: inline-flex !important;
  visibility: visible !important;
}
