/* ============================================================
   MESAVİP — Yönetim Paneli Tasarımı
   Palet: Turuncu + Navy + Gri Tonları
   ============================================================ */

:root {
    /* Marka turuncu */
    --o-50:#FFF4E8;--o-100:#FFE3C4;--o-200:#FFCD96;--o-300:#FFB066;
    --o-400:#FF9540;--o-500:#F58220;--o-600:#E5731A;--o-700:#C56214;--o-800:#9E4F0F;
    /* Navy */
    --n-50:#F4F6FA;--n-100:#E2E7F0;--n-200:#C0CADD;--n-300:#8E9CB8;
    --n-400:#5C6E92;--n-500:#3A4861;--n-600:#2A3858;--n-700:#243152;
    --n-800:#1F2A44;--n-900:#161E33;
    /* Gri */
    --g-50:#FAFAFA;--g-100:#F4F5F7;--g-200:#E8EAEE;--g-300:#D1D5DB;
    --g-400:#9CA3AF;--g-500:#6B7280;--g-600:#4B5563;--g-700:#374151;
    /* Aksan */
    --teal:#14B8A6;--pink:#EC4899;--green:#10B981;--red:#EF4444;--amber:#F59E0B;
    /* Sistem */
    --bg:#F7F8FB;--card:#fff;
    --shadow-sm:0 2px 8px rgba(31,42,68,.04);
    --shadow:0 4px 16px rgba(31,42,68,.08);
    --shadow-lg:0 12px 36px rgba(31,42,68,.12);
    --radius:14px;
}

*{margin:0;padding:0;box-sizing:border-box;font-family:'Inter','Segoe UI',-apple-system,sans-serif;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--n-800);line-height:1.6;font-size:14px;}
a{color:var(--o-600);text-decoration:none;}
a:hover{color:var(--o-700);}

/* ============ LOGIN ============ */
.login-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;}
.login-brand{
    background:
        radial-gradient(circle at 20% 30%,rgba(245,130,32,.18),transparent 50%),
        radial-gradient(circle at 80% 70%,rgba(20,184,166,.12),transparent 50%),
        linear-gradient(135deg,var(--n-800) 0%,var(--n-700) 100%);
    color:#fff;padding:60px 50px;
    display:flex;flex-direction:column;justify-content:space-between;
    position:relative;overflow:hidden;
}
.login-brand::before{content:'';position:absolute;top:-100px;right:-100px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(245,130,32,.15),transparent 70%);}
.login-brand::after{content:'';position:absolute;bottom:-120px;left:-100px;width:340px;height:340px;border-radius:50%;background:radial-gradient(circle,rgba(20,184,166,.12),transparent 70%);}
.login-brand-top{position:relative;z-index:1;}
.login-brand-top img{height:72px;width:auto;filter:brightness(0) invert(1);}
.login-brand-mid{position:relative;z-index:1;margin:auto 0;}
.login-brand-mid .kicker{display:inline-block;background:rgba(245,130,32,.2);color:var(--o-300);padding:6px 14px;border-radius:20px;font-size:11.5px;font-weight:800;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:18px;}
.login-brand-mid h2{font-size:42px;font-weight:800;line-height:1.15;letter-spacing:-.8px;margin-bottom:14px;}
.login-brand-mid h2 .accent{color:var(--o-400);font-style:italic;}
.login-brand-mid p{font-size:16px;opacity:.75;max-width:440px;line-height:1.7;}
.login-brand-features{display:flex;flex-direction:column;gap:14px;margin-top:34px;}
.login-brand-feature{display:flex;align-items:center;gap:13px;font-size:14px;opacity:.92;}
.login-brand-feature i{width:36px;height:36px;border-radius:10px;background:rgba(245,130,32,.2);color:var(--o-400);display:inline-flex;align-items:center;justify-content:center;font-size:14px;}
.login-brand-bot{position:relative;z-index:1;font-size:13px;opacity:.6;}
.login-brand-bot a{color:var(--o-400);}

.login-form-wrap{background:var(--card);display:flex;align-items:center;justify-content:center;padding:50px 60px;}
.login-form{width:100%;max-width:420px;}
.login-form-head{margin-bottom:32px;}
.login-form-head h1{font-size:28px;font-weight:800;color:var(--n-800);margin-bottom:8px;letter-spacing:-.5px;}
.login-form-head p{color:var(--g-500);font-size:14.5px;}

