/* ==========================================================================
   Alarko Carrier AI Paneli — koyu tema
   --------------------------------------------------------------------------
   Bootstrap 5.3'ün kendi koyu modu (data-bs-theme="dark") temel alınır; burada
   yalnızca Bootstrap'in CSS değişkenleri kendi paletimize çekilir. Böylece
   kart, tablo, form, dropdown gibi bileşenler tek tek ezilmek zorunda kalmaz.

   --ac-navy sayfalarda satır içi style ile kullanılıyor (buton ve ilerleme
   çubuğu arka planları). Değişkeni silmek yerine yeni vurgu rengine
   yönlendiriyoruz; böylece sekiz sayfa düzenlenmeden tutarlı kalıyor.
   ========================================================================== */

:root {
    /* zemin katmanları */
    --ac-bg:         #070b14;
    --ac-bg-soft:    #0a1020;
    --ac-surface:    #0e1526;
    --ac-surface-hi: #141d33;
    --ac-line:       rgba(148, 163, 184, .13);
    --ac-line-hi:    rgba(148, 163, 184, .24);

    /* metin */
    --ac-ink:   #e8ecf5;
    --ac-muted: #8b97ad;
    --ac-dim:   #5c6880;

    /* vurgu — mor→mavi geçişi panele "AI" kimliği veriyor */
    --ac-accent:   #7c5cff;
    --ac-accent-2: #4f8cff;
    --ac-accent-3: #38bdf8;
    --ac-grad: linear-gradient(135deg, #7c5cff 0%, #4f8cff 55%, #38bdf8 100%);
    --ac-grad-soft: linear-gradient(135deg, rgba(124, 92, 255, .18) 0%, rgba(79, 140, 255, .14) 100%);
    --ac-glow: 0 0 0 1px rgba(124, 92, 255, .35), 0 8px 28px -8px rgba(124, 92, 255, .55);

    /* marka kırmızısı koyu zeminde okunmuyordu, açıldı */
    --ac-red:   #ff4d6a;
    --ac-green: #34d399;
    --ac-amber: #fbbf24;

    /* satır içi style'ların beslendiği eski değişken */
    --ac-navy:      #5b7cfa;
    --ac-navy-soft: #4f8cff;

    --ac-radius: 16px;
}

/* Bootstrap değişkenlerini palete bağla */
[data-bs-theme="dark"] {
    --bs-body-bg:          var(--ac-bg);
    --bs-body-color:       var(--ac-ink);
    --bs-emphasis-color:   #fff;
    --bs-secondary-color:  var(--ac-muted);
    --bs-tertiary-color:   var(--ac-dim);
    --bs-border-color:     var(--ac-line);
    --bs-border-color-translucent: var(--ac-line);
    --bs-primary:          var(--ac-accent);
    --bs-link-color:       var(--ac-accent-3);
    --bs-link-hover-color: #7dd3fc;
    --bs-code-color:       #c4b5fd;
    --bs-heading-color:    #f3f6fc;
}

/* ------------------------------------------------------------------ temel */

body.ac-body {
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    background: var(--ac-bg);
    color: var(--ac-ink);
    -webkit-font-smoothing: antialiased;
}

/* Sayfanın üstünde duran, ekranla birlikte kaymayan ışıma. Koyu zeminin
   düz görünmesini engelliyor; tıklamayı engellememesi için pointer-events yok. */
body.ac-body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        radial-gradient(760px 420px at 14% -8%, rgba(124, 92, 255, .16), transparent 70%),
        radial-gradient(680px 380px at 88% 4%, rgba(56, 189, 248, .11), transparent 70%);
}

.app-wrapper { position: relative; z-index: 1; }

::selection { background: rgba(124, 92, 255, .35); }

