:root{--primary-color: #8b5cf6;--primary-light: #a78bfa;--primary-dark: #7c3aed;--primary-darker: #6d28d9;--bg-body: #0f0d13;--bg-card: #1a1625;--bg-card-hover: #1f1a2e;--bg-input: #1a1625;--bg-navbar: rgba(15, 13, 19, .95);--bg-sidebar: #12101a;--surface-1: #1a1625;--surface-2: #241f31;--surface-3: #2d2640;--text-primary: #f0edf6;--text-secondary: #d8d3e3;--text-muted: #b5afc5;--text-on-primary: #ffffff;--accent-purple: #a78bfa;--accent-violet: #c4b5fd;--accent-lavender: #e9d5ff;--success-color: #34d399;--success-bg: rgba(52, 211, 153, .15);--danger-color: #f87171;--danger-bg: rgba(248, 113, 113, .15);--warning-color: #fbbf24;--warning-bg: rgba(251, 191, 36, .15);--info-color: #60a5fa;--info-bg: rgba(96, 165, 250, .15);--border-color: #2d2640;--border-light: #3d3555;--border-focus: #8b5cf6;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 10px 10px -5px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(139, 92, 246, .3);--gradient-primary: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);--gradient-card: linear-gradient(145deg, #1a1625 0%, #1f1a2e 100%);--gradient-hero: linear-gradient(135deg, #1a1625 0%, #2d2640 50%, #1a1625 100%)}body.light-mode{--bg-body: #f8f5ff;--bg-card: #ffffff;--bg-card-hover: #f5f0ff;--bg-input: #ffffff;--bg-navbar: rgba(255, 255, 255, .95);--bg-sidebar: #ffffff;--light-purple: #faf5ff;--medium-purple: #f3e8ff;--surface-1: #ffffff;--surface-2: #f5f0ff;--surface-3: #ede7f6;--text-primary: #1a1625;--text-secondary: #4a4558;--text-muted: #6b6580;--text-on-primary: #ffffff;--border-color: #e9d5ff;--border-light: #ddd5ee;--shadow-sm: 0 1px 2px 0 rgba(139, 92, 246, .05);--shadow: 0 4px 6px -1px rgba(139, 92, 246, .1), 0 2px 4px -1px rgba(139, 92, 246, .06);--shadow-lg: 0 10px 15px -3px rgba(139, 92, 246, .1), 0 4px 6px -2px rgba(139, 92, 246, .05);--shadow-xl: 0 20px 25px -5px rgba(139, 92, 246, .1), 0 10px 10px -5px rgba(139, 92, 246, .04);--shadow-glow: 0 0 20px rgba(139, 92, 246, .15);--gradient-primary: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);--gradient-card: linear-gradient(145deg, #ffffff 0%, #f5f0ff 100%);--gradient-hero: linear-gradient(135deg, #f5f0ff 0%, #ede7f6 50%, #f5f0ff 100%)}body.light-mode{--light-purple: #faf5ff;--medium-purple: #f3e8ff;background:linear-gradient(135deg,var(--light-purple) 0%,var(--medium-purple) 100%)}body.light-mode .navbar{background:#fffffff2!important;box-shadow:var(--shadow);border-bottom:1px solid var(--border-color)}body.light-mode .card{background:var(--bg-card);border:1px solid var(--border-color)}body.light-mode .table{background-color:var(--bg-card)!important}body.light-mode .table thead th{background-color:var(--surface-2)!important}body.light-mode .form-control,body.light-mode .form-select{background:var(--bg-input)!important;border:1px solid var(--border-color)!important}body.light-mode .text-muted{color:var(--text-muted)!important}body.light-mode .hero-section{background:linear-gradient(135deg,#f5f0ff,#ede7f6,#e9d5ff)!important;min-height:60vh}body.light-mode .hero-section h1{color:var(--text-primary)!important}body.light-mode .hero-section .text-white-50{color:#7c3aed!important}body.light-mode .hero-section .lead{color:var(--text-secondary)!important}body.light-mode .hero-section .card{background:#8b5cf61a!important;border:1px solid rgba(139,92,246,.2)!important}body.light-mode .hero-section .card h3{color:#7c3aed!important}body.light-mode .hero-section .card p{color:var(--text-secondary)!important}body.light-mode .hero-section .btn-light{background:#7c3aed!important;border-color:#7c3aed!important;color:#fff!important}body.light-mode .hero-section .btn-light:hover{background:#6d28d9!important;border-color:#6d28d9!important}body.light-mode .hero-section .btn-outline-light{border-color:#7c3aed!important;color:#7c3aed!important}body.light-mode .hero-section .btn-outline-light:hover{background:#7c3aed!important;color:#fff!important}body.light-mode .card{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary)}body.light-mode .card-header{background:var(--surface-2);border-bottom:1px solid var(--border-color)}body.light-mode .stat-card{background:var(--bg-card);border:1px solid var(--border-color)}body.light-mode .stat-card h3,body.light-mode .stat-card h4{color:#7c3aed!important}body.light-mode .stat-card p{color:var(--text-muted)}body.light-mode .table{background-color:var(--bg-card)!important;color:var(--text-primary)!important}body.light-mode .table thead th{background-color:var(--surface-2)!important;color:var(--text-primary)!important;border-bottom:2px solid var(--border-color)!important}body.light-mode .table td{border-bottom:1px solid var(--border-light)!important}body.light-mode .form-control,body.light-mode .form-select{background:var(--bg-input)!important;border:1px solid var(--border-color)!important;color:var(--text-primary)!important}body.light-mode .form-control:focus,body.light-mode .form-select:focus{border-color:#7c3aed!important;box-shadow:0 0 0 .2rem #8b5cf640!important}body.light-mode .form-label{color:var(--text-primary)!important}body.light-mode .badge{color:#fff!important}body.light-mode a{color:#7c3aed!important}body.light-mode a:hover{color:#6d28d9!important}body.light-mode .bg-white{background-color:var(--bg-card)!important}body.light-mode .text-gray-800,body.light-mode .text-gray-900{color:var(--text-primary)!important}body.light-mode .shadow-sm{box-shadow:var(--shadow)!important}body.light-mode .border-b{border-bottom:1px solid var(--border-color)!important}body.light-mode .stats-card{background:var(--bg-card);border:1px solid var(--border-color)}body.light-mode .stats-label{color:var(--text-muted)!important}body.light-mode .stats-value{color:#7c3aed!important}body.light-mode .stats-icon{background:var(--gradient-primary)!important}body.light-mode .page-title{color:var(--text-primary)!important}body.light-mode .breadcrumb-item{color:var(--text-muted)!important}body.light-mode .breadcrumb-item.active{color:var(--text-secondary)!important}body.light-mode .btn-primary{background:#7c3aed!important;border-color:#7c3aed!important}body.light-mode .btn-primary:hover{background:#6d28d9!important;border-color:#6d28d9!important}body.light-mode .btn-outline-primary{color:#7c3aed!important;border-color:#7c3aed!important}body.light-mode .btn-outline-primary:hover{background:#7c3aed!important;color:#fff!important}body.light-mode .btn-success{background:#10b981!important;border-color:#10b981!important}body.light-mode .btn-danger{background:#ef4444!important;border-color:#ef4444!important}body.light-mode .btn-warning{background:#f59e0b!important;border-color:#f59e0b!important;color:#fff!important}body.light-mode .btn-info{background:#06b6d4!important;border-color:#06b6d4!important}body.light-mode .btn{color:#fff!important}body.light-mode .btn-outline-secondary{color:var(--text-secondary)!important;border-color:var(--border-color)!important}body.light-mode .btn-outline-dark{color:var(--text-primary)!important;border-color:var(--border-color)!important}body.light-mode .btn-outline-dark:hover{background:var(--text-primary)!important;color:#fff!important}body.light-mode .btn-light{background:var(--surface-2)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}body.light-mode .btn-light:hover{background:var(--surface-3)!important}body.light-mode .btn-dark{background:var(--text-primary)!important;border-color:var(--text-primary)!important}body.light-mode .btn-outline-primary{color:#7c3aed!important;border-color:#7c3aed!important;background:transparent!important}body.light-mode .btn-outline-primary:hover,body.light-mode .btn-outline-primary.active{background:#7c3aed!important;color:#fff!important}body.light-mode .btn-outline-secondary{color:var(--text-secondary)!important;border-color:var(--border-color)!important;background:transparent!important}body.light-mode .btn-outline-secondary:hover{background:var(--surface-2)!important;color:var(--text-primary)!important}body.light-mode .btn-outline-success{color:#10b981!important;border-color:#10b981!important;background:transparent!important}body.light-mode .btn-outline-success:hover{background:#10b981!important;color:#fff!important}.btn-outline-success{color:#10b981!important;border-color:#10b981!important}.btn-outline-success:hover{background:#10b981!important;color:#fff!important}body.light-mode .btn-outline-danger{color:#ef4444!important;border-color:#ef4444!important;background:transparent!important}body.light-mode .btn-outline-danger:hover{background:#ef4444!important;color:#fff!important}body.light-mode .btn-outline-warning{color:#f59e0b!important;border-color:#f59e0b!important;background:transparent!important}body.light-mode .btn-outline-warning:hover{background:#f59e0b!important;color:#fff!important}body.light-mode .btn-outline-info{color:#06b6d4!important;border-color:#06b6d4!important;background:transparent!important}body.light-mode .btn-outline-info:hover{background:#06b6d4!important;color:#fff!important}body.light-mode .guest-layout{background:linear-gradient(135deg,#f5f0ff,#ede7f6,#e9d5ff)!important}body.light-mode .card{background:var(--bg-card)!important}body.light-mode .card-body{background:var(--bg-card)}body.light-mode .input-group-text{background:var(--surface-2)!important;border:1px solid var(--border-color)!important;color:var(--text-muted)!important}body.light-mode h2.text-primary,body.light-mode .text-primary{color:#7c3aed!important}body.light-mode h4,body.light-mode h4.text-center,body.light-mode .form-label{color:var(--text-primary)!important}body.light-mode .form-check-label{color:var(--text-secondary)!important}body.light-mode .text-purple{color:#7c3aed!important}body.light-mode .text-secondary{color:var(--text-secondary)!important}body.light-mode a.text-decoration-none.text-secondary:hover{color:#7c3aed!important}body.light-mode .text-muted{color:#6b6580!important}body.light-mode .text-secondary{color:#4a4558!important}body.light-mode .card-body h4{color:#1a1625!important}body.light-mode .card-body p{color:#4a4558!important}body.light-mode .card-body .text-muted{color:#6b6580!important}body.light-mode #themeToggle{background:var(--gradient-primary)!important;border:none!important;box-shadow:var(--shadow)!important}body.light-mode #themeToggle i{color:#fff!important}#theme-toggle{color:#8b5cf6!important;background:transparent!important;border:none!important;padding:8px!important;border-radius:50%!important;width:40px!important;height:40px!important;display:flex!important;align-items:center!important;justify-content:center!important;transition:all .3s ease!important}#theme-toggle:hover{background:#8b5cf61a!important;transform:scale(1.1)!important}#theme-toggle i{color:#8b5cf6!important;font-size:1.2rem!important}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Poppins,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:var(--bg-body);min-height:100vh;color:var(--text-primary);line-height:1.6}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-body)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary-color)}.navbar{background:var(--bg-navbar)!important;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow);border-bottom:1px solid var(--border-color);padding:1rem 0}.navbar-brand{font-weight:700;font-size:1.5rem;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-link{color:var(--text-secondary)!important;font-weight:500;transition:all .3s ease;padding:.5rem 1rem!important;border-radius:.5rem}.nav-link:hover,.nav-link.active{color:var(--text-primary)!important;background:var(--surface-2)}.nav-link:hover i,.nav-link.active i{color:var(--accent-purple)!important}.btn{font-weight:600;padding:.625rem 1.5rem;border-radius:.5rem;transition:all .3s ease;border:none}.btn-primary{background:var(--gradient-primary)!important;color:var(--text-on-primary)!important;box-shadow:var(--shadow)}.btn-primary:hover{box-shadow:var(--shadow-glow),var(--shadow-lg);transform:translateY(-2px);filter:brightness(1.1)}.btn-secondary{background:var(--surface-2)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important}.btn-secondary:hover{background:var(--surface-3)!important;border-color:var(--border-light)!important}.btn-outline-primary{background:transparent!important;border:2px solid var(--primary-color)!important;color:var(--primary-color)!important}.btn-outline-primary:hover{background:var(--primary-color)!important;color:var(--text-on-primary)!important;box-shadow:var(--shadow-glow)}.btn-outline-secondary{background:transparent!important;border:2px solid var(--border-color)!important;color:var(--text-secondary)!important}.btn-outline-secondary:hover{background:var(--surface-2)!important;border-color:var(--border-light)!important;color:var(--text-primary)!important}.btn-success{background:var(--success-color)!important;color:#000!important}.btn-danger{background:var(--danger-color)!important;color:#000!important}.btn-warning{background:var(--warning-color)!important;color:#000!important}.btn-info{background:var(--info-color)!important;color:#000!important}.btn-light{background:var(--surface-2)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important}.btn-light:hover{background:var(--surface-3)!important}.btn-sm{padding:.375rem .75rem;font-size:.875rem}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:1rem;box-shadow:var(--shadow);transition:all .3s ease;overflow:hidden}.card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-light);transform:translateY(-2px)}.card-header{background:var(--surface-2)!important;border-bottom:1px solid var(--border-color);font-weight:600;color:var(--text-primary);padding:1rem 1.5rem}.card-header.bg-purple-gradient{background:var(--gradient-primary)!important;color:var(--text-on-primary)}.card-body{padding:1.5rem;background:transparent}.card-title{color:var(--text-primary);font-weight:600}.card-text{color:var(--text-secondary)}.card-subtitle{color:var(--text-muted);font-size:.875rem}.card-footer{background:var(--surface-2);border-top:1px solid var(--border-color);padding:1rem 1.5rem}.form-control,.form-select{background:var(--bg-input)!important;border:1px solid var(--border-color)!important;border-radius:.5rem;padding:.75rem 1rem;color:var(--text-primary)!important;transition:all .3s ease}.form-control:focus,.form-select:focus{border-color:var(--primary-color)!important;box-shadow:0 0 0 3px #8b5cf633!important;background:var(--surface-2)!important}.form-control::-moz-placeholder{color:var(--text-muted)}.form-control::placeholder{color:var(--text-muted)}.form-label{font-weight:500;color:var(--text-primary);margin-bottom:.5rem}.form-text{color:var(--text-muted);font-size:.875rem}.form-check-input{background-color:var(--surface-2);border:2px solid var(--border-light)}.form-check-input:checked{background-color:var(--primary-color);border-color:var(--primary-color)}.form-check-input:focus{box-shadow:0 0 0 3px #8b5cf633}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:2.5rem!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23c4bed4' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")!important;background-repeat:no-repeat!important;background-position:right .75rem center!important;background-size:12px 12px!important}.form-select option{background:var(--bg-card);color:var(--text-primary)}.table{background:var(--bg-card);border-radius:.75rem;overflow:hidden;margin-bottom:0}.table thead{background:var(--surface-2)}.table thead th{border:none;color:var(--text-primary)!important;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em;padding:1rem;border-bottom:1px solid var(--border-color);background-color:var(--surface-2)!important}.table tbody tr{border-bottom:1px solid var(--border-color);transition:all .2s ease}.table tbody tr:last-child{border-bottom:none}.table tbody tr:hover{background:var(--surface-2)}.table tbody td{padding:1rem;vertical-align:middle;color:var(--text-primary);border:none}.table-responsive{border-radius:.75rem;border:1px solid var(--border-color)}.badge{padding:.375rem .75rem;border-radius:.375rem;font-weight:600;font-size:.75rem}.badge-success,.badge.bg-success{background:var(--success-bg)!important;color:var(--success-color)}.badge-danger,.badge.bg-danger{background:var(--danger-bg)!important;color:var(--danger-color)}.badge-warning,.badge.bg-warning{background:var(--warning-bg)!important;color:var(--warning-color)}body.light-mode .badge-warning,body.light-mode .badge.bg-warning{background:#f59e0b!important;color:#000!important}.badge-info,.badge.bg-info{background:var(--info-bg)!important;color:var(--info-color)}.badge-primary,.badge.bg-primary{background:#8b5cf633!important;color:var(--accent-purple)}.badge-secondary,.badge.bg-secondary{background:var(--surface-3)!important;color:var(--text-secondary)}.alert{border:none;border-radius:.5rem;box-shadow:var(--shadow);padding:1rem 1.25rem}.alert-success{background:var(--success-bg);color:var(--success-color);border-left:4px solid var(--success-color)}.alert-danger{background:var(--danger-bg);color:var(--danger-color);border-left:4px solid var(--danger-color)}.alert-warning{background:var(--warning-bg);color:var(--warning-color);border-left:4px solid var(--warning-color)}.alert-info{background:var(--info-bg);color:var(--info-color);border-left:4px solid var(--info-color)}.pagination{gap:.25rem}.pagination .page-link{background:var(--bg-card);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:.5rem;padding:.5rem .875rem;transition:all .3s ease}.pagination .page-link:hover{background:var(--surface-2);border-color:var(--primary-color);color:var(--text-primary)}.pagination .page-item.active .page-link{background:var(--gradient-primary);border-color:var(--primary-color);color:var(--text-on-primary)}.pagination .page-item.disabled .page-link{background:var(--surface-1);border-color:var(--border-color);color:var(--text-muted)}.hero-section{background:linear-gradient(#0f0d1399,#0f0d13bf),url(/images/perpus.jpg) center/cover no-repeat;color:var(--text-primary);padding:4rem 0;position:relative;border-bottom:1px solid var(--border-color)}body.light-mode .hero-section{background:linear-gradient(#f5f0ffb3,#ede7f6cc),url(/images/perpus.jpg) center/cover no-repeat}.hero-section:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at top,rgba(139,92,246,.1) 0%,transparent 50%);pointer-events:none}.section{padding:4rem 0}.section-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.section-subtitle{color:var(--accent-purple);font-weight:500;margin-bottom:2rem}.page-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.breadcrumb{background:transparent;padding:0;margin-bottom:1rem}.breadcrumb-item a{color:var(--text-muted);text-decoration:none;transition:color .3s ease}.breadcrumb-item a:hover{color:var(--accent-purple)}.breadcrumb-item.active{color:var(--text-secondary)}.breadcrumb-item+.breadcrumb-item:before{color:var(--text-muted)}.book-card{transition:all .3s ease;background:var(--bg-card);border:1px solid var(--border-color)}.book-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-xl);border-color:var(--primary-color)}.book-card img{height:280px;-o-object-fit:cover;object-fit:cover;background:var(--surface-2)}.book-card .card-body{padding:1.25rem}.book-card .book-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}.book-card .book-author{color:var(--text-muted);font-size:.875rem;margin-bottom:.75rem}.book-card .book-rating{display:flex;align-items:center;gap:.25rem;color:var(--warning-color)}.book-card .card-img-top{border-radius:1rem 1rem 0 0}.status-available{background:var(--success-bg);color:var(--success-color);padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}.status-borrowed{background:var(--danger-bg);color:var(--danger-color);padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}body.light-mode .status-available{background:#10b981;color:#fff}body.light-mode .status-borrowed{background:#ef4444;color:#fff}.status-returned{background:var(--info-bg);color:var(--info-color);padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}.status-overdue{background:var(--warning-bg);color:var(--warning-color);padding:.25rem .75rem;border-radius:1rem;font-size:.75rem;font-weight:600}.copy-code{font-family:JetBrains Mono,Fira Code,Courier New,monospace;font-weight:600;font-size:.875rem;padding:.5rem .75rem;border-radius:.5rem;border:1px solid var(--border-color);background:var(--surface-2);color:var(--accent-purple)}.copy-code.available{border-color:var(--success-color);background:var(--success-bg);color:var(--success-color)}.copy-code.borrowed{border-color:var(--danger-color);background:var(--danger-bg);color:var(--danger-color)}footer{background:var(--bg-card);border-top:1px solid var(--border-color);padding:3rem 0;margin-top:4rem}footer h5{color:var(--text-primary);font-weight:600;margin-bottom:1rem}footer p,footer li{color:var(--text-secondary)}footer a{color:var(--text-muted);text-decoration:none;transition:all .3s ease}footer a:hover{color:var(--accent-purple)}.dropdown-menu{background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:var(--shadow-lg);padding:.5rem}.dropdown-item{color:var(--text-secondary);padding:.5rem 1rem;border-radius:.375rem;transition:all .2s ease}.dropdown-item:hover{background:var(--surface-2);color:var(--text-primary)}.dropdown-item i{color:var(--text-muted);margin-right:.5rem}.dropdown-divider{border-color:var(--border-color);margin:.5rem 0}.modal-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:1rem}.modal-header{background:var(--surface-2);border-bottom:1px solid var(--border-color);padding:1rem 1.5rem}.modal-title{color:var(--text-primary);font-weight:600}.modal-body{padding:1.5rem;color:var(--text-primary)}.modal-footer{background:var(--surface-2);border-top:1px solid var(--border-color);padding:1rem 1.5rem}.btn-close{filter:invert(1) brightness(.8)}.input-group .form-control{border-radius:.5rem 0 0 .5rem}.input-group .btn{border-radius:0 .5rem .5rem 0}.input-group .form-control:focus{z-index:1}.list-group{background:var(--bg-card);border-radius:.75rem;border:1px solid var(--border-color);overflow:hidden}.list-group-item{background:transparent;border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:1rem 1.25rem}.list-group-item:last-child{border-bottom:none}.list-group-item:hover{background:var(--surface-2)}.nav-tabs{border-bottom:1px solid var(--border-color)}.nav-tabs .nav-link{color:var(--text-muted);border:none;padding:.75rem 1.25rem;border-radius:.5rem .5rem 0 0;transition:all .3s ease}.nav-tabs .nav-link:hover{color:var(--text-primary);background:var(--surface-2)}.nav-tabs .nav-link.active{color:var(--accent-purple);background:var(--surface-2);border-bottom:2px solid var(--primary-color)}.progress{background:var(--surface-2);border-radius:.5rem;height:.5rem}.progress-bar{background:var(--gradient-primary);border-radius:.5rem}.text-muted{color:var(--text-muted)!important}.text-secondary{color:var(--text-secondary)!important}body:not(.light-mode) .text-dark,body:not(.light-mode) .text-black{color:var(--text-primary)!important}body:not(.light-mode) .text-black-50{color:var(--text-secondary)!important}body:not(.light-mode) small,body:not(.light-mode) .small,body:not(.light-mode) label,body:not(.light-mode) .form-text{color:var(--text-secondary)!important}body:not(.light-mode) .form-control,body:not(.light-mode) .form-select{color:var(--text-primary)!important}body:not(.light-mode) .form-control::-moz-placeholder,body:not(.light-mode) .form-select::-moz-placeholder{color:var(--text-muted)!important}body:not(.light-mode) .form-control::placeholder,body:not(.light-mode) .form-select::placeholder{color:var(--text-muted)!important}body:not(.light-mode) .table{color:var(--text-primary)!important}body:not(.light-mode) .table td,body:not(.light-mode) .table th{color:var(--text-primary)!important}body:not(.light-mode) .card{color:var(--text-primary)!important}body:not(.light-mode) p{color:var(--text-primary)!important}body:not(.light-mode) a:not(.btn):not(.badge){color:var(--primary-light)!important}.text-primary{color:var(--accent-purple)!important}.text-success{color:var(--success-color)!important}.text-danger{color:var(--danger-color)!important}.text-warning{color:var(--warning-color)!important}.text-info{color:var(--info-color)!important}.bg-primary{background-color:var(--primary-color)!important}.bg-secondary{background-color:var(--surface-2)!important}.bg-success{background-color:var(--success-color)!important}.bg-danger{background-color:var(--danger-color)!important}.bg-warning{background-color:var(--warning-color)!important}.bg-info{background-color:var(--info-color)!important}.bg-dark{background-color:var(--bg-body)!important}.bg-purple-gradient{background:var(--gradient-primary)!important}.border{border-color:var(--border-color)!important}.border-primary{border-color:var(--primary-color)!important}.stats-card{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:1rem;padding:1.5rem;transition:all .3s ease}.stats-card:hover{border-color:var(--primary-color);box-shadow:var(--shadow-glow)}.stats-card .stats-icon{width:48px;height:48px;border-radius:.75rem;display:flex;align-items:center;justify-content:center;font-size:1.5rem}.stats-card .stats-value{font-size:1.75rem;font-weight:700;color:var(--text-primary)}.stats-card .stats-label{color:var(--text-muted);font-size:.875rem}.empty-state{text-align:center;padding:3rem;color:var(--text-muted)}.empty-state i{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state h5{color:var(--text-secondary);margin-bottom:.5rem}.avatar{width:40px;height:40px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:var(--text-on-primary);font-weight:600}.avatar-sm{width:32px;height:32px;font-size:.875rem}.avatar-lg{width:56px;height:56px;font-size:1.25rem}code{background:var(--surface-2);color:var(--accent-purple);padding:.25rem .5rem;border-radius:.25rem;font-family:JetBrains Mono,Fira Code,monospace;font-size:.875rem}hr{border-color:var(--border-color);opacity:1}@media (max-width: 768px){.hero-section{padding:3rem 0}.section-title,.page-title{font-size:1.5rem}.book-card img{height:220px}.stats-card{padding:1rem}.stats-card .stats-value{font-size:1.5rem}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card{animation:fadeIn .3s ease}.hover-lift{transition:transform .3s ease,box-shadow .3s ease}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.focus-ring:focus{outline:none;box-shadow:0 0 0 3px #8b5cf64d}::-moz-selection{background:#8b5cf64d;color:var(--text-primary)}::selection{background:#8b5cf64d;color:var(--text-primary)}::-moz-placeholder{color:var(--text-muted)}::placeholder{color:var(--text-muted)}.disabled,:disabled{opacity:.5;cursor:not-allowed}.spinner-border{border-color:var(--border-light);border-right-color:var(--primary-color)}.toast{background:var(--bg-card);border:1px solid var(--border-color);border-radius:.5rem}.toast-header{background:var(--surface-2);border-bottom:1px solid var(--border-color);color:var(--text-primary)}.toast-body{color:var(--text-secondary)}.bg-white{background-color:var(--bg-card)!important}.bg-light{background-color:var(--surface-2)!important}.text-white{color:var(--text-on-primary)!important}.table{background-color:var(--bg-card)!important;color:var(--text-primary)!important}.table>thead{background-color:var(--surface-2)!important}.table>tbody>tr>td,.table>tbody>tr>th{background-color:transparent!important;color:var(--text-primary)!important}.table-striped>tbody>tr:nth-of-type(odd){background-color:var(--surface-1)!important}.card{background-color:var(--bg-card)!important;border-color:var(--border-color)!important}.card-header{background-color:var(--surface-2)!important;border-bottom-color:var(--border-color)!important}.card-body{background-color:transparent!important}.navbar{background-color:var(--bg-navbar)!important}.dropdown-menu{background-color:var(--bg-card)!important}.dropdown-item{color:var(--text-secondary)!important}.dropdown-item:hover{background-color:var(--surface-2)!important;color:var(--text-primary)!important}.modal-content{background-color:var(--bg-card)!important;border-color:var(--border-color)!important}.modal-header,.modal-footer{background-color:var(--surface-2)!important;border-color:var(--border-color)!important}.form-control:disabled,.form-control[readonly]{background-color:var(--surface-2)!important;opacity:.7}.page-item.disabled .page-link{background-color:var(--surface-1)!important;border-color:var(--border-color)!important}.list-group-item{background-color:transparent!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}.alert-light{background-color:var(--surface-2)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}.breadcrumb{background-color:transparent!important}.breadcrumb-item+.breadcrumb-item:before{color:var(--text-muted)!important}.input-group-text{background-color:var(--surface-2)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}.badge.bg-light{background-color:var(--surface-2)!important;color:var(--text-primary)!important}.bg-white\/10,.bg-white\/10.border-0.text-white{background-color:#ffffff1a!important;border:none!important;color:var(--text-primary)!important}.text-white-50{color:#fff9!important}strong,b{color:var(--text-primary)!important;font-weight:600}small{color:var(--text-secondary)!important}body small,.form-text,.text-muted,.text-secondary{color:var(--text-muted)!important}.hero-section h1,.hero-section .display-4{color:var(--text-primary)!important}.hero-section .text-white-50,.hero-section .lead{color:#ffffffb3!important}.stats-icon.bg-warning i{color:#000!important}
