/* "Kuzey Gecesi" (Nordic Corporate) paleti — vize/sınır ötesi operasyonun
   resmiyet ve güven hissi: koyu lacivert ana renk, elektrik mavisi vurgu,
   açık gri zemin, saf beyaz yüzey. */
:root{
  --primary:#0F172A;        /* Menü, başlık, ana buton */
  --primary-soft:#1E293B;   /* Koyu zeminde ikinci kat */
  --primary-ink:#FFFFFF;    /* Koyu zemin üzeri metin */
  --accent:#3B82F6;         /* Link, aktif sekme, bildirim */
  --accent-soft:#EFF6FF;    /* Vurgunun açık zemin karşılığı */
  --accent-ink:#FFFFFF;
  --bg:#F8FAFC;             /* Sayfa zemini */
  --surface:#FFFFFF;        /* Kart, tablo, form yüzeyi */
  --panel:var(--surface);
  --panel-2:#F1F5F9;        /* İkincil yüzey (girdi, rozet, satır) */
  --line:#E2E8F0;
  --text:#0F172A;
  --muted:#64748B;
  --danger:#DC2626;
  --warn:#B45309;
  --warn-soft:#FEF3C7;
  --ok:#16A34A;
  --radius:10px;
  /* Sohbet ekranı aynı paletin açık tonlarıyla */
  --chat-bg:#F1F5F9; --bubble-in:#FFFFFF; --bubble-out:#DBEAFE;
  --tick:#94A3B8; --tick-read:var(--accent);
  --shadow:0 1px 2px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.10);
  font-size:15px;
}
/* Tipografi: gövde ve tablolar Inter (ekran için tasarlandı, rakamları net),
   başlık ve logo Plus Jakarta Sans. Font yüklenemezse sistem yığınına düşer. */
:root{
  --font-body:"Inter",ui-sans-serif,system-ui,"Segoe UI",Roboto,sans-serif;
  --font-display:"Plus Jakarta Sans","Inter",ui-sans-serif,system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0}
body{font-family:var(--font-body);background:var(--bg);color:var(--text);height:100vh;overflow:hidden;
  -webkit-font-smoothing:antialiased;font-feature-settings:"cv05","ss01"}
h1,h2,h3,#login h1,header .logo,.ph-mark{font-family:var(--font-display);letter-spacing:-.01em}
/* Tutar, tarih ve sayaçlar tabloda hizalı dursun */
table,.money,.num,.time,.stamp{font-variant-numeric:tabular-nums}