* { scrollbar-width: thin; scrollbar-color: var(--ac-line-hi) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
    background: var(--ac-line-hi);
    border: 3px solid transparent;
    border-radius: 999px;
    background-clip: content-box;
}
*::-webkit-scrollbar-thumb:hover { background: rgba(148, 163, 184, .4); background-clip: content-box; }

/* --------------------------------------------------------------- üst çubuk */

/* AdminLTE'nin layout-fixed sınıfı bu sürümde başlığı sabitlemiyordu; sayfa
   kaydırıldığında üst çubuk ekrandan çıkıyordu. Sticky ile kendimiz sabitliyoruz. */
.ac-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: rgba(10, 16, 32, .72);
    backdrop-filter: blur(18px) saturate(160%);
    -webkit-backdrop-filter: blur(18px) saturate(160%);
    border-bottom: 1px solid var(--ac-line);
    box-shadow: 0 1px 0 rgba(255, 255, 255, .03);
}

.ac-header .nav-link { color: var(--ac-muted); }
.ac-header .nav-link:hover { color: var(--ac-ink); }

.ac-icon-btn {
    width: 38px;
    height: 38px;
    border-radius: 11px;
    display: grid !important;
    place-items: center;
    border: 1px solid var(--ac-line);
    background: rgba(255, 255, 255, .03);
    transition: background .15s, border-color .15s;
}

.ac-icon-btn:hover {
    background: rgba(255, 255, 255, .07);
    border-color: var(--ac-line-hi);
}

.ac-chip {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--ac-line);
    border-radius: 999px;
    padding: .38rem .85rem;
    font-size: .78rem;
    font-weight: 500;
    color: var(--ac-muted);
    font-variant-numeric: tabular-nums;
}

.ac-dot {
    font-size: .48rem;
    color: var(--ac-green);
    filter: drop-shadow(0 0 5px rgba(52, 211, 153, .8));
    animation: ac-pulse 2.4s ease-in-out infinite;
}

.ac-dot.off {
    color: var(--ac-dim);
    filter: none;
    animation: none;
}

@keyframes ac-pulse {
    0%, 100% { opacity: 1; }
    50%      { opacity: .3; }
}

.ac-avatar {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: var(--ac-grad);
    color: #fff;
    display: grid;
    place-items: center;
    font-weight: 700;
    font-size: .85rem;
    box-shadow: 0 4px 14px -4px rgba(124, 92, 255, .7);
}

/* ---------------------------------------------------------------- sol menü */

.ac-sidebar {
    background: rgba(9, 14, 27, .82) !important;
    backdrop-filter: blur(22px) saturate(150%);
    -webkit-backdrop-filter: blur(22px) saturate(150%);
    border-right: 1px solid var(--ac-line);
    box-shadow: none !important;
}

.ac-brand {
    padding: .9rem 1rem;
    border-bottom: 1px solid var(--ac-line);
}

.ac-brand-link {
    display: flex;
    align-items: center;
    gap: .75rem;
    text-decoration: none;
}

.ac-brand-mark {
    position: relative;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    background: var(--ac-grad);
    color: #fff;
    font-weight: 800;
    font-size: .92rem;
    letter-spacing: .5px;
    display: grid;
    place-items: center;
    flex: none;
    box-shadow: 0 6px 20px -6px rgba(124, 92, 255, .8);
}

/* Marka rozetinin çevresinde yavaşça nefes alan halka */
.ac-brand-mark::after {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: 16px;
    border: 1px solid rgba(124, 92, 255, .45);
    animation: ac-breathe 3.4s ease-in-out infinite;
}

@keyframes ac-breathe {
    0%, 100% { opacity: .8; transform: scale(1); }
    50%      { opacity: .25; transform: scale(1.09); }
}

