/* VOTEXA PLATFORM DESIGN SYSTEM - PHASE 2 */
:root{--vx-ink:#0b1020;--vx-ink-soft:#182039;--vx-muted:#6c7487;--vx-bg:#f4f6fa;--vx-card:#fff;--vx-line:#e5e8ef;--vx-primary:#5b4df6;--vx-primary-dark:#4437d4;--vx-accent:#d8ff54;--vx-success:#18a56b;--vx-warning:#e49a21;--vx-danger:#df4d61;--vx-radius:18px;--vx-shadow:0 12px 40px rgba(15,23,42,.07);--vx-shadow-lg:0 24px 70px rgba(15,23,42,.12)}
html{scroll-behavior:smooth}body{background:var(--vx-bg);color:var(--vx-ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body a{transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}
.card,.dw,.modal-content,.dropdown-menu,.list-group,.alert{border:1px solid var(--vx-line);border-radius:var(--vx-radius);box-shadow:var(--vx-shadow);background:var(--vx-card)}.card{overflow:hidden}.card-header{background:#fff;border-bottom:1px solid var(--vx-line);padding:18px 22px}.card-header h1,.card-header h2,.card-header h3,.card-header h4,.card-header h5{color:var(--vx-ink);font-weight:800}.card-body{padding:22px}.card-footer{background:#fbfcfe;border-top:1px solid var(--vx-line)}
.page-title-box{padding:20px 0 10px}.page-title-box h1,.page-title-box h2,.page-title-box h3{font-weight:850;letter-spacing:-.035em}.btn{border-radius:11px;font-weight:700;padding:.62rem 1rem;box-shadow:none}.btn-primary{background:var(--vx-primary);border-color:var(--vx-primary)}.btn-primary:hover,.btn-primary:focus{background:var(--vx-primary-dark);border-color:var(--vx-primary-dark);transform:translateY(-1px)}.btn-light{background:#fff;border-color:var(--vx-line);color:var(--vx-ink)}.btn-light:hover{background:#f7f8fc;border-color:#d8dce6}
.form-control,.form-select,.custom-select{border:1px solid #dfe3eb;border-radius:11px;min-height:44px;background:#fff;color:var(--vx-ink);box-shadow:none}.form-control:focus,.form-select:focus{border-color:rgba(91,77,246,.55);box-shadow:0 0 0 4px rgba(91,77,246,.10)}.form-label,label{font-weight:650;color:#343c4f}.form-group{margin-bottom:18px}
.table{margin-bottom:0;color:#20283a}.table thead th{background:#f7f8fb;color:#6d7587;border-bottom:1px solid var(--vx-line);font-size:11px;text-transform:uppercase;letter-spacing:.07em;font-weight:800;padding:13px 14px;white-space:nowrap}.table tbody td{padding:14px;border-color:#edf0f4;vertical-align:middle}.table-hover tbody tr:hover{background:#fafbfe}.table-bordered{border-color:var(--vx-line)}.badge{border-radius:999px;padding:.45em .7em;font-weight:750}.pagination .page-link{border:1px solid var(--vx-line);color:var(--vx-ink);border-radius:9px!important;margin:0 2px}.pagination .active .page-link{background:var(--vx-primary);border-color:var(--vx-primary)}
.dw{height:100%;position:relative;overflow:hidden}.dw:after{content:"";position:absolute;width:120px;height:120px;right:-55px;top:-55px;border-radius:50%;background:rgba(91,77,246,.06)}.dw-body{padding:20px!important;align-items:center;gap:14px}.dw .stamp{width:48px;height:48px;min-width:48px;border-radius:14px!important;background:#eeecff!important;color:var(--vx-primary)!important}.dw .stamp i{font-size:21px}.dw-text,.dw .strong{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#727a8c;font-weight:800}.dw .text-muted{font-size:23px;color:var(--vx-ink)!important;font-weight:850;margin-top:3px;line-height:1.1}
.page-wrap{background:var(--vx-bg)}.modal-content{overflow:hidden}.modal-header{border-bottom:1px solid var(--vx-line);padding:17px 20px}.modal-footer{border-top:1px solid var(--vx-line)}.card img{max-width:100%}.img-table{border-radius:9px;object-fit:cover;border:1px solid var(--vx-line)}
/* Sidebar / dashboard shells */
.sidebar-wrap{z-index:1100}.sidebar-nav{background:#0d1325!important;border-right:1px solid rgba(255,255,255,.07)!important}.side-nav-logo{padding:22px 20px!important;border-bottom:1px solid rgba(255,255,255,.08)}.side-nav-logo .nav-logo{max-width:145px;max-height:42px;object-fit:contain}.side-nav-content{padding:14px 12px}.side-nav-link{border-radius:11px!important;color:#aeb6c9!important;margin:3px 0;padding:11px 13px!important;font-weight:650!important}.side-nav-link:hover,.side-nav-link.active{background:rgba(255,255,255,.08)!important;color:#fff!important}.side-nav-link i{width:23px;text-align:center;color:#8993ac}.side-nav-link:hover i,.side-nav-link.active i{color:var(--vx-accent)}.sublink{display:block;border-radius:9px;padding:9px 12px 9px 42px;color:#929bb1!important;font-size:13px}.sublink:hover{background:rgba(255,255,255,.06);color:#fff!important}.content-wrap{background:var(--vx-bg)}.nav-topbar{min-height:72px!important;background:rgba(255,255,255,.92)!important;border-bottom:1px solid var(--vx-line)!important;box-shadow:0 4px 20px rgba(15,23,42,.035);backdrop-filter:blur(16px);padding:0 20px!important}.nav-topbar .btn-nav,.nav-topbar .btn-light{border:1px solid var(--vx-line)!important;background:#fff!important;color:var(--vx-ink)!important;box-shadow:none}.nav-topbar .btn-circle{width:40px;height:40px;border-radius:50%}.profile-dropdown,.noti-dropdown{border:1px solid var(--vx-line)!important;border-radius:14px!important;box-shadow:var(--vx-shadow-lg)!important;overflow:hidden}.profile-dropdown .dropdown-item,.noti-dropdown .dropdown-item{padding:11px 14px;border-radius:8px}.main-container{padding-top:8px!important}.main-container>.container{padding-top:10px;padding-bottom:30px}.footer{background:#fff!important;border-top:1px solid var(--vx-line)!important;color:#7b8394!important;padding:18px 24px!important}.nav-topbar .mobile-logo img{max-height:36px;max-width:130px;object-fit:contain}.nav-topbar-toggler .mobile-toggler{border:0;background:#f4f5f8;border-radius:10px;width:40px;height:40px}.nav-topbar-toggler .mobile-toggler span{background:var(--vx-ink)}
/* Login */
body:not(:has(.sidebar-wrap)){background:var(--vx-bg)}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:30px 16px;background:radial-gradient(circle at 15% 15%,rgba(91,77,246,.12),transparent 32%),var(--vx-bg)}
@media(max-width:991px){.sidebar-wrap .sidebar-nav{box-shadow:20px 0 60px rgba(0,0,0,.18)}.main-container>.container{max-width:100%;padding-left:15px;padding-right:15px}.card-body{padding:18px}.dw .text-muted{font-size:20px}}
@media(max-width:575px){.nav-topbar{padding:0 12px!important}.main-container>.container{padding-left:10px;padding-right:10px}.card-header{padding:15px 16px}.card-body{padding:15px}.dw-body{padding:16px!important}.dw .stamp{width:42px;height:42px;min-width:42px}.dw .text-muted{font-size:18px}.table-responsive{border-radius:12px}.footer{text-align:center;padding:15px!important}}