.alert{padding:13px 16px;border-radius:10px;margin-bottom:18px;font-size:13.5px;display:flex;align-items:center;gap:10px;border-left:4px solid;}
.alert-error{background:#fef2f2;color:#991b1b;border-left-color:var(--red);}
.alert-info{background:#eff6ff;color:#1e40af;border-left-color:#3b82f6;}
.alert-warn{background:#fffbeb;color:#92400e;border-left-color:var(--amber);}
.alert-success{background:#ecfdf5;color:#065f46;border-left-color:var(--green);}

.form-group{margin-bottom:18px;}
.form-group label{display:flex;align-items:center;gap:7px;font-weight:700;color:var(--n-700);margin-bottom:7px;font-size:13px;}
.form-group label i{color:var(--o-500);font-size:12px;}
.form-input{width:100%;padding:13px 15px;border:1.5px solid var(--g-200);border-radius:10px;font-size:14.5px;background:var(--g-50);color:var(--n-800);transition:all .15s;font-family:inherit;}
.form-input:hover{border-color:var(--g-300);}
.form-input:focus{outline:none;border-color:var(--o-500);background:#fff;box-shadow:0 0 0 4px rgba(245,130,32,.12);}
.form-input::placeholder{color:var(--g-400);}
.form-input:disabled{background:var(--g-100);color:var(--g-400);cursor:not-allowed;}

.captcha-row{display:flex;gap:10px;align-items:stretch;}
.captcha-soru{flex-shrink:0;background:var(--n-800);color:#fff;padding:12px 18px;border-radius:10px;font-weight:800;font-size:18px;display:inline-flex;align-items:center;letter-spacing:1px;user-select:none;}
.captcha-soru .accent{color:var(--o-400);font-style:italic;margin:0 4px;}
.captcha-row .form-input{flex:1;text-align:center;font-weight:700;font-size:18px;}

.btn-primary{width:100%;padding:14px;background:linear-gradient(135deg,var(--o-500),var(--o-600));color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;transition:all .2s;box-shadow:0 8px 22px rgba(245,130,32,.32);font-family:inherit;letter-spacing:.3px;}
.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px rgba(245,130,32,.42);}
.btn-primary:disabled{background:var(--g-300);box-shadow:none;cursor:not-allowed;opacity:.7;}

.login-form-foot{margin-top:24px;text-align:center;color:var(--g-500);font-size:13px;}
.login-form-foot a{color:var(--o-600);font-weight:700;}

@media (max-width:980px){.login-wrap{grid-template-columns:1fr;}.login-brand{padding:40px 30px;min-height:auto;}.login-brand-mid h2{font-size:32px;}.login-form-wrap{padding:40px 30px;}}
@media (max-width:600px){.login-brand-features{display:none;}.login-brand-mid h2{font-size:26px;}.login-form-head h1{font-size:24px;}}

/* ============ LAYOUT ============ */
.app{display:grid;grid-template-columns:260px 1fr;grid-template-rows:64px 1fr;grid-template-areas:"sidebar topbar" "sidebar main";min-height:100vh;}

.sidebar{grid-area:sidebar;background:linear-gradient(180deg,var(--n-800) 0%,var(--n-900) 100%);color:#fff;padding:0;display:flex;flex-direction:column;position:relative;overflow:hidden;z-index:10;}
.sidebar::before{content:'';position:absolute;top:-100px;right:-80px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(245,130,32,.15),transparent 70%);pointer-events:none;}
.sidebar-head{padding:18px 22px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:11px;position:relative;z-index:1;}
.sidebar-head img{height:36px;width:auto;filter:brightness(0) invert(1);}
.sidebar-head .ad{font-weight:800;font-size:16px;letter-spacing:-.3px;}
.sidebar-head .ad small{display:block;font-size:10px;font-weight:600;color:var(--o-400);margin-top:2px;letter-spacing:.8px;text-transform:uppercase;}
.sidebar-nav{flex:1;padding:14px 0;overflow-y:auto;position:relative;z-index:1;}
.sidebar-group{padding:14px 22px 6px;font-size:10.5px;font-weight:800;color:rgba(255,255,255,.4);letter-spacing:1.2px;text-transform:uppercase;}
.sidebar-link{display:flex;align-items:center;gap:12px;padding:11px 22px;color:rgba(255,255,255,.7);text-decoration:none;font-size:13.5px;font-weight:600;border-left:3px solid transparent;transition:all .15s;position:relative;}
.sidebar-link i{width:18px;text-align:center;font-size:14px;}
.sidebar-link:hover{background:rgba(255,255,255,.05);color:#fff;border-left-color:rgba(245,130,32,.4);}
.sidebar-link.active{background:linear-gradient(90deg,rgba(245,130,32,.15),transparent);color:#fff;border-left-color:var(--o-500);}
.sidebar-link.active i{color:var(--o-500);}

.sidebar-foot{padding:14px 22px;border-top:1px solid rgba(255,255,255,.08);position:relative;z-index:1;}
.sidebar-foot .user{display:flex;align-items:center;gap:11px;padding:9px;border-radius:10px;background:rgba(255,255,255,.05);margin-bottom:8px;}
.sidebar-foot .user-av{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--o-500),var(--o-700));color:#fff;font-weight:800;font-size:14px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.sidebar-foot .user-info{min-width:0;flex:1;}
.sidebar-foot .user-info b{display:block;font-size:13px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sidebar-foot .user-info span{display:block;font-size:10.5px;color:var(--o-400);text-transform:uppercase;font-weight:700;letter-spacing:.5px;}
.sidebar-foot .cikis-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:9px;border-radius:9px;background:rgba(239,68,68,.15);color:#fca5a5;text-decoration:none;font-size:12.5px;font-weight:700;transition:all .15s;}
.sidebar-foot .cikis-btn:hover{background:rgba(239,68,68,.3);color:#fff;}

.topbar{grid-area:topbar;background:#fff;border-bottom:1px solid var(--g-200);padding:0 26px;display:flex;align-items:center;justify-content:space-between;z-index:5;}
.topbar-left h2{font-size:17px;font-weight:800;color:var(--n-800);letter-spacing:-.3px;}
.topbar-left p{font-size:11.5px;color:var(--g-500);margin-top:2px;}
.topbar-right{display:flex;align-items:center;gap:10px;}
.topbar-btn{width:38px;height:38px;border-radius:10px;background:var(--g-100);color:var(--n-700);border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:14px;transition:all .15s;position:relative;text-decoration:none;}
.topbar-btn:hover{background:var(--o-100);color:var(--o-700);}

.main{grid-area:main;padding:26px 30px;overflow-y:auto;}

/* ============ KART ============ */
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:1px solid var(--g-200);}
.card-head{padding:18px 22px;border-bottom:1px solid var(--g-200);display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;}
.card-head h3{font-size:15px;font-weight:800;color:var(--n-800);display:flex;align-items:center;gap:9px;letter-spacing:-.2px;}
.card-head h3 i{color:var(--o-500);font-size:14px;}
.card-body{padding:22px;}
.card-body.p0{padding:0;}

/* ============ İSTATİSTİK KARTLARI ============ */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:22px;}
.stat-card{background:#fff;border-radius:var(--radius);padding:20px;border:1px solid var(--g-200);display:flex;align-items:center;gap:16px;transition:all .15s;}
.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
.stat-ico{width:54px;height:54px;border-radius:14px;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0;}
.stat-ico.orange{background:linear-gradient(135deg,var(--o-400),var(--o-600));}
.stat-ico.navy{background:linear-gradient(135deg,var(--n-600),var(--n-800));}
.stat-ico.teal{background:linear-gradient(135deg,#2dd4bf,var(--teal));}
.stat-ico.pink{background:linear-gradient(135deg,#f472b6,var(--pink));}
.stat-ico.green{background:linear-gradient(135deg,#34d399,var(--green));}
.stat-ico.amber{background:linear-gradient(135deg,#fbbf24,var(--amber));}
.stat-num{font-size:26px;font-weight:800;color:var(--n-800);line-height:1;letter-spacing:-.6px;}
.stat-lbl{font-size:12px;color:var(--g-500);margin-top:5px;text-transform:uppercase;font-weight:700;letter-spacing:.4px;}

/* ============ SAYFA BAŞLIĞI ============ */
.page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px;flex-wrap:wrap;}
.page-head h1{font-size:22px;font-weight:800;color:var(--n-800);display:flex;align-items:center;gap:11px;letter-spacing:-.4px;}
.page-head h1 i{color:var(--o-500);}
.page-head .desc{color:var(--g-500);font-size:13px;margin-top:4px;}

/* ============ BUTONLAR ============ */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:10px;font-size:13.5px;font-weight:700;text-decoration:none;cursor:pointer;border:none;transition:all .15s;font-family:inherit;white-space:nowrap;}
.btn i{font-size:12px;}
.btn-orange{background:linear-gradient(135deg,var(--o-500),var(--o-600));color:#fff;box-shadow:0 4px 12px rgba(245,130,32,.28);}
.btn-orange:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(245,130,32,.4);color:#fff;}
.btn-navy{background:var(--n-700);color:#fff;}
.btn-navy:hover{background:var(--n-800);transform:translateY(-1px);color:#fff;}
.btn-ghost{background:#fff;color:var(--n-700);border:1.5px solid var(--g-300);}
.btn-ghost:hover{border-color:var(--o-500);color:var(--o-700);}
.btn-danger{background:#fef2f2;color:var(--red);border:1.5px solid #fecaca;}
.btn-danger:hover{background:var(--red);color:#fff;border-color:var(--red);}
.btn-teal{background:linear-gradient(135deg,#2dd4bf,var(--teal));color:#fff;box-shadow:0 4px 12px rgba(20,184,166,.28);}
.btn-teal:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(20,184,166,.4);color:#fff;}
.btn-sm{padding:7px 12px;font-size:12px;}
.btn-icon{width:34px;height:34px;padding:0;justify-content:center;}

/* ============ TABLO ============ */
.table-wrap{overflow-x:auto;border-radius:var(--radius);}
.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;}
.table thead th{background:var(--n-50);color:var(--n-700);padding:13px 16px;text-align:left;font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--g-200);white-space:nowrap;}
.table tbody td{padding:14px 16px;border-bottom:1px solid var(--g-100);color:var(--n-800);vertical-align:middle;}
.table tbody tr:hover td{background:var(--g-50);}
.table tbody tr:last-child td{border-bottom:none;}
.table .row-actions{display:flex;gap:6px;justify-content:flex-end;}

.tbl-user{display:flex;align-items:center;gap:12px;}
.tbl-av{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:14px;flex-shrink:0;}
.tbl-av.c1{background:linear-gradient(135deg,var(--o-500),var(--o-700));}
.tbl-av.c2{background:linear-gradient(135deg,var(--teal),#0d9488);}
.tbl-av.c3{background:linear-gradient(135deg,var(--pink),#be185d);}
.tbl-av.c4{background:linear-gradient(135deg,var(--n-600),var(--n-800));}
.tbl-av.c5{background:linear-gradient(135deg,#818cf8,#4f46e5);}
.tbl-user-info b{font-weight:700;color:var(--n-800);}
.tbl-user-info small{display:block;font-size:11.5px;color:var(--g-500);margin-top:2px;}

.tag{display:inline-block;padding:3px 9px;border-radius:8px;font-size:11px;font-weight:800;letter-spacing:.3px;}
.tag-orange{background:var(--o-100);color:var(--o-800);}
.tag-navy{background:var(--n-100);color:var(--n-700);}
.tag-green{background:#d1fae5;color:#065f46;}
.tag-red{background:#fee2e2;color:#991b1b;}
.tag-amber{background:#fef3c7;color:#92400e;}
.tag-gray{background:var(--g-200);color:var(--g-600);}
.tag-teal{background:#ccfbf1;color:#0f766e;}
.tag-pink{background:#fce7f3;color:#9d174d;}

/* ============ ARAMA + FİLTRE ============ */
.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap;}
.search-input{flex:1;min-width:220px;padding:10px 14px 10px 38px;border:1.5px solid var(--g-200);border-radius:10px;background:#fff url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239CA3AF' stroke-width='2'%3e%3cpath stroke-linecap='round' stroke-linejoin='round' d='M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z'/%3e%3c/svg%3e") no-repeat 12px center;background-size:18px;font-size:13.5px;color:var(--n-800);font-family:inherit;transition:all .15s;}
.search-input:focus{outline:none;border-color:var(--o-500);box-shadow:0 0 0 4px rgba(245,130,32,.12);}
.filter-sel{padding:10px 14px;border:1.5px solid var(--g-200);border-radius:10px;background:#fff;font-size:13.5px;color:var(--n-800);font-family:inherit;cursor:pointer;}
.filter-sel:focus{outline:none;border-color:var(--o-500);}

/* ============ FORM ============ */
.frm{display:flex;flex-direction:column;gap:16px;}
.frm-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.frm-row.cols-3{grid-template-columns:repeat(3,1fr);}
.frm-row.cols-4{grid-template-columns:repeat(4,1fr);}
.frm-row.full{grid-template-columns:1fr;}
.frm-grp{display:flex;flex-direction:column;}
.frm-grp label{font-size:12.5px;font-weight:700;color:var(--n-700);margin-bottom:6px;display:flex;align-items:center;gap:6px;}
.frm-grp label i{color:var(--o-500);font-size:11px;}
.frm-grp label .req{color:var(--red);}
.frm-grp .hint{margin-top:5px;font-size:11.5px;color:var(--g-500);}
.frm-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:14px;margin-top:6px;border-top:1px solid var(--g-200);}

/* ============ NOTICE ============ */
.notice{padding:13px 16px;border-radius:10px;font-size:13.5px;display:flex;align-items:center;gap:10px;border-left:4px solid;margin-bottom:18px;}
.notice-success{background:#ecfdf5;color:#065f46;border-left-color:var(--green);}
.notice-error{background:#fef2f2;color:#991b1b;border-left-color:var(--red);}
.notice-info{background:#eff6ff;color:#1e40af;border-left-color:#3b82f6;}
.notice-warn{background:#fffbeb;color:#92400e;border-left-color:var(--amber);}

/* ============ BOŞ DURUM ============ */
.empty{padding:60px 20px;text-align:center;color:var(--g-500);}
.empty i{font-size:48px;color:var(--g-300);display:block;margin-bottom:14px;}
.empty b{color:var(--n-700);font-size:16px;}
.empty p{font-size:13px;margin-top:6px;}

/* ============ MODAL ============ */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(31,42,68,.55);z-index:9998;backdrop-filter:blur(4px);}
.modal-bg.open{display:flex;align-items:center;justify-content:center;padding:20px;}
.modal{background:#fff;border-radius:18px;width:100%;max-width:560px;max-height:90vh;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.3);display:flex;flex-direction:column;}
.modal.lg{max-width:760px;}
.modal-head{padding:18px 22px;border-bottom:1px solid var(--g-200);display:flex;align-items:center;justify-content:space-between;}
.modal-head h3{font-size:16px;font-weight:800;color:var(--n-800);display:flex;align-items:center;gap:9px;}
.modal-head h3 i{color:var(--o-500);}
.modal-head .x{background:var(--g-100);border:none;cursor:pointer;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--g-600);transition:all .15s;}
.modal-head .x:hover{background:var(--red);color:#fff;transform:rotate(90deg);}
.modal-body{padding:22px;overflow-y:auto;flex:1;}
.modal-foot{padding:14px 22px;border-top:1px solid var(--g-200);background:var(--g-50);display:flex;gap:10px;justify-content:flex-end;}

/* ============ SEKMELER (sabitler için) ============ */
.tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--g-200);margin-bottom:22px;flex-wrap:wrap;}
.tab{padding:11px 18px;font-size:13px;font-weight:700;color:var(--g-500);text-decoration:none;border-bottom:3px solid transparent;margin-bottom:-1.5px;display:inline-flex;align-items:center;gap:8px;}
.tab:hover{color:var(--o-600);}
.tab.active{color:var(--n-800);border-bottom-color:var(--o-500);}
.tab i{font-size:12px;}

/* Kapasite göstergesi */
.kapasite-bar{display:inline-block;width:100px;height:8px;background:var(--g-200);border-radius:4px;overflow:hidden;vertical-align:middle;margin-left:8px;}
.kapasite-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--green),var(--teal));}
.kapasite-bar.dolu span{background:linear-gradient(90deg,var(--amber),var(--red));}

/* ============ MOBİL HAMBURGER + DRAWER SIDEBAR ============ */
.menu-btn{display:none;width:38px;height:38px;border-radius:10px;background:var(--g-100);color:var(--n-700);border:none;cursor:pointer;align-items:center;justify-content:center;font-size:16px;}
.menu-btn:hover{background:var(--o-100);color:var(--o-700);}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:50;backdrop-filter:blur(2px);}
.sidebar-overlay.open{display:block;}
.sidebar-close{display:none;background:rgba(255,255,255,.1);border:none;color:#fff;width:32px;height:32px;border-radius:8px;cursor:pointer;margin-left:auto;align-items:center;justify-content:center;}
.sidebar-close:hover{background:rgba(239,68,68,.3);}
.topbar-left{display:flex;align-items:center;gap:10px;min-width:0;}
.topbar-left > div{min-width:0;}

/* ============ RESPONSIVE — Tablet (≤980px) ============ */
@media (max-width:980px){
    .topbar-left h2{font-size:15px;}
    .main{padding:18px 18px;}
}

/* ============ RESPONSIVE — Mobil (≤880px) ============ */
@media (max-width:880px){
    .app{
        grid-template-columns:1fr;
        grid-template-rows:60px 1fr;
        grid-template-areas:"topbar" "main";
    }
    .menu-btn{display:inline-flex;}
    .sidebar-close{display:inline-flex;}
    .sidebar{
        position:fixed;
        top:0;left:-300px;
        width:280px;height:100vh;
        z-index:60;
        transition:left .25s ease;
        box-shadow:4px 0 20px rgba(0,0,0,.25);
    }
    .sidebar.open{left:0;}

    .topbar{padding:0 14px;height:60px;}
    .topbar-left h2{font-size:14px;line-height:1.2;}
    .topbar-left p{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:65vw;}
    .topbar-right{gap:6px;}
    .topbar-btn{width:34px;height:34px;font-size:13px;}

    .main{padding:14px 12px;}
    .frm-row,.frm-row.cols-3,.frm-row.cols-4{grid-template-columns:1fr;}

    /* Sayfa başlığı */
    .page-head{gap:10px;}
    .page-head h1{font-size:18px;}

    /* Kart */
    .card-head{padding:14px 14px;}
    .card-body{padding:14px;}

    /* Buton grupları */
    .page-head > div:last-child{width:100%;}
    .page-head > div:last-child .btn{flex:1;justify-content:center;font-size:12.5px;padding:9px 10px;}

    /* Toolbar / filter */
    .toolbar{gap:8px;}
    .toolbar > *{flex:1 1 100%;min-width:0;}
    .toolbar .btn{flex:1 1 auto;justify-content:center;}
    .search-input,.filter-sel{min-width:auto;width:100%;}

    /* Tablo daha sıkı */
    .table thead th,.table tbody td{padding:10px 10px;font-size:12.5px;}
    .table thead th{font-size:10.5px;}
    .tbl-av{width:32px;height:32px;font-size:12px;}
    .tbl-user{gap:8px;}
    .tbl-user-info b{font-size:12.5px;}
    .tbl-user-info small{font-size:10.5px;}
    .row-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;}
    .row-actions .btn{padding:6px 8px;font-size:11px;}
    .row-actions .btn-icon{width:30px;height:30px;}

    /* Sekmeler (sabitler) — yatay scroll */
    .tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
    .tabs::-webkit-scrollbar{height:3px;}
    .tab{flex:0 0 auto;padding:10px 14px;font-size:12.5px;}

    /* İstatistik kartları */
    .stat-grid{grid-template-columns:1fr 1fr;gap:10px;}
    .stat-card{padding:14px;gap:10px;}
    .stat-ico{width:42px;height:42px;font-size:17px;}
    .stat-num{font-size:20px;}
    .stat-lbl{font-size:10.5px;}

    /* Form */
    .frm-grp label{font-size:12px;}
    .form-input{font-size:14px;padding:11px 13px;}

    /* Modal mobile */
    .modal-bg{padding:0;align-items:flex-end;}
    .modal-bg.open{align-items:flex-end;}
    .modal{border-radius:18px 18px 0 0;max-height:88vh;max-width:100%;width:100%;}
    .modal.lg{max-width:100%;}
    .modal-head{padding:14px 18px;}
    .modal-head h3{font-size:14.5px;}
    .modal-body{padding:18px;}
    .modal-foot{padding:12px 18px;flex-direction:column-reverse;}
    .modal-foot .btn{width:100%;justify-content:center;}

    /* Login */
    .login-brand-features{display:none;}
}

/* ============ RESPONSIVE — Küçük Mobil (≤480px) ============ */
@media (max-width:480px){
    .stat-grid{grid-template-columns:1fr;}
    .topbar-left p{display:none;}
    .topbar-left h2{font-size:13.5px;}
    .topbar-btn{width:32px;height:32px;font-size:12px;}
    .main{padding:12px 10px;}

    .page-head h1{font-size:16px;}
    .page-head > div:first-child{width:100%;}

    /* Tablo iyice kompakt — TC ve gibi nadir gerekli kolonlar yarıdan daha az padding */
    .table thead th,.table tbody td{padding:8px 8px;font-size:11.5px;}

    /* Daha küçük modal */
    .modal-body{padding:14px;}
    .modal-head{padding:12px 14px;}

    /* Login */
    .login-brand{padding:24px 18px;}
    .login-form-wrap{padding:24px 18px;}
    .login-brand-mid h2{font-size:22px;}
    .login-form-head h1{font-size:20px;}

    /* Login form full screen feel */
    .login-wrap{min-height:100vh;}
}

/* ============ TOUCH IYILEŞTIRMELERI ============ */
@media (hover: none) {
    /* Touch cihazlarda hover-only stilleri kaldır */
    .btn-orange:hover{transform:none;}
    .btn-navy:hover{transform:none;}
    .stat-card:hover{transform:none;}
}

/* iOS Safari: yumuşak scroll + zoom önle */
input,select,textarea{font-size:16px;} /* iOS zoom önler */
@media (min-width:881px){
    input,select,textarea{font-size:inherit;}
}

/* ============ A5 YATAY GİRİŞ BELGESİ (210mm GENİŞ × 148.5mm YÜKSEK) — KOMPAKT ============
   YATAY: width > height. Bu boyut !important ile zorlanır, başka stil eziyor olamaz. */
.belge-a5{
    width:210mm !important;
    height:148.5mm !important;
    min-height:148.5mm !important;
    max-height:148.5mm !important;
    margin:0 auto;
    background:#fff;
    padding:4mm 6mm;
    font-family:'Inter',Arial,sans-serif;
    color:#1F2A44;
    box-sizing:border-box;
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}
.belge-baslik{text-align:center;border-bottom:1.5px solid var(--o-500);padding-bottom:1.2mm;margin-bottom:1.5mm;}
.belge-baslik h1{font-size:13pt;font-weight:900;color:var(--n-800);letter-spacing:-.3px;line-height:1.1;}
.belge-baslik h2{font-size:8pt;font-weight:700;color:var(--o-600);margin-top:0.5mm;}
.belge-baslik p{font-size:6pt;color:var(--g-500);margin-top:0.3mm;text-transform:uppercase;letter-spacing:.6px;}

/* Orta düzen — tüm bloklar alt alta tek sütun (full width) */
.belge-icerik-yatay{display:flex;flex-direction:column;gap:2mm;flex:1 1 auto;min-height:0;}

.belge-bilgi{border:1px solid var(--n-200);border-radius:4px;overflow:hidden;width:100%;}
.belge-bilgi table{width:100%;border-collapse:collapse;}
.belge-bilgi td{padding:1.2mm 2.5mm;font-size:8pt;border-bottom:1px solid var(--g-200);line-height:1.25;}
.belge-bilgi tr:last-child td{border-bottom:none;}
.belge-bilgi .et{width:35mm;font-weight:700;color:var(--g-600);background:var(--g-50);text-transform:uppercase;font-size:7pt;letter-spacing:.3px;}
.belge-bilgi .vl{color:var(--n-800);font-weight:600;}

/* Sınav atama + sınav yeri sarmalayıcı (alt alta) */
.belge-sag-sutun{display:flex;flex-direction:column;gap:2mm;width:100%;}

/* Salon | Oturum | Seans·Saat — 3 kutu yan yana, full width */
.belge-sinav{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:1.5mm;width:100%;}
.belge-sinav .kutu{border:1.2px solid var(--o-500);background:var(--o-50);border-radius:4px;padding:1.5mm 2mm;text-align:center;}
.belge-sinav .kutu .et{font-size:6.5pt;font-weight:700;color:var(--o-700);text-transform:uppercase;letter-spacing:.4px;line-height:1.1;}
.belge-sinav .kutu .vl{font-size:9.5pt;font-weight:800;color:var(--n-800);margin-top:0.5mm;line-height:1.15;}
.belge-sinav .kutu.full{grid-column:auto;}

/* Alt: UYARI + imza tek satır */
.belge-alt-bolge{margin-top:1.5mm;border-top:1px solid var(--n-200);padding-top:1.2mm;display:grid;grid-template-columns:2fr 1fr 1fr;gap:3mm;align-items:end;}
.belge-foot{font-size:6pt;color:var(--g-600);line-height:1.3;text-align:left;margin:0;border:none;padding:0;}
.belge-foot b{color:#991b1b;}
.belge-not-satir{margin-bottom:0.5mm;}
.belge-not-satir:last-child{margin-bottom:0;}

/* İmza alanı — Öğrenci solda, Sınav Yetkilisi sağda */
.belge-imza-altta{margin-top:3mm;border-top:1px solid var(--n-200);padding-top:1.5mm;display:flex;justify-content:space-between;font-size:7pt;gap:10mm;}
.belge-imza-altta .blok{border-top:1px solid var(--g-400);padding-top:0.8mm;color:var(--g-600);width:55mm;}
.belge-imza-altta .blok.sol{text-align:left;}
.belge-imza-altta .blok.sag{text-align:right;}

/* OTURUMLAR kutusu — birden fazla satır olabilir, sola hizalı daha okunaklı */
.belge-sinav .kutu.kutu-sol{text-align:left;}
.belge-sinav .kutu.kutu-sol .et{text-align:left;}
.belge-sinav .kutu.kutu-sol .vl{text-align:left;}
.belge-imza{margin:0;display:contents;}
.belge-imza .blok{text-align:center;border-top:1px solid var(--g-400);padding-top:0.5mm;font-size:6pt;color:var(--g-600);}

/* Sınav yeri bloku — SEANS tasarımı (tam çerçeveli kutu, turuncu border + açık turuncu bg) */
.belge-syeri{
    border:1.2px solid var(--o-500);
    background:var(--o-50);
    padding:2.5mm 3mm;
    border-radius:4px;
    margin:0;
    width:100%;
    box-sizing:border-box;
}
.belge-syeri .satir{
    display:flex;
    font-size:10pt;
    line-height:1.3;
    margin-bottom:0.8mm;
    align-items:baseline;
}
.belge-syeri .satir:last-child{margin-bottom:0;}
.belge-syeri .lbl{
    font-weight:700;
    color:var(--o-700);
    min-width:32mm;
    flex-shrink:0;
    font-size:10pt;
    text-transform:uppercase;
    letter-spacing:.3px;
}
.belge-syeri .val{
    color:var(--n-800);
    font-weight:700;
    flex:1;
    font-size:10pt;
}

.no-print{display:flex;gap:10px;justify-content:center;margin:20px 0;flex-wrap:wrap;}
@media print{
    body{background:#fff;}
    .no-print{display:none !important;}
    .belge-a5{margin:0;width:auto;min-height:auto;page-break-after:avoid;}
}
.belge-a5{page-break-after:always;}

/* A4 DİKEY (210mm GENİŞ × 297mm YÜKSEK) — tek öğrenci üstte, alt yarı boş */
.belge-a4-2dikey{
    width:210mm !important;
    height:297mm !important;
    min-height:297mm !important;
    max-height:297mm !important;
    margin:0 auto;
    background:#fff;
    display:flex;
    flex-direction:column;
    page-break-after:always;
    page-break-inside:avoid;
    box-sizing:border-box;
    position:relative;
    overflow:hidden;
}
/* Belge A5 YATAY üstte yer alır (210mm geniş, 148.5mm yüksek) */
.belge-a4-2dikey > .belge-a5{
    width:210mm !important;
    height:148.5mm !important;
    min-height:148.5mm !important;
    max-height:148.5mm !important;
    margin:0 !important;
    flex:0 0 148.5mm !important;
    box-sizing:border-box;
    overflow:hidden;
}
/* Alt yarı tamamen boş (148.5mm) */
.belge-a4-2dikey > .alt-bos{
    width:210mm;
    height:148.5mm;
    flex:0 0 148.5mm;
    background:#fff;
}
/* Tam ortada yatay kesme çizgisi (50%) — A4'ü ortadan keserek A5 yatay belge ayrılır */
.belge-a4-2dikey::before{
    content:'';
    position:absolute;
    left:0;right:0;
    top:148.5mm;
    height:0;
    border-top:1.2px dashed #6B7280;
    z-index:5;
    pointer-events:none;
}
.belge-a4-2dikey::after{
    content:'✂  KES';
    position:absolute;
    top:148.5mm;left:8mm;
    transform:translateY(-50%);
    font-size:9pt;
    font-weight:700;
    color:#6B7280;
    background:#fff;
    padding:1mm 3mm;
    z-index:6;
    letter-spacing:1px;
    font-family:Arial,sans-serif;
    border-radius:3px;
}
@media print{
    .belge-a4-2dikey::after{display:none;}
}
/* Ortadaki kesme çizgisi */
.belge-a4-2li::before{
    content:'';
    position:absolute;
    top:0;bottom:0;left:50%;
    width:0;
    border-left:1px dashed #9CA3AF;
    z-index:1;
    pointer-events:none;
}
/* Kesim ikonu — sadece ekranda */
.belge-a4-2li::after{
    content:'✂';
    position:absolute;
    top:8mm;left:50%;
    transform:translateX(-50%) rotate(90deg);
    font-size:14pt;
    color:#9CA3AF;
    background:#fff;
    padding:0 2mm;
    z-index:2;
}
@media print{
    .belge-a4-2li::after{display:none;}
    .belge-a4-2li::before{border-left:1px dashed #6B7280;}
}

/* ============ A4 SALON / YOKLAMA LİSTELERİ — TEK SAYFA OTOMATİK KOMPAKT ============
   Her belge bir A4 dikey sayfada (210×297mm) tek sayfada sığar.
   PHP öğrenci sayısına göre kompakt sınıfı verir, font/padding otomatik küçülür. */
.belge-a4{width:210mm;height:297mm;min-height:297mm;max-height:297mm;margin:0 auto 20px;background:#fff;padding:4mm 7mm;font-family:'Inter',Arial,sans-serif;color:#1F2A44;box-sizing:border-box;page-break-after:always;overflow:hidden;}
.belge-a4 .belge-baslik-a4{text-align:center;margin-top:0.8mm;}
.belge-a4 .belge-baslik-a4 h1{font-size:11pt;font-weight:900;color:#1F2A44;letter-spacing:-.3px;line-height:1.1;}
.belge-a4 .belge-baslik-a4 .alt{font-size:7pt;color:#6B7280;margin-top:0.3mm;}
.belge-a4 .ust-bilgi{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5mm;margin:2mm 0;}
.belge-a4 .ust-bilgi .ku{border:1px solid #1F2A44;border-radius:3px;padding:1.5mm;text-align:center;}
.belge-a4 .ust-bilgi .ku .et{font-size:6.5pt;font-weight:700;color:#6B7280;text-transform:uppercase;letter-spacing:.4px;line-height:1;}
.belge-a4 .ust-bilgi .ku .vl{font-size:9pt;font-weight:800;color:#1F2A44;margin-top:0.3mm;line-height:1.1;}
.belge-a4 .liste-tablosu{width:100%;border-collapse:collapse;margin-top:2mm;font-size:9.5pt;table-layout:fixed;}
.belge-a4 .liste-tablosu th{background:#1F2A44;color:#fff;padding:1.8mm 2mm;text-align:left;font-size:8.5pt;font-weight:700;text-transform:uppercase;letter-spacing:.3px;line-height:1.15;}
.belge-a4 .liste-tablosu td{padding:1.5mm 2mm;border-bottom:1px solid #C0CADD;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;}
.belge-a4 .liste-tablosu td small{font-size:7pt !important;line-height:1.1;display:block;margin-top:0.2mm;color:#6B7280;}
.belge-a4 .liste-tablosu tr:nth-child(even) td{background:#F4F6FA;}
.belge-a4 .liste-tablosu td.num{width:13mm;text-align:center;color:#1F2A44;font-weight:800;background:#F4F6FA !important;font-size:9.5pt;letter-spacing:.3px;}
.belge-a4 .liste-tablosu td.imza{width:45mm;border-left:1px solid #C0CADD;}
.belge-a4 .liste-tablosu td.imza-bos{height:6mm;}

/* ====== KOMPAKT VARYANTLAR (öğrenci sayısına göre PHP belirler) ====== */
/* normal (≤30 öğrenci) — varsayılan */

/* kompakt (31–45) */
.belge-a4.k-kompakt .liste-tablosu{font-size:8.5pt;margin-top:2mm;}
.belge-a4.k-kompakt .liste-tablosu th{padding:1.8mm 1.5mm;font-size:7.5pt;}
.belge-a4.k-kompakt .liste-tablosu td{padding:1.6mm 1.5mm;}
.belge-a4.k-kompakt .liste-tablosu td.imza-bos{height:6.5mm;}
.belge-a4.k-kompakt .liste-tablosu td small{font-size:6.5pt !important;}

/* çok kompakt (46–65) */
.belge-a4.k-cok .liste-tablosu{font-size:7.5pt;margin-top:1.5mm;}
.belge-a4.k-cok .liste-tablosu th{padding:1.3mm 1.2mm;font-size:6.5pt;}
.belge-a4.k-cok .liste-tablosu td{padding:1.1mm 1.2mm;}
.belge-a4.k-cok .liste-tablosu td.imza-bos{height:5.5mm;}
.belge-a4.k-cok .liste-tablosu td small{font-size:5.5pt !important;}
.belge-a4.k-cok .salon-mega-kart{padding:5mm;margin:3mm 0 4mm;}
.belge-a4.k-cok .salon-mega-kart h2{font-size:24pt;}

/* mini (66–90) */
.belge-a4.k-mini{padding:6mm 8mm;}
.belge-a4.k-mini .liste-tablosu{font-size:6.5pt;margin-top:1.2mm;}
.belge-a4.k-mini .liste-tablosu th{padding:1mm 1mm;font-size:5.5pt;}
.belge-a4.k-mini .liste-tablosu td{padding:0.8mm 1mm;}
.belge-a4.k-mini .liste-tablosu td.imza-bos{height:4.5mm;}
.belge-a4.k-mini .liste-tablosu td small{font-size:4.8pt !important;}
.belge-a4.k-mini .salon-mega-kart{padding:4mm;margin:2mm 0 3mm;}
.belge-a4.k-mini .salon-mega-kart h2{font-size:20pt;}
.belge-a4.k-mini .ust-bilgi{margin:3mm 0;}
.belge-a4.k-mini .ust-bilgi .ku{padding:2mm;}

/* mikro (91+) */
.belge-a4.k-mikro{padding:5mm 7mm;}
.belge-a4.k-mikro .liste-tablosu{font-size:5.5pt;margin-top:1mm;}
.belge-a4.k-mikro .liste-tablosu th{padding:0.7mm 0.8mm;font-size:4.8pt;letter-spacing:0;}
.belge-a4.k-mikro .liste-tablosu td{padding:0.5mm 0.8mm;border-bottom:0.5px solid #C0CADD;}
.belge-a4.k-mikro .liste-tablosu td.imza-bos{height:3.5mm;}
.belge-a4.k-mikro .liste-tablosu td small{font-size:4pt !important;}
.belge-a4.k-mikro .salon-mega-kart{padding:3mm;margin:1.5mm 0 2.5mm;}
.belge-a4.k-mikro .salon-mega-kart h2{font-size:16pt;}
.belge-a4.k-mikro .ust-bilgi{margin:2mm 0;gap:2mm;}
.belge-a4.k-mikro .ust-bilgi .ku{padding:1.5mm;}
.belge-a4.k-mikro .ust-bilgi .ku .et{font-size:7pt;}
.belge-a4.k-mikro .ust-bilgi .ku .vl{font-size:10pt;}
.belge-a4.k-mikro .belge-baslik-a4 h1{font-size:14pt;}
.belge-a4.k-mikro .imza-bloku{margin-top:5mm;gap:4mm;}
.belge-a4.k-mikro .imza-bloku .blok .cizgi{height:10mm;}
.belge-a4 .imza-bloku{display:grid;grid-template-columns:repeat(3,1fr);gap:4mm;margin-top:4mm;page-break-inside:avoid;}
.belge-a4 .imza-bloku .blok{text-align:center;}
.belge-a4 .imza-bloku .blok .cizgi{border-bottom:1px solid #1F2A44;height:10mm;margin-bottom:1.2mm;}
.belge-a4 .imza-bloku .blok .et{font-size:8pt;font-weight:700;color:#1F2A44;text-transform:uppercase;letter-spacing:.3px;line-height:1.15;}
.belge-a4 .imza-bloku .blok .ad{font-size:8pt;color:#374151;margin-top:0.4mm;line-height:1.2;}
.belge-a4 .alt-not{margin-top:2.5mm;padding-top:1.5mm;border-top:1px solid #C0CADD;font-size:7pt;color:#6B7280;text-align:center;line-height:1.25;}

/* Salon kart başlığı — sabit 14mm yükseklik, içerik orta hizalı */
.salon-mega-kart{
    background:linear-gradient(135deg,#F58220,#E5731A);
    color:#fff;
    padding:2mm 5mm;
    border-radius:4px;
    margin:1.5mm 0;
    text-align:center;
    height:18mm;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    justify-content:center;
    overflow:hidden;
}
.salon-mega-kart .et{font-size:7pt;font-weight:700;text-transform:uppercase;letter-spacing:1px;opacity:.85;line-height:1.1;margin-bottom:0.6mm;}
.salon-mega-kart h2{font-size:15pt;font-weight:900;letter-spacing:-.4px;margin:0;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.salon-mega-kart .alt{font-size:7.5pt;font-weight:600;opacity:.92;line-height:1.1;margin-top:0.6mm;}

/* Salon listesi: gözetmen kutusu altta (tablo sonrası) */
.belge-a4 .gozetmen-alt-kutu{margin-top:3mm;border:1px solid var(--o-500);background:var(--o-50);border-radius:4px;padding:2mm 3mm;font-size:9pt;color:var(--n-800);line-height:1.3;}
.belge-a4 .gozetmen-alt-kutu b{color:var(--o-700);margin-right:2mm;}

@media print{
    .belge-a4{margin:0;width:auto;min-height:auto;page-break-after:always;}
    @page{size:A4 portrait;margin:0;}
    .belge-a5{page-break-after:always;}
}
@media print and (max-width:0){
    @page{size:A5 portrait;}
}
/* A5 belgeyi yazdırırken A5 olsun, A4 yazdırırken A4 — sınıf bazlı page sizing */
.print-a5 @page{size:A5 portrait;margin:0;}
.print-a4 @page{size:A4 portrait;margin:0;}