.ac-brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.ac-brand-text strong { color: #fff; font-size: .95rem; font-weight: 700; }
.ac-brand-text small  { color: var(--ac-dim); font-size: .7rem; }

/* Dokuz menü maddesi + dört başlık 720 px yükseklikte kaydırmasız sığmalı;
   aralıklar buna göre sıkı tutuldu. Daha kısa ekranlarda kaydırma devreye girer. */
.ac-nav-wrap {
    padding: .35rem .25rem .5rem;
    overflow-y: auto;
}

.sidebar-menu .nav-header {
    color: var(--ac-dim);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding: .8rem .9rem .3rem;
}

.sidebar-menu .nav-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: .8rem;
    margin: 2px .6rem;
    padding: .53rem .75rem;
    border-radius: 11px;
    color: var(--ac-muted);
    font-size: .875rem;
    font-weight: 500;
    transition: color .16s, background .16s, transform .16s;
}

.sidebar-menu .nav-link .nav-icon {
    width: 20px;
    font-size: .92rem;
    text-align: center;
    color: var(--ac-dim);
    transition: color .16s;
}

.sidebar-menu .nav-link p { margin: 0; }

.sidebar-menu .nav-link:hover {
    background: rgba(255, 255, 255, .05);
    color: var(--ac-ink);
    transform: translateX(2px);
}

.sidebar-menu .nav-link:hover .nav-icon { color: var(--ac-accent-3); }

.sidebar-menu .nav-link.active {
    background: var(--ac-grad-soft);
    color: #fff;
    font-weight: 600;
    box-shadow: inset 0 0 0 1px rgba(124, 92, 255, .28);
}

.sidebar-menu .nav-link.active .nav-icon { color: var(--ac-accent-3); }

/* Aktif öğenin sol kenarındaki parlayan çubuk */
.sidebar-menu .nav-link.active::before {
    content: '';
    position: absolute;
    left: -.6rem;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 22px;
    border-radius: 0 3px 3px 0;
    background: var(--ac-grad);
    box-shadow: 0 0 12px rgba(124, 92, 255, .9);
}

.ac-sidebar-foot {
    margin-top: auto;
    padding: .65rem .8rem .8rem;
    border-top: 1px solid var(--ac-line);
}

.ac-sidebar-card {
    background: rgba(255, 255, 255, .035);
    border: 1px solid var(--ac-line);
    border-radius: 12px;
    padding: .6rem .75rem;
}

.ac-sidebar-card .label {
    font-size: .66rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--ac-dim);
    font-weight: 600;
}

