/* EMDATE V71 — Adaptive Viewport / Fluid Layout
   2026-08-24
   Amaç: yatay sayfa taşmasını engellemek; grid/flex, form, tablo ve modal yapılarının
   mevcut viewport'a otomatik uyum sağlamasını sağlamak. */

html,body{width:100%;max-width:100%;overflow-x:clip}
*,*::before,*::after{box-sizing:border-box}

:where(main,section,article,aside,header,footer,nav,form,fieldset,.layout,.main,.content,.container,.wrap,.wrapper,.card,.panel,.editor-box,.table-wrap,.modal,.modal-bg,.page-header,.toolbar,.grid,.row){min-width:0;max-width:100%}
:where(.grid,.row,[class$="-grid"],[class*="-grid "] ,[class$="-layout"],[class*="-layout "] )>*{min-width:0}

:where(img,picture,video,canvas,svg,iframe){max-width:100%;height:auto}
:where(input,select,textarea,button){max-width:100%;min-width:0}
:where(pre,code,kbd,samp,.mono,.mail-detail-pre){max-width:100%;overflow-wrap:anywhere;word-break:break-word}
:where(p,li,dd,dt,a,strong,small,span){overflow-wrap:anywhere}

/* Formlar ve buton grupları genişliği zorlamasın. */
:where(.field,.form-group,.input-group){min-width:0;max-width:100%}
:where(.field input,.field select,.field textarea,.form-group input,.form-group select,.form-group textarea){width:100%;max-width:100%;min-width:0}
:where(.toolbar,.bulk-tools,.mail-log-actions,.reminder-actions,.modal-btns,.action-stack,.inbox-actions,.module-actions,.quick-actions){flex-wrap:wrap;min-width:0;max-width:100%}
:where(.toolbar,.bulk-tools,.mail-log-actions,.reminder-actions,.modal-btns,.action-stack,.inbox-actions,.module-actions,.quick-actions)>*{min-width:0}

/* JS yalnız gerçek taşma tespit edilen grid/flex yapılara bu sınıfları ekler. */
.em-fluid-overflow-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important}
.em-fluid-overflow-flex{flex-wrap:wrap!important}
.em-fluid-overflow-flex>*{min-width:0!important;max-width:100%}

/* Tablolar: masaüstünde ekranı kullan, metni sar; yatay scrollbar üretme. */
.table-wrap{max-width:100%;min-width:0;overflow-x:hidden!important;overflow-y:auto}
table.em-responsive-table{width:100%!important;max-width:100%!important;min-width:0!important;table-layout:fixed!important}
table.em-responsive-table th,
table.em-responsive-table td{min-width:0!important;max-width:none!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;hyphens:auto;padding-left:clamp(6px,.8vw,14px)!important;padding-right:clamp(6px,.8vw,14px)!important}
table.em-responsive-table th{letter-spacing:clamp(.45px,.11vw,1.8px)!important;line-height:1.25}
table.em-responsive-table td :where(a,span,strong,small,div,p){max-width:100%;overflow-wrap:anywhere;word-break:break-word}
table.em-responsive-table :where(.btn,.pill,.badge,button,a.btn){max-width:100%;white-space:normal!important;line-height:1.2;text-align:center;justify-content:center}
table.em-responsive-table .text-trunc{max-width:100%!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
table.em-responsive-table.em-table-dense{font-size:clamp(.69rem,.72vw,.82rem)}
table.em-responsive-table.em-table-dense th{font-size:clamp(.54rem,.56vw,.64rem)!important}
table.em-responsive-table.em-table-dense td{padding-top:8px!important;padding-bottom:8px!important}
table.em-responsive-table.em-table-very-dense{font-size:clamp(.64rem,.66vw,.76rem)}
table.em-responsive-table.em-table-very-dense th{font-size:clamp(.50rem,.52vw,.60rem)!important}
table.em-responsive-table .em-actions-cell{vertical-align:top!important}
table.em-responsive-table .em-actions-cell :where(form,.inline-form){display:inline-flex;max-width:100%;margin:2px}

/* Admin: sidebar + içerik toplamı viewport'u asla aşmasın. */
@media (min-width:901px){
  body:has(.layout>.sidebar+.main) .main{width:calc(100vw - 260px)!important;max-width:calc(100vw - 260px)!important;flex:0 0 calc(100vw - 260px)!important;min-width:0!important}
}

/* Mail Merkezi: sabit 6 kolon yerine gerçek responsive grid. */
.reminder-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr))!important}
.reminder-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important}
.mail-filter-grid,.log-filter-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,165px),1fr))!important}
.mail-filter-grid>.field:first-of-type,.log-filter-grid>.field:first-of-type{grid-column:span 2}
.mail-filter-grid>.btn,.log-filter-grid>.btn{align-self:end;min-height:38px}
.mail-layout>*{min-width:0}
.check-list,.check-row,.mail-target-bar{max-width:100%;min-width:0}
.check-row{grid-template-columns:28px minmax(0,1fr) minmax(0,max-content)!important}
.check-row>span{min-width:0}
.mail-target-meta{min-width:0;flex:1 1 280px}

