:root{--bg:#0f1b2e;--panel:#15243a;--panel2:#1b2c46;--text:#e7edf8;--muted:#8ea0bb;--red:#b90d22;--blue:#2455d6;--green:#16a34a;--border:#263a5a}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;background:linear-gradient(135deg,#0d1728,#15233a);color:var(--text);display:flex;min-height:100vh}.sidebar{width:260px;background:#0b1424;border-right:1px solid var(--border);padding:24px 18px;position:fixed;inset:0 auto 0 0}.brand{display:flex;gap:14px;align-items:center;margin-bottom:28px}.brand-logo{width:46px;height:46px;border-radius:14px;background:#b90d22;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}.brand strong{display:block;font-size:20px}.brand span{display:block;color:var(--muted);font-size:13px}nav{display:grid;gap:8px}nav a{color:#cbd6e8;text-decoration:none;padding:12px 14px;border-radius:12px;font-weight:700}nav a:hover{background:#162844}.version{position:absolute;left:18px;right:18px;bottom:18px;color:#8ea0bb;font-size:12px;background:#101d31;border:1px solid var(--border);border-radius:12px;padding:12px}main{margin-left:260px;padding:28px;width:calc(100% - 260px)}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.topbar h1{margin:0;font-size:32px}.topbar p{margin:6px 0 0;color:var(--muted)}.pill{background:#11294b;border:1px solid var(--border);padding:10px 14px;border-radius:999px;color:#a8c8ff}.cards{display:grid;gap:16px;margin-bottom:20px}.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card,.panel,.form-card{background:rgba(21,36,58,.92);border:1px solid var(--border);border-radius:18px;padding:20px;box-shadow:0 18px 45px rgba(0,0,0,.18)}.card span{display:block;color:var(--muted);font-size:13px}.card strong{font-size:34px}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.panel h2{margin:0}table{width:100%;border-collapse:collapse}th,td{padding:12px;border-bottom:1px solid var(--border);text-align:left}th{color:#9fb1ce;font-size:13px}.btn{display:inline-block;border:1px solid var(--border);background:#1b2c46;color:#fff;border-radius:10px;padding:10px 14px;text-decoration:none;font-weight:800}.btn.primary{background:#b90d22;border-color:#b90d22}.btn.small{padding:7px 10px;font-size:12px}.form-card{max-width:820px;display:grid;gap:14px}.form-card label{display:grid;gap:6px;color:#cbd6e8;font-weight:700}.form-card input,.form-card select,.form-card textarea{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:#0f1b2e;color:#fff}.form-card textarea{min-height:110px}.check{display:flex!important;align-items:center;gap:10px}.check input{width:auto}.alert{padding:14px 16px;border-radius:12px;margin-bottom:18px}.alert.success{background:#12331f;border:1px solid #1e7c40}.alert.error{background:#3a151b;border:1px solid #852334}.mono{font-family:ui-monospace,Consolas,monospace;font-size:12px;color:#b8c7dc;max-width:260px;overflow:hidden;text-overflow:ellipsis}@media(max-width:900px){.sidebar{position:relative;width:100%;min-height:auto}.version{position:static;margin-top:20px}body{display:block}main{margin:0;width:100%}.cards.four,.grid.two{grid-template-columns:1fr}}
.detail-list{margin:0;padding-left:18px;line-height:1.8;color:#334155}.muted{color:#64748b;margin:8px 0 0}.alert.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;word-break:break-all}
.form-grid{display:grid;gap:12px}.form-grid label{font-weight:800;color:#cbd6e8}.form-grid input,.form-grid select{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:#0f1b2e;color:#fff}.check-row{display:flex;align-items:center;gap:10px}.check-row input{width:auto}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.validation{color:#ffb4c0;font-size:12px}.codebox{font-family:ui-monospace,Consolas,monospace;font-size:12px;color:#b8c7dc;background:#0b1424;border:1px solid var(--border);border-radius:12px;padding:12px;word-break:break-all;margin-top:12px}.detail-list{color:#b8c7dc}.muted{color:#8ea0bb}
.form-card.wide{max-width:980px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.badge.success{background:rgba(34,197,94,.14);color:#86efac;border:1px solid rgba(34,197,94,.32)}.badge.danger{background:rgba(239,68,68,.14);color:#fca5a5;border:1px solid rgba(239,68,68,.32)}.module-box{border:1px solid var(--line);border-radius:16px;padding:16px;background:rgba(15,23,42,.45);margin:12px 0}.module-box h3{margin:0 0 4px}.module-box p{margin:0 0 12px;color:var(--muted)}.module-check{display:flex;align-items:center;gap:10px;margin:8px 0}.module-check span{display:flex;flex-direction:column}.module-check small{color:var(--muted);font-size:11px}@media(max-width:900px){.form-grid{grid-template-columns:1fr}}


/* Sprint200 - Orijinal Yalın Ofis logo entegrasyonu */
.brand-with-original-logo{align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.08);}
.brand-image{width:74px;max-height:58px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.22));}
.brand-title strong{letter-spacing:.2px;}
.brand-title span{margin-top:2px;}
@media(max-width:900px){.brand-image{width:64px;max-height:52px}}
.alert.info{background:rgba(36,85,214,.14);color:#bfdbfe;border:1px solid rgba(96,165,250,.35)}
.actions-cell{display:flex;gap:8px;flex-wrap:wrap}.module-box{border-color:var(--border)}

/* Sprint205 - tablo alan yönetimi ve lisans aksiyonları */
.grid-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:8px 0 12px;flex-wrap:wrap}.grid-search,.filter-row input{padding:9px 10px;border-radius:9px;border:1px solid var(--border);background:#0f1b2e;color:#fff}.grid-search{min-width:240px}.grid-columns{position:relative}.grid-columns summary{cursor:pointer;background:#1b2c46;border:1px solid var(--border);border-radius:10px;padding:9px 12px;font-weight:800}.grid-columns label{display:block;padding:6px 10px;background:#0f1b2e;border-left:1px solid var(--border);border-right:1px solid var(--border)}.filter-row th{padding:6px 8px}.filter-row input{width:100%;font-size:12px}th[draggable=true]{cursor:grab}.dragging{opacity:.45}.inline-form{display:inline}.btn.danger{background:#7f1d1d;border-color:#991b1b}.actions-cell .btn,.actions-cell button{margin:2px}
/* Sprint206 - grid siralama, müşteri canlı tarihçe ve aktif satır vurgusu */
.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}.compact-cards .card{padding:14px}.compact-cards .card strong{font-size:24px}.small-note{margin:5px 0 0;font-size:13px}.enhanced-grid th{user-select:none}.enhanced-grid thead tr:first-child th{position:relative}.enhanced-grid thead tr:first-child th.sort-asc::after{content:' ▲';color:#8bb8ff}.enhanced-grid thead tr:first-child th.sort-desc::after{content:' ▼';color:#8bb8ff}.customer-row{cursor:pointer;transition:background .15s ease, box-shadow .15s ease}.customer-row:hover,.customer-row.active-row{background:rgba(36,85,214,.16);box-shadow:inset 4px 0 0 #2455d6}.passive-row{opacity:.78}.customer-live-panel{margin-top:18px}.customer-live-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.customer-live-title strong{font-size:20px}.customer-live-title span{color:var(--muted)}.mini-table{margin-top:8px}.actions-cell{min-width:190px}.muted.small-note{color:var(--muted)}
@media(max-width:900px){.cards.three{grid-template-columns:1fr}.actions-cell{min-width:auto}}

/* Sprint208 - yatay alan seçimi, ekran saklama ve database tablo detayları */
.grid-toolbar{align-items:flex-start}.grid-columns-horizontal{min-width:260px}.grid-columns-horizontal summary{display:inline-flex;align-items:center;gap:8px}.grid-column-panel{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:8px;padding:10px;border:1px solid var(--border);border-radius:14px;background:rgba(15,27,46,.96);box-shadow:0 14px 34px rgba(0,0,0,.22);max-width:min(920px,calc(100vw - 360px))}.grid-column-choice{display:inline-flex!important;align-items:center;gap:6px;padding:6px 10px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(27,44,70,.82);white-space:nowrap;font-size:12px}.grid-column-choice input{width:auto}.grid-save-hint{color:var(--muted);font-size:12px;margin-left:auto;white-space:nowrap}.enhanced-grid th{cursor:pointer}.enhanced-grid tbody tr.active-row td{background:rgba(36,85,214,.18)}.customer-row:hover td,.db-table-row:hover td{background:rgba(36,85,214,.12)}
.dashboard-grid{grid-template-columns:1.1fr 1.1fr .7fr;gap:18px}.license-status-panel{min-width:260px}.status-stack{display:grid;gap:12px}.status-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--border);border-radius:14px;background:#101d31}.status-line span{color:var(--muted)}.status-line strong{font-size:24px}.status-line.success strong{color:#86efac}.status-line.warning strong{color:#facc15}.status-line.danger strong{color:#fca5a5}.dashboard-main-panel{min-width:0}
.setup-schema-grid{grid-template-columns:.75fr 1.25fr}.setup-table-list .db-table-row{cursor:pointer}.table-detail-title{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}.table-detail-title strong{font-size:20px}.table-detail-title span{color:#bfdbfe;background:#11294b;border:1px solid var(--border);border-radius:999px;padding:6px 10px}.schema-column-grid .mono{max-width:none}.db-detail-panel{min-width:0}
@media(max-width:1200px){.dashboard-grid,.setup-schema-grid{grid-template-columns:1fr}.grid-column-panel{max-width:100%}.grid-save-hint{width:100%;margin-left:0}}

/* Sprint215 - Güvenli giriş ve Report Studio benzeri License Center menüsü */
:root{--license-accent:#d8a21a;--license-accent2:#facc15;--license-deep:#07111f;--license-card:#101d31}.license-sidebar{background:linear-gradient(180deg,#07111f,#0b1424 52%,#121526);border-right:1px solid rgba(216,162,26,.22)}.main-nav a{display:flex;align-items:center;gap:10px;border:1px solid transparent}.main-nav a.active,.main-nav a:hover{background:linear-gradient(90deg,rgba(216,162,26,.18),rgba(36,85,214,.12));border-color:rgba(216,162,26,.28);color:#fff;box-shadow:inset 4px 0 0 var(--license-accent)}.brand-title span{color:#facc15}.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-pill{display:flex;flex-direction:column;gap:1px;min-width:150px;background:#101d31;border:1px solid rgba(216,162,26,.3);padding:9px 13px;border-radius:14px}.user-pill strong{font-size:13px}.user-pill span{font-size:11px;color:#facc15}.version strong{color:#facc15}.login-body{display:block;min-height:100vh;background:radial-gradient(circle at 20% 10%,rgba(216,162,26,.22),transparent 30%),linear-gradient(135deg,#07111f,#13213a 60%,#211625);color:#e7edf8}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;margin:0;width:100%}.login-card{width:min(460px,100%);background:rgba(11,20,36,.92);border:1px solid rgba(216,162,26,.26);border-radius:26px;padding:30px;box-shadow:0 28px 80px rgba(0,0,0,.42)}.login-brand{display:flex;gap:14px;align-items:center;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08)}.login-brand img{width:82px;max-height:64px;object-fit:contain;filter:drop-shadow(0 14px 22px rgba(0,0,0,.28))}.login-brand strong{display:block;font-size:24px}.login-brand span{display:block;color:#facc15;font-weight:800}.login-card h1{font-size:28px;margin:0 0 8px}.login-form{display:grid;gap:14px;margin-top:20px}.login-form label{display:grid;gap:7px;font-weight:800;color:#cbd6e8}.login-form input[type=text],.login-form input[type=password],.login-form input:not([type]){width:100%;padding:13px 14px;border-radius:12px;border:1px solid rgba(216,162,26,.26);background:#07111f;color:#fff}.login-remember{display:flex!important;align-items:center;gap:9px}.login-remember input{width:auto}.login-button{width:100%;text-align:center;border-color:#b90d22;background:linear-gradient(90deg,#b90d22,#d8a21a)}.login-note{margin-top:18px;padding:12px 14px;border-radius:14px;border:1px solid rgba(250,204,21,.25);background:rgba(250,204,21,.08);font-size:13px;color:#fde68a}.login-footer{margin-top:16px;color:#8ea0bb;font-size:12px;text-align:center}.inline-form{display:inline}.btn.tiny{padding:6px 9px;font-size:11px}.btn.danger{background:#7f1d1d;border-color:#991b1b;color:#fff}@media(max-width:900px){.topbar-actions{justify-content:flex-start}.user-pill{min-width:0}.login-card{padding:22px}.login-brand img{width:66px}}


/* Sprint216 - Report Studio logo uyumu ve giriş logosu üst hizalama */
.brand-image{width:78px;max-height:78px;object-fit:contain;transform:translateY(-4px);}
.login-brand{align-items:flex-start;gap:18px;margin-top:-6px;}
.login-brand img.login-logo-main{width:118px;max-height:118px;object-fit:contain;flex:0 0 auto;transform:translateY(-14px);margin-bottom:-14px;filter:drop-shadow(0 14px 22px rgba(0,0,0,.28));}
.login-brand .brand-title, .login-brand > div{padding-top:18px;}
@media(max-width:900px){.brand-image{width:68px;max-height:68px}.login-brand{gap:14px}.login-brand img.login-logo-main{width:94px;max-height:94px;transform:translateY(-10px);margin-bottom:-10px}.login-brand .brand-title,.login-brand>div{padding-top:12px}}

/* Sprint217 - Login mesaj alanı */
.login-message-box{white-space:pre-line;line-height:1.42;}


/* Sprint218 - Giriş logosu üst hizalama ve şifre göz butonu */
.login-brand{
    flex-direction:column;
    align-items:flex-start;
    gap:10px;
    margin-top:-22px;
    padding-bottom:16px;
}
.login-brand img.login-logo-main{
    align-self:center;
    width:138px;
    max-height:138px;
    transform:none;
    margin:0 0 -4px 0;
}
.login-brand .brand-title,
.login-brand > div{
    padding-top:0;
}
.password-field{
    position:relative;
    width:100%;
}
.password-field input{
    padding-right:52px!important;
}
.password-toggle-btn{
    position:absolute;
    top:50%;
    right:10px;
    transform:translateY(-50%);
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:10px;
    background:transparent;
    color:#dbeafe;
    cursor:pointer;
    font-size:18px;
    line-height:1;
}
.password-toggle-btn:hover,
.password-toggle-btn.is-visible{
    background:rgba(250,204,21,.12);
    color:#facc15;
}
.password-eye-text{
    display:inline-block;
    transform:translateY(-1px);
}
@media(max-width:900px){
    .login-brand{margin-top:-10px;align-items:flex-start;}
    .login-brand img.login-logo-main{width:116px;max-height:116px;}
}


/* Sprint219 - Report Studio Server Manager marka hizası, görünür göz butonu ve şifre formu okunurluğu */
.login-brand.login-brand-rs-style{
    flex-direction:column!important;
    align-items:center!important;
    text-align:center!important;
    gap:10px!important;
    margin-top:-8px!important;
    padding-bottom:18px!important;
    border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.login-brand.login-brand-rs-style img.login-logo-main{
    align-self:center!important;
    width:190px!important;
    max-height:190px!important;
    object-fit:contain!important;
    transform:none!important;
    margin:0 auto!important;
    filter:drop-shadow(0 16px 28px rgba(0,0,0,.34))!important;
}
.login-brand-title-center{
    padding-top:0!important;
    display:grid!important;
    justify-items:center!important;
    gap:2px!important;
}
.login-brand-title-center strong{
    display:block!important;
    font-size:24px!important;
    line-height:1.12!important;
    color:#e5efff!important;
    font-weight:950!important;
}
.login-brand-title-center span{
    display:block!important;
    color:#facc15!important;
    font-weight:900!important;
    font-size:17px!important;
    letter-spacing:.1px!important;
}
.brand-with-original-logo .brand-title strong{
    font-size:16px!important;
    line-height:1.12!important;
}
.brand-with-original-logo .brand-title span{
    color:#facc15!important;
    font-size:13px!important;
    font-weight:900!important;
}
.password-toggle-btn{
    border:1px solid rgba(191,219,254,.48)!important;
    background:rgba(219,234,254,.94)!important;
    color:#0f172a!important;
    box-shadow:0 8px 20px rgba(0,0,0,.20)!important;
    opacity:1!important;
}
.password-toggle-btn:hover,
.password-toggle-btn:focus,
.password-toggle-btn.is-visible{
    background:#ffffff!important;
    color:#b91c1c!important;
    border-color:rgba(250,204,21,.82)!important;
    outline:none!important;
}
.password-eye-text{
    display:grid!important;
    place-items:center!important;
    width:22px!important;
    height:22px!important;
    transform:none!important;
}
.password-eye-icon{
    width:22px!important;
    height:22px!important;
    display:block!important;
    fill:currentColor!important;
}
.form-card{
    background:linear-gradient(180deg, rgba(15,23,42,.96), rgba(11,20,36,.94))!important;
    border:1px solid rgba(148,163,184,.22)!important;
    color:#f8fafc!important;
}
.form-card label{
    color:#e5efff!important;
    font-weight:850!important;
}
.form-card input,
.form-card select,
.form-card textarea,
.password-field input{
    background:#07111f!important;
    color:#ffffff!important;
    border-color:rgba(148,163,184,.42)!important;
}
.form-card input::placeholder,
.form-card textarea::placeholder{
    color:rgba(229,239,255,.62)!important;
}
.login-form input:-webkit-autofill,
.login-form input:-webkit-autofill:hover,
.login-form input:-webkit-autofill:focus,
.form-card input:-webkit-autofill,
.form-card input:-webkit-autofill:hover,
.form-card input:-webkit-autofill:focus{
    -webkit-text-fill-color:#ffffff!important;
    box-shadow:0 0 0 1000px #07111f inset!important;
    border-color:rgba(250,204,21,.40)!important;
    caret-color:#ffffff!important;
}
@media(max-width:900px){
    .login-brand.login-brand-rs-style img.login-logo-main{width:160px!important;max-height:160px!important;}
    .login-brand-title-center strong{font-size:21px!important;}
}