.ac-sidebar-card .value {
    font-size: .82rem;
    color: var(--ac-ink);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* AdminLTE sidebar'ı flex kolon yapmadan alt kart aşağı yaslanmıyor */
.ac-sidebar { display: flex; flex-direction: column; }
.ac-sidebar .sidebar-wrapper { flex: 1 1 auto; }

/* ----------------------------------------------------------- içerik başlığı */

.app-content-header { padding: 1.4rem 0 .5rem; }

.ac-page-title {
    font-size: 1.45rem;
    font-weight: 700;
    letter-spacing: -.02em;
    color: #f3f6fc;
    margin: 0;
}

.ac-page-sub {
    color: var(--ac-muted);
    font-size: .85rem;
    margin: .2rem 0 0;
}

.app-footer {
    background: transparent;
    border-top: 1px solid var(--ac-line);
    color: var(--ac-dim);
    font-size: .8rem;
}

/* --------------------------------------------------------------------- kart */

.card {
    background: linear-gradient(180deg, rgba(255, 255, 255, .035) 0%, rgba(255, 255, 255, .012) 100%), var(--ac-surface);
    border: 1px solid var(--ac-line);
    border-radius: var(--ac-radius);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 12px 32px -20px rgba(0, 0, 0, .9);
}

.card-header {
    background: transparent;
    border-bottom: 1px solid var(--ac-line);
    font-weight: 600;
    color: var(--ac-ink);
    padding: .9rem 1.1rem;
    border-radius: var(--ac-radius) var(--ac-radius) 0 0 !important;
}

.card-footer, .card-footer.bg-white {
    background: rgba(255, 255, 255, .02) !important;
    border-top: 1px solid var(--ac-line);
    border-radius: 0 0 var(--ac-radius) var(--ac-radius) !important;
}

/* İstatistik kartları */

.ac-stat {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem 1.25rem;
}

.ac-stat-icon {
    width: 46px;
    height: 46px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    font-size: 1.1rem;
    flex: none;
}

.ac-stat-value {
    font-size: 1.7rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.03em;
    color: #fff;
    font-variant-numeric: tabular-nums;
}

.ac-stat-label {
    color: var(--ac-muted);
    font-size: .8rem;
    margin-top: .28rem;
}

/* Sayfalardaki bg-soft-* sınıfları koyu zemine uyarlandı */
.bg-soft-navy  { background: rgba(91, 124, 250, .15);  color: #93aaff; }
.bg-soft-red   { background: rgba(255, 77, 106, .14);  color: var(--ac-red); }
.bg-soft-green { background: rgba(52, 211, 153, .14);  color: var(--ac-green); }
.bg-soft-amber { background: rgba(251, 191, 36, .14);  color: var(--ac-amber); }
.bg-soft-slate { background: rgba(148, 163, 184, .13); color: #b6c2d6; }

/* --------------------------------------------------------- buton ve form */

/* Sayfalarda satır içi style ile navy arka plan veriliyor; !important
   bunları ezip her yerde tek tip gradyan buton bırakıyor. */
.btn-primary {
    background: var(--ac-grad) !important;
    border: none !important;
    color: #fff !important;
    font-weight: 600;
    border-radius: 11px;
    box-shadow: 0 6px 18px -8px rgba(124, 92, 255, .9);
    transition: filter .15s, transform .15s, box-shadow .15s;
}

.btn-primary:hover:not(:disabled) {
    filter: brightness(1.12);
    transform: translateY(-1px);
    box-shadow: 0 10px 26px -8px rgba(124, 92, 255, 1);
}

.btn-primary:disabled { opacity: .45; box-shadow: none; }

.btn { border-radius: 11px; font-weight: 500; }

.btn-outline-secondary {
    border-color: var(--ac-line-hi);
    color: var(--ac-muted);
}

.btn-outline-secondary:hover {
    background: rgba(255, 255, 255, .06);
    border-color: var(--ac-line-hi);
    color: var(--ac-ink);
}

.form-control, .form-select {
    background: rgba(255, 255, 255, .035);
    border: 1px solid var(--ac-line);
    border-radius: 11px;
    color: var(--ac-ink);
    padding: .55rem .8rem;
}

.form-control:focus, .form-select:focus {
    background: rgba(255, 255, 255, .05);
    border-color: rgba(124, 92, 255, .65);
    box-shadow: 0 0 0 3px rgba(124, 92, 255, .18);
    color: var(--ac-ink);
}

.form-control::placeholder { color: var(--ac-dim); }
.form-label { color: var(--ac-muted); }
.form-text  { color: var(--ac-dim) !important; font-size: .78rem; }

.input-group-text {
    background: rgba(255, 255, 255, .04);
    border-color: var(--ac-line);
    color: var(--ac-muted);
}

.form-check-input {
    background-color: rgba(255, 255, 255, .06);
    border-color: var(--ac-line-hi);
}

.form-check-input:checked {
    background-color: var(--ac-accent);
    border-color: var(--ac-accent);
}

/* -------------------------------------------------------- tablo ve rozet */

.table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--ac-ink);
    --bs-table-border-color: var(--ac-line);
    --bs-table-hover-bg: rgba(255, 255, 255, .04);
    --bs-table-hover-color: var(--ac-ink);
    margin-bottom: 0;
}

.table > :not(caption) > * > * { padding: .72rem .8rem; }

.table thead th {
    font-size: .71rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    font-weight: 600;
    color: var(--ac-dim);
    background: rgba(255, 255, 255, .025);
    border-bottom: 1px solid var(--ac-line);
}

/* Sayfalarda text-bg-light rozetler var; koyu zeminde beyaz leke bırakıyordu */
.badge.text-bg-light {
    background: rgba(255, 255, 255, .07) !important;
    color: var(--ac-muted) !important;
    border-color: var(--ac-line) !important;
    font-weight: 500;
}

.badge { border-radius: 7px; padding: .32em .6em; }

.ac-score-pill {
    font-variant-numeric: tabular-nums;
    font-size: .72rem;
    padding: .14rem .5rem;
    border-radius: 7px;
    background: rgba(255, 255, 255, .07);
    color: #c3cfe2;
}

.ac-url {
    font-size: .75rem;
    color: var(--ac-dim);
    word-break: break-all;
}

.ac-progress {
    height: 7px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .07);
    overflow: hidden;
}

