:root{--bg:#f4f7fb;--card:#fff;--text:#172033;--muted:#697386;--primary:#1d4ed8;--primary-dark:#173ea8;--success:#16a34a;--danger:#dc2626;--warning:#f59e0b;--border:#dbe3ef;--dark:#0f172a}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.container{width:min(1180px,calc(100% - 28px));margin:0 auto}.topbar{background:var(--dark);color:#fff;padding:14px 0;box-shadow:0 8px 25px rgba(15,23,42,.18)}.topbar .container{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{font-weight:800;font-size:18px;color:#fff}.nav{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.nav a{color:#dbeafe;padding:8px 10px;border-radius:9px}.nav a:hover{background:rgba(255,255,255,.1);text-decoration:none}.main{padding:28px 0 60px}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:22px;box-shadow:0 10px 30px rgba(15,23,42,.06);margin-bottom:18px}.card.compact{padding:16px}.page-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px}h1,h2,h3{margin:0 0 14px}p{line-height:1.55}.form-row{margin-bottom:14px}label{display:block;font-weight:700;margin-bottom:7px}input[type=text],input[type=password],input[type=email],textarea,select,input[type=file]{width:100%;border:1px solid var(--border);border-radius:10px;padding:11px 12px;font-size:15px;background:#fff}textarea{min-height:130px;resize:vertical}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer;background:var(--primary);color:#fff;text-decoration:none;font-size:14px}.btn:hover{background:var(--primary-dark);text-decoration:none}.btn.secondary{background:#475569}.btn.success{background:var(--success)}.btn.danger{background:var(--danger)}.btn.warning{background:var(--warning);color:#111827}.btn.light{background:#e2e8f0;color:#111827}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;background:#fff}th,td{padding:11px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-flex;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800;background:#e2e8f0;color:#334155}.badge.open,.badge.success{background:#dcfce7;color:#166534}.badge.closed,.badge.danger{background:#fee2e2;color:#991b1b}.badge.draft,.badge.warning{background:#fef3c7;color:#92400e}.badge.big{padding:8px 15px;font-size:16px}.alert{padding:12px 14px;border-radius:12px;margin-bottom:14px;border:1px solid transparent}.alert-success{background:#dcfce7;color:#166534;border-color:#bbf7d0}.alert-danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}.alert-warning{background:#fef3c7;color:#92400e;border-color:#fde68a}.alert-info{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}.stat-card{background:#f8fafc;border:1px solid var(--border);border-radius:14px;padding:15px}.stat-card span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.stat-card strong{font-size:28px;display:block}.stat-card small{color:var(--muted)}.bar-wrap{height:14px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin:10px 0}.bar{height:100%;border-radius:999px}.bar.yes{background:var(--success)}.bar.no{background:var(--danger)}.login-box{max-width:470px;margin:70px auto}.help{color:var(--muted);font-size:13px}.footer-note{color:var(--muted);font-size:13px;margin-top:18px}.vote-question{font-size:20px;background:#f8fafc;border:1px solid var(--border);padding:18px;border-radius:14px;white-space:pre-wrap}.vote-buttons{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.vote-buttons button{font-size:20px;padding:18px}.poll-card{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border:1px solid var(--border);border-radius:16px;padding:18px;background:#fff;margin-bottom:14px}.poll-card h3{margin:0 0 8px}.poll-meta{display:flex;flex-wrap:wrap;gap:8px}.new-poll-banner{position:sticky;top:0;z-index:10}.filter-grid{display:grid;grid-template-columns:1.5fr 1fr 1.5fr auto;gap:14px;align-items:end}.section-title{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.table-poll-title{max-width:420px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35;overflow-wrap:anywhere}.result-screen-body{background:#0b1120;color:#e5eefc;min-height:100vh;overflow:hidden}.result-screen{width:min(1500px,calc(100% - 48px));height:100vh;height:100dvh;margin:0 auto;padding:clamp(16px,2.4vh,34px) 0;display:flex;flex-direction:column;overflow:hidden;box-sizing:border-box}.result-header{display:flex;justify-content:space-between;align-items:flex-start;gap:clamp(14px,2vw,28px);margin-bottom:clamp(12px,2vh,24px);flex:0 0 auto;min-height:0}.screen-kicker{color:#93c5fd;text-transform:uppercase;letter-spacing:.16em;font-weight:800;margin-bottom:clamp(5px,.8vh,10px);font-size:clamp(13px,1.3vw,18px)}.screen-poll-title{font-size:clamp(64px,8.5vw,132px);line-height:.96;margin:0;color:#fff;width:100%;max-width:min(1360px,82vw);min-height:.92em;max-height:clamp(118px,27vh,260px);overflow:hidden;overflow-wrap:anywhere;text-wrap:balance}.screen-status{display:flex;flex-direction:column;align-items:flex-end;gap:10px;white-space:nowrap}.screen-badge{padding:16px 30px;font-size:clamp(26px,3vw,48px);border-radius:999px;box-shadow:0 14px 36px rgba(0,0,0,.22)}.result-big-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.5vw,20px);margin-bottom:clamp(12px,2vh,24px);flex:0 0 auto}.result-box{border:1px solid rgba(148,163,184,.24);background:rgba(15,23,42,.72);border-radius:clamp(18px,2vw,28px);padding:clamp(14px,1.8vw,26px);box-shadow:0 20px 55px rgba(0,0,0,.25);min-height:0}.result-box span{display:block;color:#cbd5e1;font-size:clamp(16px,1.4vw,22px);margin-bottom:12px}.result-box strong{display:block;color:#fff;font-size:clamp(42px,7vw,104px);line-height:.9}.result-box small{color:#cbd5e1;font-size:clamp(18px,2vw,30px)}.result-box.yes{background:linear-gradient(135deg,rgba(22,163,74,.84),rgba(20,83,45,.78))}.result-box.no{background:linear-gradient(135deg,rgba(220,38,38,.84),rgba(127,29,29,.78))}.result-box.total{background:linear-gradient(135deg,rgba(37,99,235,.85),rgba(30,64,175,.75))}.result-box.participation{background:linear-gradient(135deg,rgba(245,158,11,.86),rgba(146,64,14,.76))}.result-bars{background:rgba(15,23,42,.72);border:1px solid rgba(148,163,184,.24);border-radius:clamp(18px,2vw,28px);padding:clamp(16px,2vw,28px);flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center}.bar-label{display:flex;justify-content:space-between;align-items:center;color:#e5eefc;font-size:clamp(20px,2vw,34px);font-weight:800;margin-bottom:12px}.bar-wrap.large{height:clamp(22px,3.2vh,38px);background:rgba(226,232,240,.18)}.bar-line+.bar-line{margin-top:clamp(12px,2vh,24px)}.screen-footer{display:flex;justify-content:space-between;gap:12px 18px;flex-wrap:wrap;color:#cbd5e1;margin-top:clamp(10px,1.8vh,20px);font-size:clamp(14px,1.25vw,18px);flex:0 0 auto}@media(max-width:1100px){.grid,.stats-grid{grid-template-columns:1fr 1fr}.result-big-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-header{flex-direction:column}.screen-status{align-items:flex-start}.screen-poll-title{max-width:100%;max-height:clamp(118px,28vh,250px)}}@media(max-width:680px){.page-title,.topbar .container{flex-direction:column;align-items:flex-start}.grid,.stats-grid,.filter-grid{grid-template-columns:1fr}.poll-card{grid-template-columns:1fr}.vote-buttons{grid-template-columns:1fr}.result-screen{width:min(100% - 24px,1500px);padding:24px 0}.result-big-grid{grid-template-columns:1fr}.section-title{flex-direction:column;align-items:flex-start}}@media(max-height:780px){.screen-poll-title{max-height:24vh}.result-box span{margin-bottom:6px}.result-box small{font-size:clamp(14px,1.6vw,22px)}}

/* Kullanıcı oylama listesi: aktif olanlar belirgin, kapananlar soluk */
.poll-card-active{border:2px solid rgba(22,163,74,.45);background:linear-gradient(180deg,#ffffff 0%,#f0fdf4 100%);box-shadow:0 14px 34px rgba(22,163,74,.14);transform:translateY(0)}
.poll-card-action-needed{border-color:rgba(245,158,11,.75);box-shadow:0 16px 38px rgba(245,158,11,.20)}
.poll-card-inactive{opacity:.58;background:#f8fafc;filter:grayscale(.18);box-shadow:none}
.poll-card-inactive h3{color:#64748b}
.poll-card-inactive .btn{opacity:.88}
.poll-card-active h3{font-size:22px;color:#0f172a}
.poll-card-active .poll-meta{font-size:14px}
@media(max-width:680px){.poll-card-active h3{font-size:19px}}

.nav-user {
    display:inline-flex;
    align-items:center;
    color:#ffffff;
    background:rgba(255,255,255,.12);
    padding:8px 10px;
    border-radius:9px;
    font-weight:700;
}
.voter-identity-card {
    background:#eef6ff;
    border-color:#bfdbfe;
    color:#1e3a8a;
}
.password-value {
    font-family: Consolas, Monaco, monospace;
    font-size: 15px;
    background: #f8fafc;
    border:1px solid var(--border);
    border-radius:8px;
    padding:5px 8px;
    display:inline-block;
}

/* Kullanıcı şifre ve SMS gönderim yönetimi */
.badge.sent{background:#dcfce7;color:#166534}.badge.failed{background:#fee2e2;color:#991b1b}.password-value{font-family:Consolas,Monaco,monospace;font-size:15px;background:#f8fafc;border:1px solid var(--border);border-radius:8px;padding:5px 8px;display:inline-block;white-space:nowrap}.table-wrap input[type=checkbox]{width:18px;height:18px}.credential-warning{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:12px;padding:12px 14px;margin-bottom:14px}

/* Giriş bilgisi SMS metni düzenleme alanı */
.sms-template-box {
    background:#f8fafc;
    border:1px solid var(--border);
    border-radius:14px;
    padding:14px;
    margin-bottom:14px;
}
.sms-template-box label {
    margin-bottom:8px;
}
.sms-template-textarea {
    min-height:145px;
    font-family:Consolas, Monaco, monospace;
    line-height:1.45;
}
.sms-template-box code {
    background:#e2e8f0;
    padding:2px 5px;
    border-radius:5px;
}

/* CSV içe aktarma uyarıları */
.warning-card {
    border-color: rgba(245, 158, 11, .35);
    background: linear-gradient(180deg, rgba(255, 251, 235, .92), #fff);
}
.badge.warning {
    background: #fff7ed;
    color: #9a3412;
    border: 1px solid #fed7aa;
}
.error-detail-cell {
    max-width: 520px;
    white-space: normal;
    overflow-wrap: anywhere;
}
.check-line {
    display: flex;
    gap: 8px;
    align-items: center;
    margin: 10px 0;
    font-weight: 700;
}

/* Parçalı CSV aktarımı */
.progress-wrap {
    width: 100%;
    height: 18px;
    background: #e5e7eb;
    border-radius: 999px;
    overflow: hidden;
    margin: 14px 0;
}
.progress-bar {
    height: 100%;
    background: linear-gradient(90deg, #2563eb, #16a34a);
    border-radius: 999px;
    transition: width .25s ease;
}
.warning-card {
    border-left: 5px solid #f59e0b;
}

/* Oylama PDF/resim ekleri - cep telefonu uyumlu */
.poll-attachment-card {
    margin-top: 16px;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: #f8fafc;
    padding: 14px;
}
.poll-attachment-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}
.poll-attachment-image {
    display: block;
    width: 100%;
    max-height: 78vh;
    object-fit: contain;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
}
.poll-attachment-pdf {
    width: 100%;
    height: min(78vh, 860px);
    min-height: 620px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
}
.poll-pdf-mobile-note {
    display: none;
    background: #eef6ff;
    color: #1e3a8a;
    border: 1px solid #bfdbfe;
    border-radius: 12px;
    padding: 10px 12px;
    margin-bottom: 12px;
    font-weight: 700;
}
@media(max-width:680px){
    .poll-attachment-card {
        padding: 10px;
        margin-left: -6px;
        margin-right: -6px;
        border-radius: 14px;
    }
    .poll-attachment-head {
        flex-direction: column;
        align-items: stretch;
    }
    .poll-attachment-head .btn {
        width: 100%;
    }
    .poll-attachment-image {
        max-height: 72vh;
        border-radius: 12px;
    }
    .poll-attachment-pdf {
        height: 68vh;
        min-height: 460px;
        border-radius: 12px;
    }
    .poll-pdf-mobile-note {
        display: block;
    }
    .vote-question {
        font-size: 17px;
        padding: 14px;
    }
}

.poll-pdf-open-card {
    background: #eef6ff;
    border-color: #bfdbfe;
}
.poll-pdf-open-card .poll-attachment-head {
    margin-bottom: 0;
}

/* Çoklu oylama dosyası yönetimi */
.poll-attachments-list {
    display: grid;
    gap: 14px;
}
.attachment-admin-list {
    display: grid;
    gap: 10px;
}
.attachment-admin-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #f8fafc;
}
.attachment-admin-item .actions {
    flex-shrink: 0;
}
@media(max-width:680px){
    .attachment-admin-item {
        flex-direction: column;
        align-items: stretch;
    }
    .attachment-admin-item .actions,
    .attachment-admin-item .btn {
        width: 100%;
    }
}