/* Modal ve editörler viewport sınırında kalır. */
.modal{width:min(760px,calc(100vw - 28px))!important;max-width:calc(100vw - 28px)!important}
.editor-box,.card,.table-wrap{min-width:0}

@media(max-width:1500px) and (min-width:901px){
  /* İki ağır yönetim panelini yan yana sıkıştırmak yerine tam genişlik kullan. */
  .mail-layout{grid-template-columns:1fr!important}
  .mail-layout>.editor-box{width:100%;max-width:100%}
}

@media(max-width:1180px){
  :where(.module-grid,.pricing-grid,.content-grid,.security-two-col,.assistant-admin-grid,.inbox-grid,.quiz-admin-grid,.askida-detail-grid){grid-template-columns:1fr!important}
  .mail-filter-grid>.field:first-of-type,.log-filter-grid>.field:first-of-type{grid-column:auto}
}

@media(max-width:900px){
  body:has(.layout>.sidebar+.main) .main{width:100%!important;max-width:100%!important;flex:1 1 100%!important;margin-left:0!important}
  .page-header{flex-wrap:wrap;gap:10px;align-items:flex-start!important}
  .page-header>*{min-width:0;max-width:100%}
  .toolbar input[type="text"]{width:100%!important;flex:1 1 220px}
}

/* Dar ekranda tabloyu anlamsız 6-10 ince sütuna bölmek yerine kart görünümüne çevir. */
@media(max-width:780px){
  .table-wrap{overflow:visible!important;background:transparent!important;border:0!important;box-shadow:none!important}
  table.em-responsive-table,table.em-responsive-table tbody{display:block!important;width:100%!important}
  table.em-responsive-table tr.em-table-header-row{display:none!important}
  table.em-responsive-table tr:not(.em-table-header-row){display:block!important;width:100%!important;margin:0 0 12px!important;padding:6px 10px!important;border:1px solid var(--bord,rgba(255,255,255,.10))!important;border-radius:14px!important;background:var(--nl,rgba(12,23,42,.96))!important;box-shadow:0 10px 28px rgba(0,0,0,.08)}
  table.em-responsive-table td{display:grid!important;grid-template-columns:minmax(92px,32%) minmax(0,1fr)!important;align-items:start!important;gap:10px!important;width:100%!important;padding:9px 4px!important;border:0!important;border-bottom:1px solid var(--bord,rgba(255,255,255,.08))!important;text-align:left!important}
  table.em-responsive-table td:last-child{border-bottom:0!important}
  table.em-responsive-table td::before{content:attr(data-label);display:block;color:var(--muted,#8ea0b8);font-size:.62rem;font-weight:900;letter-spacing:.7px;text-transform:uppercase;line-height:1.3}
  table.em-responsive-table td.em-cell-unlabelled{display:flex!important;gap:8px!important;align-items:center!important;justify-content:flex-start!important}
  table.em-responsive-table td.em-cell-unlabelled::before{display:none!important}
  table.em-responsive-table td.em-cell-full{display:block!important;text-align:center!important}
  table.em-responsive-table td.em-cell-full::before{display:none!important}
  table.em-responsive-table td.em-actions-cell{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:6px!important}
  table.em-responsive-table td.em-actions-cell::before{flex:0 0 100%;width:100%}
  table.em-responsive-table td.em-actions-cell :where(.btn,button,a.btn,form){flex:1 1 130px;max-width:100%;margin:0!important}
  table.em-responsive-table td.em-actions-cell form :where(.btn,button){width:100%}
  table.em-responsive-table td>br{display:none}

  .reminder-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .mail-filter-grid,.log-filter-grid,.reminder-grid{grid-template-columns:1fr!important}
  .mail-filter-grid>.field:first-of-type,.log-filter-grid>.field:first-of-type{grid-column:auto}
  .check-row{grid-template-columns:26px minmax(0,1fr)!important}
  .check-row>span:last-child{grid-column:2;justify-self:start}
  .modal-btns{justify-content:stretch!important}
  .modal-btns>*{flex:1 1 160px}
}

@media(max-width:520px){
  .reminder-stats{grid-template-columns:1fr!important}
  :where(.btn,button.btn,a.btn){white-space:normal!important}
  .main{padding-left:10px!important;padding-right:10px!important}
  .card-body,.editor-box{padding-left:12px!important;padding-right:12px!important}
  table.em-responsive-table td{grid-template-columns:1fr!important;gap:4px!important}
  table.em-responsive-table td::before{margin-bottom:2px}
  table.em-responsive-table td.em-actions-cell::before{flex-basis:100%}
}

@media print{
  html,body{overflow:visible!important}
  table.em-responsive-table{display:table!important;table-layout:auto!important}
  table.em-responsive-table tbody{display:table-row-group!important}
  table.em-responsive-table tr{display:table-row!important;box-shadow:none!important}
  table.em-responsive-table th,table.em-responsive-table td{display:table-cell!important}
  table.em-responsive-table td::before{display:none!important}
}
