.App{background-color:#f8fafc;display:flex;flex-direction:column;min-height:100vh;overflow-x:hidden}.App *{box-sizing:border-box}::-webkit-scrollbar{width:auto}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#0000004d}body,html{background:#f8fafc}.app-main{position:relative;z-index:1}.app-header{background:linear-gradient(135deg,#1e3a8a,#3b82f6);box-shadow:0 2px 10px #0000001a;color:#fff;height:70px;left:0;padding:1rem 0;position:fixed;right:0;top:0;z-index:1000}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1400px;padding:0 2rem}.header-content h1{font-size:1.8rem;font-weight:700;margin:0}.user-info{align-items:center;display:flex;gap:1rem}.logout-btn{background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;padding:.5rem 1rem;transition:all .2s}.logout-btn:hover{background:#ffffff4d;border-color:#ffffff80}.sidebar-toggle{align-items:center;background:#fff3;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;justify-content:center;margin-right:1rem;min-height:40px;min-width:40px;padding:.5rem;transition:all .2s;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.sidebar-toggle:hover{background:#ffffff4d;border-color:#ffffff80}.sidebar-toggle:active{background:#fff6;transform:scale(.95)}.sidebar-toggle.active{background:#ffffff4d;border-color:#fff9}.sidebar-toggle.active:hover{background:#fff6;border-color:#fffc}.app-sidebar{background:#fff;box-shadow:2px 0 10px #0000001a;height:calc(100vh - 70px);left:0;overflow-y:auto;position:fixed;top:70px;transition:transform .3s ease;width:140px;z-index:999}.app-sidebar.closed{transform:translateX(-100%);visibility:hidden}.app-sidebar.open{transform:translateX(0);visibility:visible}.sidebar-backdrop{background-color:#00000080;bottom:0;cursor:pointer;display:none;left:0;position:fixed;right:0;top:0;transition:opacity .3s ease;z-index:998}@media (max-width:768px){.sidebar-backdrop{display:block}.app-sidebar{max-width:35vw;width:140px}.app-sidebar.closed{transform:translateX(-100%)}.app-sidebar.open{transform:translateX(0)}}.sidebar-navigation{padding:1rem 0}.sidebar-nav-item{align-items:center;display:flex;margin:.25rem .5rem}.sidebar-nav-button{align-items:center;background:#0000;border:none;border-radius:8px;color:#374151;cursor:pointer;display:flex;flex-direction:column;font-size:.9rem;font-weight:500;gap:.25rem;justify-content:center;line-height:1.3;min-height:60px;padding:.75rem .5rem;text-align:center;transition:all .2s;width:100%}.sidebar-nav-button:hover{background:#f3f4f6;color:#1f2937}.sidebar-nav-button.active{background:#3b82f6;color:#fff;font-weight:600}.sidebar-nav-button.active:hover{background:#2563eb}.app-main{flex:1 1;margin-left:0;margin-top:70px;padding:2rem;transition:margin-left .3s ease}.app-main.with-sidebar{margin-left:140px}.app-main.without-sidebar{margin-left:0}.app-footer{background:#1f2937;color:#fff;margin-top:auto;padding:2rem 0}.app-loading{align-items:center;background:#f8fafc;display:flex;flex-direction:column;height:100vh;justify-content:center}.loading-spinner{border:4px solid #e5e7eb;height:50px;margin-bottom:1rem;width:50px}.auth-container{align-items:center;background:#f8fafc;display:flex;flex-direction:column;gap:2rem;height:100vh;justify-content:center}@media (max-width:1024px){.app-sidebar{width:140px}.app-main.with-sidebar{margin-left:140px}}@media (max-width:768px){.app-sidebar{transform:translateX(-100%);width:100%}.app-sidebar.open{transform:translateX(0)}.app-main.with-sidebar,.app-main.without-sidebar{margin-left:0;padding:1rem}.header-content{padding:0 1rem}.header-content h1{font-size:1.5rem}}@media (max-width:480px){.app-main{padding:1rem}.user-info{flex-direction:column;gap:.5rem}.sidebar-nav-button{font-size:.9rem;padding:.6rem .8rem}}.text-center{text-align:center}.mb-4{margin-bottom:1rem}.mt-4{margin-top:1rem}.p-4{padding:1rem}.rounded{border-radius:.375rem}.module-container,.shadow{box-shadow:0 1px 3px #0000001a}.module-container{background:#fff;border-radius:12px;margin-bottom:2rem;padding:2rem}.module-header{border-bottom:1px solid #e5e7eb;margin-bottom:1.5rem;padding-bottom:1rem}.module-title{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0}.back-button{align-items:center;background-color:#f3f4f6;border:1px solid #e5e7eb;border-radius:12px;color:#374151;display:flex;font-size:16px;font-weight:600;gap:8px;margin-bottom:16px;padding:12px 24px;transition:all .2s ease}.back-button:hover{background-color:#e5e7eb;border-color:#d1d5db;box-shadow:0 2px 8px #0000001a}.back-button:active{box-shadow:0 1px 4px #0000001a;transform:translateY(0)}.page-header{background:linear-gradient(90deg,#10b981,#059669);border-radius:12px;box-shadow:0 4px 12px #0000001a;color:#fff;margin-bottom:24px;padding:20px}.page-header h1{font-size:24px;font-weight:600;margin:0}.module-header{background:linear-gradient(90deg,#10b981,#059669);border-radius:12px;box-shadow:0 4px 12px #0000001a;color:#fff;margin-bottom:24px;padding:20px}.module-header h1{font-size:24px;font-weight:600;margin:0}.data-table{border-collapse:collapse;margin-top:1rem;width:100%}.data-table td,.data-table th{border-bottom:1px solid #e5e7eb;padding:.75rem;text-align:left}.data-table th{color:#374151;font-weight:600}.data-table th,.data-table tr:hover{background:#f9fafb}.form-group{margin-bottom:1rem}.form-label{color:#374151;font-weight:500;margin-bottom:.5rem}.form-input{border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;padding:.75rem;width:100%}.form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.btn{font-size:.9rem;padding:.75rem 1.5rem}.btn-primary:hover{background:#2563eb}.btn-secondary:hover{background:#4b5563}.btn-success{background:#10b981}.btn-success:hover{background:#059669}.btn-danger{background:#ef4444}.btn-danger:hover{background:#dc2626}.language-switcher{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;gap:8px;padding:8px 12px}.language-label{color:#495057;font-size:14px;font-weight:500;white-space:nowrap}.language-select{background:#fff;border:1px solid #ced4da;border-radius:4px;color:#495057;cursor:pointer;font-size:14px;padding:6px 8px;transition:border-color .2s,box-shadow .2s}.language-select:hover{border-color:#80bdff}.language-select:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.language-select option{background:#fff;color:#495057;padding:8px}.enhanced-app-store{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.enhanced-app-store .app-store-header{margin-bottom:30px;text-align:center}.enhanced-app-store .app-store-header h1{color:#1f2937;font-size:2.5rem;margin-bottom:10px}.enhanced-app-store .app-store-header p{color:#6b7280;font-size:1.1rem}.app-store-tabs{border-bottom:2px solid #e5e7eb;display:flex;justify-content:center;margin-bottom:30px}.app-store-tabs .tab{background:none;border:none;border-bottom:3px solid #0000;color:#6b7280;cursor:pointer;font-size:1rem;font-weight:600;margin:0 10px;padding:12px 24px;transition:all .3s ease}.app-store-tabs .tab:hover{color:#3b82f6}.app-store-tabs .tab.active{border-bottom-color:#3b82f6;color:#3b82f6}.search-section{margin-bottom:30px}.search-container{margin-bottom:20px}.search-input-wrapper{display:flex;margin:0 auto;max-width:600px;position:relative}.search-input-wrapper input{border:2px solid #e5e7eb;border-radius:8px 0 0 8px;flex:1 1;font-size:1rem;outline:none;padding:12px 16px;transition:border-color .3s ease}.search-input-wrapper input:focus{border-color:#3b82f6}.search-input-wrapper button{background:#3b82f6;border:none;border-radius:0 8px 8px 0;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:12px 20px;transition:background-color .3s ease}.search-input-wrapper button:hover{background:#2563eb}.search-suggestions{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a;left:0;max-height:200px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.suggestion-item{border-bottom:1px solid #f3f4f6;cursor:pointer;padding:10px 16px;transition:background-color .2s ease}.suggestion-item:hover{background:#f9fafb}.suggestion-item:last-child{border-bottom:none}.advanced-filters{background:#f9fafb;border-radius:12px;margin-top:20px;padding:20px}.advanced-filters h3{color:#1f2937;font-size:1.2rem;margin-bottom:20px}.filters-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px}.filter-group{display:flex;flex-direction:column}.filter-group label{color:#374151;font-size:.9rem;font-weight:600;margin-bottom:5px}.filter-group select{background:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;outline:none;padding:8px 12px;transition:border-color .3s ease}.filter-group select:focus{border-color:#3b82f6}.filter-actions{display:flex;gap:10px;justify-content:center}.apply-filters-btn,.clear-filters-btn{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .3s ease}.apply-filters-btn{background:#3b82f6;color:#fff}.apply-filters-btn:hover{background:#2563eb}.clear-filters-btn{background:#6b7280;color:#fff}.clear-filters-btn:hover{background:#4b5563}.app-store-content{margin-top:30px}.recent-section,.recommendations-section,.search-results-section,.trending-section{margin-bottom:40px}.recent-section h2,.recommendations-section h2,.search-results-section h2,.trending-section h2{align-items:center;color:#1f2937;display:flex;font-size:1.5rem;justify-content:space-between;margin-bottom:20px}.clear-btn{background:#ef4444;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;padding:6px 12px;transition:background-color .3s ease}.clear-btn:hover{background:#dc2626}.apps-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.app-card{overflow:hidden;position:relative;transition:all .3s ease}.app-card:hover{border-color:#3b82f6;box-shadow:0 10px 25px -5px #0000001a}.app-icon{border-radius:12px;height:60px;margin-bottom:15px;overflow:hidden;width:60px}.app-icon img{height:100%;object-fit:cover;width:100%}.app-icon-placeholder{align-items:center;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;display:flex;font-size:1.5rem;font-weight:700;height:100%;justify-content:center;width:100%}.app-info h3{color:#1f2937;font-size:1.2rem;font-weight:600;margin-bottom:8px}.app-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:.9rem;line-height:1.4;margin-bottom:12px;overflow:hidden}.app-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.app-category,.app-free,.app-rating,.app-trial{border-radius:4px;font-size:.8rem;font-weight:500;padding:4px 8px}.app-rating{background:#fef3c7;color:#92400e}.app-stats{font-size:.8rem;margin-bottom:10px}.app-developer{color:#9ca3af;font-size:.8rem}.details-btn,.install-btn{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:600;padding:8px 16px;transition:all .3s ease}.install-btn{background:#3b82f6;color:#fff}.install-btn:hover{background:#2563eb}.details-btn{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.details-btn:hover{background:#e5e7eb}.error-container button{background:#3498db;font-size:16px;margin-top:16px;padding:12px 24px;transition:background-color .2s}.error-container button:hover{background:#2980b9}.no-recommendations,.no-results{color:#6b7280;padding:40px 20px;text-align:center}@media (max-width:768px){.enhanced-app-store{padding:15px}.enhanced-app-store .app-store-header h1{font-size:2rem}.app-store-tabs{flex-direction:column;gap:5px}.app-store-tabs .tab{border-bottom:none;border-radius:6px;margin:0}.app-store-tabs .tab.active{background:#3b82f6;color:#fff}.apps-grid,.filters-grid{grid-template-columns:1fr}.search-input-wrapper{flex-direction:column}.search-input-wrapper input{border-radius:8px;margin-bottom:10px}.search-input-wrapper button{border-radius:8px}}@media (max-width:480px){.enhanced-app-store .app-store-header h1{font-size:1.5rem}.app-card{padding:15px}.app-actions{flex-direction:column}}.app-details{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.app-details-header{margin-bottom:30px}.back-btn{background:#f3f4f6;border-radius:8px;font-size:1rem;transition:all .3s ease}.back-btn:hover{background:#e5e7eb}.app-overview{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:30px;padding:30px}.app-header{gap:30px}.app-icon-large{border-radius:20px;flex-shrink:0;height:120px;overflow:hidden;width:120px}.app-icon-large img{height:100%;object-fit:cover;width:100%}.app-icon-placeholder-large{align-items:center;background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;display:flex;font-size:3rem;font-weight:700;height:100%;justify-content:center;width:100%}.app-header-info{flex:1 1}.app-header-info h1{color:#1f2937;font-size:2.5rem;font-weight:700;margin-bottom:8px}.app-developer{color:#6b7280;font-size:1.1rem;margin-bottom:15px}.app-meta-large{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:15px}.app-category,.app-free,.app-rating-large,.app-trial{border-radius:6px;font-size:.9rem;font-weight:500;padding:6px 12px}.app-category{background:#e0e7ff;color:#3730a3}.app-rating-large{background:#fef3c7;color:#92400e}.app-free{background:#dcfce7;color:#166534}.app-trial{background:#fce7f3;color:#be185d}.app-stats-large{color:#6b7280;display:flex;font-size:.9rem;gap:20px}.app-actions-large{display:flex;flex-direction:column;flex-shrink:0;gap:12px}.install-btn-large,.review-btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;min-width:150px;padding:12px 24px;transition:all .3s ease}.install-btn-large{background:#3b82f6;color:#fff}.install-btn-large:hover{background:#2563eb}.review-btn{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.review-btn:hover{background:#e5e7eb}.app-details-tabs{border-bottom:2px solid #e5e7eb;display:flex;margin-bottom:30px}.app-details-tabs .tab{background:none;border:none;border-bottom:3px solid #0000;color:#6b7280;cursor:pointer;font-size:1rem;font-weight:600;padding:15px 30px;transition:all .3s ease}.app-details-tabs .tab:hover{color:#3b82f6}.app-details-tabs .tab.active{border-bottom-color:#3b82f6;color:#3b82f6}.tab-content{min-height:400px}.overview-content{grid-gap:30px;display:grid;gap:30px}.app-description-large h3,.app-features h3,.app-tags h3,.review-summary h3{color:#1f2937;font-size:1.3rem;font-weight:600;margin-bottom:15px}.app-description-large p{color:#374151;font-size:1rem;line-height:1.6}.app-features ul{list-style:none;padding:0}.app-features li{color:#374151;padding:8px 0 8px 20px;position:relative}.app-features li:before{color:#10b981;content:"✓";font-weight:700;left:0;position:absolute}.tags-container{gap:8px}.tag{background:#f3f4f6;color:#374151;font-size:.9rem}.review-summary{background:#f9fafb;border-radius:12px;padding:20px}.rating-breakdown{grid-gap:8px;display:grid;gap:8px}.rating-bar{align-items:center;display:flex;font-size:.9rem;gap:10px}.rating-bar span:first-child{color:#374151;min-width:60px}.rating-bar span:last-child{color:#6b7280;min-width:40px;text-align:right}.bar-container{background:#e5e7eb;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.bar-fill{background:#fbbf24}.reviews-content{grid-gap:20px;display:grid;gap:20px}.reviews-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.reviews-header h3{color:#1f2937;font-size:1.3rem;font-weight:600}.write-review-btn{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:background-color .3s ease}.write-review-btn:hover{background:#2563eb}.reviews-list{grid-gap:20px;display:grid;gap:20px}.review-item{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;transition:box-shadow .3s ease}.review-item:hover{box-shadow:0 4px 6px -1px #0000001a}.review-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.reviewer-info{display:flex;flex-direction:column;gap:4px}.reviewer-name{color:#1f2937;font-weight:600}.review-date{color:#6b7280;font-size:.8rem}.review-rating{font-size:1.1rem}.review-text{color:#374151;line-height:1.5;margin-bottom:15px}.review-footer{display:flex;justify-content:flex-end}.helpful-btn{background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.8rem;padding:6px 12px;transition:all .3s ease}.helpful-btn:hover{background:#e5e7eb}.no-reviews{color:#6b7280;padding:40px 20px;text-align:center}.details-content{grid-gap:30px;display:grid;gap:30px}.app-details-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.detail-item{background:#f9fafb;border-radius:8px;padding:15px}.detail-item h4{color:#6b7280;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.detail-item p{color:#1f2937;font-size:1rem;font-weight:500}.grade-levels h4{color:#6b7280;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.grade-tags{display:flex;flex-wrap:wrap;gap:8px}.grade-tag{background:#e0e7ff;border-radius:20px;color:#3730a3;font-size:.9rem;font-weight:500;padding:6px 12px}.requirements h4{color:#6b7280;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.requirements p{color:#374151;line-height:1.5}.review-form-modal{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.review-form-content{background:#fff;border-radius:12px;max-height:80vh;max-width:500px;overflow-y:auto;padding:30px;width:90%}.review-form-content h3{color:#1f2937;font-size:1.5rem;font-weight:600;margin-bottom:20px}.rating-input,.review-text-input{margin-bottom:20px}.rating-input label,.review-text-input label{color:#374151;display:block;font-weight:600;margin-bottom:8px}.star-rating{display:flex;gap:8px}.star{background:none;border:none;cursor:pointer;font-size:1.5rem;transition:transform .2s ease}.star:hover{transform:scale(1.1)}.star.filled{color:#fbbf24}.review-text-input textarea{border:1px solid #d1d5db;border-radius:8px;font-size:1rem;outline:none;padding:12px;resize:vertical;transition:border-color .3s ease;width:100%}.review-text-input textarea:focus{border-color:#3b82f6}.review-form-actions{display:flex;gap:12px;justify-content:flex-end}.cancel-btn,.submit-review-btn{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .3s ease}.submit-review-btn{background:#3b82f6;color:#fff}.submit-review-btn:hover{background:#2563eb}.cancel-btn{background:#6b7280}.cancel-btn:hover{background:#4b5563}.error-container,.loading-container{padding:60px 20px;text-align:center}.loading-spinner{border:4px solid #f3f4f6;border-top-color:#3b82f6;margin:0 auto 20px}.error-container h3{color:#dc2626;margin-bottom:10px}.error-container button{background:#3b82f6;margin-top:15px}@media (max-width:768px){.app-details{padding:15px}.app-overview{padding:20px}.app-header{align-items:center;flex-direction:column;text-align:center}.app-header-info h1{font-size:2rem}.app-actions-large{flex-direction:row;width:100%}.install-btn-large,.review-btn{flex:1 1}.app-details-tabs{flex-direction:column}.app-details-tabs .tab{border-bottom:none;border-radius:6px;margin-bottom:5px}.app-details-tabs .tab.active{background:#3b82f6;color:#fff}.app-details-grid{grid-template-columns:1fr}.review-form-content{margin:20px;padding:20px}}@media (max-width:480px){.app-header-info h1{font-size:1.5rem}.app-meta-large{align-items:flex-start;flex-direction:column}.app-stats-large{flex-direction:column;gap:8px}.reviews-header{align-items:flex-start;flex-direction:column;gap:15px}}.api-keys-module{margin:0 auto;max-width:1200px;padding:20px}.back-btn,.create-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .2s}.create-btn{background:#3b82f6;border-color:#3b82f6;color:#fff}.create-btn:hover:not(:disabled){background:#2563eb}.create-btn:disabled{cursor:not-allowed;opacity:.5}.message{border-radius:6px;margin-bottom:20px;padding:12px 16px}.message.success{background:#d1fae5;border:1px solid #6ee7b7;color:#065f46}.message.error{background:#fee2e2;border:1px solid #fca5a5;color:#991b1b}.create-key-form{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:30px;padding:20px}.create-key-form h3{color:#1f2937;margin-bottom:20px;margin-top:0}.form-group{margin-bottom:15px}.form-group label{margin-bottom:5px}.form-group input{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:10px;width:100%}.form-actions{gap:10px;margin-top:20px}.form-actions button{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;padding:10px 20px}.form-actions button:first-child{background:#3b82f6;border-color:#3b82f6}.form-actions button:first-child:hover:not(:disabled){background:#2563eb}.form-actions button:disabled{cursor:not-allowed;opacity:.5}.empty-state p{color:#6b7280;margin-bottom:20px}.empty-state button{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;padding:10px 20px}.api-keys-list{display:flex;flex-direction:column;gap:20px}.api-key-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.api-key-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.api-key-header h3{color:#1f2937;font-size:18px;margin:0}.status-badge{border-radius:12px}.status-badge.active{background:#d1fae5;color:#065f46}.status-badge.revoked{background:#fee2e2;color:#991b1b}.api-key-info{margin-bottom:15px}.api-key-value{align-items:center;display:flex;font-family:Courier New,monospace;font-size:14px;gap:10px;margin-bottom:10px}.key-prefix{color:#6b7280}.key-suffix{color:#1f2937}.key-masked{color:#9ca3af}.copy-key-btn,.toggle-key-btn{background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#374151;cursor:pointer;font-size:12px;padding:4px 8px}.copy-key-btn:hover,.toggle-key-btn:hover{background:#f9fafb}.api-key-meta{color:#6b7280;display:flex;font-size:12px;gap:20px}.api-key-actions{border-top:1px solid #e5e7eb;display:flex;gap:10px;padding-top:15px}.api-key-actions button{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.api-key-actions button:hover:not(:disabled){background:#f9fafb}.api-key-actions button.danger{border-color:#fca5a5;color:#dc2626}.api-key-actions button.danger:hover:not(:disabled){background:#fee2e2}.api-key-actions button:disabled{cursor:not-allowed;opacity:.5}.app-analytics-module{margin:0 auto;max-width:1400px;padding:20px}.analytics-controls{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;flex-wrap:wrap;gap:20px;margin-bottom:30px;padding:20px}.app-selector,.date-range-selector{align-items:center;display:flex;gap:10px}.app-selector label,.date-range-selector label{color:#374151;font-size:14px;font-weight:500;white-space:nowrap}.app-selector select{min-width:200px}.app-selector select,.date-range-selector input{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:14px;padding:8px 12px}.empty-state{background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px}.analytics-dashboard{display:flex;flex-direction:column;gap:30px}.metrics-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.metric-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.metric-card h4{color:#6b7280;font-size:14px;font-weight:500;letter-spacing:.5px;margin:0 0 10px;text-transform:uppercase}.metric-value{color:#1f2937;font-size:32px;font-weight:700}.charts-section{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.chart-placeholder{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px}.chart-placeholder h3{color:#1f2937;font-size:18px;margin-bottom:10px;margin-top:0}.chart-placeholder>p{color:#9ca3af;font-size:14px;margin-bottom:15px}.chart-data{display:flex;flex-direction:column;gap:8px}.chart-item{background:#f9fafb;border-radius:4px;color:#374151;display:flex;font-size:14px;justify-content:space-between;padding:8px 12px}.chart-item span:first-child{color:#6b7280}.chart-item span:last-child{color:#1f2937;font-weight:500}@media (max-width:768px){.analytics-controls{flex-direction:column}.app-selector,.date-range-selector{align-items:flex-start;flex-direction:column}.charts-section,.metrics-grid{grid-template-columns:1fr}}.developer-portal{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.portal-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.portal-header h1{color:#1f2937;font-size:2rem;font-weight:700;margin:0}.back-button{background:#6b7280;padding:10px 20px}.back-button:hover{background:#4b5563}.developer-info{align-items:center;display:flex;gap:15px}.developer-info span{color:#6b7280;font-size:14px}.status.pending{color:#92400e}.status.verified{background:#d1fae5;color:#065f46}.status.rejected{color:#991b1b}.portal-tabs{border-bottom:1px solid #e5e7eb;display:flex;gap:10px;margin-bottom:30px}.portal-tabs button{background:none;border:none;border-bottom:3px solid #0000;color:#6b7280;cursor:pointer;font-size:16px;font-weight:500;padding:15px 25px;transition:all .2s}.portal-tabs button:hover{color:#374151}.portal-tabs button.active{border-bottom-color:#7c3aed;color:#7c3aed}.error-message{justify-content:space-between}.error-message button{background:none;border:none;color:#991b1b;cursor:pointer;font-size:18px}.dashboard-content{grid-gap:30px;display:grid;gap:30px}.stat-card{box-shadow:0 4px 6px -1px #0000001a;padding:25px}.stat-card h3{margin:0 0 15px}.stat-number{font-size:2.5rem;margin:0}.quick-actions{box-shadow:0 4px 6px -1px #0000001a;padding:25px}.quick-actions h3{color:#1f2937;font-size:1.25rem}.action-button{background:#7c3aed;color:#fff;font-weight:600;margin-bottom:10px;margin-right:15px;transition:background-color .2s}.action-button:hover{background:#6d28d9}.apps-content{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;overflow:hidden}.apps-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:25px}.apps-header h3{color:#1f2937;font-size:1.25rem;margin:0}.add-app-button{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:background-color .2s}.add-app-button:hover{background:#059669}.apps-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));padding:25px}.app-card{background:#f9fafb;transition:transform .2s,box-shadow .2s}.app-card:hover{box-shadow:0 10px 25px -3px #0000001a;transform:translateY(-2px)}.app-header{align-items:flex-start;margin-bottom:15px}.app-header h4{color:#1f2937;font-size:1.1rem;font-weight:600;margin:0}.status-badge{color:#fff;padding:4px 12px;text-transform:uppercase}.app-description{font-size:14px;line-height:1.5}.app-description,.app-stats{color:#6b7280;margin-bottom:15px}.app-stats{display:flex;font-size:12px;gap:15px}.app-actions{gap:10px}.app-actions button{background:#7c3aed;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;padding:8px 16px;transition:background-color .2s}.app-actions button:hover{background:#6d28d9}.app-actions button.delete{background:#ef4444}.app-actions button.delete:hover{background:#dc2626}.analytics-content{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;padding:25px}.analytics-content h3{color:#1f2937;font-size:1.25rem;margin:0 0 25px}.analytics-grid{grid-gap:20px;display:grid;gap:20px}.analytics-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.analytics-card h4{color:#1f2937;font-size:1rem;margin:0 0 15px}.metric{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:10px 0}.metric:last-child{border-bottom:none}.metric span:first-child{color:#6b7280;font-size:14px}.metric span:last-child{color:#1f2937;font-weight:600}.registration-form{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;margin:0 auto;max-width:600px;padding:40px}.registration-form h2{color:#1f2937;font-size:1.5rem;margin:0 0 10px}.registration-form p{color:#6b7280;line-height:1.6;margin-bottom:30px}.form-group input,.form-group select,.form-group textarea{border-radius:8px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#7c3aed;box-shadow:0 0 0 3px #7c3aed1a}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.submit-button{background:#7c3aed;padding:15px 30px;transition:background-color .2s;width:100%}.submit-button:hover:not(:disabled){background:#6d28d9}.submit-button:disabled{background:#9ca3af}.modal{box-shadow:0 20px 25px -5px #0000001a;max-width:600px}.modal-header{padding:25px}.modal-header h3{font-size:1.25rem}.modal-header button{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;width:30px}.modal form{padding:25px}.form-actions{border-top:1px solid #e5e7eb;gap:15px;justify-content:flex-end;padding-top:20px}.form-actions button{border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .2s}.form-actions button:first-child{background:#6b7280;border:none;color:#fff}.form-actions button:first-child:hover{background:#4b5563}.form-actions button:last-child{background:#7c3aed;border:none;color:#fff}.form-actions button:last-child:hover:not(:disabled){background:#6d28d9}.form-actions button:last-child:disabled{background:#9ca3af;cursor:not-allowed}.loading{align-items:center;display:flex;font-size:18px;height:200px;justify-content:center}.api-content{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;padding:25px}.api-tabs{border-bottom:1px solid #e5e7eb;display:flex;gap:10px;margin-bottom:20px;padding-bottom:10px}.api-tabs button{background:none;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .2s}.api-tabs button:hover{color:#374151}.api-tabs button.active{border-bottom-color:#7c3aed;color:#7c3aed}.revenue-content{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;padding:25px}.revenue-content h3{color:#1f2937;font-size:1.25rem;margin:0 0 25px}.revenue-dashboard{display:flex;flex-direction:column;gap:30px}.revenue-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.revenue-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:12px;padding:25px;text-align:center}.revenue-card h4{color:#6b7280;font-size:14px;font-weight:600;margin:0 0 15px;text-transform:uppercase}.revenue-amount{color:#10b981;font-size:2.5rem;font-weight:700;margin:0}.revenue-actions{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;justify-content:center;padding:20px}.payout-button{background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:background-color .2s}.payout-button:hover:not(:disabled){background:#059669}.payout-button:disabled{background:#9ca3af;cursor:not-allowed;opacity:.5}.revenue-history{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:20px}.revenue-history h4{color:#1f2937;font-size:1rem;margin:0 0 15px}.history-list{display:flex;flex-direction:column;gap:10px}.history-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;display:flex;font-size:14px;justify-content:space-between;padding:12px}.history-item span{color:#6b7280}.history-item .amount{color:#10b981;font-weight:600}.settings-content{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 4px 6px -1px #0000001a;padding:25px}.settings-content h3{color:#1f2937;font-size:1.25rem;margin:0 0 25px}.settings-sections{display:flex;flex-direction:column;gap:30px}.settings-section{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:25px}.settings-section h4{color:#1f2937;font-size:1rem;font-weight:600;margin:0 0 20px}.settings-section .form-group{margin-bottom:15px}.settings-section .form-group label{align-items:center;cursor:pointer;display:flex;gap:10px}.settings-section .form-group input[type=checkbox]{margin:0;width:auto}.settings-section .form-group input[type=email],.settings-section .form-group input[type=text]{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#6b7280;padding:10px;width:100%}.settings-section .form-group input:disabled{background:#f3f4f6;cursor:not-allowed}.secondary-button{background:#6b7280;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s}.secondary-button:hover{background:#4b5563}.empty-state{color:#9ca3af;font-style:italic;padding:40px}@media (max-width:768px){.developer-portal{padding:15px}.portal-header{align-items:flex-start;flex-direction:column;gap:15px}.portal-tabs{flex-wrap:wrap}.portal-tabs button{flex:1 1;font-size:14px;min-width:120px;padding:12px 15px}.apps-grid,.form-row,.revenue-stats,.stats-grid{grid-template-columns:1fr}.modal{margin:20px;width:95%}}.admin-review-system{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.admin-review-system .header{align-items:center;display:flex;gap:20px;margin-bottom:30px}.admin-review-system .back-btn{background:#6b7280;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:background-color .2s}.admin-review-system .back-btn:hover{background:#4b5563}.admin-review-system h1{color:#1f2937;font-size:28px;font-weight:600;margin:0}.error-message{font-size:14px}.stats-overview{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.stat-card{box-shadow:0 2px 4px #0000001a}.stat-card h3{color:#6b7280;font-size:14px;font-weight:500;letter-spacing:.5px;margin:0 0 10px;text-transform:uppercase}.stat-number{color:#1f2937;font-size:32px;font-weight:700}.stat-number.approved{color:#059669}.stat-number.rejected{color:#dc2626}.tab{background:none;border:none;border-bottom:3px solid #0000;color:#6b7280;cursor:pointer;font-size:16px;font-weight:500;padding:12px 24px;transition:all .2s}.tab:hover{color:#374151}.tab.active{border-bottom-color:#3b82f6;color:#3b82f6}.content{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.apps-list{padding:20px}.bulk-actions{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:20px;padding:16px}.empty-state{color:#6b7280;padding:60px 20px;text-align:center}.empty-state p{font-size:16px;margin:0}.app-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:20px;padding:20px;transition:box-shadow .2s}.app-card:hover{box-shadow:0 4px 8px #0000001a}.app-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.app-header h3{color:#1f2937;font-size:18px;font-weight:600;margin:0}.status{font-weight:500;letter-spacing:.5px}.status.pending{background:#fef3c7;color:#d97706}.status.approved{background:#d1fae5;color:#059669}.status.rejected{background:#fee2e2;color:#dc2626}.status.revision{background:#dbeafe;color:#2563eb}.app-details{margin-bottom:16px}.app-details p{color:#374151;font-size:14px;line-height:1.5;margin:8px 0}.app-details strong{color:#1f2937;font-weight:600}.app-actions{display:flex;flex-wrap:wrap;gap:12px}.btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;justify-content:center;padding:8px 16px;text-decoration:none;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.btn-success{background:#059669;color:#fff}.btn-success:hover:not(:disabled){background:#047857}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c}.review-form{margin:0 auto;max-width:600px;padding:30px}.review-form h3{color:#1f2937;font-size:20px;font-weight:600;margin:0 0 24px}.form-group input,.form-group select,.form-group textarea{border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:14px;padding:12px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-group textarea{min-height:100px;resize:vertical}.form-actions{display:flex;gap:12px}.form-actions .btn{flex:1 1;font-size:16px;padding:12px 24px}@media (max-width:768px){.admin-review-system{padding:15px}.admin-review-system .header{align-items:flex-start;flex-direction:column;gap:15px}.stats-overview{gap:15px;grid-template-columns:repeat(2,1fr)}.tabs{flex-direction:column;gap:0}.tab{border-bottom:1px solid #e5e7eb;border-radius:0}.tab.active{border-bottom-color:#3b82f6}.app-header{align-items:flex-start;gap:10px}.app-actions,.app-header,.form-actions{flex-direction:column}.review-form{padding:20px}}@media (max-width:480px){.stats-overview{grid-template-columns:1fr}.stat-card{padding:15px}.stat-number{font-size:28px}}.billing-dashboard{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.billing-dashboard .header{align-items:center;display:flex;gap:20px;margin-bottom:30px}.billing-dashboard .back-btn{background:#6b7280;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:background-color .2s}.billing-dashboard .back-btn:hover{background:#4b5563}.billing-dashboard h1{color:#1f2937;font-size:28px;font-weight:600;margin:0}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.loading{font-size:16px}.tabs{border-bottom:2px solid #e5e7eb;display:flex;gap:10px;margin-bottom:30px;padding-bottom:10px}.tabs button{background:none;border:none;border-radius:8px;color:#6b7280;cursor:pointer;font-size:14px;font-weight:500;padding:12px 20px;transition:all .2s}.tabs button:hover{background:#f3f4f6;color:#374151}.tabs button.active{background:#3b82f6;color:#fff}.overview-tab{display:flex;flex-direction:column;gap:30px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.stat-card{border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000001a;padding:24px}.stat-card h3{color:#374151;font-size:16px;font-weight:600;margin:0 0 16px}.stat-value{color:#1f2937;font-size:32px;margin-bottom:8px}.stat-detail{color:#6b7280;font-size:14px}.quick-actions{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.quick-actions h3{color:#374151;font-size:18px;font-weight:600;margin:0 0 20px}.action-buttons{gap:12px}.action-btn{transition:all .2s}.action-btn.primary{background:#3b82f6}.action-btn.primary:hover{background:#2563eb}.action-btn.secondary{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.action-btn.secondary:hover{background:#e5e7eb}.plans-tab h2{color:#1f2937;font-size:24px;font-weight:600;margin:0 0 24px}.plan-filters{display:flex;gap:10px;margin-bottom:30px}.filter-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.filter-btn:hover{background:#f3f4f6}.filter-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.plans-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.plan-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px;transition:transform .2s,box-shadow .2s}.plan-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.plan-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.plan-header h3{color:#1f2937;font-size:20px;font-weight:600;margin:0}.plan-type{background:#f3f4f6;border-radius:4px;color:#374151;font-size:12px;font-weight:500;padding:4px 8px;text-transform:uppercase}.plan-price{margin-bottom:16px}.price{color:#1f2937;font-size:32px;font-weight:700}.period{color:#6b7280;font-size:16px}.plan-tokens{color:#059669;font-weight:600;margin-bottom:20px}.plan-features{margin-bottom:24px}.feature{display:flex;font-size:14px;justify-content:space-between;margin-bottom:8px}.feature-key{color:#6b7280}.feature-value{color:#374151;font-weight:500}.subscribe-btn{background:#059669;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px;transition:background-color .2s;width:100%}.subscribe-btn:hover{background:#047857}.subscribe-btn:disabled{background:#9ca3af;cursor:not-allowed}.subscriptions-tab h2{color:#1f2937;font-size:24px;font-weight:600;margin:0 0 24px}.no-subscriptions{color:#6b7280;padding:40px;text-align:center}.no-subscriptions p{font-size:16px;margin:0 0 20px}.subscriptions-list{display:flex;flex-direction:column;gap:20px}.subscription-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.subscription-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.subscription-header h3{color:#1f2937;font-size:18px;font-weight:600;margin:0}.status{border-radius:20px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.status.active{background:#dcfce7;color:#166534}.status.cancelled{background:#fef2f2;color:#dc2626}.status.expired{background:#fef3c7;color:#d97706}.subscription-details{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px}.detail{align-items:center;display:flex;justify-content:space-between}.label{color:#6b7280;font-size:14px}.value{color:#374151;font-weight:500}.subscription-actions{display:flex;justify-content:flex-end}.cancel-btn{background:#dc2626;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s}.cancel-btn:hover{background:#b91c1c}.cancel-btn:disabled{background:#9ca3af;cursor:not-allowed}.tokens-tab h2{color:#1f2937;font-size:24px;font-weight:600;margin:0 0 24px}.token-balance-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:30px;padding:24px}.token-balance-card h3{color:#374151;font-size:18px;font-weight:600;margin:0 0 16px}.balance-display{align-items:baseline;display:flex;gap:8px;margin-bottom:20px}.balance-amount{color:#1f2937;font-size:48px;font-weight:700}.balance-unit{color:#6b7280;font-size:20px;font-weight:500}.balance-details{display:flex;gap:24px}.balance-detail{display:flex;flex-direction:column;gap:4px}.balance-detail span:first-child{color:#6b7280;font-size:14px}.balance-detail span:last-child{color:#374151;font-weight:500}.token-purchase-section h3{color:#374151;font-size:18px;font-weight:600;margin:0 0 20px}.purchase-options{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.purchase-option{background:#fff;border:2px solid #e5e7eb;border-radius:12px;cursor:pointer;padding:20px;text-align:center;transition:all .2s}.purchase-option:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626;transform:translateY(-2px)}.option-tokens{color:#1f2937;font-size:20px;font-weight:600;margin-bottom:8px}.option-price{color:#059669;font-size:18px;font-weight:600}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:24px}.modal-header h3{color:#1f2937;font-size:20px;font-weight:600;margin:0}.close-btn{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;width:30px}.close-btn:hover{color:#374151}.modal-content{padding:24px}.purchase-summary{background:#f9fafb;border-radius:8px;margin-bottom:20px;padding:16px}.summary-item{display:flex;justify-content:space-between;margin-bottom:8px}.summary-item:last-child{color:#059669;font-weight:600;margin-bottom:0}.form-group{margin-bottom:20px}.form-group label{color:#374151;font-weight:500}.form-group select{background:#fff;border:1px solid #d1d5db;border-radius:8px;font-size:14px;padding:12px;width:100%}.modal-actions{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:24px}.modal-actions .cancel-btn{background:#6b7280}.modal-actions .cancel-btn:hover{background:#4b5563}.confirm-btn{background:#059669;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:background-color .2s}.confirm-btn:hover{background:#047857}.confirm-btn:disabled{background:#9ca3af;cursor:not-allowed}@media (max-width:768px){.billing-dashboard{padding:16px}.billing-dashboard h1{font-size:24px}.tabs{flex-wrap:wrap}.tabs button{flex:1 1;min-width:120px}.plans-grid,.stats-grid{grid-template-columns:1fr}.purchase-options{grid-template-columns:repeat(2,1fr)}.action-buttons{flex-direction:column}.action-btn{width:100%}.subscription-details{grid-template-columns:1fr}.balance-details{flex-direction:column;gap:16px}.modal{margin:20px;width:95%}}.api-playground-module{margin:0 auto;max-width:1400px;padding:20px}.module-header{align-items:center;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:15px}.module-header h2{color:#1f2937;font-size:24px;margin:0}.back-btn{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;padding:10px 20px;transition:all .2s}.back-btn:hover{background:#f9fafb;border-color:#9ca3af}.error-message{background:#fee2e2;border:1px solid #fca5a5;border-radius:6px;color:#991b1b;padding:12px 16px}.playground-container{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;height:calc(100vh - 200px);min-height:600px}.request-panel,.response-panel{background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;flex-direction:column;overflow:hidden;padding:20px}.request-panel{display:flex;flex-direction:column;gap:20px}.request-config{align-items:center;display:flex;gap:10px}.method-select{background:#fff;color:#374151;cursor:pointer;font-weight:500}.endpoint-input,.method-select{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:10px}.endpoint-input{flex:1 1}.test-btn{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.test-btn:hover:not(:disabled){background:#2563eb}.test-btn:disabled{cursor:not-allowed;opacity:.5}.request-body{display:flex;flex:1 1;flex-direction:column;gap:20px;overflow-y:auto}.request-section{display:flex;flex-direction:column;gap:8px}.request-section label{color:#374151;font-size:14px;font-weight:500}.code-textarea{background:#f9fafb;border:1px solid #d1d5db;border-radius:6px;font-family:Courier New,monospace;font-size:13px;padding:12px;resize:vertical;width:100%}.code-textarea:focus{background:#fff;border-color:#3b82f6;outline:none}.response-panel h3{color:#1f2937;font-size:18px;margin-bottom:15px;margin-top:0}.response-panel{display:flex;flex-direction:column}.response-content{background:#1f2937;border-radius:6px;color:#f9fafb;flex:1 1;font-family:Courier New,monospace;font-size:13px;line-height:1.6;margin:0;overflow:auto;padding:15px}.loading{color:#6b7280;padding:40px;text-align:center}.empty-response{align-items:center;color:#9ca3af;display:flex;flex:1 1;font-style:italic;justify-content:center}@media (max-width:1024px){.playground-container{grid-template-columns:1fr;height:auto;min-height:auto}.request-panel,.response-panel{min-height:400px}}.enotice-module{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0 auto;max-width:1200px;padding:20px}.enotice-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 15px #0000001a;color:#fff;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.enotice-header h1{font-size:24px;font-weight:600;margin:0}.back-button{transition:background-color .2s}.user-role{opacity:.9}.search-button{border-radius:6px;font-size:16px;padding:8px;transition:background-color .2s}.enotice-loading{align-items:center;color:#666;display:flex;flex-direction:column;height:400px;justify-content:center}@media (max-width:768px){.enotice-module{padding:15px}.enotice-header{flex-direction:column;gap:15px;text-align:center}.enotice-header h1{font-size:20px}.header-actions{justify-content:center;width:100%}}@media (max-width:480px){.enotice-header{padding:15px}.enotice-header h1{font-size:18px}.back-button{font-size:12px;padding:8px 12px}}.notice-list-container{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.filter-tabs{background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex}.filter-tab{background:none;border:none;border-bottom:3px solid #0000;color:#6c757d;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:15px 20px;transition:all .2s}.filter-tab:hover{background:#e9ecef;color:#495057}.filter-tab.active{background:#fff;border-bottom-color:#667eea;color:#667eea}.notices-list{padding:0}.no-notices{color:#6c757d;padding:60px 20px;text-align:center}.no-notices p{font-size:16px;margin:0}.notice-item{align-items:center;border-bottom:1px solid #e9ecef;cursor:pointer;display:flex;padding:20px;transition:background-color .2s}.notice-item:hover{background:#f8f9fa}.notice-item:last-child{border-bottom:none}.notice-content{cursor:pointer;flex:1 1}.notice-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.notice-title{color:#212529;font-size:16px;font-weight:600;line-height:1.4;margin:0}.notice-status{border-radius:20px;font-size:12px;font-weight:500;padding:4px 12px;text-transform:uppercase}.status-unsigned{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.status-signed{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.notice-meta{align-items:center;display:flex;gap:15px;margin-bottom:8px}.notice-date{color:#6c757d;font-size:13px}.notice-expired{color:#dc3545;font-size:12px;font-weight:500}.notice-preview{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#495057;display:-webkit-box;font-size:14px;line-height:1.5;overflow:hidden}.notice-actions{align-items:center;display:flex;flex-direction:column;gap:8px;margin-left:20px}.sign-button{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:background-color .2s;white-space:nowrap}.sign-button:hover{background:#5a6fd8}.signed-indicator{align-items:center;color:#28a745;display:flex;font-size:12px;font-weight:500;gap:4px}@media (max-width:768px){.filter-tabs{flex-wrap:wrap}.filter-tab{font-size:13px;min-width:80px;padding:12px 15px}.notice-item{align-items:stretch;flex-direction:column;gap:15px}.notice-actions{flex-direction:row;justify-content:center;margin-left:0}.notice-header{align-items:flex-start;flex-direction:column;gap:8px}.notice-meta{flex-wrap:wrap;gap:10px}}@media (max-width:480px){.notice-item{padding:15px}.notice-title{font-size:15px}.filter-tab{font-size:12px;padding:10px 12px}.sign-button{font-size:12px;padding:6px 12px}}.notice-detail-container{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.notice-detail-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;padding:20px}.notice-detail-header h2{color:#495057;font-size:18px;margin:0 0 0 15px}.notice-detail-content{padding:30px}.notice-detail-title{border-bottom:2px solid #e9ecef;margin-bottom:30px;padding-bottom:20px}.notice-detail-title h1{color:#212529;font-size:24px;line-height:1.3;margin:0 0 15px}.notice-detail-meta{align-items:center;display:flex;flex-wrap:wrap;gap:20px}.notice-id{background:#667eea;border-radius:20px;color:#fff;font-size:12px;font-weight:600;padding:6px 12px}.notice-dates{color:#6c757d;font-size:14px;font-weight:500}.notice-detail-body{margin-bottom:30px}.notice-detail-body p{color:#495057;font-size:16px;line-height:1.7;margin:0}.actions-section,.signing-status-section,.student-info-section,.target-audience-section{background:#f8f9fa;border-left:4px solid #667eea;border-radius:8px;margin-bottom:25px;padding:20px}.actions-section h3,.signing-status-section h3,.student-info-section h3,.target-audience-section h3{color:#495057;font-size:16px;font-weight:600;margin:0 0 15px}.student-details{display:flex;flex-direction:column;gap:8px}.student-class,.student-name{color:#495057;font-size:14px}.student-class strong,.student-name strong{color:#212529}.signing-status{border-radius:20px;display:inline-block;font-size:14px;font-weight:600;margin-bottom:15px;padding:8px 16px;text-transform:uppercase}.signing-status.status-unsigned{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.signing-status.status-signed{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.signing-details p{color:#495057;font-size:14px;margin:5px 0}.signing-details strong{color:#212529}.target-audience-section p{color:#495057;font-size:14px;margin:0}.actions-list{display:flex;flex-direction:column;gap:15px}.action-item{background:#fff;border:1px solid #e9ecef;border-radius:6px;padding:15px}.action-header{align-items:center;display:flex;gap:10px;margin-bottom:10px}.action-title{color:#212529;font-size:14px;font-weight:600}.required-badge{background:#dc3545;border-radius:12px;color:#fff;font-size:10px;font-weight:600;padding:2px 8px;text-transform:uppercase}.action-options{display:flex;flex-wrap:wrap;gap:8px}.action-option{background:#e9ecef;border-radius:15px;color:#495057;font-size:12px;font-weight:500;padding:4px 12px}.sign-action-section{background:#f8f9fa;border-radius:8px;margin-top:30px;padding:20px;text-align:center}.sign-notice-button{background:#667eea;border:none;border-radius:8px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:15px 30px;transition:background-color .2s}.sign-notice-button:hover{background:#5a6fd8;box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}@media (max-width:768px){.notice-detail-content{padding:20px}.notice-detail-title h1{font-size:20px}.notice-detail-meta{align-items:flex-start;flex-direction:column;gap:10px}.actions-section,.signing-status-section,.student-info-section,.target-audience-section{padding:15px}.sign-notice-button{font-size:14px;padding:12px 24px}}@media (max-width:480px){.notice-detail-content{padding:15px}.notice-detail-title h1{font-size:18px}.notice-detail-header{padding:15px}.notice-detail-header h2{font-size:16px}.actions-section,.signing-status-section,.student-info-section,.target-audience-section{padding:12px}}.notice-reply-container{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.notice-reply-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;padding:20px}.notice-reply-header h2{color:#495057;font-size:18px;margin:0 0 0 15px}.notice-reply-content{padding:30px}.reply-notice-title{border-bottom:2px solid #e9ecef;margin-bottom:30px;padding-bottom:20px}.reply-notice-title h3{color:#212529;font-size:20px;line-height:1.3;margin:0}.reply-form{max-width:600px}.form-label{color:#212529;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.required{color:#dc3545;margin-left:4px}.radio-group{display:flex;flex-direction:column;gap:12px}.radio-option{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:10px;padding:10px;transition:background-color .2s}.radio-option:hover{background:#f8f9fa}.radio-option input[type=radio]{accent-color:#667eea;cursor:pointer;height:18px;width:18px}.radio-label{cursor:pointer;-webkit-user-select:none;user-select:none}.radio-label,.text-input{color:#495057;font-size:14px}.text-input{background:#fff;border:2px solid #e9ecef;border-radius:8px;font-family:inherit;padding:12px 16px;resize:vertical;transition:border-color .2s,box-shadow .2s;width:100%}.text-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.text-input::placeholder{color:#adb5bd}textarea.text-input{min-height:80px}.error-message{align-items:center;display:flex;font-size:12px;gap:4px;margin-top:5px}.error-message:before{content:"⚠";font-size:14px}.submit-instructions{background:#e7f3ff;border-left:4px solid #007bff;border-radius:8px;margin:30px 0;padding:15px 20px}.submit-instructions p{color:#0056b3;font-size:14px;font-weight:500;margin:0}.form-actions{margin-top:30px;text-align:center}.submit-button{background:#667eea;border:none;border-radius:8px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;min-width:120px;padding:15px 40px;transition:all .2s}.submit-button:hover{background:#5a6fd8;box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.submit-button:active{transform:translateY(0)}.submit-button:disabled{background:#6c757d;box-shadow:none;cursor:not-allowed;transform:none}@media (max-width:768px){.notice-reply-content{padding:20px}.reply-notice-title h3{font-size:18px}.submit-button{font-size:14px;max-width:300px;padding:12px 30px;width:100%}.radio-group{gap:10px}.radio-option{padding:8px}.text-input{font-size:13px;padding:10px 14px}}@media (max-width:480px){.notice-reply-content{padding:15px}.reply-notice-title h3{font-size:16px}.notice-reply-header{padding:15px}.notice-reply-header h2{font-size:16px}.form-group{margin-bottom:20px}.submit-instructions{padding:12px 15px}.submit-instructions p{font-size:13px}.radio-option{padding:6px}.radio-option input[type=radio]{height:16px;width:16px}.radio-label{font-size:13px}}.library-module{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0 auto;max-width:1400px;padding:20px}.library-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;box-shadow:0 8px 25px #00000026;color:#fff;display:flex;justify-content:space-between;margin-bottom:30px;padding:25px}.library-header h1{font-size:28px;font-weight:600;margin:0;text-shadow:0 2px 4px #0003}.back-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:10px;font-weight:500;padding:12px 20px}.back-button:hover{background:#ffffff4d;box-shadow:0 4px 15px #0003;transform:translateY(-2px)}.header-actions{align-items:center;display:flex;gap:15px}.tenant-selector{align-items:center;display:flex;gap:10px}.refresh-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:12px;padding:8px 12px;transition:all .3s ease}.refresh-button:hover{background:#ffffff4d;transform:translateY(-1px)}.tenant-select{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 12px;transition:all .3s ease}.tenant-select:hover{background:#ffffff4d}.tenant-select option{background:#667eea;color:#fff}.user-role{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:20px;font-size:14px;font-weight:500;padding:8px 16px}.search-button{align-items:center;background:#fff3;border-radius:50%;display:flex;font-size:18px;height:40px;justify-content:center;padding:10px;width:40px}.search-button:hover{background:#ffffff4d;transform:scale(1.1)}.library-navigation{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:30px}.nav-button{border-radius:12px;box-shadow:0 2px 8px #00000014;font-size:15px;min-width:140px;padding:15px 25px}.library-content{background:#fff;border-radius:15px;box-shadow:0 4px 20px #00000014;min-height:600px;overflow:hidden}@media (max-width:768px){.library-module{padding:15px}.library-header{flex-direction:column;gap:20px;padding:20px;text-align:center}.library-header h1{font-size:24px}.library-navigation{justify-content:center}.nav-button{font-size:14px;min-width:120px;padding:12px 20px}}@media (max-width:480px){.library-navigation{align-items:center;flex-direction:column}.nav-button{max-width:300px;width:100%}}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:40px;margin-bottom:20px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#dc3545;font-size:16px;margin-bottom:20px;max-width:500px;padding:15px}.error-container button{background:#dc3545;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:background .3s ease}.error-container button:hover{background:#c82333}.library-catalog{padding:30px}.catalog-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.catalog-header h2{color:#212529;font-size:24px;margin:0}.catalog-stats{color:#6c757d;display:flex;font-size:14px;gap:20px}.catalog-stats span{background:#f8f9fa;border:1px solid #e9ecef;border-radius:20px;padding:8px 16px}.catalog-controls{flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:25px}.catalog-controls,.search-form{align-items:center;display:flex}.search-form{flex:1 1;gap:15px;max-width:500px}.search-input{font-size:14px}.search-button:hover{box-shadow:0 4px 12px #667eea4d;transform:translateY(-1px)}.catalog-table{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;overflow:hidden}.catalog-table table{border-collapse:collapse;width:100%}.catalog-table th{background:#f8f9fa;border-bottom:2px solid #e9ecef;color:#495057;cursor:pointer;font-weight:600;padding:18px 16px;text-align:left;transition:background-color .3s ease;-webkit-user-select:none;user-select:none}.catalog-table th:hover{background:#e9ecef}.catalog-table td{border-bottom:1px solid #f1f3f4;padding:16px;vertical-align:top}.call-number{background:#f8f9fa;border-radius:4px;color:#495057;font-size:13px;padding:4px 8px}.book-title .title-content{display:flex;flex-direction:column;gap:4px}.book-author .author-content{display:flex;flex-direction:column;gap:2px}.author-zh{color:#495057;font-weight:500}.author-en{color:#6c757d;font-size:13px;font-style:italic}.publisher{color:#495057;font-weight:500}.location,.publish-year{color:#6c757d;font-size:14px}.actions{text-align:center}.no-results h4{margin:20px 0 10px}.catalog-footer{border-top:1px solid #e9ecef;color:#6c757d;font-size:14px;margin-top:30px;padding-top:20px;text-align:center}.catalog-footer p{margin:5px 0}@media (max-width:1024px){.catalog-controls{align-items:stretch;flex-direction:column}.search-form{max-width:none}.filter-controls{justify-content:center}}@media (max-width:768px){.library-catalog{padding:20px}.catalog-header{flex-direction:column;gap:15px;text-align:center}.catalog-stats{flex-wrap:wrap;justify-content:center}.catalog-table{overflow-x:auto}.catalog-table table{min-width:800px}.catalog-table td,.catalog-table th{font-size:13px;padding:12px 8px}.title-en,.title-zh{font-size:14px}.status-badge{font-size:11px;min-width:50px;padding:4px 8px}}@media (max-width:480px){.library-catalog{padding:15px}.catalog-controls{gap:15px}.filter-controls,.search-form{flex-direction:column;gap:10px}.filter-select,.sort-select{width:100%}}.book-detail{padding:30px}.book-detail-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;margin-bottom:30px;padding-bottom:20px}.book-detail-header h2{color:#495057;font-size:22px;margin:0 0 0 20px}.book-detail-content{grid-gap:40px;display:grid;gap:40px;grid-template-columns:1fr 2fr;margin-bottom:40px}.book-main-info{display:flex;flex-direction:column;gap:30px}.book-cover-section{position:relative}.book-cover{box-shadow:0 8px 25px #00000026;height:auto}.book-cover,.book-cover-placeholder{border-radius:12px;max-width:300px;width:100%}.book-cover-placeholder{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);box-shadow:0 8px 25px #0000001a;display:flex;flex-direction:column;height:400px;justify-content:center;text-align:center}.cover-icon{margin-bottom:15px}.cover-title{font-size:14px;line-height:1.4}.book-status{gap:8px;right:15px;top:15px}.status-badge{min-width:70px;padding:8px 16px}.book-info-section{display:flex;flex-direction:column;gap:25px}.book-title{font-size:32px;line-height:1.2;margin:0}.book-title-en{font-size:20px;font-weight:400;margin:0}.book-meta{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.meta-item{display:flex;flex-direction:column;gap:5px}.meta-label{color:#6c757d;font-size:14px;font-weight:500}.meta-value{color:#212529;font-size:16px;font-weight:600}.meta-value-en{color:#6c757d;font-size:14px;font-style:italic}.book-description h3{color:#495057;font-size:18px;margin:0 0 15px}.book-description p{color:#495057;font-size:15px;line-height:1.6;margin:0}.book-actions{display:flex;flex-wrap:wrap;gap:15px}.borrow-button,.reserve-button,.share-button{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:120px;padding:12px 24px;transition:all .3s ease}.borrow-button{background:#28a745;color:#fff}.borrow-button:hover{background:#218838;box-shadow:0 4px 15px #28a7454d;transform:translateY(-2px)}.reserve-button{background:#ffc107;color:#212529}.reserve-button:hover:not(:disabled){background:#e0a800;transform:translateY(-2px)}.reserve-button:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}.share-button{background:#17a2b8;color:#fff}.share-button:hover{background:#138496;box-shadow:0 4px 15px #17a2b84d;transform:translateY(-2px)}.book-details-grid{grid-gap:30px;display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:40px}.detail-section h3{border-bottom:2px solid #e9ecef;color:#495057;font-size:18px;margin:0 0 20px;padding-bottom:10px}.detail-grid{grid-gap:15px;display:grid;gap:15px}.detail-item{align-items:center;border-bottom:1px solid #f1f3f4;display:flex;justify-content:space-between;padding:12px 0}.detail-label{color:#6c757d;font-size:14px;font-weight:500}.detail-value{color:#212529;font-size:14px;font-weight:600}.tags-container{display:flex;flex-wrap:wrap;gap:10px}.tag{background:#e9ecef;border-radius:20px;color:#495057;font-size:12px;font-weight:500;padding:6px 12px}.no-tags{color:#6c757d;font-size:14px;font-style:italic}.book-related{border-top:2px solid #e9ecef;padding-top:30px}.book-related h3{color:#495057;font-size:18px;margin:0 0 20px}.related-placeholder{background:#f8f9fa;border-radius:8px;color:#6c757d;font-style:italic;padding:40px 20px;text-align:center}@media (max-width:1024px){.book-detail-content{gap:30px;grid-template-columns:1fr}.book-cover-section{text-align:center}.book-cover,.book-cover-placeholder{margin:0 auto}.book-status{flex-direction:row;justify-content:center;margin-top:15px;position:static}}@media (max-width:768px){.book-detail{padding:20px}.book-title{font-size:24px}.book-title-en{font-size:16px}.book-meta{grid-template-columns:1fr}.book-actions{justify-content:center}.book-details-grid{gap:25px;grid-template-columns:1fr}.detail-item{align-items:flex-start;flex-direction:column;gap:5px}}@media (max-width:480px){.book-detail{padding:15px}.book-detail-header{flex-direction:column;gap:15px;text-align:center}.book-cover,.book-cover-placeholder{max-width:250px}.book-cover-placeholder{height:350px}.book-actions{align-items:center;flex-direction:column}.borrow-button,.reserve-button,.share-button{max-width:200px;width:100%}}.borrowing-system{padding:30px}.borrowing-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;margin-bottom:30px;padding-bottom:20px}.borrowing-header h2{color:#495057;font-size:22px;margin:0 0 0 20px}.borrowing-navigation{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:30px}.nav-button{background:#fff;border:2px solid #e9ecef;border-radius:10px;color:#495057;cursor:pointer;font-size:14px;font-weight:500;min-width:120px;padding:12px 20px;text-align:center;transition:all .3s ease}.nav-button:hover{border-color:#667eea;box-shadow:0 4px 15px #667eea26;color:#667eea;transform:translateY(-2px)}.nav-button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 4px 15px #667eea4d;color:#fff}.borrowing-content{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;margin-bottom:30px;padding:30px}.checkout-form h3,.overdue-list h3,.renew-form h3,.return-form h3{border-bottom:2px solid #e9ecef;color:#212529;font-size:20px;margin:0 0 25px;padding-bottom:15px}.form-group{margin-bottom:25px}.form-group label{color:#495057;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-select{background:#fff;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;font-size:14px;padding:12px 16px;transition:border-color .3s ease;width:100%}.form-select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.action-button{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:120px;padding:12px 24px;transition:all .3s ease}.checkout-button{background:#28a745;color:#fff}.checkout-button:hover:not(:disabled){background:#218838;box-shadow:0 4px 15px #28a7454d;transform:translateY(-2px)}.checkout-button:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}.borrowed-books{grid-gap:20px;display:grid;gap:20px}.borrowed-book-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;display:flex;justify-content:space-between;padding:20px;transition:all .3s ease}.borrowed-book-item:hover{background:#e9ecef;box-shadow:0 4px 15px #0000001a;transform:translateY(-2px)}.renewed-badge{background:#d4edda;color:#155724}.overdue-badge,.renewed-badge{border-radius:12px;display:inline-block;font-size:11px;font-weight:500;margin-left:10px;padding:4px 8px}.overdue-badge{background:#f8d7da;color:#721c24}.return-button{background:#dc3545;color:#fff}.return-button:hover:not(:disabled){background:#c82333;box-shadow:0 4px 15px #dc35454d;transform:translateY(-2px)}.renew-button{background:#17a2b8;color:#fff}.renew-button:hover:not(:disabled){background:#138496;box-shadow:0 4px 15px #17a2b84d;transform:translateY(-2px)}.renew-button:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed}.no-overdue{color:#6c757d;font-style:italic;padding:40px 20px;text-align:center}.overdue-books{grid-gap:20px;gap:20px}.overdue-book-item{background:#fff5f5;border:1px solid #fed7d7;border-radius:10px;padding:20px}.overdue-book-item .book-info h4{color:#c53030}.overdue-actions{display:flex;flex-wrap:wrap;gap:15px;margin-top:15px}.fine-button{background:#f56565;color:#fff}.fine-button:hover:not(:disabled){background:#e53e3e;box-shadow:0 4px 15px #f565654d;transform:translateY(-2px)}.borrowing-summary{grid-gap:20px;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:25px}.summary-item{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;padding:20px;text-align:center}.summary-label{margin-bottom:8px}.summary-value{font-size:24px}@media (max-width:768px){.borrowing-system{padding:20px}.borrowing-navigation{justify-content:center}.nav-button{font-size:13px;min-width:100px;padding:10px 16px}.borrowing-content{padding:20px}.borrowed-book-item{align-items:stretch;flex-direction:column;gap:15px}.book-info{text-align:center}.overdue-actions{justify-content:center}.borrowing-summary{gap:15px;grid-template-columns:repeat(2,1fr);padding:20px}}@media (max-width:480px){.borrowing-system{padding:15px}.borrowing-header{flex-direction:column;gap:15px;text-align:center}.borrowing-navigation{align-items:center;flex-direction:column}.nav-button{max-width:250px;width:100%}.borrowing-content{padding:15px}.form-group{margin-bottom:20px}.action-button{max-width:200px;width:100%}.borrowing-summary{gap:15px;grid-template-columns:1fr;padding:15px}}.reader-profile{padding:30px}.profile-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;margin-bottom:30px;padding-bottom:20px}.profile-header h2{color:#495057;font-size:22px;margin:0 0 0 20px}.profile-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}.tab-button{background:#fff;border:2px solid #e9ecef;border-radius:10px;color:#495057;cursor:pointer;font-size:14px;font-weight:500;min-width:100px;padding:12px 20px;text-align:center;transition:all .3s ease}.tab-button:hover{border-color:#667eea;box-shadow:0 4px 15px #667eea26;color:#667eea;transform:translateY(-2px)}.tab-button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 4px 15px #667eea4d;color:#fff}.profile-content{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:30px}.overview-section{display:flex;flex-direction:column;gap:30px}.reader-card{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:15px;box-shadow:0 4px 15px #0000001a;padding:25px}.card-header{gap:20px;margin-bottom:20px}.card-header,.card-photo{align-items:center;display:flex}.card-photo{background:#e9ecef;border-radius:50%;height:80px;justify-content:center;overflow:hidden;width:80px}.card-photo img{height:100%;object-fit:cover;width:100%}.photo-placeholder{align-items:center;color:#6c757d;display:flex;font-size:32px;height:100%;justify-content:center;width:100%}.card-info h3{color:#212529;font-size:24px;margin:0 0 5px}.english-name{color:#6c757d;font-size:16px;font-style:italic;margin:0 0 5px}.student-id{color:#495057;font-size:14px;font-weight:600;margin:0 0 5px}.class-info{color:#6c757d;font-size:14px;margin:0}.card-body{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.card-details .detail-item{align-items:center;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:10px 0}.card-details .label{color:#6c757d;font-size:14px;font-weight:500}.card-details .value{color:#212529;font-size:14px;font-weight:600}.status-badge{border-radius:20px;font-size:12px;font-weight:500;min-width:60px;padding:6px 12px}.status-badge.active{background:#d4edda;color:#155724}.status-badge.inactive{background:#f8d7da;color:#721c24}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 10px #00000014;padding:20px;text-align:center;transition:all .3s ease}.stat-card:hover{box-shadow:0 8px 25px #00000026;transform:translateY(-5px)}.stat-icon{font-size:32px;margin-bottom:15px}.stat-value{color:#212529;font-size:28px;font-weight:700;margin-bottom:5px}.stat-label{color:#6c757d;font-size:14px;font-weight:500}.quick-actions h4{border-bottom:2px solid #e9ecef;color:#495057;font-size:18px;margin:0 0 20px;padding-bottom:10px}.action-buttons{display:flex;flex-wrap:wrap;gap:15px}.action-btn{border-radius:8px;font-size:14px;font-weight:500;min-width:100px;padding:12px 20px}.action-btn.primary{background:#28a745;color:#fff}.action-btn.primary:hover{background:#218838;box-shadow:0 4px 15px #28a7454d;transform:translateY(-2px)}.action-btn.secondary{background:#17a2b8;color:#fff}.action-btn.secondary:hover{background:#138496;box-shadow:0 4px 15px #17a2b84d;transform:translateY(-2px)}.action-btn.warning{background:#ffc107;color:#212529}.action-btn.warning:hover{background:#e0a800;transform:translateY(-2px)}.action-btn.info{background:#6c757d;color:#fff}.action-btn.info:hover{background:#5a6268;transform:translateY(-2px)}.borrowings-section h3,.fines-section h3,.history-section h3{border-bottom:2px solid #e9ecef;color:#212529;font-size:20px;margin:0 0 25px;padding-bottom:15px}.no-borrowings,.no-fines,.no-history{color:#6c757d;font-style:italic;padding:40px 20px;text-align:center}.borrowings-list,.fines-list,.history-list{grid-gap:20px;display:grid;gap:20px}.borrowing-item,.fine-item,.history-item{background:#f8f9fa;border:1px solid #e9ecef;border-radius:10px;padding:20px;transition:all .3s ease}.borrowing-item:hover,.fine-item:hover,.history-item:hover{background:#e9ecef;box-shadow:0 4px 15px #0000001a;transform:translateY(-2px)}.borrowing-item.overdue{background:#fff5f5;border-color:#fed7d7}.borrowing-item.overdue .due-date{color:#c53030;font-weight:600}.book-info h4{color:#212529;font-size:16px;margin:0 0 10px}.book-info p{color:#6c757d;font-size:14px;margin:5px 0}.call-number{font-weight:600}.borrowing-actions,.fine-actions{display:flex;flex-wrap:wrap;gap:15px;margin-top:15px}.fine-info{background:#fff5f5;border:1px solid #fed7d7;border-radius:8px;margin-top:15px;padding:10px}.fine-amount{color:#c53030;font-size:16px;font-weight:600}.fines-summary{background:#fff5f5;border:1px solid #fed7d7;border-radius:10px;margin-bottom:25px;padding:20px;text-align:center}.fines-summary h4{color:#c53030;font-size:18px;margin:0 0 10px}.fines-summary p{color:#6c757d;font-size:14px;margin:0}@media (max-width:768px){.reader-profile{padding:20px}.profile-tabs{justify-content:center}.tab-button{font-size:13px;min-width:80px;padding:10px 16px}.profile-content{padding:20px}.card-header{flex-direction:column;gap:15px;text-align:center}.card-body{gap:15px;grid-template-columns:1fr}.stats-grid{gap:15px;grid-template-columns:repeat(2,1fr)}.action-buttons,.borrowing-actions,.fine-actions{justify-content:center}}@media (max-width:480px){.reader-profile{padding:15px}.profile-header{flex-direction:column;gap:15px;text-align:center}.profile-tabs{align-items:center;flex-direction:column}.tab-button{max-width:200px;width:100%}.profile-content{padding:15px}.stats-grid{gap:15px;grid-template-columns:1fr}.action-buttons{align-items:center;flex-direction:column}.action-btn{max-width:200px;width:100%}.borrowing-actions,.fine-actions{align-items:center;flex-direction:column}}.library-reports{padding:30px}.reports-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;margin-bottom:30px;padding-bottom:20px}.reports-header h2{color:#495057;font-size:22px;margin:0 0 0 20px}.back-button{background:#6c757d;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;padding:10px 16px;transition:all .3s ease}.back-button:hover{background:#5a6268;transform:translateY(-1px)}.reports-controls{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:30px}.report-type-selector{display:flex;flex-wrap:wrap;gap:10px}.report-type-btn{background:#fff;border:2px solid #e9ecef;border-radius:10px;color:#495057;cursor:pointer;font-size:14px;font-weight:500;min-width:120px;padding:12px 20px;text-align:center;transition:all .3s ease}.report-type-btn:hover{border-color:#667eea;box-shadow:0 4px 15px #667eea26;color:#667eea;transform:translateY(-2px)}.report-type-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 4px 15px #667eea4d;color:#fff}.report-options{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.date-range-select,.export-format-select{background:#fff;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 16px;transition:border-color .3s ease}.date-range-select:focus,.export-format-select:focus{border-color:#667eea;outline:none}.reports-content{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:30px}.report-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.report-header h3{color:#212529;font-size:24px;margin:0}.export-button{background:#28a745;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .3s ease}.export-button:hover{background:#218838;box-shadow:0 4px 15px #28a7454d;transform:translateY(-2px)}.report-summary{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:40px}.summary-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:25px;text-align:center;transition:all .3s ease}.summary-card:hover{box-shadow:0 8px 25px #00000026;transform:translateY(-5px)}.summary-card.warning{background:#fff3cd;border-color:#ffeaa7}.summary-card.danger{background:#f8d7da;border-color:#fab1a0}.summary-value{color:#212529;display:block;font-size:32px;font-weight:700;margin-bottom:8px}.summary-label{color:#6c757d;display:block;font-size:14px;font-weight:500}.report-sections{grid-gap:40px;display:grid;gap:40px}.report-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:12px;padding:25px}.report-section h4{border-bottom:2px solid #e9ecef;color:#495057;font-size:18px;margin:0 0 25px;padding-bottom:15px}.top-list{grid-gap:15px;display:grid;gap:15px}.top-item{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:8px;display:flex;gap:20px;padding:15px;transition:all .3s ease}.top-item:hover{box-shadow:0 4px 15px #0000001a;transform:translateX(5px)}.rank{align-items:center;background:#667eea;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:14px;font-weight:600;height:30px;justify-content:center;width:30px}.name,.title{color:#212529;flex:1 1;font-size:15px;font-weight:600}.count{background:#e9ecef;border-radius:20px;color:#495057;flex-shrink:0;font-size:12px;font-weight:600;padding:6px 12px}.subject-stats{grid-gap:20px;display:grid;gap:20px}.subject-stat{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:20px}.subject-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.subject-name{color:#212529;font-size:16px;font-weight:600}.subject-count{background:#667eea;border-radius:20px;color:#fff;font-size:12px;font-weight:600;padding:6px 12px}.subject-bar{background:#e9ecef;border-radius:4px;height:8px;margin-bottom:15px;overflow:hidden;width:100%}.bar-fill{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px;height:100%;transition:width .3s ease}.subject-details{color:#6c757d;display:flex;font-size:12px;justify-content:space-between}.format-stats,.language-stats{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.format-stat,.language-stat{background:#fff;border:1px solid #e9ecef;border-radius:8px;padding:15px;text-align:center;transition:all .3s ease}.format-stat:hover,.language-stat:hover{box-shadow:0 4px 15px #0000001a;transform:translateY(-3px)}.format-name,.language-name{color:#212529;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.format-count,.language-count{background:#667eea;border-radius:20px;color:#fff;display:block;font-size:12px;font-weight:600;padding:6px 12px}.overdue-readers{margin-top:30px}.overdue-readers h4{border-bottom:2px solid #e9ecef;color:#495057;font-size:18px;margin:0 0 25px;padding-bottom:15px}.overdue-reader{background:#fff;border:1px solid #fed7d7;border-radius:8px;margin-bottom:20px;padding:20px}.reader-header{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:15px}.reader-header h5{color:#c53030;font-size:16px;font-weight:600;margin:0}.overdue-count,.total-fine{background:#f8d7da;border-radius:20px;color:#721c24;font-size:12px;font-weight:600;padding:6px 12px}.overdue-books{grid-gap:10px;display:grid;gap:10px}.overdue-book{align-items:center;background:#fff5f5;border:1px solid #fed7d7;border-radius:6px;display:flex;font-size:13px;justify-content:space-between;padding:10px}.book-title{color:#c53030}.call-number{color:#6c757d;font-family:Courier New,monospace}.due-date{color:#c53030;font-weight:500}@media (max-width:1024px){.reports-controls{align-items:stretch;flex-direction:column}.report-options,.report-type-selector{justify-content:center}.report-summary{gap:15px;grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.library-reports{padding:20px}.reports-header{flex-direction:column;gap:15px;text-align:center}.report-type-selector{align-items:center;flex-direction:column}.report-type-btn{max-width:200px;width:100%}.report-options{align-items:center;flex-direction:column;gap:10px}.date-range-select,.export-format-select{max-width:200px;width:100%}.reports-content{padding:20px}.report-header{flex-direction:column;gap:15px;text-align:center}.export-button{max-width:200px;width:100%}.report-summary{gap:15px;grid-template-columns:1fr}.top-item{flex-direction:column;gap:15px;text-align:center}.rank{order:-1}.subject-details{flex-direction:column;gap:5px;text-align:center}.format-stats,.language-stats{gap:10px;grid-template-columns:1fr}.reader-header{gap:10px}.overdue-book,.reader-header{flex-direction:column;text-align:center}.overdue-book{gap:5px}}@media (max-width:480px){.library-reports,.report-section,.reports-content{padding:15px}.summary-card{padding:20px}.summary-value{font-size:24px}.top-item{padding:12px}.rank{font-size:12px;height:25px;width:25px}.name,.title{font-size:14px}.count{font-size:11px;padding:4px 8px}}.opac-interface{padding:30px}.opac-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:15px;box-shadow:0 8px 25px #00000026;color:#fff;margin-bottom:40px;padding:40px;text-align:center}.opac-header h2{font-size:32px;font-weight:600;margin:0 0 15px;text-shadow:0 2px 4px #0003}.opac-header p{font-size:16px;margin:0;opacity:.9}.search-section{margin-bottom:40px}.search-form{margin:0 auto;max-width:800px}.search-controls{align-items:center;display:flex;flex-wrap:wrap;gap:15px}.search-type-select{background:#fff;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;font-size:14px;min-width:150px;padding:12px 16px;transition:border-color .3s ease}.search-type-select:focus{border-color:#667eea;outline:none}.search-input{border:2px solid #e9ecef;border-radius:8px;flex:1 1;font-size:16px;min-width:300px;padding:12px 16px;transition:border-color .3s ease}.search-button{background:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;min-width:100px;padding:12px 24px;transition:all .3s ease}.search-button:hover{background:#5a6fd8;box-shadow:0 4px 15px #667eea4d;transform:translateY(-2px)}.opac-controls{display:flex;gap:20px;justify-content:space-between;margin-bottom:30px}.filter-controls,.opac-controls{align-items:center;flex-wrap:wrap}.filter-controls{gap:15px}.filter-select,.sort-select{background:#fff;border:2px solid #e9ecef;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 16px;transition:border-color .3s ease}.filter-select:focus,.sort-select:focus{border-color:#667eea;outline:none}.view-controls{display:flex;gap:10px}.view-btn{background:#fff;border:2px solid #e9ecef;border-radius:8px;color:#495057;cursor:pointer;font-size:14px;font-weight:500;min-width:120px;padding:10px 16px;text-align:center;transition:all .3s ease}.view-btn:hover{border-color:#667eea;box-shadow:0 4px 15px #667eea26;color:#667eea;transform:translateY(-2px)}.view-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 4px 15px #667eea4d;color:#fff}.search-results{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:30px}.results-header{align-items:center;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.results-header h3{color:#212529;font-size:20px;margin:0}.results-count{background:#e9ecef;border-radius:20px;color:#495057;font-size:14px;font-weight:500;padding:8px 16px}.no-results{color:#6c757d;padding:60px 20px;text-align:center}.no-results-icon{font-size:64px;margin-bottom:20px;opacity:.5}.no-results h4{color:#495057;font-size:20px;margin:0 0 15px}.no-results p{font-size:16px;line-height:1.6;margin:0 0 30px}.search-tips{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin:0 auto;max-width:500px;padding:20px;text-align:left}.search-tips h5{color:#495057;font-size:16px;margin:0 0 15px}.search-tips ul{color:#6c757d;line-height:1.6;margin:0;padding-left:20px}.search-tips li{margin-bottom:8px}.books-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.book-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 10px #00000014;cursor:pointer;overflow:hidden;transition:all .3s ease}.book-card:hover{box-shadow:0 12px 30px #00000026;transform:translateY(-8px)}.book-cover{height:200px;overflow:hidden;position:relative}.book-cover img{height:100%;object-fit:cover;width:100%}.cover-placeholder{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);display:flex;flex-direction:column;height:100%;justify-content:center;text-align:center;width:100%}.cover-icon{color:#6c757d;font-size:48px;margin-bottom:10px}.cover-title{color:#6c757d;font-size:12px;line-height:1.3;max-width:200px}.book-status{display:flex;flex-direction:column;gap:5px;position:absolute;right:10px;top:10px}.status-badge{border-radius:15px;box-shadow:0 2px 8px #00000026;display:inline-block;font-size:11px;font-weight:600;min-width:50px;padding:6px 10px;text-align:center}.status-available{background:#d4edda;color:#155724}.status-borrowed{background:#fff3cd;color:#856404}.status-overdue{background:#f8d7da;color:#721c24}.status-reserved{background:#cce5ff;color:#004085}.status-maintenance{background:#e2e3e5;color:#383d41}.status-unknown{background:#f8f9fa;color:#6c757d}.new-badge{background:#dc3545;border-radius:12px;color:#fff;font-size:10px;font-weight:600;left:10px;padding:4px 8px;position:absolute;top:10px}.book-info{padding:20px}.book-title{color:#212529;font-size:16px;font-weight:600}.book-title,.book-title-en{line-height:1.3;margin:0 0 8px}.book-title-en{color:#6c757d;font-size:14px;font-style:italic}.book-author{font-size:14px;margin:0 0 8px}.book-subject{font-size:13px;margin:0 0 8px}.book-call-number{display:inline-block;margin:0 0 12px}.book-meta{align-items:center;color:#6c757d;display:flex;font-size:12px;justify-content:space-between}.format,.publish-year{background:#e9ecef;border-radius:12px;font-weight:500;padding:4px 8px}.books-list{overflow-x:auto}.books-list table{border-collapse:collapse;width:100%}.books-list th{background:#f8f9fa;border-bottom:2px solid #e9ecef;color:#495057;font-size:14px;font-weight:600;padding:15px;text-align:left}.books-list td{border-bottom:1px solid #f1f3f4;padding:15px;vertical-align:top}.book-row:hover{background:#f8f9fa}.title-content{display:flex;flex-direction:column;gap:4px}.title-zh{color:#212529;font-size:15px;font-weight:600}.title-en{color:#6c757d;font-size:13px;font-style:italic}.book-author{color:#495057;font-weight:500}.book-subject{color:#6c757d}.book-call-number{background:#f8f9fa;border-radius:4px;color:#495057;font-family:Courier New,monospace;font-size:12px;font-weight:600;padding:4px 8px}.view-button{background:#667eea;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;padding:8px 16px;transition:all .3s ease}.view-button:hover{background:#5a6fd8;box-shadow:0 2px 8px #667eea4d;transform:translateY(-1px)}.opac-footer{border-top:1px solid #e9ecef;margin-top:40px;padding-top:30px}.quick-links h4{color:#495057;font-size:18px;margin:0 0 20px;text-align:center}.links-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:0 auto;max-width:800px}.quick-link{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;color:#495057;display:block;font-weight:500;padding:15px;text-align:center;text-decoration:none;transition:all .3s ease}.quick-link:hover{background:#667eea;box-shadow:0 4px 15px #667eea4d;color:#fff;text-decoration:none;transform:translateY(-2px)}@media (max-width:1024px){.opac-controls{align-items:stretch;flex-direction:column}.filter-controls,.view-controls{justify-content:center}.books-grid{gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (max-width:768px){.opac-interface{padding:20px}.opac-header{margin-bottom:30px;padding:30px 20px}.opac-header h2{font-size:24px}.search-controls{flex-direction:column;gap:15px}.search-input,.search-type-select{min-width:auto;width:100%}.books-grid{gap:15px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.books-list{overflow-x:auto}.books-list table{min-width:700px}.books-list td,.books-list th{font-size:13px;padding:12px 8px}.links-grid{gap:10px;grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.opac-interface{padding:15px}.opac-header{padding:20px 15px}.opac-header h2{font-size:20px}.search-results{padding:20px}.books-grid{gap:15px;grid-template-columns:1fr}.book-card{margin:0 auto;max-width:300px}.book-info{padding:15px}.book-title{font-size:15px}.book-title-en{font-size:13px}.links-grid{gap:10px;grid-template-columns:1fr}.quick-link{font-size:14px;padding:12px}}.group-list{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-right:1px solid #0000001a;display:flex;flex-direction:column;overflow:visible;transition:transform .3s ease,width .3s ease;width:280px}.group-list.collapsed{transform:translateX(-220px);width:60px}.group-list.collapsed .create-group-button,.group-list.collapsed .group-list-controls,.group-list.collapsed .group-list-header h3,.group-list.collapsed .group-list-header p,.group-list.collapsed .groups-container{display:none}.group-list.collapsed .group-list-header{cursor:pointer;padding:1rem .5rem}.group-list.collapsed .group-list-header:after{content:"💬";display:block;font-size:1.5rem}.group-list-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;cursor:pointer;padding:1.5rem;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.toggle-button{background:#fff3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;padding:.25rem .5rem;position:absolute;right:1rem;top:50%;transform:translateY(-50%);transition:all .2s ease}.toggle-button:hover{background:#ffffff4d}.group-list-header h3{font-size:.9rem;font-weight:600;margin:0}.group-list-header p{font-size:.8rem;margin:.25rem 0 0;opacity:.9}.group-list-controls{background:#fffc;border-bottom:1px solid #0000001a;padding:.75rem}.search-box{margin-bottom:1rem;position:relative}.search-input{background:#fff;border:1px solid #0003;border-radius:20px;font-size:.9rem;padding:.6rem .75rem .6rem 2.25rem;transition:all .3s ease;width:100%}.search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.search-icon{color:#666;font-size:.9rem;left:1rem;position:absolute;top:50%;transform:translateY(-50%)}.filter-controls{display:flex;gap:.5rem}.filter-select{background:#fff;border:1px solid #0003;border-radius:8px;cursor:pointer;flex:1 1;font-size:.9rem;padding:.5rem}.filter-select:focus{border-color:#667eea;outline:none}.groups-container{flex:1 1;overflow-y:auto;padding:.5rem}.no-groups{color:#666;padding:2rem;text-align:center}.no-groups p{margin:.25rem 0}.group-item{align-items:center;background:#fff;border:2px solid #0000;border-radius:10px;cursor:pointer;display:flex;margin-bottom:.4rem;min-height:64px;padding:.75rem;position:relative;transition:all .3s ease}.group-item:hover{border-color:#667eea4d;box-shadow:0 8px 25px #00000026;transform:translateY(-2px)}.group-item.selected{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea;box-shadow:0 4px 15px #667eea4d}.group-icon{align-items:center;border-radius:50%;box-shadow:0 4px 12px #00000026;display:flex;flex-shrink:0;font-size:1.2rem;height:42px;justify-content:center;margin-right:.75rem;width:42px}.group-info{flex:1 1;min-width:0}.group-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.25rem}.group-name{color:#374151;font-size:.9rem;font-weight:500;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread-badge{background:#ef4444;border-radius:12px;color:#fff;font-size:.9rem;font-weight:600;min-width:20px;padding:.25rem .5rem;text-align:center}.group-description{color:#374151;line-height:1.3;margin:0 0 .4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-meta{align-items:center;display:flex;gap:.6rem}.group-meta,.group-type,.last-activity,.member-count{color:#374151;font-size:.9rem;font-weight:500;line-height:1.3}.group-type,.last-activity,.member-count{background:#0000000d;border-radius:12px;padding:.25rem .5rem;white-space:nowrap}.admin-badge{color:#f59e0b;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));font-size:1rem;position:absolute;right:.5rem;top:.5rem}.create-group-button{background:#ffffffe6;border-top:1px solid #0000001a;padding:1rem}.btn-create-group{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;justify-content:center;padding:.75rem;transition:all .3s ease;width:100%}.btn-create-group:hover{box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.btn-create-group span{font-size:1.2rem;font-weight:700}.groups-container::-webkit-scrollbar{width:6px}.groups-container::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.groups-container::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:3px}.groups-container::-webkit-scrollbar-thumb:hover{background:#667eea80}@media (max-width:768px){.group-list{border-bottom:1px solid #0000001a;border-right:none;width:100%}.group-list.collapsed{transform:none;width:100%}.group-list.collapsed .group-list-header{padding:1rem}.group-list.collapsed .group-list-header:after{display:none}.group-list-header{padding:1rem}.group-list-header h3{font-size:1.1rem}.group-item{padding:.75rem}.group-icon{font-size:1.2rem;height:42px;width:42px}}@media (max-width:480px){.group-list-controls{padding:.75rem}.search-input{font-size:.9rem;padding:.5rem 1rem .5rem 2rem}.group-item{padding:.5rem}.group-icon{font-size:1.1rem;height:38px;width:38px}}.message-bubble{animation:fadeIn .3s ease-in-out;margin:.5rem 0;max-width:70%;position:relative}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-bubble.own-message{align-self:flex-end;margin-left:auto}.message-bubble.other-message{align-self:flex-start;margin-right:auto}.message-sender{gap:.5rem;margin-bottom:.5rem}.message-sender,.sender-avatar{align-items:center;display:flex}.sender-avatar{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;flex-shrink:0;font-size:.9rem;font-weight:600;height:32px;justify-content:center;width:32px}.sender-info{display:flex;flex-direction:column;gap:.25rem}.sender-name{color:#333;font-size:.85rem;font-weight:600}.sender-role{background:#0000000d;border-radius:10px;color:#666;display:inline-block;font-size:.75rem;padding:.125rem .5rem}.message-content{word-wrap:break-word;border-radius:18px;line-height:1.4;padding:.75rem 1rem;position:relative}.own-message .message-content{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom-right-radius:6px;color:#fff}.other-message .message-content{background:#fff;border:1px solid #0000001a;border-bottom-left-radius:6px;color:#333}.message-text{font-size:.95rem;line-height:1.5}.message-image img{border-radius:12px;cursor:pointer;max-height:300px;max-width:100%;transition:transform .3s ease}.message-image img:hover{transform:scale(1.05)}.image-fallback{color:#666;font-size:.9rem;gap:.5rem;padding:1rem}.image-fallback,.message-file{align-items:center;background:#0000000d;border-radius:8px;display:flex}.message-file{border:1px solid #0000001a;gap:.75rem;padding:.75rem}.file-icon{font-size:1.5rem}.file-info{flex:1 1;min-width:0}.file-name{font-size:.9rem;font-weight:600}.file-size{font-size:.8rem;margin-top:.25rem}.btn-download{align-items:center;background:#667eea;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .3s ease;width:32px}.btn-download:hover{background:#5a67d8;transform:scale(1.1)}.message-system{align-items:center;background:#667eea1a;border:1px solid #667eea33;border-radius:20px;display:flex;gap:.5rem;margin:1rem auto;max-width:400px;padding:.5rem 1rem;text-align:center}.system-icon{color:#667eea;font-size:1rem}.system-content{color:#667eea;font-size:.85rem;font-weight:500}.message-attachments{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.attachment-item{border-radius:8px;overflow:hidden}.attachment-image{border-radius:8px;cursor:pointer;max-height:200px;max-width:100%;transition:transform .3s ease}.attachment-image:hover{transform:scale(1.05)}.attachment-file{align-items:center;background:#0000000d;border-radius:6px;display:flex;font-size:.85rem;gap:.5rem;padding:.5rem}.attachment-file .file-icon{color:#667eea;font-size:1rem}.attachment-file .file-name{color:#333;font-weight:500}.attachment-file .file-size{color:#666;font-size:.75rem}.message-meta{align-items:center;display:flex;font-size:.75rem;justify-content:space-between;margin-top:.5rem}.own-message .message-meta{color:#fffc}.other-message .message-meta{color:#888}.message-time{opacity:.8}.message-status{font-size:.8rem;opacity:.9}.message-actions{background:#fff;border:1px solid #0000001a;border-radius:20px;box-shadow:0 4px 12px #00000026;display:flex;gap:.25rem;opacity:0;padding:.25rem;position:absolute;right:0;top:-10px;transform:translateY(-10px);transition:all .3s ease;z-index:10}.message-bubble:hover .message-actions{opacity:1;transform:translateY(0)}.action-btn{align-items:center;background:#667eea1a;border:none;border-radius:50%;color:#667eea;cursor:pointer;display:flex;font-size:.9rem;height:28px;justify-content:center;transition:all .3s ease;width:28px}.action-btn:hover{background:#667eea;color:#fff;transform:scale(1.1)}.reply-indicator{background:#0000000d;border-radius:10px;color:#666;font-size:.75rem;gap:.25rem;margin-bottom:.5rem;max-width:200px;padding:.25rem .5rem}.reply-icon{font-size:.8rem}@media (max-width:768px){.message-bubble{max-width:85%}.message-content{padding:.5rem .75rem}.message-text{font-size:.9rem}.sender-avatar{height:28px;width:28px}.sender-avatar,.sender-name{font-size:.8rem}.sender-role{font-size:.7rem}}@media (max-width:480px){.message-bubble{max-width:90%}.message-content{padding:.5rem}.message-text{font-size:.85rem}.sender-avatar{font-size:.7rem;height:24px;width:24px}.sender-name{font-size:.75rem}.sender-role{font-size:.65rem}.message-actions{right:-5px;top:-5px}.action-btn{font-size:.8rem;height:24px;width:24px}}.message-composer{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;overflow:visible;position:relative}.reply-indicator{align-items:center;background:#667eea1a;border-bottom:1px solid #667eea33;color:#667eea;display:flex;font-size:.85rem;gap:.5rem;padding:.75rem 1rem}.reply-icon{font-size:1rem}.reply-text{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-remove-reply{background:none;border:none;border-radius:50%;color:#667eea;cursor:pointer;font-size:1rem;padding:.25rem;transition:all .3s ease}.btn-remove-reply:hover{background:#667eea1a;transform:scale(1.1)}.attachments-preview{background:#00000005;border-bottom:1px solid #0000001a;padding:.75rem 1rem}.attachment-preview-item{align-items:center;background:#fff;border:1px solid #0000001a;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.5rem;padding:.5rem}.attachment-preview-item:last-child{margin-bottom:0}.attachment-info{align-items:center;display:flex;flex:1 1;gap:.5rem;min-width:0}.file-icon{color:#667eea;font-size:1.2rem}.file-name{color:#333;font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:#666;font-size:.75rem}.btn-remove-file{align-items:center;background:#ef4444;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:.8rem;height:24px;justify-content:center;transition:all .3s ease;width:24px}.btn-remove-file:hover{background:#dc2626;transform:scale(1.1)}.composer-input-area{align-items:flex-end;background:#fff;display:flex;gap:.75rem;padding:1rem;position:relative}.composer-controls{display:flex;flex-shrink:0;gap:.5rem}.control-btn{align-items:center;background:#667eea1a;border:none;border-radius:50%;color:#667eea;cursor:pointer;display:flex;font-size:1.2rem;height:40px;justify-content:center;transition:all .3s ease;width:40px}.control-btn:hover{background:#667eea33;transform:scale(1.1)}.message-input-container{flex:1 1;position:relative;z-index:1001}.message-input{border:1px solid #0003;border-radius:20px;font-family:inherit;font-size:.95rem;line-height:1.4;max-height:120px;min-height:40px;outline:none;padding:.75rem;resize:none;transition:all .3s ease;width:100%}.message-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.message-input::placeholder{color:#999}.send-button{align-items:center;background:#667eea;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:1.2rem;font-weight:700;height:40px;justify-content:center;transition:all .3s ease;width:40px}.send-button.active{background:linear-gradient(135deg,#667eea,#764ba2);transform:scale(1)}.send-button.active:hover{box-shadow:0 4px 12px #667eea66;transform:scale(1.1)}.send-button.disabled{background:#ccc;cursor:not-allowed;transform:scale(1)}.send-button.disabled:hover{box-shadow:none;transform:scale(1)}.message-templates{background:#fff;border:1px solid #0000001a;border-radius:12px;bottom:calc(100% + 10px);box-shadow:0 8px 25px #00000026;left:0;max-height:300px;overflow-y:auto;pointer-events:auto;position:absolute;right:0;transform:translateY(0);z-index:1000}.templates-header{align-items:center;background:#667eea0d;border-bottom:1px solid #0000001a;display:flex;justify-content:space-between;padding:1rem}.templates-header h4{color:#333;font-size:1rem;margin:0}.btn-close-templates{background:none;border:none;border-radius:50%;color:#666;cursor:pointer;font-size:1.2rem;padding:.25rem;transition:all .3s ease}.btn-close-templates:hover{background:#0000001a;color:#333}.templates-list{padding:.5rem}.template-item{background:#fff;border:none;border-radius:8px;cursor:pointer;margin-bottom:.25rem;padding:.75rem;text-align:left;transition:all .3s ease;width:100%}.template-item:hover{background:#667eea1a;transform:translateX(5px)}.template-item:last-child{margin-bottom:0}.template-name{color:#333;display:block;font-size:.9rem;font-weight:600;margin-bottom:.25rem}.template-preview{color:#666;display:block;font-size:.8rem;line-height:1.3}.file-attachment-panel{background:#fff;border:1px solid #0000001a;border-radius:12px;bottom:calc(100% + 10px);box-shadow:0 8px 25px #00000026;left:0;pointer-events:auto;position:absolute;right:0;z-index:1000}.attachment-header{align-items:center;background:#667eea0d;border-bottom:1px solid #0000001a;display:flex;justify-content:space-between;padding:1rem}.attachment-header h4{color:#333;font-size:1rem;margin:0}.btn-close-attachments{background:none;border:none;border-radius:50%;color:#666;cursor:pointer;font-size:1.2rem;padding:.25rem;transition:all .3s ease}.btn-close-attachments:hover{background:#0000001a;color:#333}.attachment-options{padding:1rem}.file-upload-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-block;font-weight:600;margin-bottom:1rem;padding:.75rem 1.5rem;text-align:center;transition:all .3s ease}.file-upload-btn:hover{box-shadow:0 8px 25px #667eea66;transform:translateY(-2px)}.file-types-info{background:#00000005;border:1px solid #0000001a;border-radius:8px;padding:.75rem}.file-types-info p{color:#666;font-size:.85rem;margin:.25rem 0}.file-types-info p:first-child{color:#333;font-weight:600}.file-attachment-panel::-webkit-scrollbar,.message-templates::-webkit-scrollbar{width:6px}.file-attachment-panel::-webkit-scrollbar-track,.message-templates::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.file-attachment-panel::-webkit-scrollbar-thumb,.message-templates::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:3px}.file-attachment-panel::-webkit-scrollbar-thumb:hover,.message-templates::-webkit-scrollbar-thumb:hover{background:#667eea80}@media (max-width:768px){.composer-input-area{gap:.5rem;padding:.75rem}.control-btn,.send-button{font-size:1rem;height:36px;width:36px}.message-input{font-size:.9rem;min-height:36px;padding:.5rem}.file-attachment-panel,.message-templates{max-height:250px}}@media (max-width:480px){.composer-input-area{gap:.25rem;padding:.5rem}.control-btn,.send-button{font-size:.9rem;height:32px;width:32px}.message-input{font-size:.85rem;min-height:32px;padding:.5rem}.attachments-preview,.reply-indicator{padding:.5rem}.attachment-preview-item{padding:.25rem}.btn-remove-file{font-size:.7rem;height:20px;width:20px}}.emoji-picker-panel{background:#fff;border:1px solid #0000001a;border-radius:12px;bottom:calc(100% + 10px);box-shadow:0 8px 24px #00000026;left:0;max-height:300px;overflow:hidden;pointer-events:auto;position:absolute;right:0;z-index:1000}.emoji-header{align-items:center;background:#f8fafc;border-bottom:1px solid #0000001a;display:flex;justify-content:space-between;padding:.75rem 1rem}.emoji-header h4{color:#333;font-size:.9rem;font-weight:600;margin:0}.btn-close-emojis{background:none;border:none;border-radius:50%;color:#666;cursor:pointer;font-size:1rem;padding:.25rem;transition:all .3s ease}.btn-close-emojis:hover{background:#0000001a;color:#333}.emoji-grid{grid-gap:.25rem;display:grid;gap:.25rem;grid-template-columns:repeat(10,1fr);max-height:250px;overflow-y:auto;padding:.75rem}.emoji-item{align-items:center;background:none;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:1.5rem;justify-content:center;min-height:40px;padding:.5rem;transition:all .2s ease}.emoji-item:hover{background:#667eea1a;transform:scale(1.1)}.emoji-item:active{transform:scale(.95)}.emoji-grid::-webkit-scrollbar{width:6px}.emoji-grid::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.emoji-grid::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:3px}.emoji-grid::-webkit-scrollbar-thumb:hover{background:#667eea80}.chat-interface{background:#fff;display:flex;flex:1 1;flex-direction:column;overflow:visible}.chat-header{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #fff3;color:#fff;justify-content:space-between;padding:1rem 1.5rem}.chat-header,.group-info{align-items:center;display:flex}.group-info{gap:1rem}.group-avatar{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:50%;display:flex;font-size:1.5rem;height:48px;justify-content:center;width:48px}.group-details{display:flex;flex-direction:column}.group-name{font-size:1.25rem;font-weight:600;margin:0}.group-description{font-size:.9rem;margin:.25rem 0 0;opacity:.9}.group-stats{display:flex;gap:1rem;margin-top:.5rem}.group-type,.member-count{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fff3;border-radius:15px;font-size:.8rem;padding:.25rem .75rem}.group-actions{display:flex;gap:.5rem}.btn-group-info,.btn-group-members,.btn-group-settings{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1.2rem;height:40px;transition:all .3s ease;width:40px}.btn-group-info:hover,.btn-group-members:hover,.btn-group-settings:hover{background:#ffffff4d;transform:scale(1.1)}.messages-container{background:#f8fafc;flex:1 1;overflow-y:auto;padding:1rem}.no-messages{align-items:center;display:flex;height:100%;justify-content:center}.no-messages-content{color:#666;padding:2rem;text-align:center}.no-messages-content h3{color:#333;font-size:1.5rem;margin-bottom:.5rem}.no-messages-content p{font-size:1rem;margin:.25rem 0}.group-welcome{background:linear-gradient(135deg,#667eea1a,#764ba21a);border:1px solid #667eea33;border-radius:12px;margin-top:1rem!important;padding:1rem}.messages-list{display:flex;flex-direction:column;gap:.5rem}.date-separator{color:#666;font-size:.85rem;font-weight:500;margin:1rem 0;position:relative;text-align:center}.date-separator:before{background:#0000001a;content:"";height:1px;left:0;position:absolute;right:0;top:50%;z-index:1}.date-separator span{background:#f8fafc;padding:0 1rem;position:relative;z-index:2}.typing-indicator{align-items:center;align-self:flex-start;background:#fffc;border-radius:20px;display:flex;gap:.5rem;margin:.5rem 0;max-width:200px;padding:.5rem 1rem}.typing-dots{display:flex;gap:.25rem}.typing-dots span{animation:typing 1.4s ease-in-out infinite;background:#667eea;border-radius:50%;height:8px;width:8px}.typing-dots span:first-child{animation-delay:-.32s}.typing-dots span:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.typing-text{color:#666;font-size:.85rem}.message-composer-container{background:#fff;border-top:1px solid #0000001a;padding:1rem}.messages-container::-webkit-scrollbar{width:6px}.messages-container::-webkit-scrollbar-track{background:#0000000d;border-radius:3px}.messages-container::-webkit-scrollbar-thumb{background:#667eea4d;border-radius:3px}.messages-container::-webkit-scrollbar-thumb:hover{background:#667eea80}@media (max-width:768px){.chat-header{padding:.75rem 1rem}.group-avatar{font-size:1.25rem;height:40px;width:40px}.group-name{font-size:1.1rem}.group-stats{flex-direction:column;gap:.5rem}.message-composer-container,.messages-container{padding:.75rem}}@media (max-width:480px){.chat-header{padding:.5rem}.group-avatar{height:36px;width:36px}.group-avatar,.group-name{font-size:1rem}.group-description{font-size:.8rem}.btn-group-info,.btn-group-members,.btn-group-settings{font-size:1rem;height:36px;width:36px}.message-composer-container,.messages-container{padding:.5rem}}.group-messages-module{background:#667eea;display:flex;flex-direction:column;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;height:auto;min-height:calc(100vh - 70px)}.group-messages-module.loading{align-items:center;justify-content:center}.loading-spinner{color:#fff;font-size:1.2rem;text-align:center}.group-messages-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-bottom:1px solid #fff3;padding:1rem 2rem;text-align:center}.group-messages-header h2{color:#fff;font-size:1.5rem;font-weight:600;margin:0;text-shadow:0 2px 4px #0000004d}.group-messages-header p{color:#fffc;font-size:.9rem;font-weight:300;margin:.5rem 0 0}.group-messages-content{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#ffffff0d;display:flex;flex:1 1;overflow:visible}.no-group-selected{align-items:center;background:#ffffff05;display:flex;flex:1 1;justify-content:center}.no-group-content{color:#ffffffb3;padding:2rem;text-align:center}.no-group-content h3{color:#fff;font-size:1.2rem;margin-bottom:.5rem}.no-group-content p{font-size:.9rem;margin:.25rem 0}.group-messages-module::-webkit-scrollbar{width:8px}.group-messages-module::-webkit-scrollbar-track{background:#0000}.group-messages-module::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.group-messages-module::-webkit-scrollbar-thumb:hover{background:#ffffff80}.group-messages-module{position:relative;z-index:1}.chat-interface,.group-list,.group-messages-content,.group-messages-module{overflow:visible}@media (max-width:768px){.group-messages-header{padding:.75rem 1rem}.group-messages-header h2{font-size:1.5rem}.group-messages-header p{font-size:.9rem}.group-messages-content{flex-direction:column}}@media (max-width:480px){.group-messages-header h2{font-size:1.25rem}.group-messages-header p{font-size:.8rem}}.project-manager{padding:1.5rem}.project-manager .loading-state{align-items:center;color:#6b7280;display:flex;height:16rem;justify-content:center}.project-manager .empty-state{padding:3rem 0;text-align:center}.project-manager .empty-state p{color:#6b7280;font-size:1rem;margin-bottom:1rem}.project-manager .empty-state-button{background-color:#3b82f6;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:background-color .2s}.project-manager .empty-state-button:hover{background-color:#2563eb}.project-manager .projects-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:768px){.project-manager .projects-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.project-manager .projects-grid{grid-template-columns:repeat(3,1fr)}}.create-project-dialog-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:50}.create-project-dialog{background-color:#fff;border-radius:.5rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;margin:0 1rem;max-width:28rem;width:100%}.create-project-dialog .dialog-header{border-bottom:1px solid #e5e7eb;padding:1rem}.create-project-dialog .dialog-header h2{color:#111827;font-size:1.125rem;font-weight:600;margin:0}.create-project-dialog .dialog-content{padding:1rem}.create-project-dialog .form-group{margin-bottom:1rem}.create-project-dialog .form-label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.create-project-dialog .form-label .required{color:#ef4444}.create-project-dialog .form-input{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem .75rem;width:100%}.create-project-dialog .form-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.create-project-dialog .form-textarea{border:1px solid #d1d5db;border-radius:.375rem;font-family:inherit;font-size:.875rem;padding:.5rem .75rem;resize:vertical;width:100%}.create-project-dialog .form-textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.create-project-dialog .form-select{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;font-size:.875rem;padding:.5rem .75rem;width:100%}.create-project-dialog .form-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.create-project-dialog .dialog-actions{border-top:1px solid #e5e7eb;display:flex;gap:.5rem;justify-content:flex-end;padding:1rem}.create-project-dialog .dialog-button{border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s}.create-project-dialog .dialog-button.cancel{background-color:#fff;border:1px solid #d1d5db;color:#374151}.create-project-dialog .dialog-button.cancel:hover{background-color:#f9fafb}.create-project-dialog .dialog-button.primary{background-color:#3b82f6;color:#fff}.create-project-dialog .dialog-button.primary:hover{background-color:#2563eb}.workspace-tabs{border-bottom:1px solid #e5e7eb;display:flex;gap:.5rem;margin-bottom:1.5rem}.workspace-tab{background:none;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s}.workspace-tab:hover{color:#374151}.workspace-tab.active{border-bottom-color:#7c3aed;color:#7c3aed}.template-library{padding:1.5rem}.template-library-loading{color:#6b7280;padding:3rem 0;text-align:center}.template-library-header{margin-bottom:1.5rem}.template-library-header h2{color:#111827;font-size:1.5rem;font-weight:700;margin:0 0 1rem}.template-categories{display:flex;flex-wrap:wrap;gap:.5rem}.template-category-button{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;color:#374151;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s}.template-category-button:hover{background-color:#f9fafb}.template-category-button.active{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.template-library-empty{color:#6b7280;padding:3rem 0;text-align:center}.template-library-empty .hint{color:#9ca3af;font-size:.875rem;margin-top:.5rem}.template-library-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:768px){.template-library-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.template-library-grid{grid-template-columns:repeat(3,1fr)}}.template-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;transition:box-shadow .2s}.template-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.template-card-title{color:#111827;font-size:1rem;font-weight:600;margin:0 0 .5rem}.template-card-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;color:#4b5563;display:-webkit-box;font-size:.875rem;margin:0 0 .75rem;overflow:hidden}.template-card-category{background-color:#f3f4f6;border-radius:.25rem;color:#4b5563;display:inline-block;font-size:.75rem;margin-bottom:.75rem;padding:.25rem .5rem}.template-card-button{background-color:#3b82f6;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:background-color .2s;width:100%}.template-card-button:hover{background-color:#2563eb}.server-badge{align-items:center;border-radius:9999px;display:inline-flex;font-weight:500;gap:.25rem}.server-badge-sm{font-size:.75rem;padding:.125rem .5rem}.server-badge-md{font-size:.875rem;padding:.25rem .625rem}.server-badge-lg{font-size:1rem;padding:.375rem .75rem}.server-badge-icon{line-height:1}.scenario-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;transition:all .2s}.scenario-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.scenario-card .card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.scenario-card .card-title{color:#111827;flex:1 1;font-size:1rem;font-weight:600;margin:0}.scenario-card .difficulty-badge{border-radius:.25rem;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.scenario-card .difficulty-badge.beginner{background-color:#d1fae5;color:#065f46}.scenario-card .difficulty-badge.intermediate{background-color:#fef3c7;color:#92400e}.scenario-card .difficulty-badge.advanced{background-color:#fee2e2;color:#991b1b}.scenario-card .card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#4b5563;display:-webkit-box;font-size:.875rem;margin-bottom:.75rem;overflow:hidden}.scenario-card .card-metadata{align-items:center;color:#6b7280;display:flex;font-size:.75rem;gap:.75rem;margin-bottom:.75rem}.scenario-card .category-badge{background-color:#f3f4f6;border-radius:.25rem;padding:.125rem .5rem}.scenario-card .servers-container{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.75rem}.scenario-card .use-cases-container{margin-bottom:.75rem}.scenario-card .use-cases-label{color:#374151;font-size:.75rem;font-weight:500;margin-bottom:.25rem}.scenario-card .use-cases-list{display:flex;flex-wrap:wrap;gap:.25rem}.scenario-card .use-case-badge{background-color:#eff6ff;border-radius:.25rem;color:#1e40af;font-size:.75rem;padding:.125rem .5rem}.scenario-card .use-case-more{color:#6b7280;font-size:.75rem;padding:.125rem .5rem}.scenario-card .card-actions{border-top:1px solid #e5e7eb;display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem}.scenario-card .action-button{border:none;border-radius:.375rem;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.scenario-card .action-button.primary{background-color:#3b82f6;color:#fff}.scenario-card .action-button.primary:hover{background-color:#2563eb}.scenario-card .action-button.secondary{background-color:#f3f4f6;color:#374151}.scenario-card .action-button.secondary:hover{background-color:#e5e7eb}.scenario-browser{background-color:#f9fafb;display:flex;flex-direction:column;height:100%}.scenario-browser .header{background-color:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;padding:1rem 1.5rem}.scenario-browser .header-content{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.scenario-browser .header h1{color:#111827;font-size:1.5rem;font-weight:700;margin:0}.scenario-browser .header .count{color:#4b5563;font-size:.875rem}.scenario-browser .search-container{margin-bottom:1rem}.scenario-browser .search-input{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem 1rem;width:100%}.scenario-browser .search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.scenario-browser .filters{display:flex;flex-wrap:wrap;gap:1rem}.scenario-browser .filter-group{display:flex;gap:.5rem}.scenario-browser .filter-button{background-color:#f3f4f6;border:none;border-radius:.25rem;color:#374151;cursor:pointer;font-size:.875rem;padding:.25rem .75rem;transition:all .2s}.scenario-browser .filter-button:hover{background-color:#e5e7eb}.scenario-browser .filter-button.active{background-color:#3b82f6;color:#fff}.scenario-browser .filter-select{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;font-size:.875rem;padding:.25rem .75rem}.scenario-browser .filter-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.scenario-browser .content{flex:1 1;overflow-y:auto;padding:1.5rem}.scenario-browser .scenarios-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:768px){.scenario-browser .scenarios-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.scenario-browser .scenarios-grid{grid-template-columns:repeat(3,1fr)}}.scenario-browser .empty-state{padding:3rem 0;text-align:center}.scenario-browser .empty-state p{color:#6b7280;margin-bottom:.5rem}.scenario-browser .empty-state .hint{color:#9ca3af;font-size:.875rem}.react-flow{direction:ltr}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;transform-origin:0 0;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectionindicator{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;left:50%;top:auto;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{left:-4px;top:50%;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translateX(-50%)}.react-flow__attribution{background:#ffffff80;font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:#3367d9;border:1px solid #fff;border-radius:1px;height:4px;transform:translate(-50%,-50%);width:4px}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{height:100%;top:0;transform:translate(-50%);width:1px}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;left:0;transform:translateY(-50%);width:100%}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.method-badge{border-radius:.25rem;font-weight:600}.method-badge-sm{font-size:.75rem;padding:.125rem .375rem}.method-badge-md{font-size:.75rem;padding:.125rem .5rem}.method-badge-lg{font-size:.875rem;padding:.25rem .625rem}.method-badge-get{background-color:#dcfce7;color:#166534}.method-badge-post{background-color:#dbeafe;color:#1e40af}.method-badge-put{background-color:#fef3c7;color:#854d0e}.method-badge-delete{background-color:#fee2e2;color:#991b1b}.api-card{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;cursor:move;padding:1rem;position:relative;transition:all .2s}.api-card:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.api-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.api-card-badges{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.api-card-favorite{background:none;border:none;color:#9ca3af;cursor:pointer;flex-shrink:0;padding:0;transition:color .2s}.api-card-favorite:hover{color:#eab308}.api-card-title{color:#111827;font-size:.875rem;font-weight:600;margin-bottom:.25rem}.api-card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#4b5563;display:-webkit-box;font-size:.875rem;margin-bottom:.75rem;overflow:hidden}.api-card-endpoint{color:#6b7280;display:block;font-family:Courier New,monospace;font-size:.75rem;margin-bottom:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.api-card-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.75rem}.api-card-tag{background-color:#f3f4f6;border-radius:.25rem;color:#4b5563;font-size:.75rem;padding:.125rem .5rem}.api-card-metadata{align-items:center;color:#6b7280;display:flex;font-size:.75rem;gap:.75rem;margin-bottom:.75rem}.api-card-metadata-item{align-items:center;display:flex;gap:.25rem}.api-card-actions{display:flex;gap:.5rem;opacity:0;transition:opacity .2s}.api-card:hover .api-card-actions{opacity:1}.api-card-button{background-color:#fff;border:1px solid #d1d5db;border-radius:.25rem;cursor:pointer;font-size:.75rem;padding:.25rem .5rem;transition:background-color .2s}.api-card-button:hover{background-color:#f9fafb}.api-card-button-primary{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.api-card-button-primary:hover{background-color:#2563eb}.api-card-spacer{flex:1 1}.api-card-drag-handle{color:#9ca3af;cursor:move;-webkit-user-select:none;user-select:none}.workflow-canvas{background-color:#fafafa;height:100%;min-height:0;min-width:0;overflow:hidden;position:relative;width:100%}.workflow-canvas .react-flow{bottom:0;height:100%!important;left:0;position:absolute;right:0;top:0;width:100%!important}.workflow-canvas .react-flow__container,.workflow-canvas .react-flow__renderer,.workflow-canvas .react-flow__viewport{height:100%;width:100%}.workflow-canvas .canvas-info{background-color:#ffffffe6;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 2px 4px #0000001a;color:#6b7280;font-size:.875rem;padding:8px 12px}.workflow-canvas .react-flow__controls{background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 2px 4px #0000001a}.workflow-canvas .react-flow__controls-button{background-color:#fff;border-bottom:1px solid #e5e7eb;color:#374151}.workflow-canvas .react-flow__controls-button:hover{background-color:#f3f4f6}.workflow-canvas .react-flow__minimap{background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 2px 4px #0000001a}.api-node{cursor:pointer;max-width:280px;min-width:200px;position:relative;width:auto}.api-node.selected{border-color:#3b82f6;box-shadow:0 4px 6px -1px #3b82f633,0 2px 4px -1px #3b82f61a}.api-node-status{flex-shrink:0;line-height:1}.api-node .react-flow__handle{background-color:#9ca3af;border:2px solid #fff;height:12px;transition:all .2s ease;width:12px}.api-node .react-flow__handle-left{left:-6px}.api-node .react-flow__handle-right{right:-6px}.api-node:hover .react-flow__handle{background-color:#3b82f6;border-color:#fff;height:14px;width:14px}.api-node:hover .react-flow__handle-left{left:-7px}.api-node:hover .react-flow__handle-right{right:-7px}.api-node.selected .react-flow__handle{background-color:#2563eb;border-color:#fff;height:14px;width:14px}.api-node.selected .react-flow__handle-left{left:-7px}.api-node.selected .react-flow__handle-right{right:-7px}.search-bar,.search-bar-input-wrapper{position:relative}.search-bar-input{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem 2.5rem;width:100%}.search-bar-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.search-bar-icon{left:.75rem;pointer-events:none}.search-bar-clear,.search-bar-icon{color:#9ca3af;position:absolute;top:50%;transform:translateY(-50%)}.search-bar-clear{background:none;border:none;cursor:pointer;font-size:1.25rem;line-height:1;padding:0;right:.75rem;transition:color .2s}.search-bar-clear:hover{color:#4b5563}.search-bar-suggestions{background-color:#fff;border:1px solid #e5e7eb;border-radius:.375rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;margin-top:.25rem;max-height:12rem;overflow-y:auto;position:absolute;width:100%;z-index:10}.search-bar-suggestion-item{background:none;border:none;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;text-align:left;transition:background-color .2s;width:100%}.api-toolbox,.search-bar-suggestion-item:hover{background-color:#f9fafb}.api-toolbox{display:flex;flex-direction:column;height:100%}.api-toolbox .toolbox-header{background-color:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;padding:1rem 1.5rem}.api-toolbox .toolbox-header h1{color:#111827;font-size:1.5rem;font-weight:700;margin:0 0 1rem}.api-toolbox .toolbox-filters{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.api-toolbox .search-container{flex:1 1;min-width:200px}.api-toolbox .search-input{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem 1rem;width:100%}.api-toolbox .search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.api-toolbox .filter-select{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;font-size:.875rem;padding:.5rem 1rem}.api-toolbox .filter-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.api-toolbox .toolbox-content{flex:1 1;overflow-y:auto;padding:1.5rem}.api-toolbox .empty-state{padding:3rem 0;text-align:center}.api-toolbox .empty-state p{color:#6b7280;margin-bottom:.5rem}.api-toolbox .empty-state .hint{color:#9ca3af;font-size:.875rem}.api-toolbox .apis-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width:768px){.api-toolbox .apis-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.api-toolbox .apis-grid{grid-template-columns:repeat(3,1fr)}}.api-toolbox .api-count{color:#6b7280;font-size:.875rem;margin-top:.5rem}.api-toolbox .server-section{margin-bottom:1rem}.api-toolbox .server-toggle-button{align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.5rem;cursor:pointer;display:flex;justify-content:space-between;padding:.75rem;transition:background-color .2s;width:100%}.api-toolbox .server-toggle-button:hover{background-color:#f3f4f6}.api-toolbox .server-toggle-content{align-items:center;display:flex;gap:.5rem}.api-toolbox .server-toggle-icon{font-size:1.125rem;line-height:1}.api-toolbox .server-toggle-title{color:#111827;font-weight:600}.api-toolbox .server-toggle-count{color:#6b7280;font-size:.875rem}.api-toolbox .server-content{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.api-toolbox .category-section{margin-left:1rem}.api-toolbox .category-title{color:#374151;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.api-toolbox .category-apis{display:flex;flex-direction:column;gap:.5rem}.api-toolbox .recent-apis-section{margin-bottom:1.5rem}.api-toolbox .section-title{color:#374151;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.api-toolbox .section-content{display:flex;flex-direction:column;gap:.5rem}.api-toolbox .toolbox-footer{border-top:1px solid #e5e7eb;color:#4b5563;flex-shrink:0;font-size:.875rem;padding:1rem}.property-panel{background-color:#fff;border-left:1px solid #e5e7eb;display:flex;flex-direction:column;height:100%;width:20rem}.property-panel-header{border-bottom:1px solid #e5e7eb;padding:1rem}.property-panel-header-content{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.property-panel-title{color:#111827;font-size:1.125rem;font-weight:600;margin:0}.property-panel-close{align-items:center;background:none;border:none;color:#6b7280;cursor:pointer;display:flex;font-size:1.5rem;height:24px;justify-content:center;line-height:1;padding:0;transition:color .2s;width:24px}.property-panel-close:hover{color:#374151}.property-panel-field{margin-bottom:1rem}.property-panel-label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.property-panel-input{border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s,box-shadow .2s;width:100%}.property-panel-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.property-panel-input:disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.property-panel-code{background-color:#f9fafb;border:1px solid #d1d5db;border-radius:.375rem;color:#111827;display:block;font-family:Courier New,monospace;font-size:.875rem;padding:.5rem .75rem;width:100%}.property-panel-content{flex:1 1;overflow-y:auto;padding:1rem}.property-panel-section-title{color:#111827;font-size:.875rem;font-weight:600;margin-bottom:.75rem}.property-panel-empty{color:#6b7280;font-size:.875rem;margin:0;padding:2rem 0;text-align:center}.parameter-editor{margin-bottom:1rem}.parameter-editor-label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.25rem}.parameter-editor-required{color:#ef4444;margin-left:.25rem}.parameter-editor-description{color:#6b7280;font-size:.75rem;margin-bottom:.5rem}.parameter-editor-input-group{display:flex;gap:.5rem}.parameter-editor-input{border:1px solid #d1d5db;border-radius:.375rem;flex:1 1;font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s,box-shadow .2s}.parameter-editor-input:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.parameter-editor-select{background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;cursor:pointer;font-size:.875rem;padding:.5rem .75rem;transition:border-color .2s,box-shadow .2s}.parameter-editor-select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633;outline:none}.parameter-editor-type{color:#9ca3af;font-size:.75rem;margin-top:.25rem}.property-panel-actions{border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.property-panel-button{border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .2s,transform .1s;width:100%}.property-panel-button:hover{transform:translateY(-1px)}.property-panel-button:active{transform:translateY(0)}.property-panel-button:focus{box-shadow:0 0 0 2px #3b82f633;outline:none}.property-panel-button-save{background-color:#3b82f6;color:#fff}.property-panel-button-save:hover{background-color:#2563eb}.property-panel-button-test{background-color:#10b981;color:#fff}.property-panel-button-test:hover{background-color:#059669}.property-panel-button-test:focus{box-shadow:0 0 0 2px #10b98133}.execution-panel{background-color:#fff;border-top:1px solid #e5e7eb;display:flex;flex-direction:column;height:100%}.execution-panel-header{border-bottom:1px solid #e5e7eb;padding:1rem}.execution-panel-header-content{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.execution-panel-title{color:#111827;font-size:1.125rem;font-weight:600;margin:0}.execution-panel-actions{display:flex;gap:.5rem}.execution-panel-button{border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .2s,transform .1s}.execution-panel-button:hover{transform:translateY(-1px)}.execution-panel-button:active{transform:translateY(0)}.execution-panel-button-run{background-color:#10b981;color:#fff}.execution-panel-button-run:hover{background-color:#059669}.execution-panel-button-stop{background-color:#ef4444;color:#fff}.execution-panel-button-stop:hover{background-color:#dc2626}.execution-panel-button-clear{background-color:#6b7280;color:#fff}.execution-panel-button-clear:hover{background-color:#4b5563}.execution-panel-time{color:#6b7280;font-size:.875rem;margin:0}.execution-panel-logs{flex:1 1;overflow-y:auto;padding:1rem}.execution-panel-logs-empty{color:#6b7280;margin:0;padding:2rem 0;text-align:center}.execution-panel-logs-list{display:flex;flex-direction:column;gap:.5rem}.execution-panel-log-item{border-radius:.375rem;font-size:.875rem;line-height:1.5;padding:.5rem}.execution-panel-log-item-error{background-color:#fef2f2;border:1px solid #fecaca;color:#991b1b}.execution-panel-log-item-success{background-color:#f0fdf4;border:1px solid #bbf7d0;color:#166534}.execution-panel-log-item-info{background-color:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.workflow-builder{background-color:#f3f4f6;display:flex;flex-direction:column;height:100%}.workflow-builder .builder-header{align-items:center;background-color:#fff;border-bottom:1px solid #e5e7eb;display:flex;flex-shrink:0;justify-content:space-between;padding:.5rem 1rem}.workflow-builder .builder-header h1{color:#111827;font-size:1.25rem;font-weight:600;margin:0}.workflow-builder .builder-actions{display:flex;gap:.5rem}.workflow-builder .builder-button{background-color:#f3f4f6;border:none;border-radius:.25rem;cursor:pointer;font-size:.875rem;padding:.25rem .75rem;transition:background-color .2s}.workflow-builder .builder-button:hover{background-color:#e5e7eb}.workflow-builder .builder-button.primary{background-color:#3b82f6;color:#fff}.workflow-builder .builder-button.primary:hover{background-color:#2563eb}.workflow-builder .builder-main{display:flex;flex:1 1;overflow:hidden}.workflow-builder .builder-toolbox{background-color:#fff;border-right:1px solid #e5e7eb;flex-shrink:0;width:20rem}.workflow-builder .builder-canvas-container{background-color:#fafafa;flex:1 1;min-height:0;min-width:0;overflow:hidden;position:relative}.workflow-builder .builder-canvas-container>div{bottom:0;height:100%!important;left:0;position:absolute;right:0;top:0;width:100%!important}.workflow-builder .builder-canvas-container .workflow-canvas{height:100%!important;width:100%!important}.workflow-builder .builder-property-panel{background-color:#fff;border-left:1px solid #e5e7eb;flex-shrink:0;width:20rem}.workflow-builder .builder-bottom-panel{background-color:#fff;border-top:1px solid #e5e7eb;flex-shrink:0;height:20rem}
/*# sourceMappingURL=main.745a3581.css.map*/