
.h4, h4 {
    font-size: 16px;
}

.ssl-inactive {
    opacity: 0.3;
}

.status-grace {	background-color: #f16e30;    color: white;}
.status-expired {   background-color: #cccccc;color: black;}
.status-redemption {    background-color: #ff5757;color: white;}
.status-pending-transfer {background-color: #c1a8ff;color: black;}

.panel-sidebar.view-filter-btns .list-group-item.active, .panel-sidebar.view-filter-btns .list-group-item.active:focus {
	    background-color: #8553ab;
    border-color: #8553ab;
    color: #fff
}

/**
 * Select Account
 */

.select-account {
    margin: 20px auto;
    padding: 0;
    border-top: 1px solid #ddd;
}
.select-account a {
    display: block;
    margin: 0;
    padding: 10px;
    border-bottom: 1px solid #ddd;
    text-decoration: none;
}
.select-account a.disabled {
    opacity: 0.5;
}
.select-account a:hover {
    background-color: #f6f6f6;
}

.continue-container {
    margin: 40px auto;
    padding: 20px;
    background-color: #f6f6f6;
    border: 1px solid #eee;
    max-width: 500px;
}

.tospanel {
    background-color: #f8f8f8;
    border-radius: 3px;
	border-color: #e2e2e2;
}

#autoAnswerSuggestions.well {
	border: 5px solid #88ccee;
}

.kbarticles {
    font-size: 1em;
}

@media (min-width: 992px) {
.sidebar .list-group-item .badge {
    margin-top: 2px;
    padding: 3px 7px 3px 8px;
    line-height: initial;
    min-width: 36px;
}
}

.module-client-area {
    display: flow-root;
}

p {
    margin: 0px 0 13px !important;
}

.popover-user-notifications ul li i.far {
    padding-top: 0;
}

.bg-success-tc {
    background-color: #5cb85c;
    color: white;
    padding: 2px 6px;
    font-size: 12px;
}

.bg-danger-tc {
    background-color: #f59191;
    color: white;
    padding: 2px 6px;
    font-size: 12px;
}

#accountNotifications .label{font-size: 13px;}

.container-fluid.without-padding {

    overflow-x: visible;
}

.dataTables_wrapper .dataTables_length label {
    padding: 10px 10px 15px 30px;
}

.dataTables_wrapper .dataTables_paginate {
    float: right;
    padding: 0px 30px 0;
}

.navbar-main li.account {
    background-color: transparent;
}
.genel-header {
	color: #fff;
	background-color: #141416;
	background-image:
		radial-gradient(ellipse 70% 90% at 92% 0%, rgba(255, 255, 255, 0.14) 0%, rgba(255, 255, 255, 0) 52%),
		radial-gradient(ellipse 55% 80% at 8% 110%, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 58%),
		radial-gradient(ellipse 45% 60% at 62% 70%, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0) 60%),
		linear-gradient(215deg, #323236 0%, #09050e 46%, #2b152d 100%);
	margin-bottom: -23px;
}

.genel-header .header-lined h1 {
	color:white;
	border-bottom: 0 !important;
	padding-top: 30px;
	/* text-transform: uppercase; */
	font-weight: 300;
	font-size: 33px;
}

.genel-header .header-lined {
	margin-bottom: 53px;
}


.panel-accent-red {
	   border-color: #d9534f;
}

.panel-accent-red .panel-heading {
	background-color: #d9534f !important;
}

.panel-accent-red .panel-title {
	    color: white;
}

.panel-accent-red .panel-footer {
	background-color: #f7d7d6;
}

#inputPromotionCode {
    width: 100%;
    height: 34px;
}

fieldset {
    border: 0 !important;
}

#header-user {
    visibility: visible;
    height: 30px;
    display: -webkit-inline-box;
    width: 800px;
}

.caret_yukari {
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 2px;
    vertical-align: middle;
    border-bottom: 4px dashed;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
}

.domain-checker-bg {
	    padding: 30px 0;
		background-image: none;
}
}
.e-more a{
	color: #d5f1d9;
	font-size: 14px;
}

.uzantilar li {
	float: left;
	margin-bottom: 12px; 
	min-width: 100px;
}
.uzantilar label {
	font-weight: 600;
	font-size: 14px;
	color: white;
}

