:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;--bg: #0a0a0a;--bg-surface: #111111;--bg-card: #18181b;--bg-elevated: #1e1e22;--border: rgba(255, 255, 255, .08);--border-hover: rgba(255, 255, 255, .15);--text: #fafafa;--text-muted: rgba(255, 255, 255, .55);--text-secondary: rgba(255, 255, 255, .7);--primary: #6366f1;--primary-hover: #818cf8;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--radius: .75rem;--radius-sm: .5rem}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh;background:var(--bg);color:var(--text)}.app-layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--bg-surface);border-right:1px solid var(--border);padding:1.5rem .75rem;display:flex;flex-direction:column;gap:2rem;flex-shrink:0}.sidebar-brand{display:flex;align-items:center;gap:.75rem;padding:0 .5rem;color:var(--primary);font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-muted);font-size:.875rem;cursor:pointer;transition:all .15s;width:100%;text-align:left}.nav-item:hover{background:#ffffff0a;color:var(--text-secondary)}.nav-item.active{background:#6366f11f;color:var(--primary-hover)}.main-content{flex:1;padding:2rem;overflow-y:auto;min-height:100vh}.panel{max-width:1200px}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.panel-header h2{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.btn{padding:.5rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:.875rem;cursor:pointer;transition:all .15s;white-space:nowrap}.btn:hover{border-color:var(--border-hover);background:var(--bg-card)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-secondary{background:transparent;border-color:var(--primary);color:var(--primary)}.btn-secondary:hover{background:#6366f11a}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover{color:var(--text)}.btn-large{padding:.75rem 2rem;font-size:1rem}.btn-icon.delete{background:none;border:none;color:var(--text-muted);font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;border-radius:.25rem;transition:all .15s}.btn-icon.delete:hover{color:var(--danger);background:#ef44441a}.toolbar{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.search-input{padding:.625rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-size:.875rem;width:100%;outline:none;transition:border-color .15s}.search-input:focus{border-color:var(--primary)}.search-input::placeholder{color:var(--text-muted)}.filter-chips{display:flex;gap:.5rem;flex-wrap:wrap}.chip{padding:.3rem .75rem;border-radius:2rem;border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:.75rem;cursor:pointer;transition:all .15s}.chip:hover{border-color:var(--border-hover);color:var(--text-secondary)}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.book-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;position:relative;transition:border-color .15s}.book-card:hover{border-color:var(--border-hover)}.book-cover{height:80px;display:flex;align-items:flex-end;padding:.5rem .75rem;position:relative}.book-type-badge{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;background:#0006;padding:.15rem .5rem;border-radius:.25rem;color:#fff}.book-info{padding:.75rem;display:flex;flex-direction:column;gap:.25rem}.book-info h4{font-size:.95rem;font-weight:600}.book-author{color:var(--text-muted);font-size:.8rem}.book-tag{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;color:var(--text-muted);background:#ffffff0d;padding:.15rem .4rem;border-radius:.25rem;display:inline-block;width:fit-content;margin-top:.25rem}.book-tag-sm{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;color:var(--text-muted)}.book-status{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.status-dot{width:6px;height:6px;border-radius:50%}.status-dot.available{background:var(--success)}.status-dot.borrowed{background:var(--warning)}.book-card .btn-icon.delete{position:absolute;top:.5rem;right:.5rem;background:#00000080;color:#fff9;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;padding:0;font-size:1rem;opacity:0;transition:opacity .15s}.book-card:hover .btn-icon.delete{opacity:1}.student-list{display:flex;flex-direction:column;gap:.75rem}.student-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s}.student-card:hover{border-color:var(--border-hover)}.student-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--primary),#a855f7);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex-shrink:0}.student-avatar.large{width:64px;height:64px;font-size:1.5rem}.student-info{flex:1;min-width:0}.student-info h4{font-size:.95rem;font-weight:600}.student-info p{color:var(--text-muted);font-size:.8rem}.student-meta{display:flex;align-items:center;gap:.75rem;margin-top:.35rem}.qr-badge{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;background:#6366f11f;color:var(--primary-hover);padding:.15rem .5rem;border-radius:.25rem;letter-spacing:.05em}.borrow-count{font-size:.75rem;color:var(--text-muted)}.sub-tabs{display:flex;gap:.25rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border)}.sub-tab{padding:.625rem 1rem;border:none;background:transparent;color:var(--text-muted);font-size:.875rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .15s}.sub-tab:hover{color:var(--text-secondary)}.sub-tab.active{color:var(--primary-hover);border-bottom-color:var(--primary)}.borrow-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.5rem}.borrow-form h3{font-size:1rem;margin-bottom:1rem}.form-row{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.form-row label{flex:1;min-width:200px;display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--text-muted)}.form-row select,.form-row input{padding:.5rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:.875rem;outline:none}.form-row select:focus,.form-row input:focus{border-color:var(--primary)}.section-title{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text-secondary)}.record-list{display:flex;flex-direction:column;gap:.75rem}.record-list.compact{gap:.5rem}.record-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s}.record-card:hover{border-color:var(--border-hover)}.record-card.overdue{border-color:#ef44444d}.record-card.compact{padding:.75rem}.record-book-cover{width:8px;height:48px;border-radius:4px;flex-shrink:0}.record-book-cover.sm{height:32px}.record-info{flex:1;min-width:0}.record-info h4{font-size:.9rem;font-weight:600}.record-info p{color:var(--text-muted);font-size:.8rem}.record-dates{display:flex;gap:1rem;margin-top:.25rem;font-size:.75rem;color:var(--text-muted)}.record-title-sm{font-size:.85rem;font-weight:500}.record-meta{font-size:.75rem;color:var(--text-muted)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-muted{color:var(--text-muted)}.record-status{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;padding:.2rem .6rem;border-radius:2rem}.record-status.active{background:#f59e0b1f;color:var(--warning)}.record-status.returned{background:#10b9811f;color:var(--success)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;text-align:center}.stat-value{font-size:2rem;font-weight:700;letter-spacing:-.02em}.stat-label{font-size:.8rem;color:var(--text-muted);margin-top:.25rem}.scanner-layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.scanner-area{display:flex;flex-direction:column;gap:1rem;align-items:center}.qr-viewport{width:100%;max-width:350px;aspect-ratio:1;background:var(--bg-card);border:2px dashed var(--border);border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.qr-viewport video{border-radius:var(--radius)}.divider{color:var(--text-muted);font-size:.8rem;display:flex;align-items:center;gap:.75rem;width:100%;max-width:350px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.manual-entry{display:flex;gap:.5rem;width:100%;max-width:350px}.manual-entry input{flex:1;padding:.625rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-size:.875rem;outline:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manual-entry input:focus{border-color:var(--primary)}.scan-result{display:flex;flex-direction:column;gap:1rem}.student-detail-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.student-detail-card h3{font-size:1.25rem;font-weight:600}.student-detail-card p{color:var(--text-muted);font-size:.85rem}.quick-borrow{margin-top:1.5rem;width:100%;display:flex;flex-direction:column;gap:.75rem;padding-top:1.25rem;border-top:1px solid var(--border)}.quick-borrow h4{font-size:.9rem;color:var(--text-secondary)}.quick-borrow select{padding:.625rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);font-size:.875rem;outline:none}.scan-icon{color:var(--text-muted);margin-bottom:.5rem}.student-qr-list{margin-top:1.5rem;width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.student-qr-list h4{font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem}.qr-list-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s}.qr-list-item:hover{background:#ffffff0a}.student-name-sm{font-size:.85rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;width:100%;max-width:440px}.modal h3{font-size:1.1rem;margin-bottom:1.25rem}.modal label{display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--text-muted);margin-bottom:1rem}.modal input,.modal select{padding:.625rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-size:.875rem;outline:none}.modal input:focus,.modal select:focus{border-color:var(--primary)}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.toast{padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.875rem;margin-bottom:1rem}.toast.success{background:#10b9811f;border:1px solid rgba(16,185,129,.25);color:var(--success)}.toast.error{background:#ef44441f;border:1px solid rgba(239,68,68,.25);color:var(--danger)}.toast.info{background:#3b82f61f;border:1px solid rgba(59,130,246,.25);color:#3b82f6}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-muted)}.empty-state h3{font-size:1.1rem;color:var(--text-secondary);margin-bottom:.5rem}.empty-state p{font-size:.9rem}@media(max-width:768px){.app-layout{flex-direction:column}.sidebar{width:100%;flex-direction:row;padding:.75rem;gap:.75rem;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border)}.sidebar-brand{display:none}.sidebar-nav{flex-direction:row;gap:.25rem}.nav-item{padding:.5rem .75rem}.nav-item span{display:none}.main-content{padding:1rem}.scanner-layout{grid-template-columns:1fr}.form-row{flex-direction:column}.form-row label{min-width:auto}.stats-grid{grid-template-columns:repeat(2,1fr)}}