/* Tek renkli çizgi ikonlar — bkz. public/js/icons.js */
.icon{width:18px;height:18px;display:block;fill:none;stroke:currentColor;
  stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
button{font:inherit;cursor:pointer;border:none;border-radius:8px}
button:disabled{opacity:.5;cursor:not-allowed}
input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:9px 11px;outline:none;width:100%}
input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
input:disabled{color:var(--muted);background:var(--panel-2)}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.hint{color:var(--muted);font-size:13px;line-height:1.5}
.hint.sm,.empty.sm{font-size:12px}
.empty{padding:28px 20px;color:var(--muted);font-size:14px;text-align:center;line-height:1.5}
.empty.sm{padding:12px}
.clip{max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Düğmeler */
.btn-primary{background:var(--primary);color:var(--primary-ink);font-weight:600;padding:10px 16px}
.btn-primary:hover{background:var(--primary-soft)}
.btn-ghost{background:var(--surface);border:1px solid var(--line);color:var(--text);padding:8px 14px}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn-danger{background:var(--danger);color:#fff;font-weight:600;padding:10px 16px}
.btn-ghost.sm{padding:4px 10px;font-size:12px;color:var(--muted)}
.btn-link{color:var(--accent);text-decoration:underline}

/* Form alanları */
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}
.field>span{font-size:12px;color:var(--muted)}
.field-row{display:flex;gap:12px}
.field-row .field{flex:1}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.modal-actions .btn-danger{margin-right:auto}
.sub-head{font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:16px 0 8px}

/* Giriş */
#login{height:100vh;display:none;align-items:center;justify-content:center;background:var(--primary)}
#login .box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px;width:340px;box-shadow:0 20px 40px rgba(15,23,42,.35)}
#login h1{font-size:20px;letter-spacing:.3px}
#login h1 span{color:var(--accent)}
#login .tag{color:var(--muted);font-size:13px;margin:4px 0 18px}

/* Kabuk */
#app{display:none;flex-direction:column;height:100vh}
header{display:flex;align-items:center;gap:16px;padding:0 16px;height:52px;flex-shrink:0;background:var(--primary);color:var(--primary-ink)}
header .logo{font-weight:700;letter-spacing:.3px}
header .logo span{color:var(--accent)}
header .spacer{flex:1}
header .user{color:#CBD5E1;font-size:13px}
header .out{background:none;color:#CBD5E1;font-size:13px;text-decoration:underline}
header .out:hover{color:#fff}
#nav{display:flex;gap:4px}
#nav button{background:none;color:#CBD5E1;font-size:14px;padding:6px 12px}
#nav button:hover{color:#fff}
#nav button.active{background:var(--primary-soft);color:#fff;box-shadow:inset 0 -2px 0 var(--accent)}
.view{flex:1;min-height:0}

/* Gelen kutusu — WhatsApp Web düzeni: solda sohbet listesi, sağda balonlu akış */
#view-inbox{display:grid;grid-template-columns:360px 1fr}
#inbox-side{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--surface);min-height:0}
#inbox-search{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}
#inbox-search input{background:var(--panel-2);border-radius:20px;padding:8px 14px;font-size:13px}
#inbox-filters{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line)}
#inbox-filters.collapsed{display:none}
#inbox-filters select{padding:6px 9px;font-size:13px}
#list{overflow-y:auto;flex:1}
.icon-btn{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);width:34px;height:34px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;line-height:1}
.icon-btn:hover{color:var(--accent);border-color:var(--accent)}

/* Baş harflerden üretilen avatar — profil fotoğrafı olmayan kanallar için */
.avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:600;color:var(--primary);letter-spacing:.3px;user-select:none}
.avatar.lg{width:42px;height:42px}

.conv{padding:11px 14px;border-bottom:1px solid var(--line);cursor:pointer;display:flex;gap:12px;align-items:center}
.conv:hover{background:var(--panel-2)}
.conv.active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}
.conv .body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.conv .top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.conv .name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv .time{color:var(--muted);font-size:11px;flex-shrink:0}
.conv.has-unread .time{color:var(--accent)}
.conv .preview{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;gap:4px;align-items:center}
.conv .preview .tick .icon{width:13px;height:13px}
.conv .meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.conv .meta .spacer{flex:1}
.badge{font-size:11px;padding:2px 7px;border-radius:20px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted)}
.badge.ch-whatsapp,.badge.ch-whatsapp_web{color:#15803D;border-color:#BBF7D0;background:#F0FDF4}
.badge.ch-email{color:#1D4ED8;border-color:#BFDBFE;background:var(--accent-soft)}
.badge.ch-messenger{color:#4338CA;border-color:#C7D2FE;background:#EEF2FF}
.badge.ch-instagram{color:#BE185D;border-color:#FBCFE8;background:#FDF2F8}
.badge.ch-tiktok{color:#334155;border-color:#CBD5E1;background:var(--panel-2)}
.unread{background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:700;border-radius:20px;padding:1px 7px;flex-shrink:0}

/* Sohbet */
#thread{display:flex;flex-direction:column;min-height:0;background:var(--chat-bg)}
#thread-head{padding:9px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;background:var(--surface);flex-shrink:0}
#thread-head .who-wrap{min-width:0}
#thread-head .who{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#thread-head .num{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#thread-head .spacer{flex:1}
#thread-head select{width:auto;padding:5px 9px;font-size:13px}
#window-note{padding:8px 18px;background:var(--warn-soft);color:var(--warn);font-size:13px;flex-shrink:0;border-bottom:1px solid #FDE68A}

/* Karşılama asistanının gelen mesaj analizi — sohbet başlığının hemen altında şerit */
#ai-insight{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 18px;flex-shrink:0;
  background:var(--surface);border-bottom:1px solid var(--line);font-size:13px}
#ai-insight .txt{color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#ai-insight.u-yuksek{background:#FEF2F2;border-bottom-color:#FECACA}
#ai-insight.u-yuksek .txt{color:var(--danger)}
.badge.ai{color:var(--accent);border-color:#BFDBFE;background:var(--accent-soft);font-weight:600}
.badge.ai.u-yuksek{color:var(--danger);border-color:#FECACA;background:#FEF2F2}
.badge.ai.u-dusuk{color:var(--muted);border-color:var(--line);background:var(--panel-2)}

#msgs{flex:1;overflow-y:auto;padding:18px 8%;display:flex;flex-direction:column;gap:3px;min-height:0;
  /* Hafif doku: kâğıt hissi, harici görsel gerektirmez */
  background-image:radial-gradient(rgba(15,23,42,.05) 1px, transparent 1px);
  background-size:22px 22px}

.day-sep{align-self:center;background:var(--surface);border:1px solid var(--line);color:var(--muted);font-size:11px;text-transform:uppercase;
  letter-spacing:.5px;padding:4px 12px;border-radius:8px;margin:12px 0 8px}

.msg{position:relative;max-width:65%;padding:7px 10px 6px;border-radius:8px;font-size:14px;line-height:1.42;
  word-break:break-word;box-shadow:0 1px 2px rgba(15,23,42,.10)}
/* Satır sonları sadece mesaj gövdesinde korunur; balonun kendi girintisi boşluk üretmesin */
.msg .text{white-space:pre-wrap}
.msg.in{background:var(--bubble-in);align-self:flex-start}
.msg.out{background:var(--bubble-out);align-self:flex-end}
/* Ardışık balonlarda kuyruk sadece ilkinde — WhatsApp'taki gruplama */
.msg.first{margin-top:8px}
.msg.in.first{border-top-left-radius:0}
.msg.out.first{border-top-right-radius:0}
.msg.in.first::before,.msg.out.first::before{content:"";position:absolute;top:0;width:9px;height:13px}
.msg.in.first::before{left:-8px;background:var(--bubble-in);clip-path:polygon(100% 0,0 0,100% 100%)}
.msg.out.first::before{right:-8px;background:var(--bubble-out);clip-path:polygon(0 0,100% 0,0 100%)}
.msg .stamp{float:right;margin:6px 0 0 10px;font-size:11px;color:var(--muted);white-space:nowrap;display:flex;gap:3px;align-items:center}
.msg .err-stamp{float:none;display:block;margin:4px 0 0;color:var(--danger)}
.msg .sender{display:block;font-size:11px;color:var(--accent);margin-bottom:2px}
.msg .subject{display:block;font-size:12px;font-weight:600;color:var(--primary);margin-bottom:4px}
.msg a{color:var(--accent)}
.tick{color:var(--tick);display:inline-flex;align-items:center}
.tick .icon{width:14px;height:14px;stroke-width:2.25}
.tick.read{color:var(--tick-read)}
.tick.failed{color:var(--danger)}
/* Kuyrukta bekleyen mesaj: içi boş küçük daire */
.tick.pending{width:9px;height:9px;flex-shrink:0;align-self:center;border:1.5px solid var(--tick);border-radius:50%}
.media-btn{background:var(--panel-2);border:1px solid var(--line);color:var(--text);font-size:12px;padding:5px 10px;margin-bottom:6px;display:block}
.media-view{margin-bottom:6px}
.media-view img,.media-view video{max-width:100%;max-height:320px;border-radius:6px;display:block}
.media-view audio{width:260px}

#composer{display:flex;gap:8px;align-items:flex-end;padding:10px 14px;border-top:1px solid var(--line);background:var(--surface);flex-shrink:0}
#composer textarea{resize:none;max-height:120px;min-height:40px;border-radius:20px;padding:10px 14px;background:var(--panel-2)}
#composer button{padding:0 18px;white-space:nowrap;height:40px}
#composer .icon-btn{height:34px;padding:0;margin-bottom:3px}
#emoji-wrap{position:relative;flex-shrink:0}
#emoji-panel{position:absolute;bottom:44px;left:0;width:264px;background:var(--surface);border:1px solid var(--line);
  border-radius:10px;padding:8px;display:grid;grid-template-columns:repeat(8,1fr);gap:2px;z-index:20;
  max-height:200px;overflow-y:auto;box-shadow:0 8px 24px rgba(15,23,42,.18)}
#emoji-panel button{background:none;font-size:19px;padding:3px;line-height:1.2;height:auto}
#emoji-panel button:hover{background:var(--panel-2)}

#placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center}
#placeholder .ph-mark{font-size:26px;font-weight:700;letter-spacing:.5px}
#placeholder .ph-mark span{color:var(--accent)}
#placeholder .ph-text{color:var(--muted);font-size:14px;line-height:1.6}

/* Tablolu ekranlar */
.page{height:100%;overflow-y:auto;padding:20px 24px}
.page-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.page-head h2{font-size:17px;font-weight:600;color:var(--primary)}
.page-head .spacer{flex:1}
.page-head input{max-width:280px}
.section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:18px;box-shadow:var(--shadow)}
.section-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.section-head h3{font-size:15px;font-weight:600;color:var(--primary)}
.section-head .spacer{flex:1}
table.grid{width:100%;border-collapse:collapse;font-size:13px}
table.grid th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;padding:0 10px 8px;border-bottom:1px solid var(--line)}
table.grid td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
table.grid tbody tr:hover{background:var(--bg)}
table.grid tr:last-child td{border-bottom:none}
.row-actions{white-space:nowrap;text-align:right}
.row-actions button{margin-left:4px}
.pill{font-size:11px;padding:2px 8px;border-radius:20px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted)}
.pill.ok{color:var(--ok);border-color:#BBF7D0;background:#F0FDF4}
.pill.off{color:var(--danger);border-color:#FECACA;background:#FEF2F2}
.pill+.pill{margin-left:4px}
.mini-list{list-style:none;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
.check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);white-space:nowrap}
.check input{width:auto}

/* Teklifler */
.pill.st-draft{color:var(--muted)}
.pill.st-sent{color:#1D4ED8;border-color:#BFDBFE;background:var(--accent-soft)}
.pill.st-accepted,.pill.st-done{color:var(--ok);border-color:#BBF7D0;background:#F0FDF4}
.pill.st-rejected,.pill.st-cancelled{color:var(--danger);border-color:#FECACA;background:#FEF2F2}
.pill.st-expired{color:var(--warn);border-color:#FDE68A;background:var(--warn-soft)}
.item-row{display:grid;grid-template-columns:1fr 80px 110px 110px 28px;gap:8px;align-items:center;margin-bottom:8px}
.item-row .it-total{font-size:13px;color:var(--muted);text-align:right}
.totals{margin:14px 0 4px;font-size:13px;display:flex;flex-direction:column;gap:4px}
.totals div{display:flex;justify-content:space-between}
.totals span{color:var(--muted)}
.totals .grand{border-top:1px solid var(--line);padding-top:6px;margin-top:4px;font-size:15px}
.totals .grand b{color:var(--primary)}
.totals .fx-line{display:block;font-size:12px;color:var(--muted);text-align:right}

/* Müşteri takibi */
.fu-group{margin-bottom:18px}
.fu-group.muted{opacity:.65}
.fu-item{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);margin-bottom:8px}
.fu-item.late{border-left:3px solid var(--danger)}
.fu-main{flex:1;min-width:0}
.fu-title{font-size:13px;font-weight:600}
.fu-meta{font-size:12px;color:var(--muted);margin-top:2px}
.fu-due{font-size:12px;color:var(--muted);white-space:nowrap}
.fu-item.late .fu-due{color:var(--danger)}

/* Kanban */
#view-pipeline{display:flex;flex-direction:column}
#board{display:flex;gap:12px;flex:1;min-height:0;overflow-x:auto;padding:16px 20px;align-items:flex-start}
#board .col{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:260px;flex-shrink:0;max-height:100%;display:flex;flex-direction:column;box-shadow:var(--shadow)}
#board .col.drop-target{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.col-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px 8px;font-weight:600;font-size:14px;color:var(--primary)}
.col-count{font-size:11px;color:var(--muted);background:var(--panel-2);border-radius:20px;padding:1px 8px}
.col-total{padding:0 14px 8px;font-size:12px;color:var(--accent)}
.col-body{padding:0 10px 10px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.card{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;cursor:grab}
.card:hover{border-color:var(--accent)}
.card.dragging{opacity:.4}
.card.outcome-won{border-left:3px solid var(--ok)}
.card.outcome-lost{border-left:3px solid var(--danger)}
.card-title{font-size:13px;font-weight:600;margin-bottom:4px}
.card-meta{font-size:12px;color:var(--muted)}
.card-foot{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:8px;font-size:12px}

/* Ayarlar — aşamalar */
.stage-group{margin-bottom:12px}
.stage-rows{display:flex;flex-direction:column;gap:6px}
.stage-row{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 12px}
.stage-name{flex:1;font-size:13px}
.au-row{display:flex;align-items:center;gap:10px;justify-content:space-between;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-bottom:6px;font-size:13px}
.field .req{color:var(--danger);font-style:normal}
.field small.hint{font-size:11px}
.modal-actions .spacer{flex:1}

/* WhatsApp Web QR ekranı */
.qr-state{margin:14px 0 10px;font-size:13px;color:var(--accent)}
.qr-box{display:flex;align-items:center;justify-content:center;min-height:120px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:14px}
.qr-box img{border-radius:8px;background:#fff;padding:8px}
.qr-ok{color:var(--muted);font-size:13px;text-align:center;line-height:1.5}

/* Modal */
#modal-host{display:none;position:fixed;inset:0;z-index:50}
.modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:20px}
.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:420px;max-width:100%;max-height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 48px rgba(15,23,42,.28)}
.modal.wide{width:620px}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.modal-head h3{color:var(--primary)}
.modal-x{background:none;color:var(--muted);font-size:20px;line-height:1;padding:0 4px}
.modal-body{padding:18px;overflow-y:auto}
.confirm-text{font-size:14px;line-height:1.5}

/* Şablon seçici */
.tpl-preview{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.5;white-space:pre-wrap;color:var(--muted)}

/* Hazır vize metni seçici — katalog uzun, liste kendi içinde kayar */
.vt-list{max-height:46vh;overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.vt-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:9px 12px;
  background:none;border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;color:var(--text)}
.vt-item:last-child{border-bottom:0}
.vt-item:hover{background:var(--panel-2)}
.vt-item.busy{opacity:.5;pointer-events:none}
.vt-title{font-size:13px;font-weight:500;line-height:1.35}
.vt-meta{font-size:12px;color:var(--muted)}

/* Toast */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--primary);border:1px solid var(--primary-soft);color:var(--primary-ink);border-radius:8px;padding:10px 18px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .18s,transform .18s;z-index:60;box-shadow:0 8px 24px rgba(15,23,42,.25)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.error{background:var(--danger);border-color:var(--danger);color:#fff}

/* Görevler — takip satırlarıyla aynı görsel dil */
.fu-row{display:flex;align-items:flex-start;gap:12px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);margin-bottom:8px}
.fu-row.done{opacity:.6}
.fu-note{font-size:12px;color:var(--muted);margin-top:4px;white-space:pre-wrap}
.badge.pr-high{color:var(--warn);border-color:#FDE68A;background:var(--warn-soft)}
.badge.pr-urgent{color:var(--danger);border-color:#FECACA;background:#FEF2F2}

/* Evraklar */
.warn-box{background:var(--warn-soft);border:1px solid #FDE68A;border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;font-size:13px;color:var(--warn)}
.warn-box .mini-list{color:inherit;margin-top:6px}
.warn-box .over{font-weight:600}
.badge.st-approved{color:var(--ok);border-color:#BBF7D0;background:#F0FDF4}
.badge.st-rejected,.badge.st-expired{color:var(--danger);border-color:#FECACA;background:#FEF2F2}
.badge.st-received{color:var(--accent);border-color:#BFDBFE;background:var(--accent-soft)}
td .req{color:var(--danger)}

/* Bildirim zili */
#bell-wrap{position:relative}
.bell-count{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;border-radius:10px;background:var(--danger);color:#fff;font-size:10px;line-height:16px;text-align:center}
#bell-panel{position:absolute;top:42px;right:0;width:340px;max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 16px 36px rgba(15,23,42,.22);z-index:40}
.bell-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);font-size:13px;color:var(--text)}
.notif{padding:10px 12px;border-bottom:1px solid var(--line);cursor:pointer;background:var(--accent-soft)}
.notif:hover{background:var(--panel-2)}
.notif.read{background:var(--surface)}
.notif-top{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}
.notif-type{text-transform:uppercase;letter-spacing:.4px}
.notif-title{font-size:13px;font-weight:600;margin-top:3px}
.notif-body{font-size:12px;color:var(--muted);margin-top:2px;white-space:pre-wrap}

/* Ekip notları */
.notes{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto}
.note{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.note-head{display:flex;justify-content:space-between;gap:8px;font-size:12px}
.note-time{color:var(--muted)}
.note-body{font-size:13px;line-height:1.5;margin-top:4px;white-space:pre-wrap}
.mention{color:var(--accent);font-weight:600}
.note-compose{display:flex;gap:8px;align-items:flex-end;margin-top:10px}
.note-compose textarea{flex:1;resize:vertical}

/* Yapay zekâ çıktıları */
.ai-box{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin-top:12px}
.ai-box-head{font-size:12px;color:var(--muted);margin-bottom:8px}
.ai-summary{font-size:13px;line-height:1.6;white-space:pre-wrap;font-family:inherit;margin:0}
table.grid.compact{margin-top:10px}
table.grid.compact th{width:150px;padding:6px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.grid.compact td{padding:6px 10px;font-size:13px}

/* CRM asistanı: yüzen sohbet paneli */
#ai-chat-launcher{
  position:fixed;right:20px;bottom:20px;z-index:60;
  background:var(--primary);color:var(--primary-ink);border:0;cursor:pointer;
  border-radius:999px;padding:11px 20px;font-size:14px;font-weight:600;
  box-shadow:0 4px 14px rgba(15,23,42,.28)
}
#ai-chat-launcher:hover{background:var(--primary-soft)}
#ai-chat-launcher.active{background:var(--accent)}
#ai-chat-panel{
  position:fixed;right:20px;bottom:74px;z-index:60;width:400px;max-width:calc(100vw - 40px);
  height:540px;max-height:calc(100vh - 110px);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:0 12px 32px rgba(15,23,42,.22);
  display:none;flex-direction:column;overflow:hidden
}
#ai-chat-panel.open{display:flex}
.ai-chat-head{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--panel-2)}
.ai-chat-log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--chat-bg)}
.ai-chat-intro{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px}
.ai-chat-intro p{font-size:13px;color:var(--muted);line-height:1.5;margin-top:6px}
.ai-chat-suggest{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.ai-chat-suggest button{
  background:var(--accent-soft);color:var(--accent);border:1px solid var(--line);
  border-radius:999px;padding:5px 11px;font-size:12px;cursor:pointer
}
.ai-chat-suggest button:hover{background:var(--surface)}
.ai-msg{display:flex;flex-direction:column;max-width:88%}
.ai-msg.me{align-self:flex-end;align-items:flex-end}
.ai-msg.bot{align-self:flex-start}
.ai-bubble{
  background:var(--bubble-in);border:1px solid var(--line);border-radius:12px;
  padding:8px 11px;font-size:13px;line-height:1.55;word-break:break-word
}
.ai-msg.me .ai-bubble{background:var(--bubble-out);border-color:transparent}
.ai-bubble.err{background:#FEF2F2;border-color:#FECACA;color:var(--danger)}
.ai-tools{font-size:11px;color:var(--muted);margin-top:3px}
.ai-bubble.typing{display:flex;gap:4px;padding:11px}
.ai-bubble.typing span{
  width:6px;height:6px;border-radius:50%;background:var(--muted);
  animation:ai-blink 1.2s infinite ease-in-out
}
.ai-bubble.typing span:nth-child(2){animation-delay:.2s}
.ai-bubble.typing span:nth-child(3){animation-delay:.4s}
@keyframes ai-blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
.ai-chat-compose{display:flex;gap:8px;align-items:flex-end;padding:10px;border-top:1px solid var(--line)}
.ai-chat-compose textarea{flex:1;resize:none;font-family:inherit}