#order-standard_cart .order-summary .loader {
top: 7px !important;
text-align: left !important;
}

.fiyatlistesi {
	border: 2px solid #5cb85c !important;
}
#order-standard_cart .product-info {
	border-top: 3px solid #efefef !important;
    border-bottom: 3px solid #efefef !important;
	border-radius: 4px;
	
}

#order-standard_cart .info-text-sm {
	margin-top: 19px;
}

.bootstrap-select {border:0 !important;}

#order-standard_cart .order-summary {
	    background-color: #4cae4c !important;
}

.status-aktif {
    background-color: #3fad46;
}

.status-askıya {
    background-color: #F0AD4E;
}

.ticket-reply .user .type {
	font-weight: normal;
}
.ticket-reply .user .name {
	font-weight: bold;
	font-size: 0.97em;
}
.ticket-reply .date
 {
    padding: 15px 10px;
}

.status-fraud, .status-answered {
    background-color: #37b349;
	color: #fff;;
}

.status-open {
    background-color: #1889c1;
	    color: #ffffff;
}

.domain-checker-container {
    margin: 20px 0;
    padding: 0;
    background-color: #4986bb;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -o-border-radius: 10px;
    border-radius: 10px;
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#4986bb), to(#337ab7));
    background: -webkit-linear-gradient(top, #4986bb, #337ab7);
    background: -moz-linear-gradient(top, #4986bb, #337ab7);
    background: -ms-linear-gradient(top, #4986bb, #337ab7);
    background: -o-linear-gradient(top, #4986bb, #337ab7);
}

.md-editor>textarea,.md-editor>.md-preview { padding: 10px !important}

.popover-content {
    padding: 15px 14px;
}

#order-standard_cart .tutar {
 font-size: 20px;   
}

.jp-card .jp-card-front, .jp-card .jp-card-back {
    background: #b9b9b9 !important
}
@media only screen and (min-width: 767px) {
	.jp-card-container {
			padding-left: 76px;
	}
}

#kredikartiuyari i {
    float: left;
    font-size: 2.8em;
	padding-left: 14px; 
}
#kredikartiuyari {
    margin: 20px 0;
    font-size: 0.8em;
}

#kredikartiuyari div {
padding-left: 61px;
}

.input-group-btn .btn {font-size: 14px}

.empty-cart .btn {font-size: 10px}

.panel-heading .btn, .panel-footer .btn {font-size: 13px}

.recurring-totals { display: none !important;}

#frmProductDomain p { font-size: 13px}

.ticket-reply.staff {
    border: 1px solid #5CB85C;
}
.ticket-reply.staff .user {
    background-color: #5CB85C;
    color: white;
}

.ticket-reply {
    margin: 10px 0;
    padding: 0;
    border: 1px solid #34495E;
    background-color: #fff;
	border-radius: 3px;
}
.ticket-reply .user {
    padding: 15px 0;
    background-color: #2a5970;
	background: linear-gradient(90deg, #2a5970 0%, rgb(99 58 130) 100%) !important;

}

.ticket-reply.staff .user {
    padding: 15px 0;
    background-color: #138e1b;
	background: linear-gradient(90deg, #138e1b 0%, rgb(26 56 24) 100%) !important;

}

.staff .date, .ticket-reply .date, .ticket-reply .user .name, .ticket-reply .user i, .ticket-reply .user .type {color: white;}

.ticket-reply .attachments ul {
    margin: 10px 0;
}
.main-content {    min-height: 630px; border-radius: 5px;}

#tableInvoicesList tbody td {
	text-align: center;
}

.ticket-reply .message {
    font-size: 14px;
    word-wrap: break-word;
}

.panel-sidebar .panel-title {
    font-weight: 400;
}

.dataTables_wrapper .dataTables_info {
    background-color: #633a82;
	border-radius: 4px 4px 0 0;
}

.dataTables_wrapper table.table-list thead th:nth-child(even) {
    border-bottom: 4px solid #8553ab;
}

.dataTables_wrapper table.table-list thead th {
    border-bottom: 4px solid #daacfd;
    font-weight: 400;
}

.bg-toplufatura{
	 background-color: #5bc0de;
    color: white;

}

.label-grey {
    background-color: #d9534f;
}

.btn-social {
    padding-left: 16px;
	font-size: 16px;
}

#btnGoogleSignin1 i {
	padding-right: 11px;
}
.guvenlik_butonu {
    margin: 7px 0 3px;
    color: black;
}
.guvenlik_butonu:hover {
    margin: 7px 0 3px;
    color: white;
    background-color: #d9534f;
}
.social-signin-btns {
    text-align: left;
}