/* İlerleme dolgusu sayfalarda satır içi navy alıyor — gradyana çeviriyoruz */
.ac-progress > div, #jobBar {
    background: var(--ac-grad) !important;
}

.ac-code {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .78rem;
    background: #05080f;
    color: #c7d2e5;
    border: 1px solid var(--ac-line);
    border-radius: 12px;
    padding: .9rem 1rem;
    overflow-x: auto;
}

.dropdown-menu {
    background: var(--ac-surface-hi);
    border: 1px solid var(--ac-line-hi);
    border-radius: 13px;
    box-shadow: 0 20px 50px -20px rgba(0, 0, 0, .95);
}

.dropdown-item { color: var(--ac-muted); border-radius: 8px; }
.dropdown-item:hover { background: rgba(255, 255, 255, .06); color: var(--ac-ink); }

.alert { border-radius: 13px; border-width: 1px; }

.nav-tabs {
    border-bottom-color: var(--ac-line);
    gap: .25rem;
}

.nav-tabs .nav-link {
    border: 1px solid transparent;
    border-radius: 10px 10px 0 0;
    color: var(--ac-muted);
    font-weight: 500;
}

.nav-tabs .nav-link:hover {
    background: rgba(255, 255, 255, .05);
    border-color: transparent;
    color: var(--ac-ink);
}

.nav-tabs .nav-link.active {
    background: var(--ac-grad-soft);
    border-color: var(--ac-line) var(--ac-line) transparent;
    color: #fff;
}

/* Bootstrap'in koyu temada alert-light'a verdiği gri (#343a40) panelde
   açık bir leke bırakıyordu; kart yüzeyiyle aynı tona çekildi. */
.alert-light {
    background: rgba(255, 255, 255, .04) !important;
    border-color: var(--ac-line) !important;
    color: var(--ac-muted) !important;
}

.list-group { --bs-list-group-bg: transparent; }

.list-group-item {
    background: transparent;
    border-color: var(--ac-line);
    color: var(--ac-ink);
}

.list-group-item-action:hover {
    background: rgba(255, 255, 255, .05);
    color: #fff;
}

.list-group-item.active {
    background: var(--ac-grad-soft);
    border-color: rgba(124, 92, 255, .3);
    color: #fff;
}

.page-link {
    background: rgba(255, 255, 255, .035);
    border-color: var(--ac-line);
    color: var(--ac-muted);
}

.page-item.active .page-link {
    background: var(--ac-accent);
    border-color: var(--ac-accent);
    color: #fff;
}

.modal-content {
    background: var(--ac-surface-hi);
    border: 1px solid var(--ac-line-hi);
    border-radius: var(--ac-radius);
}

/* ------------------------------------------------------------------ sohbet */

.ac-chat-shell {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 240px);
    min-height: 460px;
}

