:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.toast-container{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md);z-index:1000;max-width:400px;transition:all .3s ease}.toast{position:relative;padding:var(--spacing-md);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);display:flex;align-items:flex-start;gap:var(--spacing-md);min-width:320px;max-width:400px;animation:slideIn .3s ease-out;transition:all .3s ease;overflow:hidden;flex-shrink:0}.toast-icon{width:28px;height:28px;border-radius:50%;background-color:#fff3;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:700;flex-shrink:0;margin-top:2px}.toast-content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs)}.toast-message{font-size:var(--font-size-md);font-weight:500;line-height:1.4}.toast-progress-container{width:100%;height:3px;background-color:#fff3;border-radius:2px;overflow:hidden;margin-top:var(--spacing-xs)}.toast-progress{height:100%;background-color:#fffc;border-radius:2px;transition:width .1s linear}.toast-close{background:none;border:none;font-size:var(--font-size-lg);cursor:pointer;padding:var(--spacing-xs);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s;flex-shrink:0;margin-top:2px}.toast-close:hover{background-color:#fff3}.toast-info{background-color:var(--info-color);color:var(--text-white)}.toast-success{background-color:var(--success-color);color:var(--text-white)}.toast-error{background-color:var(--danger-color);color:var(--text-white)}.toast-warning{background-color:var(--warning-color);color:var(--text-white)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast.closing{animation:slideOut .3s ease-in forwards}.login-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background-color:var(--bg-primary);padding:var(--spacing-lg);width:100%;margin:0;position:relative;z-index:1}.login-form{width:100%;max-width:400px;padding:var(--spacing-xl);text-align:center;margin:0 auto!important;position:relative;z-index:1;box-sizing:border-box}.login-form h1{margin-bottom:var(--spacing-sm);color:var(--secondary-color)}.login-form h2{margin-bottom:var(--spacing-lg);color:var(--text-secondary);font-weight:400}.login-form .form-group{text-align:left}.login-form input.input-error{border-color:var(--danger-color);box-shadow:0 0 0 2px #ef444424}.login-form .field-helper,.login-form .field-error{display:block;margin-top:4px;font-size:var(--font-size-xs);line-height:1.4}.login-form .field-helper{color:var(--text-secondary)}.login-form .field-error{color:var(--danger-color);font-weight:600}.auth-error{margin-bottom:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border:1px solid rgba(239,68,68,.22);border-radius:var(--border-radius);background:#fef2f2;color:var(--danger-color);font-size:var(--font-size-sm);font-weight:600;text-align:left}.login-info{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);font-size:var(--font-size-sm);color:var(--text-secondary);text-align:left}.login-info p{margin-bottom:var(--spacing-xs)}.forgot-password{display:block;text-align:right;margin-top:var(--spacing-xs);font-size:var(--font-size-sm)}.login-form h3{margin-bottom:var(--spacing-md);color:var(--text-primary);font-weight:500}.success-message{background-color:var(--success-bg);color:var(--success-color);padding:var(--spacing-md);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm)}.success-message p{margin:var(--spacing-xs) 0}.btn-secondary{background-color:var(--secondary-color);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);font-size:var(--font-size-sm);cursor:pointer;margin-top:var(--spacing-md);transition:background-color var(--transition)}.btn-secondary:hover{background-color:var(--secondary-color-dark)}@media(max-width:768px){.login-form{padding:var(--spacing-lg)}.login-container{padding:var(--spacing-md)}.login-footer{font-size:var(--font-size-xs)}}.sidebar{width:var(--sidebar-width);background-color:#fffdf5;color:var(--text-primary);height:100vh;position:fixed;left:calc(-1 * var(--sidebar-width));top:0;transition:var(--transition);z-index:1000;box-shadow:var(--shadow-md);display:flex;flex-direction:column}.sidebar.open{left:0}.sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid #F0E6D6;display:flex;justify-content:space-between;align-items:center}.sidebar-header h3{margin:0;color:var(--text-primary);font-size:var(--font-size-lg)}.close-btn{background:none;border:none;color:var(--text-secondary);font-size:var(--font-size-xl);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:var(--transition)}.close-btn:hover{background-color:#f5ede0;transform:none;box-shadow:none}.user-info{padding:var(--spacing-lg);border-bottom:1px solid #F0E6D6;text-align:center}.user-info h4{margin:0 0 var(--spacing-xs) 0;color:var(--text-primary)}.user-info p{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.sidebar-nav{flex:1;padding:var(--spacing-lg) 0;overflow-y:auto}.sidebar-nav ul{list-style:none}.sidebar-nav li{margin:0}.sidebar-nav button,.sidebar-nav a{width:100%;padding:var(--spacing-md);background:none;border:none;color:var(--text-primary);text-align:left;cursor:pointer;font-size:var(--font-size-md);transition:var(--transition);display:flex;align-items:center;gap:var(--spacing-md);margin-right:0;text-decoration:none}.sidebar-nav button:hover,.sidebar-nav a:hover{background-color:#f5ede0;transform:none;box-shadow:none}.sidebar-nav li.active button,.sidebar-nav li.active a{background-color:#ede6d6;color:var(--text-primary);font-weight:600}.nav-icon{font-size:var(--font-size-lg);width:24px;text-align:center;display:flex;align-items:center;justify-content:center}.nav-icon-badge{position:relative}.unread-badge{position:absolute;top:-8px;right:-10px;min-width:18px;height:18px;padding:0 5px;border:2px solid #FFFDF5;border-radius:999px;background:var(--danger-color);color:#fff;font-size:10px;font-weight:800;line-height:14px;text-align:center}.nav-icon img{width:20px;height:20px;object-fit:contain;filter:none}.nav-text{flex:1}.sidebar-footer{padding:var(--spacing-lg);border-top:1px solid #F0E6D6}.logout-btn{width:100%;padding:var(--spacing-md);background-color:#fef2f2;color:var(--danger-color);border:1px solid #FEE2E2;border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-md);transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-right:0}.logout-btn:hover{background-color:#fee2e2;transform:none}@media(max-width:768px){.sidebar{width:var(--sidebar-width-sm);left:calc(-1 * var(--sidebar-width-sm))}.sidebar-header h3,.user-info h4{font-size:var(--font-size-md)}.sidebar-nav button,.logout-btn{font-size:var(--font-size-sm);padding:var(--spacing-sm)}}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:#fffdf5}.sidebar-nav::-webkit-scrollbar-thumb{background:#e0d6c6;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#d0c6b6}.search-and-filter{display:flex;align-items:center;gap:var(--spacing-md);flex:1;min-width:0;margin-bottom:0}.books-search-bar{flex:1;min-width:320px;display:flex;gap:var(--spacing-sm);align-items:stretch}.books-search-input-container{flex:1;position:relative}.books-search-input{width:100%;height:40px;padding:0 var(--spacing-md) 0 40px;border:1px solid var(--border-color);border-radius:var(--border-radius);background:#fff;color:#111827;caret-color:#111827;font-size:var(--font-size-sm);transition:border-color var(--transition);outline:none}.books-search-input::placeholder{color:#6b7280;opacity:1}.books-search-input-icon{position:absolute;top:50%;left:14px;transform:translateY(-50%);width:16px;height:16px;pointer-events:none;z-index:1}.books-search-input-icon:before{content:"";position:absolute;top:1px;left:1px;width:9px;height:9px;border:1.8px solid #6b7280;border-radius:50%}.books-search-input-icon:after{content:"";position:absolute;left:9px;top:11px;width:7px;height:1.8px;background:#6b7280;border-radius:999px;transform:rotate(45deg);transform-origin:left center}.books-search-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #5e6ad233}.search-button{padding:0 var(--spacing-lg);border:1px solid var(--primary-color);background:var(--primary-color);color:#fff;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition);font-size:var(--font-size-base);display:flex;align-items:center;justify-content:center;white-space:nowrap;min-width:60px;height:100%}.search-button img{width:16px;height:16px;object-fit:contain}.search-button:hover{background:var(--primary-hover)!important;border-color:var(--primary-hover)!important;color:#fff!important;transform:none!important;box-shadow:none!important}.search-button:active{transform:scale(.98)}.management-search-bar{display:flex;align-items:stretch;gap:var(--spacing-sm);width:100%;max-width:760px;margin:0 auto var(--spacing-lg)}.management-search-bar .search-input-container{flex:1;min-width:0}.management-search-bar .search-input{height:44px}.management-search-bar .search-button{flex:0 0 82px;height:44px;padding:0}.category-filter{flex:0 0 auto;width:auto}.category-dropdown{position:relative;display:inline-block;width:100%;max-width:180px}.category-dropdown-toggle{width:100%;height:40px;padding:0 var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition);display:flex;justify-content:space-between;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-dropdown-toggle:hover{background:var(--bg-tertiary);border-color:var(--primary-color)}.category-dropdown-toggle:disabled{opacity:.6;cursor:not-allowed}.dropdown-arrow{font-size:var(--font-size-xs);transition:transform var(--transition)}.category-dropdown-menu{position:absolute;top:100%;left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:0 0 var(--border-radius) var(--border-radius);box-shadow:var(--shadow-lg);margin-top:2px;max-height:200px;overflow-y:auto;z-index:1100;display:none;animation:dropdownFadeIn .2s ease}.category-dropdown-menu.show{display:block}.dropdown-item{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);border:none;background:none;color:var(--text-primary);font-size:var(--font-size-sm);text-align:left;cursor:pointer;transition:background-color var(--transition);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-item:hover{background:var(--bg-tertiary)}.dropdown-item.active{background:var(--primary-color);color:#fff}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.category-dropdown-menu::-webkit-scrollbar{width:6px}.category-dropdown-menu::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:3px}.category-dropdown-menu::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.category-dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.content:has(.books-page-shell){max-width:1540px;align-items:stretch;padding-top:var(--spacing-lg)}.books-page-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--spacing-lg);align-items:start;justify-content:center;width:100%}.books-page-shell .books-section{max-width:none;margin-right:0;margin-left:0;padding:var(--spacing-lg);box-shadow:0 10px 28px #0f172a0f}.books-dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.dashboard-eyebrow{display:block;margin-bottom:4px;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:800;letter-spacing:0;text-transform:uppercase}.books-dashboard-header h2{margin:0;font-size:var(--font-size-2xl)}.dashboard-count{padding:5px 10px;border:1px solid var(--border-color);border-radius:999px;background:#f8fafc;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:700;white-space:nowrap}.books-stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.books-stat-card{padding:var(--spacing-md);border:1px solid #E5E7EB;border-radius:var(--border-radius);background:#f8fafc}.books-stat-card span,.books-stat-card small{display:block;overflow:hidden;color:var(--text-secondary);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap}.books-stat-card strong{display:block;margin:4px 0;color:var(--text-primary);font-size:var(--font-size-xl);line-height:1.15}.books-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding:var(--spacing-sm);border:1px solid #E5E7EB;border-radius:var(--border-radius-lg);background:#f8fafc}.quick-filter-group{display:flex;align-items:center;gap:4px;padding:3px;border:1px solid #E5E7EB;border-radius:var(--border-radius);background:#fff}.quick-filter-group button{height:32px;margin:0;padding:0 10px;border:none;border-radius:6px;background:transparent;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:700}.quick-filter-group button.active{background:#eef2ff;color:var(--primary-color)}.books-sidebar{position:sticky;top:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.sidebar-widget{padding:var(--spacing-lg);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);background:var(--bg-secondary);box-shadow:0 10px 28px #0f172a14}.popular-books-section{margin:0}.popular-books-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.popular-books-section h3{margin:0;color:var(--text-primary);font-size:var(--font-size-lg);font-weight:700;line-height:1.25}.sidebar-widget h3{margin:0 0 var(--spacing-md);color:var(--text-primary);font-size:var(--font-size-md);font-weight:700}.popular-books-section h3{margin-bottom:0}.popular-books-section p{margin:4px 0 0;color:var(--text-secondary);font-size:var(--font-size-sm)}.popular-books-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.popular-book-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:var(--spacing-sm);align-items:center;padding:10px;border:1px solid transparent;border-radius:var(--border-radius);background:#f8fafc}.recent-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.recent-item{padding:var(--spacing-sm) 0;border-bottom:1px solid #EEF2F7}.recent-item:last-child{border-bottom:none}.recent-item strong,.recent-item span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-item strong{color:var(--text-primary);font-size:var(--font-size-sm)}.recent-item span,.sidebar-empty{margin:4px 0 0;color:var(--text-secondary);font-size:var(--font-size-xs)}.system-stat-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:1px solid #EEF2F7;color:var(--text-secondary);font-size:var(--font-size-sm)}.system-stat-row:last-child{border-bottom:none}.system-stat-row strong{color:var(--text-primary)}.popular-book-item:hover{border-color:var(--border-color);background:#fff}.popular-book-rank{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;background:#eef2ff;color:var(--primary-color);font-size:var(--font-size-xs);font-weight:800}.popular-book-info{min-width:0}.popular-book-info strong,.popular-book-info span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popular-book-info strong{color:var(--text-primary);font-size:var(--font-size-sm);font-weight:700}.popular-book-info span{margin-top:2px;color:var(--text-secondary);font-size:var(--font-size-xs)}.popular-book-count{min-width:30px;padding:4px 8px;border-radius:999px;background:#ecfdf5;color:#047857;font-size:var(--font-size-xs);font-weight:800;text-align:center}@media(min-width:768px){.search-and-filter{flex-direction:row;align-items:center}.books-search-bar{flex:1}.category-filter{width:auto}}@media(max-width:480px){.category-buttons{justify-content:center}.category-btn{font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm)}.stats-table th,.stats-table td{padding:var(--spacing-sm);font-size:var(--font-size-sm)}}@media(max-width:1180px){.books-page-shell{grid-template-columns:1fr}.books-page-shell .books-section{max-width:100%}.books-sidebar{position:static}}.book-list{margin-top:var(--spacing-md);width:100%}.book-list h3{margin:0 0 var(--spacing-sm);color:var(--text-primary);font-size:var(--font-size-lg)}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--spacing-md);width:100%}.book-card{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--spacing-md);box-shadow:0 4px 14px #0f172a0d;transition:var(--transition);display:flex;flex-direction:column;gap:var(--spacing-sm)}.book-card:hover{border-color:#d8dee8;box-shadow:0 12px 26px #0f172a1a;transform:translateY(-3px)}.book-card-header{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:var(--spacing-sm);align-items:start;margin-bottom:0}.status-badge{padding:4px 12px;border-radius:12px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase}.status-badge.status-available{background-color:#10b9811a;color:var(--success-color)}.status-badge.status-borrowed{background-color:#ef44441a;color:var(--danger-color)}.status-badge.status-returned{background-color:#3b82f61a;color:var(--info-color)}.book-id{font-size:var(--font-size-xs);color:var(--text-light)}.book-cover-thumb{display:flex;align-items:center;justify-content:center;width:52px;height:68px;overflow:hidden;border:1px solid #E2E8F0;border-radius:7px;background:linear-gradient(180deg,#f8fafc,#e2e8f0);color:#475569;font-weight:800}.book-cover-thumb img{width:100%;height:100%;object-fit:cover}.book-card-heading{min-width:0}.book-title{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin:0;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-author{font-size:var(--font-size-sm);color:var(--text-secondary);margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-isbn{font-size:var(--font-size-sm);color:var(--text-light);margin:0}.book-publisher{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0}.book-date{font-size:var(--font-size-sm);color:var(--text-light);margin:0}.book-copies{font-size:var(--font-size-sm);color:var(--text-secondary);margin:0;font-weight:500}.book-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid #EEF2F7;border-radius:var(--border-radius);background:#f8fafc}.book-meta-grid span,.book-meta-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-meta-grid span{color:var(--text-light);font-size:11px;font-weight:700;text-transform:uppercase}.book-meta-grid strong{margin-top:2px;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:600}.availability-block{display:flex;flex-direction:column;gap:6px}.availability-copy{display:flex;align-items:center;justify-content:space-between;color:var(--text-secondary);font-size:var(--font-size-xs)}.availability-copy strong{color:var(--text-primary)}.availability-track{height:7px;overflow:hidden;border-radius:999px;background:#eef2f7}.availability-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,#60a5fa)}.book-card .book-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-top:auto}.book-card .book-actions button{flex:1;min-width:78px;height:34px;margin:0;padding:0 var(--spacing-sm);font-size:var(--font-size-sm)}.add-book-form{margin:0;animation:booksModalFadeIn .3s ease forwards;width:100%;max-width:none}.modal-content.add-book-modal{width:min(94vw,1280px);max-width:1280px;max-height:88vh;padding:0;overflow:hidden}.add-book-modal-overlay{z-index:2500;padding:var(--spacing-lg);box-sizing:border-box}.modal-content.add-book-modal .add-book-form{max-height:88vh;overflow-y:auto;padding:var(--spacing-lg)}.add-book-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.add-book-modal-header h3{margin:0;color:var(--text-primary);font-size:var(--font-size-2xl);line-height:1.2}.add-book-modal-header p{margin:6px 0 0;color:var(--text-secondary);font-size:var(--font-size-sm)}@media(max-width:768px){.add-book-form{padding:var(--spacing-md)}.modal-content.add-book-modal{width:96vw;max-height:90vh}.book-grid{grid-template-columns:1fr}.book-card .book-actions{flex-direction:column}.book-card .book-actions button{width:100%}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:booksModalFadeIn .3s ease}.modal-content{background-color:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-lg);width:90%;max-width:500px;max-height:80vh;overflow-y:auto;animation:booksModalSlideIn .3s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.modal-header h3{margin:0;font-size:var(--font-size-xl);color:var(--text-primary)}.modal-close{background:none;border:none;font-size:var(--font-size-xl);cursor:pointer;color:var(--text-secondary);padding:var(--spacing-xs);border-radius:50%;transition:all .2s ease}.modal-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.book-detail-section{padding:var(--spacing-xl);max-width:800px;margin:0 auto;width:100%}.book-detail-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.book-detail-header h2{margin:0;font-size:var(--font-size-2xl);color:var(--text-primary)}.book-detail-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.book-info{display:flex;flex-direction:column;gap:var(--spacing-md)}.book-info h3{font-size:var(--font-size-2xl);color:var(--text-primary);margin:0}.book-info .author{font-size:var(--font-size-lg);color:var(--text-secondary);margin:0}.book-meta{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--bg-tertiary);border-radius:var(--border-radius-md)}.book-meta p{margin:0;font-size:var(--font-size-md);color:var(--text-secondary)}.book-meta strong{color:var(--text-primary);font-weight:600}.book-description{margin-top:var(--spacing-md)}.book-description h4{font-size:var(--font-size-lg);color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.book-description p{font-size:var(--font-size-md);line-height:1.6;color:var(--text-secondary);margin:0}.book-detail-section .book-actions{margin-top:var(--spacing-lg);display:flex;gap:var(--spacing-md)}.form-row{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.form-row .form-group{flex:1}@keyframes booksModalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes booksModalSlideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.copies-management{margin-top:var(--spacing-md)}.copies-list{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.copy-item{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-tertiary)}.copy-id{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary)}.copy-status-control select{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm)}.copy-location-control input{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-size-sm);width:200px}.unavailable-copies-section{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md)}.unavailable-copies-section h4{font-size:var(--font-size-md);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0}.unavailable-copies-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.unavailable-copy-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-tertiary)}.unavailable-copy-item span{font-size:var(--font-size-sm);color:var(--text-secondary)}.add-copy-section{margin-top:var(--spacing-md)}.btn-small{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition)}.btn-small:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.modal-content.copy-management-modal{width:min(94vw,1280px)!important;max-width:1280px!important;min-width:min(94vw,1040px);padding:var(--spacing-xl);overflow-x:hidden}.copy-management-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-tertiary)}.copy-management-summary div:first-child{display:flex;flex-direction:column;gap:var(--spacing-xs)}.copy-management-summary span{color:var(--text-secondary);font-size:var(--font-size-sm)}.copy-counts{display:flex;align-items:center;gap:var(--spacing-md);white-space:nowrap}.copy-add-bar,.copy-bulk-bar{display:grid;grid-template-columns:130px minmax(260px,1fr) auto;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.copy-bulk-bar{margin-top:calc(var(--spacing-md) * -1)}.copy-add-bar label,.copy-bulk-bar label{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:600}.copy-add-bar input,.copy-bulk-bar input{min-width:0;padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius)}.copy-add-bar button,.copy-bulk-bar button{margin:0;white-space:nowrap}.copy-management-table-wrap{overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--border-radius)}.copy-management-table{width:100%;min-width:0;max-width:none;margin:0;border-collapse:collapse;box-shadow:none;table-layout:fixed}.copy-management-table th:nth-child(1),.copy-management-table td:nth-child(1){width:140px}.copy-management-table th:nth-child(2),.copy-management-table td:nth-child(2){width:250px}.copy-management-table th:nth-child(3),.copy-management-table td:nth-child(3){width:170px}.copy-management-table th:nth-child(4),.copy-management-table td:nth-child(4){width:360px}.copy-management-table th,.copy-management-table td{padding:var(--spacing-md);vertical-align:middle}.copy-management-table select,.copy-management-table input{width:100%;padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-secondary);color:var(--text-primary)}.copy-location-editor{display:grid;grid-template-columns:minmax(180px,260px) auto;align-items:center;gap:var(--spacing-sm);justify-content:start}.copy-location-editor button{height:38px;margin:0;padding:0 var(--spacing-md);font-size:var(--font-size-sm);white-space:nowrap}.copy-id-stack{display:flex;flex-direction:column;gap:var(--spacing-xs)}.copy-id-stack span{color:var(--text-secondary);font-size:var(--font-size-xs)}@media(max-width:768px){.modal-content.copy-management-modal{width:96vw!important;min-width:0;padding:var(--spacing-md)}.book-detail-section{padding:var(--spacing-md)}.book-detail-header{flex-direction:column;align-items:flex-start}.form-row,.book-detail-section .book-actions{flex-direction:column}.book-detail-section .book-actions button{width:100%}.copy-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.copy-status-control,.copy-status-control select,.copy-location-control,.copy-location-control input{width:100%}.unavailable-copy-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.unavailable-copy-item button{width:100%}.copy-management-summary,.copy-counts{align-items:flex-start;flex-direction:column}.copy-add-bar,.copy-bulk-bar,.copy-location-editor{grid-template-columns:1fr}}.tab-container{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.tab-button{padding:var(--spacing-sm) var(--spacing-md);border:none;background:none;color:var(--text-secondary);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition);border-bottom:2px solid transparent}.tab-button:hover{color:var(--primary-color)}.tab-button.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.isbn-input-group{display:flex;gap:var(--spacing-sm);align-items:stretch}.isbn-input-group input{flex:1}.isbn-input-group button{white-space:nowrap}.batch-import-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.batch-import-dashboard{margin-top:var(--spacing-md)}.batch-panels{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(420px,1.05fr);gap:var(--spacing-lg);align-items:stretch}.batch-panel,.copy-settings-card{padding:var(--spacing-lg);border:1px solid #E5E7EB;border-radius:var(--border-radius-lg);background:#fff;box-shadow:0 10px 30px #0f172a0f}.batch-panel-header,.copy-settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.batch-panel-header h4,.copy-settings-heading h4{margin:0;color:var(--text-primary);font-size:var(--font-size-lg);line-height:1.25}.batch-panel-header p,.copy-settings-heading p,.batch-helper-text{margin:4px 0 0;color:var(--text-secondary);font-size:var(--font-size-sm)}.batch-panel-header>span,.copy-settings-heading>span{flex:0 0 auto;padding:5px 10px;border:1px solid #DDE3EA;border-radius:999px;background:#f8fafc;color:#475569;font-size:var(--font-size-xs);font-weight:700;white-space:nowrap}.batch-import-form textarea{width:100%;min-height:280px;padding:var(--spacing-md);border:1px solid #1F2937;border-radius:var(--border-radius);background:#111827;color:#e5e7eb;font-size:var(--font-size-sm);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;line-height:1.65;resize:vertical;transition:border-color var(--transition),box-shadow var(--transition);outline:none}.batch-import-form textarea::placeholder{color:#94a3b8}.batch-import-form textarea:focus{border-color:#64748b;box-shadow:0 0 0 3px #0f172a29}.upload-csv-button{width:100%;height:40px;margin:0}.preview-panel{min-height:420px}.preview-list{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:420px;overflow-y:auto;padding-right:4px}.preview-book-row{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:var(--spacing-md);align-items:center;padding:var(--spacing-sm);border:1px solid #E5E7EB;border-radius:var(--border-radius);background:#f8fafc}.preview-cover{display:flex;align-items:center;justify-content:center;width:52px;height:68px;overflow:hidden;border:1px solid #E2E8F0;border-radius:6px;background:linear-gradient(180deg,#f8fafc,#e2e8f0);color:#475569;font-weight:800}.preview-cover img{width:100%;height:100%;object-fit:cover}.preview-book-meta{min-width:0}.preview-book-meta strong,.preview-book-meta span,.preview-book-meta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-book-meta strong{color:var(--text-primary);font-size:var(--font-size-sm)}.preview-book-meta span,.preview-book-meta small{margin-top:3px;color:var(--text-secondary);font-size:var(--font-size-xs)}.import-status{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase;white-space:nowrap}.import-status.status-success{color:#047857;background:#ecfdf5}.import-status.status-duplicate{color:#b45309;background:#fffbeb}.import-status.status-invalid{color:#dc2626;background:#fef2f2}.batch-empty-state{display:flex;min-height:300px;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--text-secondary)}.empty-illustration{display:grid;grid-template-columns:repeat(3,18px);gap:6px;margin-bottom:var(--spacing-md)}.empty-illustration span{width:18px;height:72px;border-radius:5px;background:#e2e8f0}.empty-illustration span:nth-child(2){height:58px;margin-top:14px;background:#cbd5e1}.empty-illustration span:nth-child(3){height:66px;margin-top:6px;background:#dbeafe}.batch-empty-state h5{margin:0 0 var(--spacing-xs);color:var(--text-primary);font-size:var(--font-size-md)}.batch-empty-state p{max-width:320px;margin:0;font-size:var(--font-size-sm)}.copy-settings-card{box-shadow:none}.copy-settings-grid{display:grid;grid-template-columns:minmax(220px,1fr) 160px minmax(220px,1fr);gap:var(--spacing-md)}.import-progress{padding:var(--spacing-md);border:1px solid #DBEAFE;border-radius:var(--border-radius);background:#eff6ff}.import-progress div{display:flex;justify-content:space-between;margin-bottom:var(--spacing-xs);color:#1e40af;font-size:var(--font-size-sm);font-weight:700}.import-progress progress{width:100%;height:8px;overflow:hidden;border:none;border-radius:999px}.batch-import-primary{width:100%;height:46px;margin:0;font-size:var(--font-size-base);font-weight:700}.import-result{margin-top:var(--spacing-lg);padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--bg-tertiary)}.import-result h4{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-lg);color:var(--text-primary)}.import-result p{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-base);color:var(--text-secondary)}.import-errors{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color)}.import-errors h5{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-md);color:var(--danger-color)}.import-errors ul{margin:0;padding-left:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--text-secondary)}.import-errors li{margin-bottom:var(--spacing-xs)}.book-copies-section{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.book-copies-section h4{margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-lg);color:var(--text-primary)}.copies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--spacing-md)}.copy-card{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);background:var(--bg-secondary);transition:var(--transition)}.copy-card:hover{box-shadow:var(--shadow-md);border-color:#d0d0d0}.copy-info{width:100%;margin-top:var(--spacing-sm);text-align:center}.copy-info p{margin:var(--spacing-xs) 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.copy-info .status-available{color:var(--success-color);font-weight:600}.copy-info .status-borrowed{color:var(--danger-color);font-weight:600}.copy-info .status-borrowing{color:var(--warning-color);font-weight:600}.copy-info .status-reserved{color:var(--info-color);font-weight:600}.copy-info .status-unavailable{color:var(--text-light);font-weight:600}.barcode-cell{text-align:center}@media(max-width:768px){.books-stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}.books-toolbar,.isbn-input-group,.search-and-filter{flex-direction:column;align-items:stretch}.books-search-bar{min-width:0}.quick-filter-group{overflow-x:auto}.isbn-input-group button{width:100%}.copies-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.batch-panels,.copy-settings-grid{grid-template-columns:1fr}.batch-panel,.copy-settings-card{padding:var(--spacing-md)}.batch-panel-header,.copy-settings-heading{flex-direction:column}.preview-book-row{grid-template-columns:44px minmax(0,1fr)}.preview-cover{width:44px;height:58px}.import-status{grid-column:2;justify-self:flex-start}}.content:has(.borrow-records-page){max-width:1500px;align-items:stretch}.borrow-records-page{width:100%;max-width:1440px;margin:0 auto;padding:var(--spacing-lg)}.borrow-records{width:100%;margin:0 auto;padding:var(--spacing-lg);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md)}.borrow-records-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.borrow-records-header h3{margin:0;color:var(--text-primary);font-size:var(--font-size-2xl);line-height:1.2}.borrow-records-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-md);margin-left:auto}.user-info-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.overdue-count{display:flex;align-items:center;gap:var(--spacing-sm);min-height:36px;padding:0 var(--spacing-sm);border-radius:var(--border-radius);background:#fef2f2;white-space:nowrap}.overdue-badge{background-color:var(--danger-color);color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);font-weight:600}.overdue-count .overdue-text{color:var(--danger-color);font-size:var(--font-size-sm);font-weight:600}.view-fines-button{height:36px;margin:0;padding:0 var(--spacing-md);border-radius:var(--border-radius);font-size:var(--font-size-sm);line-height:1;white-space:nowrap}.borrow-user-summary{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background:var(--bg-tertiary)}.borrow-user-summary span{color:var(--text-secondary);font-size:var(--font-size-sm)}.empty-state{text-align:center;padding:var(--spacing-xl);background-color:var(--bg-tertiary);border-radius:var(--border-radius);color:var(--text-secondary);margin-top:var(--spacing-lg)}.borrow-records-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm)}.borrow-records-table{width:100%;min-width:1190px;max-width:none;margin:0;border-collapse:collapse;table-layout:fixed;background:var(--bg-secondary);border-radius:0;box-shadow:none}.borrow-records-table .col-id{width:60px}.borrow-records-table .col-title{width:170px}.borrow-records-table .col-barcode{width:240px}.borrow-records-table .col-date{width:110px}.borrow-records-table .col-status{width:120px}.borrow-records-table .col-fine{width:100px}.borrow-records-table .col-action{width:170px}.borrow-records-table th,.borrow-records-table td{height:76px;padding:16px 20px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--border-color)}.borrow-records-table th{background:#f8fafc;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:700;letter-spacing:0;text-transform:uppercase;white-space:nowrap}.borrow-records-table tbody tr:last-child td{border-bottom:none}.borrow-records-table tbody tr:hover{background:#f9fafb}.borrow-records-table .title-cell{color:var(--text-primary);font-weight:500;line-height:1.35}.borrow-records-table .date-cell{white-space:nowrap}.borrow-records-table .barcode-cell{text-align:left}.borrow-records-table .barcode-container{width:200px;min-height:54px;margin:0;padding:4px 0!important;justify-content:center;background:transparent!important;border-radius:0!important}.borrow-records-table .barcode-container svg{display:block;width:200px;max-width:100%;height:54px}.borrow-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:82px;padding:5px 10px;border-radius:999px;font-size:var(--font-size-xs);font-weight:700;line-height:1.2;text-align:center;white-space:nowrap}.borrow-status-badge.status-returned{color:var(--info-color);background:#eff6ff}.borrow-status-badge.status-borrowed,.borrow-status-badge.status-borrowing{color:#b45309;background:#fffbeb}.borrow-status-badge.status-overdue{color:var(--danger-color);background:#fef2f2}.borrow-status-badge.status-returning{color:var(--primary-color);background:#eef2ff}.borrow-records-table .borrow-fine-amount{color:var(--danger-color);font-size:var(--font-size-sm);font-weight:700;white-space:nowrap}.borrow-records-table .borrow-fine-empty{color:var(--text-secondary);white-space:nowrap}.borrow-action-cell{min-width:170px}@media(max-width:768px){.empty-state{padding:var(--spacing-lg)}}.status-borrowed{color:var(--warning-color);font-weight:500}.status-returned{color:var(--success-color);font-weight:500}.status-returning{color:var(--info-color);font-weight:500}.status-inactive{color:var(--text-secondary);font-weight:500}.status-pending{color:var(--warning-color);font-size:var(--font-size-sm);font-style:normal;font-weight:600;white-space:nowrap}.status-overdue{color:var(--danger-color);font-weight:500}.action-buttons{display:flex;align-items:center;gap:var(--spacing-sm);white-space:nowrap}.action-buttons button{height:34px;min-width:68px;margin:0;padding:0 var(--spacing-sm);border:none;border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-sm);line-height:1;transition:background-color .2s ease}.action-buttons .btn-info{background-color:var(--info-color);color:#fff}.action-buttons .btn-info:hover{background-color:var(--info-hover)}.action-buttons .btn-secondary{background-color:var(--primary-color);color:#fff;border:1px solid var(--primary-color)}.action-buttons .btn-secondary:hover{background-color:var(--primary-hover);border-color:var(--primary-hover)}.modal-content{background-color:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-lg);width:90%;max-width:600px;max-height:80vh;overflow-y:auto;animation:slideIn .3s ease}.modal-body{margin-bottom:var(--spacing-md)}.fines-table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-md)}.fines-table th,.fines-table td{padding:var(--spacing-sm);text-align:left;border-bottom:1px solid var(--border-color)}.fines-table th{background-color:var(--bg-tertiary);font-weight:600;color:var(--text-primary)}.fines-table tr:hover{background-color:var(--bg-tertiary)}.fines-table tr:last-child td{border-bottom:none}.status-paid{color:var(--success-color);font-weight:500}.status-unpaid{color:var(--danger-color);font-weight:500}.total-fine{margin-top:var(--spacing-md);margin-bottom:var(--spacing-md);text-align:right;font-size:var(--font-size-lg);color:var(--text-primary)}.selected-copy-barcode{display:flex;justify-content:center;margin-top:var(--spacing-md)}.barcode-cell img{display:block;max-width:140px}@media(max-width:768px){.borrow-records-page,.borrow-records{padding:var(--spacing-md)}.borrow-records-header{align-items:flex-start;flex-direction:column;gap:var(--spacing-md)}.borrow-records-header-actions{width:100%;justify-content:space-between;margin-left:0}.borrow-records-header h3{font-size:var(--font-size-xl)}.borrow-user-summary{align-items:flex-start;flex-direction:column}.modal-content{width:95%;padding:var(--spacing-md)}.fines-table th,.fines-table td{padding:var(--spacing-xs);font-size:var(--font-size-sm)}.total-fine{font-size:var(--font-size-md)}}.user-list{margin-top:var(--spacing-lg)}.user-list .action-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);gap:var(--spacing-md)}.user-list .user-management-search-bar{display:flex;align-items:stretch;gap:var(--spacing-sm);flex:1;max-width:520px}.user-list .search-input-container{flex:1;min-width:0}.user-list .search-input{width:100%;height:44px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-md);transition:border-color .2s ease}.user-list .search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3b82f61a}.user-list .search-button{padding:0 var(--spacing-lg);border:1px solid var(--primary-color);background:var(--primary-color);color:#fff;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition);font-size:var(--font-size-base);display:flex;align-items:center;justify-content:center;white-space:nowrap;flex:0 0 82px;min-width:82px;height:44px}.user-list .search-button img{width:16px;height:16px;object-fit:contain}.add-user-form{margin-bottom:var(--spacing-lg);animation:fadeIn .3s ease forwards}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease;min-height:100vh;box-sizing:border-box}.modal-content{background-color:var(--bg-secondary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);padding:var(--spacing-lg);width:90%;max-width:500px;max-height:80vh;overflow-y:auto;animation:slideIn .3s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.modal-header h3{margin:0;color:var(--text-primary);font-size:var(--font-size-lg)}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-secondary);padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius);transition:background-color .2s ease}.modal-close:hover{background-color:var(--bg-tertiary)}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text-primary)}.form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-md);transition:border-color .2s ease}.form-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3b82f61a}.form-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-lg);justify-content:flex-end}.btn-primary{background-color:var(--primary-color);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-md);transition:background-color .2s ease}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary-color);color:var(--text-primary);border:1px solid var(--border-color);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-md);transition:background-color .2s ease}.btn-secondary:hover{background-color:var(--secondary-hover)}.error-message{background-color:#ef44441a;color:#ef4444;padding:var(--spacing-sm);border-radius:var(--border-radius);margin-bottom:var(--spacing-md)}.success-message{background-color:#10b9811a;color:#10b981;padding:var(--spacing-sm);border-radius:var(--border-radius);margin-bottom:var(--spacing-md)}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.add-user-form{padding:var(--spacing-md)}.modal-content{width:95%;padding:var(--spacing-md)}.form-actions{flex-direction:column}.form-actions button{width:100%}}.status-badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;text-transform:capitalize}.status-active{background-color:#10b9811a;color:#10b981}.status-blocked{background-color:#ef44441a;color:#ef4444}.status-pending{background-color:#f59e0b1a;color:#f59e0b}.profile-page{padding:var(--spacing-xl)}.profile-header{display:flex;align-items:center;margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.profile-avatar{width:100px;height:100px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));display:flex;align-items:center;justify-content:center;color:#fff;font-size:36px;font-weight:600;margin-right:var(--spacing-lg);box-shadow:var(--shadow-md)}.profile-header-info{flex:1}.profile-name{font-size:var(--font-size-2xl);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-sm) 0;display:flex;align-items:center}.role-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-lg);font-size:var(--font-size-sm);font-weight:500;margin-left:var(--spacing-sm);color:#fff}.role-admin{background-color:#9333ea}.role-librarian{background-color:#06b6d4}.role-user{background-color:#3b82f6}.profile-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}@media(max-width:768px){.profile-content{grid-template-columns:1fr}.profile-header{flex-direction:column;text-align:center}.profile-avatar{margin-right:0;margin-bottom:var(--spacing-lg)}.profile-name{justify-content:center}}.profile-section{background:var(--bg-secondary);padding:var(--spacing-lg);border-radius:var(--border-radius);box-shadow:var(--shadow-sm)}.section-title{font-size:var(--font-size-lg);font-weight:600;color:var(--text-primary);margin:0 0 var(--spacing-md) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color)}.info-grid{display:grid;grid-template-columns:1fr;gap:var(--spacing-md)}.info-item{display:flex;flex-direction:column}.info-item.full-width{grid-column:1 / -1}.info-label{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:var(--font-size-md);color:var(--text-primary);font-weight:500}.profile-actions{display:flex;justify-content:center;padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.profile-btn{padding:var(--spacing-sm) var(--spacing-xl);font-size:var(--font-size-md);font-weight:600;border:none;border-radius:var(--border-radius);background:var(--primary-color);color:#fff;cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-sm)}.profile-btn:hover{background:var(--primary-hover)!important;transform:none!important;box-shadow:none!important}.profile-btn:active{transform:translateY(0)}.loading{display:flex;justify-content:center;align-items:center;min-height:200px;font-size:var(--font-size-lg);color:var(--text-secondary)}.error-message{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:200px;padding:var(--spacing-lg);background:var(--danger-bg);color:var(--danger-color);border-radius:var(--border-radius);text-align:center}.error-message .btn-primary{margin-top:var(--spacing-md)}.fine-amount{color:var(--error-color);font-weight:600;font-size:var(--font-size-md)}.fine-button{display:inline-block;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);text-decoration:none;font-size:var(--font-size-sm);font-weight:600;transition:all .3s ease;background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.fine-button:hover{background-color:var(--bg-secondary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.content:has(.system-settings-shell){max-width:none;align-items:stretch;padding:var(--spacing-lg);background:#f6f8fb}.system-settings-shell{width:100%;max-width:1280px;margin:0 auto;color:#111827}.settings-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-md)}.settings-eyebrow{display:block;margin-bottom:6px;color:#64748b;font-size:var(--font-size-xs);font-weight:800;letter-spacing:0;text-transform:uppercase}.settings-hero h2{margin:0;color:#0f172a;font-size:30px;line-height:1.15}.settings-hero p{margin:8px 0 0;color:#64748b;font-size:var(--font-size-sm)}.settings-header-actions,.settings-save-bar div{display:flex;align-items:center;gap:var(--spacing-sm)}.settings-primary-button,.settings-secondary-button{height:38px;margin:0;padding:0 var(--spacing-md);border-radius:8px;font-size:var(--font-size-sm);font-weight:700;white-space:nowrap}.settings-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding:10px;border:1px solid #e2e8f0;border-radius:12px;background:#ffffffc7;box-shadow:0 10px 28px #0f172a0a}.settings-search{position:relative;flex:1;max-width:420px}.settings-search span:before{content:"";position:absolute;top:50%;left:14px;width:9px;height:9px;border:1.8px solid #94a3b8;border-radius:50%;transform:translateY(-60%)}.settings-search span:after{content:"";position:absolute;top:23px;left:23px;width:7px;height:1.8px;border-radius:999px;background:#94a3b8;transform:rotate(45deg)}.settings-search input{width:100%;height:38px;padding:0 14px 0 38px;border:1px solid #dbe3ed;border-radius:9px;background:#fff;color:#0f172a;font-size:var(--font-size-sm);outline:none;transition:border-color .2s ease,box-shadow .2s ease}.settings-search input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f624}.settings-edit-toggle{display:inline-flex;align-items:center;gap:10px;padding:0 var(--spacing-sm);color:#334155;font-size:var(--font-size-sm);font-weight:700;white-space:nowrap;cursor:pointer}.settings-edit-toggle input{position:absolute;opacity:0;pointer-events:none}.settings-edit-toggle span{position:relative;width:40px;height:22px;border-radius:999px;background:#cbd5e1;transition:background .2s ease}.settings-edit-toggle span:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0f172a38;transition:transform .2s ease}.settings-edit-toggle input:checked+span{background:#2563eb}.settings-edit-toggle input:checked+span:after{transform:translate(18px)}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--spacing-md);align-items:start}.settings-sections{display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-card,.settings-side-card{border:1px solid #e2e8f0;border-radius:14px;background:#fff;box-shadow:0 12px 32px #0f172a0f}.settings-card{padding:var(--spacing-lg)}.settings-card-header{display:flex;align-items:flex-start;gap:var(--spacing-md)}.settings-card-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:38px;height:38px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:900}.settings-card-header h3,.settings-side-card h3{margin:0;color:#0f172a;font-size:var(--font-size-lg);line-height:1.25}.settings-card-header p,.settings-side-card p{margin:5px 0 0;color:#64748b;font-size:var(--font-size-sm);line-height:1.5}.settings-card-divider{height:1px;margin:var(--spacing-md) 0;background:#eef2f7}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-md)}.settings-field{display:flex;flex-direction:column;gap:7px;min-width:0;padding:12px;border:1px solid transparent;border-radius:10px;background:#f8fafc;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.settings-field.is-editable:hover,.settings-field.is-modified{border-color:#bfdbfe;background:#fff;box-shadow:0 8px 20px #2563eb14}.settings-label-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);color:#0f172a;font-size:var(--font-size-sm);font-weight:800}.settings-label-row small{padding:3px 7px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:10px;font-weight:800;text-transform:uppercase}.settings-input-wrap{display:flex;align-items:center;min-height:38px;overflow:hidden;border:1px solid #dbe3ed;border-radius:9px;background:#fff;transition:border-color .2s ease,box-shadow .2s ease}.settings-input-wrap:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb24}.settings-input-wrap input{flex:1;min-width:0;height:38px;padding:0 12px;border:none;background:transparent;color:#0f172a;font-size:var(--font-size-sm);outline:none}.settings-input-wrap input:disabled{color:#334155;cursor:default}.settings-affix{display:inline-flex;align-items:center;align-self:stretch;padding:0 10px;background:#f1f5f9;color:#64748b;font-size:var(--font-size-xs);font-weight:800}.settings-helper,.settings-default{color:#64748b;font-size:var(--font-size-xs);line-height:1.45}.settings-default{color:#94a3b8}.settings-side-panel{position:sticky;top:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-side-card{padding:var(--spacing-md)}.settings-health-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:10px 0;border-bottom:1px solid #eef2f7;color:#64748b;font-size:var(--font-size-sm)}.settings-health-row:last-child{border-bottom:none}.settings-health-row strong{color:#0f172a}.settings-save-bar{position:sticky;bottom:var(--spacing-md);z-index:20;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);max-width:760px;margin:var(--spacing-md) auto 0;padding:12px;border:1px solid #bfdbfe;border-radius:14px;background:#fffffff2;box-shadow:0 18px 42px #0f172a2e;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.settings-save-bar span{color:#1e3a8a;font-size:var(--font-size-sm);font-weight:800}.settings-save-bar button{height:36px;margin:0;padding:0 var(--spacing-md);font-size:var(--font-size-sm)}@media(max-width:1080px){.settings-layout{grid-template-columns:1fr}.settings-side-panel{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.content:has(.system-settings-shell){padding:var(--spacing-md)}.settings-hero,.settings-toolbar,.settings-save-bar{align-items:stretch;flex-direction:column}.settings-header-actions,.settings-save-bar div{width:100%}.settings-header-actions button,.settings-save-bar button{flex:1}.settings-grid,.settings-side-panel{grid-template-columns:1fr}}.announcement-management-page{width:100%;max-width:1180px}.announcement-management-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg);padding:var(--spacing-lg) 0 var(--spacing-md)}.announcement-management-header h2{margin:0;color:var(--text-primary)}.announcement-management-header p{margin:6px 0 0;color:var(--text-secondary);font-size:var(--font-size-sm)}.announcement-add-button{flex:0 0 auto;height:42px;margin:0}.announcement-management-list{width:100%;padding:var(--spacing-lg);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);background:#fff;box-shadow:0 10px 28px #0f172a12}.announcement-list-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.announcement-list-heading h3{margin:0;color:var(--text-primary)}.announcement-list-heading span{display:block;margin-top:4px;color:var(--text-secondary);font-size:var(--font-size-sm)}.announcement-table-wrap{overflow-x:auto;border:1px solid #E5E7EB;border-radius:var(--border-radius)}.announcement-management-table{min-width:820px;margin:0;box-shadow:none;table-layout:fixed}.announcement-management-table th:nth-child(1),.announcement-management-table td:nth-child(1){width:72px}.announcement-management-table th:nth-child(3),.announcement-management-table td:nth-child(3){width:130px}.announcement-management-table th:nth-child(4),.announcement-management-table td:nth-child(4){width:150px}.announcement-management-table th:nth-child(5),.announcement-management-table td:nth-child(5){width:170px}.announcement-title-cell{display:flex;min-width:0;flex-direction:column;gap:4px}.announcement-title-cell strong,.announcement-title-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.announcement-title-cell strong{color:var(--text-primary);font-size:var(--font-size-sm)}.announcement-title-cell span{color:var(--text-secondary);font-size:var(--font-size-xs)}.announcement-status{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;font-size:var(--font-size-xs);font-weight:800}.announcement-status.published{background:#ecfdf5;color:#047857}.announcement-status.draft{background:#f8fafc;color:#64748b}.announcement-row-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.announcement-row-actions button{height:34px;margin:0;padding:0 var(--spacing-sm);font-size:var(--font-size-sm)}.announcement-modal-overlay{position:fixed;inset:0;z-index:1300;display:flex;align-items:flex-start;justify-content:center;padding:56px var(--spacing-lg) var(--spacing-lg);overflow-y:auto;background:#0f172a7a}.announcement-modal{width:min(94vw,720px);max-height:calc(100vh - 88px);overflow:hidden;border:1px solid #E5E7EB;border-radius:var(--border-radius-lg);background:#fff;box-shadow:0 24px 64px #0f172a3d}.announcement-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid #E5E7EB}.announcement-modal-header span{display:block;margin-bottom:6px;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:800;text-transform:uppercase}.announcement-modal-header h3{margin:0;color:var(--text-primary);font-size:var(--font-size-xl)}.announcement-modal-close{width:34px;height:34px;margin:0;padding:0;border-radius:999px;background:#f8fafc;color:var(--text-secondary);font-size:var(--font-size-xl);line-height:1}.announcement-modal-form{max-height:calc(100vh - 180px);overflow-y:auto;padding:var(--spacing-lg)}.announcement-field{margin-bottom:var(--spacing-md)}.announcement-field label{display:block;margin-bottom:var(--spacing-xs);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:800}.announcement-field input,.announcement-field textarea{width:100%;border:1px solid #CBD5E1;border-radius:var(--border-radius);background:#fff;color:var(--text-primary);font-size:var(--font-size-md);outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.announcement-field input{height:42px;padding:0 var(--spacing-md)}.announcement-field textarea{min-height:190px;padding:var(--spacing-md);line-height:1.65;resize:vertical}.announcement-field input:focus,.announcement-field textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #5e6ad229}.announcement-publish-toggle{display:inline-flex;align-items:center;gap:var(--spacing-sm);margin:0 0 var(--spacing-lg);cursor:pointer}.announcement-publish-toggle input{position:absolute;opacity:0;pointer-events:none}.announcement-publish-toggle span{position:relative;width:42px;height:24px;border-radius:999px;background:#cbd5e1;transition:background var(--transition)}.announcement-publish-toggle span:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:999px;background:#fff;box-shadow:0 2px 6px #0f172a40;transition:transform var(--transition)}.announcement-publish-toggle input:checked+span{background:var(--primary-color)}.announcement-publish-toggle input:checked+span:after{transform:translate(18px)}.announcement-publish-toggle strong{color:var(--text-primary);font-size:var(--font-size-sm)}.announcement-modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid #E5E7EB}.announcement-modal-actions button{height:40px;min-width:112px;margin:0}@media(max-width:768px){.announcement-modal-overlay{padding-top:var(--spacing-md)}.announcement-modal{max-height:calc(100vh - 32px)}.announcement-modal-form{max-height:calc(100vh - 128px)}.announcement-management-header{flex-direction:column}.announcement-add-button,.announcement-modal-actions button{width:100%}.announcement-management-list,.announcement-modal-form,.announcement-modal-header{padding:var(--spacing-md)}.announcement-modal-actions,.announcement-row-actions{flex-direction:column;align-items:stretch}}.category-management{padding:var(--spacing-xl) 0}.category-content{max-width:1200px;margin:0 auto;padding:2rem;width:100%}.category-content h2{margin-bottom:var(--spacing-xl);color:var(--text-primary);font-size:var(--font-size-xl);font-weight:700}.category-grid{display:grid;grid-template-columns:350px 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.card{background:var(--bg-secondary);padding:var(--spacing-lg);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-md);transition:box-shadow var(--transition)}.card:hover{box-shadow:var(--shadow-lg)}.card h3{margin:0 0 var(--spacing-lg) 0;color:var(--text-primary);font-size:var(--font-size-lg);font-weight:600}.category-form{grid-column:1}.category-form form{display:flex;flex-direction:column;gap:var(--spacing-md)}.category-form input{padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-base);transition:border-color var(--transition)}.category-form input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #5e6ad233}.btn{padding:var(--spacing-md) var(--spacing-lg);border:none;border-radius:var(--border-radius);font-size:var(--font-size-base);font-weight:500;cursor:pointer;transition:all var(--transition)}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover{background:var(--primary-hover)!important;color:#fff!important;transform:none!important;box-shadow:none!important}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--border-color)!important;color:var(--text-primary)!important;transform:none!important;box-shadow:none!important}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626!important;color:#fff!important;transform:none!important;box-shadow:none!important}.category-list{grid-column:2}.category-items{display:flex;flex-direction:column;gap:0}.category-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-bottom:1px solid var(--border-color);transition:background-color var(--transition);animation:slideIn .3s ease-out}.category-item:hover{background-color:var(--bg-tertiary)}.category-item:last-child{border-bottom:none}.category-item span{font-size:var(--font-size-base);color:var(--text-primary);flex:1;padding-right:var(--spacing-lg);font-weight:500;background:linear-gradient(90deg,rgba(94,106,210,.1) 0%,transparent 100%);padding:var(--spacing-sm) var(--spacing-lg) var(--spacing-sm) var(--spacing-sm);border-radius:var(--border-radius);border-left:3px solid var(--primary-color)}.actions{display:flex;gap:var(--spacing-sm)}.action-btn{padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--border-radius);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition);display:flex;align-items:center;gap:4px}.edit-btn{background:#3b82f6;color:#fff}.edit-btn:hover{background:#2563eb!important;color:#fff!important;transform:none!important;box-shadow:none!important}.delete-btn{background:#ef4444;color:#fff}.delete-btn:hover{background:#dc2626!important;color:#fff!important;transform:none!important;box-shadow:none!important}.edit-form{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-md);background:var(--bg-tertiary);border-left:4px solid var(--primary-color);animation:highlight .3s ease-out}.edit-form input{flex:1;padding:var(--spacing-sm);border:2px solid var(--primary-color);border-radius:var(--border-radius);font-size:var(--font-size-base)}.edit-form input:focus{outline:none;box-shadow:0 0 0 2px #5e6ad233}.empty-state{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary);background:var(--bg-tertiary);border-radius:var(--border-radius);margin-top:var(--spacing-md)}.empty-state-icon{font-size:3rem;margin-bottom:var(--spacing-md);opacity:.5}.empty-state p{margin:0;font-size:var(--font-size-base)}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes highlight{0%{background-color:#5e6ad21a}to{background-color:var(--bg-tertiary)}}@media(max-width:768px){.category-grid{grid-template-columns:1fr}.category-form,.category-list{grid-column:1}.category-content{padding:var(--spacing-lg)}.category-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.actions{align-self:flex-end}.edit-form{flex-direction:column;align-items:stretch}.edit-form input{width:100%}}@media(max-width:480px){.category-content{padding:var(--spacing-md)}.category-item{padding:var(--spacing-sm)}.action-btn{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}}.batch-approval-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:15px;background-color:#f8f9fa;border-radius:8px;box-shadow:0 2px 4px #0000001a}.date-filter{display:flex;align-items:center;gap:10px}.date-filter label{font-weight:500;margin:0}.date-filter input[type=date]{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.date-filter button,.batch-approval-controls button{padding:8px 16px;border:none;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.date-filter button{background-color:#007bff;color:#fff}.date-filter button:hover{background-color:#0069d9}.batch-approval-controls button{background-color:#28a745;color:#fff}.batch-approval-controls button:hover{background-color:#218838}.batch-approval-controls button:disabled,.date-filter button:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}@media(max-width:768px){.batch-approval-controls{flex-direction:column;align-items:flex-start;gap:10px}.date-filter{flex-wrap:wrap}}.reservations-page{padding:2rem}.reservations-page h2{margin-bottom:1.5rem;color:var(--text-primary);font-size:1.5rem;font-weight:600}.reservations-page table{width:100%;border-collapse:collapse;margin-top:1rem;box-shadow:0 2px 4px #0000001a;border-radius:8px;overflow:hidden}.reservations-page th{background-color:var(--bg-secondary);color:var(--text-primary);padding:1rem;text-align:left;font-weight:600;border-bottom:2px solid var(--border-color)}.reservations-page td{padding:1rem;border-bottom:1px solid var(--border-color)}.reservations-page tr:last-child td{border-bottom:none}.reservations-page tr:hover{background-color:var(--bg-tertiary);transition:background-color .2s ease}.status-active{color:var(--success-color);font-weight:500}.status-inactive{color:var(--text-secondary)}.empty-state,.loading{text-align:center;padding:3rem 0;color:var(--text-secondary)}.error-message{text-align:center;padding:2rem;background-color:var(--error-bg);color:var(--error-color);border-radius:8px;margin-bottom:1rem}@media(max-width:768px){.reservations-page{padding:1rem}.reservations-page table{font-size:.9rem}.reservations-page th,.reservations-page td{padding:.75rem}}@media(max-width:480px){.reservations-page table{font-size:.8rem}.reservations-page th,.reservations-page td{padding:.5rem}}.book-details-page{padding:2rem;max-width:1200px;margin:0 auto}.back-button{background:none;border:none;color:var(--primary-color);font-size:1rem;cursor:pointer;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem;padding:.5rem 0;transition:color .2s ease}.back-button:hover{color:var(--primary-hover)}.book-details-container{display:grid;grid-template-columns:300px 1fr;gap:2rem;align-items:start}.book-cover-section{display:flex;flex-direction:column;gap:1rem}.book-cover{width:300px;height:450px;border-radius:8px;overflow:hidden;box-shadow:0 4px 8px #0000001a;background-color:var(--bg-tertiary);display:flex;align-items:center;justify-content:center}.book-cover img{width:100%;height:100%;object-fit:cover}.placeholder-cover{width:100%;height:100%;background-color:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:6rem;font-weight:700}.book-status{display:flex;flex-direction:column;gap:.5rem}.status-badge{padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:500;text-align:center}.status-available{background-color:var(--success-bg);color:var(--success-color)}.status-borrowed{background-color:var(--error-bg);color:var(--error-color)}.status-reserved{background-color:var(--warning-bg);color:var(--warning-color)}.status-borrowing{background-color:var(--warning-bg);color:var(--warning-color);border:1px solid var(--warning-color)}.copies-info{display:flex;justify-content:space-between;font-size:.9rem;color:var(--text-secondary);padding:.5rem 0;border-top:1px solid var(--border-color)}.book-info-section{display:flex;flex-direction:column;gap:1.5rem}.book-info-section h1{font-size:2rem;font-weight:700;color:var(--text-primary);margin:0}.book-info-section h2{font-size:1.25rem;font-weight:500;color:var(--text-secondary);margin:0}.book-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;padding:1rem;background-color:var(--bg-tertiary);border-radius:8px}.meta-item{display:flex;flex-direction:column;gap:.25rem}.meta-label{font-size:.8rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.meta-value{font-size:1rem;color:var(--text-primary);font-weight:500}.book-description{display:flex;flex-direction:column;gap:.75rem}.book-description h3{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin:0}.book-description p{font-size:1rem;line-height:1.6;color:var(--text-primary);margin:0}.book-copies-section{margin-top:1rem}.book-copies-section h3{font-size:1.2rem;font-weight:600;color:var(--text-primary);margin:0 0 1rem}.copies-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.copy-item{display:grid;grid-template-columns:1fr auto;gap:.5rem;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-tertiary)}.copy-id{font-size:.9rem;font-weight:500;color:var(--text-primary)}.copy-status{font-size:.8rem;padding:.25rem .75rem;border-radius:12px}.copy-location{font-size:.8rem;color:var(--text-secondary);margin-top:.5rem;grid-column:1 / -1;text-align:left}.borrow-pending{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;border:1px solid var(--border-color);border-radius:8px;background-color:var(--bg-tertiary)}.countdown{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background-color:var(--bg-secondary);border-radius:6px}.countdown-timer{font-size:1.2rem;font-weight:700;color:var(--primary-color)}.confirm-button{padding:1rem 2rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.confirm-button:hover{background-color:var(--primary-hover)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-primary);border-radius:8px;padding:2rem;max-width:500px;width:90%;box-shadow:0 4px 12px #00000026}.modal-content h3{margin-top:0;margin-bottom:1.5rem;color:var(--text-primary);font-size:1.25rem;font-weight:600}.modal-body{margin-bottom:2rem}.modal-body p{margin:.5rem 0;color:var(--text-primary);font-size:1rem}.copy-selection{margin-top:1.5rem}.copy-selection label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary);font-size:.9rem}.copy-selection select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:6px;font-size:1rem;background:#fff;color:var(--text-primary)}.modal-actions{display:flex;gap:1rem;justify-content:flex-end}.modal-actions button{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.modal-actions .btn-secondary{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.modal-actions .btn-secondary:hover{background-color:var(--bg-tertiary)}.modal-actions .btn-primary{background-color:var(--primary-color);color:#fff}.modal-actions .btn-primary:hover{background-color:var(--primary-hover)}.book-actions{display:flex;gap:1rem;margin-top:1rem}.borrow-button,.reserve-button{padding:1rem 2rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:150px}.borrow-button{background-color:var(--primary-color);color:#fff}.borrow-button:hover{background-color:var(--primary-hover)}.reserve-button{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.reserve-button:hover{background-color:var(--bg-tertiary)}.loading{text-align:center;padding:3rem 0;color:var(--text-secondary)}.error-message{text-align:center;padding:2rem;background-color:var(--error-bg);color:var(--error-color);border-radius:8px;margin-bottom:1rem;display:flex;flex-direction:column;gap:1rem;align-items:center}.error-message button{margin-top:1rem}@media(max-width:768px){.book-details-page{padding:1rem}.book-details-container{grid-template-columns:1fr}.book-cover{width:100%;max-width:300px;height:400px;margin:0 auto}.book-meta{grid-template-columns:1fr}.book-actions{flex-direction:column}.borrow-button,.reserve-button{width:100%}}@media(max-width:480px){.book-info-section h1{font-size:1.5rem}.book-info-section h2{font-size:1.1rem}.book-cover{height:350px}}.fine-details-page{padding:var(--spacing-xl);max-width:900px;margin:0 auto}.fine-summary{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--bg-tertiary);border-radius:var(--border-radius);border:1px solid var(--border-color)}.fine-summary h2{margin:0;color:var(--text-primary)}.pay-button{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-md);font-weight:600}.fine-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.fine-item{display:flex;flex-wrap:wrap;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--bg-secondary);border-radius:var(--border-radius);border:1px solid var(--border-color);transition:all .3s ease}.fine-item:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.fine-book-info{flex:1 1 200px}.fine-book-info h3{margin:0 0 var(--spacing-xs) 0;color:var(--text-primary);font-size:var(--font-size-lg)}.fine-book-info p{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm)}.fine-details{flex:2 1 400px;display:flex;flex-direction:column;gap:var(--spacing-sm)}.fine-meta{display:flex;gap:var(--spacing-sm);font-size:var(--font-size-sm)}.meta-label{font-weight:600;color:var(--text-secondary);min-width:100px}.meta-value{color:var(--text-primary)}.fine-amount{display:flex;gap:var(--spacing-sm);font-size:var(--font-size-md);font-weight:600;margin-top:var(--spacing-sm)}.amount-label{color:var(--text-secondary)}.amount-value{color:var(--error-color)}.fine-status{margin-top:var(--spacing-sm)}.status-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:12px;font-size:var(--font-size-sm);font-weight:600}.status-paid{background-color:var(--success-color-light);color:var(--success-color)}.status-unpaid{background-color:var(--error-color-light);color:var(--error-color)}.no-fines{text-align:center;padding:var(--spacing-xl);background-color:var(--bg-tertiary);border-radius:var(--border-radius);border:1px solid var(--border-color);color:var(--text-secondary)}.back-button{margin-bottom:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-sm);transition:all .3s ease}.back-button:hover{background-color:var(--bg-tertiary);transform:translate(-2px)}@media(max-width:768px){.fine-details-page{padding:var(--spacing-md)}.fine-summary{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.fine-item{flex-direction:column}.fine-book-info,.fine-details{flex:1 1 100%}.fine-meta{flex-direction:column;gap:var(--spacing-xs)}.meta-label{min-width:auto}}.notifications-page{width:100%;max-width:980px}.notifications-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.notifications-header h2{margin:0}.notifications-header p{margin:6px 0 0;color:var(--text-secondary);font-size:var(--font-size-sm)}.notification-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.notification-item{display:grid;grid-template-columns:10px minmax(0,1fr);gap:var(--spacing-md);width:100%;margin:0;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);background:#fff;color:var(--text-primary);text-align:left;cursor:pointer}.notification-item:hover{border-color:#cbd5e1;background:#f8fafc;transform:none;box-shadow:none}.notification-item.read{opacity:.72}.notification-dot{width:10px;height:10px;margin-top:5px;border-radius:999px;background:#cbd5e1}.notification-item.unread .notification-dot{background:var(--primary-color)}.notification-content{display:flex;min-width:0;flex-direction:column;gap:4px}.notification-content strong,.notification-content span,.notification-content small{overflow-wrap:anywhere}.notification-content span{color:var(--text-secondary);font-size:var(--font-size-sm)}.notification-content small{color:var(--text-light);font-size:var(--font-size-xs)}@media(max-width:768px){.notifications-header{flex-direction:column}.notifications-header button{width:100%}}:root{--primary-color: #5E6AD2;--primary-hover: #4A54C1;--secondary-color: #1F2937;--secondary-light: #374151;--success-color: #10B981;--success-hover: #059669;--warning-color: #F59E0B;--warning-hover: #D97706;--danger-color: #EF4444;--danger-hover: #DC2626;--info-color: #3B82F6;--info-hover: #2563EB;--text-primary: #111827;--text-secondary: #4B5563;--text-light: #9CA3AF;--text-white: #FFFFFF;--bg-primary: #F9FAFB;--bg-secondary: #FFFFFF;--bg-tertiary: #F3F4F6;--success-bg: #ECFDF5;--border-color: #E5E7EB;--border-light: #F3F4F6;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--border-radius: 6px;--border-radius-lg: 12px;--border-radius-xl: 16px;--transition: all .2s ease-in-out;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-md: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--sidebar-width: 280px;--sidebar-width-sm: 240px;--header-height: 64px;--main-content-max-width: 1200px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.65;font-size:var(--font-size-md);letter-spacing:.005em}p{margin-bottom:var(--spacing-md);line-height:1.7}h1,h2,h3,h4,h5,h6{line-height:1.2;letter-spacing:-.025em;font-weight:600}.container{max-width:var(--main-content-max-width);margin:0 auto;padding:var(--spacing-lg)}.app-container{display:flex;min-height:100vh;width:100vw}.main-content{flex:1;display:flex;flex-direction:column;margin-left:0;transition:var(--transition);background-color:#f5f7fa;min-height:100vh}.header{background-color:var(--bg-secondary);padding:10px var(--spacing-lg);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;max-width:1540px;margin:0 auto;width:100%}.header h1{margin:0;font-size:var(--font-size-lg);color:var(--text-primary);text-align:center;flex:1}.menu-btn{background:none;border:none;font-size:var(--font-size-xl);cursor:pointer;color:var(--text-primary);margin-right:var(--spacing-md);padding:var(--spacing-sm)}.menu-btn:hover{background-color:var(--bg-tertiary);border-radius:var(--border-radius);transform:none;box-shadow:none;color:var(--primary-color)}.user-menu{display:flex;align-items:center;gap:var(--spacing-sm)}.user-menu span{font-size:var(--font-size-sm);color:var(--text-primary)}.user-avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#eef2ff;color:var(--primary-color)!important;font-size:var(--font-size-xs)!important;font-weight:800}.content{flex:1;padding:0 var(--spacing-lg) var(--spacing-lg);max-width:1200px;margin:0 auto;width:100%;display:flex;flex-direction:column;align-items:center}.card{background-color:var(--bg-secondary);padding:var(--spacing-lg);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:0 4px 12px #00000014;margin-bottom:var(--spacing-lg);transition:var(--transition);max-width:1000px;margin-left:auto;margin-right:auto;width:100%}.card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.form-group{margin-bottom:var(--spacing-md);max-width:600px;margin-left:auto;margin-right:auto}table{width:100%;border-collapse:collapse;margin-top:var(--spacing-lg);background-color:var(--bg-secondary);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow-sm);max-width:1000px;margin-left:auto;margin-right:auto}.action-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg);gap:var(--spacing-md);max-width:1000px;margin-left:auto;margin-right:auto;width:100%}.action-buttons{display:flex;gap:var(--spacing-md);align-items:center}.history-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md);color:var(--text-secondary);font-size:var(--font-size-sm)}.history-sort-button{height:34px;margin:0;padding:0 var(--spacing-md);font-size:var(--font-size-sm);white-space:nowrap}.history-pagination{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-md);color:var(--text-secondary);font-size:var(--font-size-sm)}.history-pagination button{height:34px;margin:0;padding:0 var(--spacing-md);font-size:var(--font-size-sm)}@media(max-width:768px){.action-bar{flex-direction:column;align-items:stretch}.action-bar .search-bar{width:100%}}.search-bar{margin-bottom:var(--spacing-lg);width:100%;max-width:600px;margin-left:auto;margin-right:auto}.search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-md);transition:border-color .2s ease;background-color:var(--bg-secondary);color:var(--text-primary)}.search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3b82f61a}.form-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md);justify-content:center}.section-title{text-align:center;margin-bottom:var(--spacing-xl);color:var(--secondary-color);font-size:var(--font-size-xl)}h1:not(.header h1){text-align:center;margin-bottom:var(--spacing-xl);color:var(--secondary-color);font-size:var(--font-size-xl)}h2{margin-bottom:var(--spacing-lg);color:var(--secondary-color);font-size:var(--font-size-lg)}h3{margin-bottom:var(--spacing-md);color:var(--secondary-color);font-size:var(--font-size-md)}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:700;color:var(--text-primary)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--border-radius);font-size:var(--font-size-md);transition:var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #3498db33}button{background-color:var(--primary-color);color:var(--text-white);border:none;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-md);margin-right:var(--spacing-sm);transition:var(--transition);font-weight:500}button:hover{background-color:var(--primary-hover)!important;transform:none!important;box-shadow:none!important;border-color:transparent!important}button:active{transform:translateY(0)}button:disabled{background-color:var(--border-color);cursor:not-allowed;transform:none;box-shadow:none}button:disabled:hover{background-color:var(--border-color)}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));transition:var(--transition);position:relative;overflow:hidden}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:active{transform:scale(.95);transition:transform .1s ease}.btn-success{background-color:var(--success-color)}.btn-success:hover{background-color:var(--success-hover)}.btn-warning{background-color:var(--warning-color)}.btn-warning:hover{background-color:var(--warning-hover)}.btn-danger{background-color:var(--danger-color)}.btn-danger:hover{background-color:var(--danger-hover)}.btn-info{background-color:var(--info-color)}.btn-info:hover{background-color:var(--info-hover)}.form-container{width:100%;max-width:600px;margin-bottom:var(--spacing-lg)}table{width:100%;border-collapse:collapse;margin-top:var(--spacing-lg);background-color:var(--bg-secondary);border-radius:var(--border-radius);overflow:hidden;box-shadow:var(--shadow-sm)}th,td{padding:var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color)}th{background-color:var(--bg-tertiary);font-weight:700;color:var(--text-primary);text-transform:uppercase;font-size:var(--font-size-sm);letter-spacing:.5px}tr:hover{background-color:var(--bg-tertiary);transition:var(--transition)}.status-available{color:var(--success-color);font-weight:700}.status-borrowed{color:var(--danger-color);font-weight:700}.status-returned{color:var(--info-color);font-weight:700}.loading{display:flex;justify-content:center;align-items:center;height:200px;font-size:var(--font-size-lg);color:var(--text-secondary)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--border-color) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--border-radius)}.skeleton-container{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg)}.skeleton-item{display:flex;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm)}.skeleton-content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-sm)}.skeleton-title{height:24px;width:70%;border-radius:var(--border-radius)}.skeleton-author{height:16px;width:50%;border-radius:var(--border-radius)}.skeleton-meta{height:14px;width:40%;border-radius:var(--border-radius)}.skeleton-actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.skeleton-button{height:32px;width:80px;border-radius:var(--border-radius)}.error-message{background-color:#e74c3c1a;color:var(--danger-color);padding:var(--spacing-md);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg);border-left:4px solid var(--danger-color)}.success-message{background-color:#27ae601a;color:var(--success-color);padding:var(--spacing-md);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg);border-left:4px solid var(--success-color)}@media(max-width:768px){.container{padding:var(--spacing-md)}h1{font-size:var(--font-size-lg);margin-bottom:var(--spacing-lg)}h2{font-size:var(--font-size-md);margin-bottom:var(--spacing-md)}table{font-size:var(--font-size-sm)}th,td{padding:var(--spacing-sm)}button{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease forwards}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover{background-color:var(--border-color)}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-footer{background-color:var(--background-color);border-top:1px solid var(--border-color);padding:var(--spacing-md) 0;margin-top:auto}.footer-content{max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-md);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.footer-content p{margin:0;font-size:var(--font-size-sm);color:var(--text-secondary)}.footer-content a{color:var(--primary-color);text-decoration:none;transition:var(--transition)}.footer-content a:hover{text-decoration:underline}.login-footer{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--border-color);text-align:center}.login-footer p{margin:var(--spacing-xs) 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.login-footer a{color:var(--primary-color);text-decoration:none;transition:var(--transition)}.login-footer a:hover{text-decoration:underline}.announcement-reminder-overlay{position:fixed;inset:0;z-index:1400;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:#0f172a75}.announcement-reminder-modal{width:min(92vw,680px);max-height:min(82vh,720px);overflow:hidden;border:1px solid #E5E7EB;border-radius:var(--border-radius-lg);background:#fff;box-shadow:0 24px 60px #0f172a38}.announcement-reminder-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid #E5E7EB}.announcement-reminder-label{display:block;margin-bottom:6px;color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:800;text-transform:uppercase}.announcement-reminder-header h2{margin:0;color:var(--text-primary)}.announcement-reminder-count{min-width:32px;height:32px;padding:0 10px;border-radius:999px;background:#eef2ff;color:var(--primary-color);font-size:var(--font-size-sm);font-weight:800;line-height:32px;text-align:center}.announcement-reminder-list{max-height:430px;overflow-y:auto;padding:var(--spacing-lg)}.announcement-reminder-item{padding:var(--spacing-md);border:1px solid #E5E7EB;border-radius:var(--border-radius);background:#f8fafc}.announcement-reminder-item+.announcement-reminder-item{margin-top:var(--spacing-md)}.announcement-reminder-item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.announcement-reminder-item h3{margin:0;color:var(--text-primary)}.announcement-reminder-item span{flex:0 0 auto;color:var(--text-light);font-size:var(--font-size-xs)}.announcement-reminder-item p{max-height:140px;margin:0;overflow-y:auto;color:var(--text-secondary);font-size:var(--font-size-sm);white-space:pre-wrap}.announcement-reminder-actions{display:flex;justify-content:flex-end;padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid #E5E7EB}.announcement-reminder-actions button{min-width:120px;margin:0}@media(max-width:768px){.announcement-reminder-overlay{padding:var(--spacing-md)}.announcement-reminder-item-header{flex-direction:column}.announcement-reminder-actions button{width:100%}}