.tiles .tile {
    border-bottom: 1px solid #ccc;
}
.tiles .tile:last-child {
    border: 0;
	border-bottom: 1px solid #ccc;
}
@media (max-width: 767px){
.tiles .tile:nth-child(2) {
    border-right: 1px solid #ccc;
}
.tiles .tile:nth-child(3) {
    border-right: 0;
}
}

/**
 * Yan menü sütunu — ikinci menünün içeriğin altına kayması
 *
 * #main-body'deki tek bir .row üç sütun taşıyor: primary sidebar
 * (col-md-3, header.tpl) + içerik (col-md-9) + secondary sidebar
 * (col-md-3, footer.tpl) = 3+9+3 = 15 sütun. Float düzeninde üçüncü sütun
 * ancak sağ olukta boşluk bulursa oraya oturur. Primary sidebar içerikten
 * UZUNSA boşluk kalmaz ve secondary sidebar ("+ İşlemler") bütün içeriğin
 * altına, en sola düşer.
 *
 * Koşul yüksekliklerin oranıdır: primary > main-content olduğu an kayar.
 * Aşağıdaki .main-content { min-height: 630px } kuralı bunu çoğu sayfada
 * gizleyen payandadır, düzeltme değil — primary 630'u aşınca yetmiyor
 * (ölçüldü: primary 900 / main 630 → secondary sol 208'e düştü).
 *
 * Çözüm: >=992px'te satır grid'e alınır. İçerik 1. sütunda iki satırı birden
 * kaplar, iki menü 2. sütunda alt alta durur — yükseklikten bağımsız.
 * Ölçüm (1600px): kusurlu senaryoda secondary sol 208 → 1085 (primary ile
 * aynı sütun, aralarında 0px boşluk); zaten doğru çalışan senaryolarda
 * sayılar birebir aynı kaldı (208/878 · 1085/293).
 *
 * width:auto şart: grid item olan .col-md-*'ın %25/%75 genişliği artık satıra
 * değil kendi grid track'ine göre çözülüyordu (293px → 73px ölçüldü).
 * 992px altında kural hiç devreye girmez; DOM sırası (menü → içerik → menü)
 * ve mobil görünüm değişmez.
 */
@media (min-width: 992px) {
    #main-body .row.dh-row-sidebar {
        display: grid;
        grid-template-columns: 75% 25%;
        grid-template-rows: auto 1fr;
        align-items: start;
    }
    #main-body .row.dh-row-sidebar > .sidebar,
    #main-body .row.dh-row-sidebar > .main-content {
        width: auto;
        float: none;
    }
    #main-body .row.dh-row-sidebar > .sidebar.pull-md-right {
        grid-column: 2;
        grid-row: 1;
    }
    #main-body .row.dh-row-sidebar > .main-content {
        grid-column: 1;
        grid-row: 1 / span 2;
    }
    #main-body .row.dh-row-sidebar > .sidebar.pull-md-left {
        grid-column: 2;
        grid-row: 2;
    }
}


/**
 * Aç/kapa switch'i — PANEL GENELİ bileşen
 *
 * Buraya 2026-08-27'de `clientareadomaindetails.tpl`'in sayfa içi `<style>`
 * bloğundan taşındı. Orada dururken yalnız alan adı detay sayfasında vardı;
 * başka bir sayfada ya da modülde kullanmak için kopyalamak gerekiyordu.
 * Ortak dosyaya alınınca her client area sayfası ve modül aynı bileşeni
 * kullanabiliyor — kopya çıkmıyor.
 *
 * Kullanımı:
 *   <label class="dh-dd-switch is-on|is-off|is-loading">
 *     <span class="dh-dd-switch-state">Etkin</span>
 *     <input type="checkbox" class="dh-dd-switch-input" checked>
 *     <span class="dh-dd-switch-track"><span class="dh-dd-switch-knob"></span></span>
 *   </label>
 *
 * `is-loading`: istek sürerken düğme ileri geri gider ve tıklama kapanır
 * (`pointer-events: none`). Sunucudan yanıt gelene kadar kullanıcının ikinci
 * kez tıklamasını da engeller — yalnız süs değil.
 */