.ac-chat-log {
    flex: 1;
    overflow-y: auto;
    padding: 1.4rem;
    background: var(--ac-bg-soft);
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

.ac-msg {
    display: flex;
    gap: .8rem;
    max-width: 82%;
    animation: ac-rise .3s ease both;
}

@keyframes ac-rise {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

.ac-msg.user {
    align-self: flex-end;
    flex-direction: row-reverse;
}

.ac-msg-avatar {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    display: grid;
    place-items: center;
    color: #fff;
    flex: none;
    font-size: .82rem;
}

.ac-msg.bot .ac-msg-avatar {
    background: var(--ac-grad);
    box-shadow: 0 4px 14px -5px rgba(124, 92, 255, .9);
}

.ac-msg.user .ac-msg-avatar {
    background: rgba(255, 255, 255, .09);
    color: var(--ac-muted);
}

.ac-bubble {
    background: var(--ac-surface-hi);
    border: 1px solid var(--ac-line);
    border-radius: 15px;
    padding: .85rem 1.05rem;
    line-height: 1.65;
    white-space: pre-wrap;
    word-break: break-word;
    color: var(--ac-ink);
}

.ac-msg.user .ac-bubble {
    background: var(--ac-grad);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 8px 24px -12px rgba(124, 92, 255, .95);
}

.ac-bubble.refused {
    background: rgba(251, 191, 36, .07);
    border-color: rgba(251, 191, 36, .28);
}

/* .ac-bubble'daki pre-wrap model çıktısının satır sonlarını korumak için gerekli,
   ama kaynak listesi sunucuda girintili basıldığı için o girintiler de boşluk
   olarak render ediliyordu. Bu blokta normal akışa dönülüyor. */
.ac-sources {
    margin-top: .7rem;
    padding-top: .65rem;
    border-top: 1px dashed var(--ac-line-hi);
    font-size: .8rem;
    white-space: normal;
}

/* Dar kolonlarda (ör. Sohbet Geçmişi) uzun ürün adları skor rozetini alt
   satıra itip satırı parçalıyordu; rozet sabit, başlık esnek tutuluyor. */
.ac-source-item {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: .6rem;
    padding: .22rem 0;
}

.ac-source-item > :first-child {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: anywhere;
}

.ac-source-item > :last-child { flex: 0 0 auto; }

.ac-meta {
    font-size: .72rem;
    color: var(--ac-dim);
    margin-top: .45rem;
}

.ac-composer {
    border-top: 1px solid var(--ac-line);
    padding: .95rem 1.1rem;
    background: var(--ac-surface);
}

.ac-typing span {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-right: 3px;
    border-radius: 50%;
    background: var(--ac-accent-2);
    animation: ac-bounce 1.2s infinite;
}

.ac-typing span:nth-child(2) { animation-delay: .15s; }
.ac-typing span:nth-child(3) { animation-delay: .3s; }

@keyframes ac-bounce {
    0%, 60%, 100% { transform: translateY(0); opacity: .35; }
    30%           { transform: translateY(-5px); opacity: 1; }
}

/* ------------------------------------------------------------------- giriş */

.ac-login {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 1.5rem;
    background: var(--ac-bg);
    position: relative;
    overflow: hidden;
}

/* Arka planda yavaşça süzülen iki renk kümesi */
.ac-login::before,
.ac-login::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    pointer-events: none;
}

.ac-login::before {
    width: 620px;
    height: 620px;
    background: rgba(124, 92, 255, .3);
    top: -220px;
    left: -160px;
    animation: ac-float 15s ease-in-out infinite;
}

.ac-login::after {
    width: 520px;
    height: 520px;
    background: rgba(56, 189, 248, .22);
    bottom: -200px;
    right: -140px;
    animation: ac-float 18s ease-in-out infinite reverse;
}

@keyframes ac-float {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(60px, 40px) scale(1.12); }
}

.ac-login-card {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 430px;
    background: rgba(14, 21, 38, .82);
    backdrop-filter: blur(24px) saturate(160%);
    -webkit-backdrop-filter: blur(24px) saturate(160%);
    border: 1px solid var(--ac-line-hi);
    border-radius: 22px;
    padding: 2.4rem;
    box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .95);
    animation: ac-rise .5s ease both;
}

.ac-login-badge {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    background: var(--ac-grad-soft);
    border: 1px solid rgba(124, 92, 255, .3);
    color: #b7a5ff;
    border-radius: 999px;
    padding: .3rem .8rem;
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .02em;
}

.ac-login-title {
    font-size: 1.6rem;
    font-weight: 800;
    letter-spacing: -.03em;
    color: #fff;
    margin: 1.1rem 0 .35rem;
}

.ac-login-sub {
    color: var(--ac-muted);
    font-size: .875rem;
    margin: 0;
}

.ac-enter-btn {
    width: 100%;
    border: none;
    border-radius: 13px;
    padding: .95rem 1rem;
    background: var(--ac-grad);
    color: #fff;
    font-weight: 700;
    font-size: .98rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    cursor: pointer;
    box-shadow: 0 12px 30px -12px rgba(124, 92, 255, 1);
    transition: transform .15s, filter .15s, box-shadow .15s;
}

.ac-enter-btn:hover {
    transform: translateY(-2px);
    filter: brightness(1.1);
    box-shadow: 0 18px 40px -14px rgba(124, 92, 255, 1);
}

.ac-enter-btn:active { transform: translateY(0); }

.ac-login-feature {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    padding: .55rem 0;
    color: var(--ac-muted);
    font-size: .82rem;
}

.ac-login-feature i {
    color: var(--ac-accent-3);
    margin-top: .18rem;
    font-size: .78rem;
}

.ac-divider {
    display: flex;
    align-items: center;
    gap: .8rem;
    color: var(--ac-dim);
    font-size: .72rem;
    margin: 1.4rem 0;
}

.ac-divider::before,
.ac-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--ac-line);
}

/* ------------------------------------------------ iki adımlı giriş (telefon + TOTP) */

.ac-phone-input {
    letter-spacing: .04em;
    font-variant-numeric: tabular-nums;
}

.ac-code-input {
    text-align: center;
    letter-spacing: .55em;
    text-indent: .55em;          /* harf aralığı sondaki boşluğu kaydırır, ortalamayı düzeltir */
    font-weight: 700;
    font-size: 1.5rem;
    font-variant-numeric: tabular-nums;
}

.ac-code-input::placeholder { letter-spacing: .55em; font-weight: 500; opacity: .35; }

/* QR mutlaka açık zeminde durmalı — kameralar koyu zeminli kodu okuyamaz. */
.ac-qr-wrap {
    display: flex;
    justify-content: center;
    margin: 1.4rem 0 1rem;
}

.ac-qr {
    background: #fff;
    padding: .75rem;
    border-radius: 14px;
    line-height: 0;
    box-shadow: 0 14px 34px -16px rgba(0, 0, 0, .9);
}

.ac-qr svg {
    width: 190px;
    height: 190px;
    display: block;
}

.ac-secret {
    text-align: center;
    border: 1px dashed var(--ac-line);
    border-radius: 12px;
    padding: .7rem .8rem;
}

.ac-secret-label {
    display: block;
    color: var(--ac-dim);
    font-size: .71rem;
    margin-bottom: .3rem;
}

.ac-secret code {
    color: var(--ac-muted);
    font-size: .88rem;
    letter-spacing: .08em;
    user-select: all;
}

.ac-link-btn {
    background: none;
    border: none;
    color: var(--ac-dim);
    font-size: .8rem;
    cursor: pointer;
    padding: .2rem .4rem;
}

.ac-link-btn:hover { color: var(--ac-muted); }

/* --------------------------------------------------------------- duyarlılık */

@media (max-width: 991.98px) {
    .ac-chat-shell { height: calc(100vh - 200px); }
    .ac-msg { max-width: 94%; }
    .ac-login-card { padding: 1.75rem; }
    .ac-qr svg { width: 165px; height: 165px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}