.dh-dd-switch-form { margin: 20px 0 0; }
.dh-dd-switch-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    background: #fff;
    border: 1px solid #dbe1e8;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.dh-dd-switch-title { font-size: 16px; font-weight: 600; color: #2c3e50; }
.dh-dd-switch {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    cursor: pointer;
    font-weight: normal;
}
.dh-dd-switch-state {
    min-width: 72px;
    text-align: right;
    font-size: 14px;
    font-weight: 600;
    color: #6c757d;
}
.dh-dd-switch-input { position: absolute; opacity: 0; width: 0; height: 0; }
.dh-dd-switch-track {
    position: relative;
    display: inline-block;
    width: 48px;
    height: 26px;
    border-radius: 999px;
    background: #c7ccd1;
    transition: background 0.2s ease;
    flex-shrink: 0;
}
.dh-dd-switch-knob {
    position: absolute;
    left: 3px; top: 3px;
    width: 20px; height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
    transition: left 0.2s ease;
}
.dh-dd-switch-input:checked + .dh-dd-switch-track { background: #5cb85c; }
.dh-dd-switch-input:checked + .dh-dd-switch-track .dh-dd-switch-knob { left: 25px; }
.dh-dd-switch.is-on .dh-dd-switch-state { color: #2e7d27; }
.dh-dd-switch.is-off .dh-dd-switch-state { color: #6c757d; }
.dh-dd-switch-input:disabled + .dh-dd-switch-track { opacity: 0.55; cursor: not-allowed; }
.dh-dd-switch.is-loading { pointer-events: none; }
.dh-dd-switch.is-loading .dh-dd-switch-state { color: #6c757d; min-width: 1.2em; }
.dh-dd-switch.is-loading .dh-dd-switch-track {
    background: #c5cdd6;
    opacity: 0.7;
}
.dh-dd-switch.is-loading .dh-dd-switch-knob {
    animation: dh-dd-switch-load 0.9s ease-in-out infinite;
}
@keyframes dh-dd-switch-load {
    0%, 100% { left: 3px; }
    50% { left: 14px; }
}

/* ============================================================================
   IRTP iletisim dogrulama bildirimi  (.dh-irtp)
   Tasarim referansi: RTR modulunun ilk-dogrulama karti (.rtr-pv,
   realtimeregister/.../client/pending_validation.tpl). Yapi, olculer ve
   hareket dili oradan alindi; renk ailesi bildirimin tipine gore degisir.
   Sablon: dh/includes/irtp-alert.tpl
   ========================================================================== */
.dh-irtp {
    /* Onay bekleyen bildirim: kehribar (ton ~40 derece). Uyari kartindan gorunur
       sekilde sariya kacar ama beyaz metni tasiyabilecek kadar koyu kalir --
       en acik uc #bf840f, beyaz metinle kontrast 3.22 (uyari kartinin acik ucu 3.36).
       Daha sariya gidildiginde kontrast 2.2'ye dusuyordu, olculdu. */
    --dh-irtp-bg: radial-gradient(circle at 88% 4%, rgba(255,255,255,.18) 0%, transparent 30%),
        linear-gradient(135deg, #8c610b 0%, #a5720d 52%, #bf840f 100%);
    --dh-irtp-ray: rgba(191,132,15,.30);
    --dh-irtp-glow: #fff1cf;
    --dh-irtp-shadow: rgba(92,63,6,.95);
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-start;
    gap: 18px;
    margin: 0 0 20px;
    padding: 24px 26px;
    border-radius: 14px;
    background: var(--dh-irtp-bg);
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: 0 16px 34px -22px var(--dh-irtp-shadow), inset 0 1px 0 rgba(255,255,255,.12);
}
.dh-irtp * { box-sizing: border-box; }
/* Askiya alinma yaklasiyorsa uyari hue'suna gecer. */
.dh-irtp.dh-irtp-warn {
    --dh-irtp-bg: radial-gradient(circle at 88% 4%, rgba(255,255,255,.18) 0%, transparent 30%),
        linear-gradient(135deg, #9a3412 0%, #b45309 52%, #e8632c 100%);
    --dh-irtp-ray: rgba(232,99,44,.28);
    --dh-irtp-glow: #ffe9cf;
    --dh-irtp-shadow: rgba(122,42,10,.95);
}
/* Islem SURUYOR: canli turuncu. Kehribar "bekliyor", warn "sorun var" demek;
   bu ise "yolda, hersey yolunda" demeli ve gorsel olarak da oyle durmali.
   Acik uc #ea580c, beyaz metinle kontrast 3.56 -- olculdu ve iki varyanttan da
   yuksek. Bir ton daha acigi (#f97316) 2.80'e dusuyor, beyaz metin okunmuyor. */
.dh-irtp.dh-irtp-progress {
    --dh-irtp-bg: radial-gradient(circle at 88% 4%, rgba(255,255,255,.18) 0%, transparent 30%),
        linear-gradient(135deg, #b8400c 0%, #d64f0b 50%, #ea580c 100%);
    --dh-irtp-ray: rgba(234,88,12,.32);
    --dh-irtp-glow: #ffe2c4;
    --dh-irtp-shadow: rgba(120,40,6,.95);
}
.dh-irtp.dh-irtp-progress .dh-irtp-body .btn,
.dh-irtp.dh-irtp-progress .dh-irtp-body button[type="submit"] { color: #b8400c; }

.dh-irtp::before {
    content: "";
    position: absolute;
    bottom: -70%;
    left: -8%;
    width: 320px;
    height: 320px;
    background: radial-gradient(circle, var(--dh-irtp-ray) 0%, transparent 70%);
    pointer-events: none;
}
.dh-irtp-ic {
    position: relative;
    z-index: 1;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    border-radius: 16px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.24);
    color: var(--dh-irtp-glow);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 26px;
    box-shadow: 0 0 22px rgba(255,255,255,.14), inset 0 0 12px rgba(255,255,255,.08);
}
.dh-irtp-main {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: left;
}
.dh-irtp-title {
    margin: 0;
    font-family: inherit;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.03em;
    color: #fff;
}
/* Cekirdegin urettigi govde: metin + <br> + yeniden gonder formu. */
.dh-irtp-body {
    margin: 0;
    font-size: 14.5px;
    line-height: 1.6;
    color: rgba(255,255,255,.86);
}
.dh-irtp-body br { display: none; }
.dh-irtp-body form { margin: 14px 0 0; }
.dh-irtp-body .btn,
.dh-irtp-body button[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 13px 26px;
    border: none;
    border-radius: 999px;
    background: #fff;
    color: #7a5409;
    font-size: 14.5px;
    font-weight: 800;
    letter-spacing: -.01em;
    white-space: normal;
    line-height: 1.25;
    cursor: pointer;
    box-shadow: 0 12px 24px -16px rgba(0,0,0,.85);
    transition: transform .18s ease, box-shadow .18s ease;
}
.dh-irtp.dh-irtp-warn .dh-irtp-body .btn,
.dh-irtp.dh-irtp-warn .dh-irtp-body button[type="submit"] { color: #9a3412; }
/* Bootstrap'in .btn-primary:hover/:focus/:active kurallari zemini ve golgeyi
   kendisi veriyor; basili hale gecince koyu lacivert zemin + kalin ic golge
   cikiyordu. Ozgulluk hesabi: Bootstrap'in en dar secicisi
   .btn-primary:not(:disabled):not(.disabled):active = 0,4,0; asagidakiler
   .dh-irtp-body ile birlikte 0,5,0 -- !important gerekmeden kazanir. */
.dh-irtp-body .btn:hover,
.dh-irtp-body .btn:focus,
.dh-irtp-body .btn:active,
.dh-irtp-body .btn:active:focus,
.dh-irtp-body .btn:not(:disabled):not(.disabled):active,
.dh-irtp-body button[type="submit"]:hover,
.dh-irtp-body button[type="submit"]:focus,
.dh-irtp-body button[type="submit"]:active,
.dh-irtp-body button[type="submit"]:active:focus,
.dh-irtp-body button[type="submit"]:not(:disabled):not(.disabled):active {
    background: #fff;
    background-image: none;
    border: none;
    color: #7a5409;
    outline: 0;
}
.dh-irtp.dh-irtp-warn .dh-irtp-body .btn:hover,
.dh-irtp.dh-irtp-warn .dh-irtp-body .btn:focus,
.dh-irtp.dh-irtp-warn .dh-irtp-body .btn:active,
.dh-irtp.dh-irtp-warn .dh-irtp-body .btn:active:focus,
.dh-irtp.dh-irtp-warn .dh-irtp-body .btn:not(:disabled):not(.disabled):active,
.dh-irtp.dh-irtp-warn .dh-irtp-body button[type="submit"]:hover,
.dh-irtp.dh-irtp-warn .dh-irtp-body button[type="submit"]:focus,
.dh-irtp.dh-irtp-warn .dh-irtp-body button[type="submit"]:active,
.dh-irtp.dh-irtp-warn .dh-irtp-body button[type="submit"]:active:focus,
.dh-irtp.dh-irtp-warn .dh-irtp-body button[type="submit"]:not(:disabled):not(.disabled):active { color: #9a3412; }

/* Kalkma yalniz hover'da; basiliyken buton yerine oturur (dokunsal geri bildirim). */
.dh-irtp-body .btn:hover,
.dh-irtp-body button[type="submit"]:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 28px -14px rgba(0,0,0,.9), 0 0 0 4px rgba(255,255,255,.28);
}
.dh-irtp-body .btn:focus,
.dh-irtp-body button[type="submit"]:focus {
    box-shadow: 0 12px 24px -16px rgba(0,0,0,.85), 0 0 0 4px rgba(255,255,255,.42);
}
.dh-irtp-body .btn:active,
.dh-irtp-body .btn:not(:disabled):not(.disabled):active,
.dh-irtp-body button[type="submit"]:active,
.dh-irtp-body button[type="submit"]:not(:disabled):not(.disabled):active {
    transform: translateY(1px);
    box-shadow: 0 4px 10px -8px rgba(0,0,0,.9), inset 0 2px 5px rgba(0,0,0,.12);
}
@media (max-width: 720px) {
    .dh-irtp { padding: 20px; gap: 14px; }
    .dh-irtp-ic { flex-basis: 46px; width: 46px; height: 46px; font-size: 21px; border-radius: 13px; }
    .dh-irtp-title { font-size: 21px; }
    .dh-irtp-body .btn,
    .dh-irtp-body button[type="submit"] { width: 100%; }
}

/* ---------------------------------------------------------------------------
   Transfer başlatılamadı kartı — `.dh-irtp` bileşenine eklenen parçalar
   ---------------------------------------------------------------------------
   Kart `.dh-irtp.dh-irtp-warn` kullanıyor; ikon, başlık, gövde ve buton
   biçimi oradan geliyor. Burada yalnız o bileşende olmayan üç şey var:
   açıklama notu, satır içi kod formu ve zaman damgası.
   Renkler koyu zemine göre; kart gradyanı üzerinde okunur olmaları için
   sabit değil, beyazın opaklığı üzerinden veriliyor. */
.dh-irtp-note {
    margin-top: 10px;
    opacity: .92;
}
.dh-irtp-hint {
    margin-left: 10px;
    font-size: 13px;
    opacity: .85;
}
.dh-irtp-meta {
    margin-top: 14px;
    font-size: 12px;
    opacity: .7;
}
.dh-irtp-form-inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
/* Girdi koyu zemin üzerinde: şeffaf değil dolu bir zemin veriliyor, aksi
   halde kartın gradyanı metnin altından geçip okunurluğu düşürüyor. */
.dh-irtp-input {
    flex: 1 1 260px;
    min-width: 0;
    padding: 10px 12px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 6px;
    background: rgba(255,255,255,.96);
    color: #1f2937;
    font-size: 14px;
}
.dh-irtp-input::placeholder { color: #6b7280; }
.dh-irtp-input:focus {
    outline: none;
    border-color: #fff;
    box-shadow: 0 0 0 3px rgba(255,255,255,.25);
}
/* Pasif düğme: tıklanabilir görünmemeli. `.dh-irtp-body .btn` kuralı
   0,2,0; buraya 0,3,0 veriliyor ki !important gerekmeden kazansın. */
.dh-irtp .dh-irtp-body .btn[disabled] {
    opacity: .55;
    cursor: not-allowed;
}
@media (max-width: 576px) {
    .dh-irtp-form-inline { flex-direction: column; align-items: stretch; }
    .dh-irtp-hint { margin-left: 0; }
}

/* ---------------------------------------------------------------------------
   Giriş 2FA — SMS/OTP kod alanı (`two-factor-challenge.tpl`, `#2fatoken`)
   ---------------------------------------------------------------------------
   Tek input; büyük, aralıklı, ortalı. Boyut/hizalama JS'te inline veriliyor
   (modülün `.form-control`'unu kesin yenmek için). Burada yalnız odak halkası
   ve placeholder tonu — inline ile veremediklerimiz. */
input#2fatoken.dh-otp-input::placeholder {
    color: #cfd6e0;
    letter-spacing: .4em;
    font-weight: 400;
}
input#2fatoken.dh-otp-input:focus {
    border-color: #2f6fed !important;
    box-shadow: 0 0 0 4px rgba(47,111,237,.15) !important;
    outline: none !important;
}
/* Başlık ("2 Adımlı Doğrulama") da ortalansın — yalnız bu sayfada. */
.dh-2fa-page .header-lined h1 { text-align: center; }
/* Etiket ("Doğrulama SMS Kodu") ve alan ortalansın. */
#frmTwoFactorChallenge { text-align: center; }
#frmTwoFactorChallenge label[for="2fatoken"] { display: block; margin-bottom: 12px; }

/* ---------------------------------------------------------------------------
   2FA modalı — gövdedeki bağlantılar okunur olsun
   ---------------------------------------------------------------------------
   "Uygulamanızla bağlantı kurun" modalında uygulama adları (Google
   Authenticator / Duo) BEYAZ kalıyor ve beyaz zeminde görünmüyordu.

   İlk teşhis `.copyright_info` çakışmasıydı ve YANLIŞTI: markup düpedüz
   `<p><a href="...">Google Authenticator</a> veya <a ...>Duo</a> ...</p>` --
   o sınıf ortada yok. O yanlış teşhise dayanan daraltma footer'ı bozmuştu
   (2026-09-02); footer kuralına artık dokunulmuyor.

   Renk genel bir bağlantı kuralından geliyor; burada yalnız modal gövdesi
   eziliyor. `#modalAjax .modal-body a` (1,1,1) + `!important`. */
#modalAjax .modal-body a,
.twofa-setup .modal-body a {
    color: #2f6fed !important;
}
#modalAjax .modal-body a:hover,
#modalAjax .modal-body a:focus,
.twofa-setup .modal-body a:hover,
.twofa-setup .modal-body a:focus {
    color: #1b4fd8 !important;
    text-decoration: underline !important;
}

/* Liste tablolarında mobilde arama kutusu bilgi çubuğuyla üst üste biniyordu:
   all.min.css'te `div.dataTables_wrapper div.dataTables_info` padding'i `!important`
   olduğu için mobil override yenilmiyor; arama kutusu (float:right + margin-top:30px)
   bilgi çubuğunun üzerine düşüyordu. Burada float kaldırılıp dikey ferah bir yığın
   kuruluyor: bilgi çubuğu normal padding, arama kutusu altta tam genişlik. (2026-09-02) */
@media (max-width: 600px) {
    div.dataTables_wrapper div.dataTables_info {
        padding: 14px 15px !important;
        white-space: normal;
    }
    .dataTables_wrapper .dataTables_filter {
        float: none;
        clear: both;
        width: 100%;
        margin: 0;
        background-color: #f4f4f6;
        border-top: 1px solid #e6e6e6;
    }
    .dataTables_wrapper .dataTables_filter label {
        display: block;
        margin: 0;
        padding: 10px 12px;
    }
    .dataTables_wrapper .dataTables_filter label .form-control {
        width: 100%;
        margin: 0;
        border: 1px solid #ddd;
    }
}
