*{margin:0;padding:0;box-sizing:border-box}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}h1,h2,h3,h4,h5,h6{line-height:1.2}button{font-family:inherit;cursor:pointer}a{color:#667eea;text-decoration:none}a:hover{text-decoration:underline}.layout{min-height:100vh;display:flex;background:#f5f7fa}.sidebar{width:280px;background:linear-gradient(180deg,#1e293b,#0f172a);color:#fff;display:flex;flex-direction:column;box-shadow:4px 0 12px #0000001a;position:fixed;height:100vh;left:0;top:0;z-index:1000;overflow-y:auto;transition:width .3s ease}.sidebar.collapsed{width:80px}.sidebar-header{padding:1.5rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.1);background:#ffffff0d;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sidebar.collapsed .sidebar-header{padding:1.5rem .75rem;justify-content:center}.sidebar-logo{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:700;color:#fff;flex:1;min-width:0}.sidebar.collapsed .sidebar-logo{justify-content:center;gap:0}.logo-icon{font-size:1.75rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.logo-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:800;letter-spacing:-.5px;white-space:nowrap;overflow:hidden;transition:opacity .3s ease}.sidebar.collapsed .logo-text{opacity:0;width:0;overflow:hidden}.sidebar-toggle{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;width:32px;height:32px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:all .2s ease;flex-shrink:0}.sidebar-toggle:hover{background:#fff3;border-color:#ffffff4d}.sidebar.collapsed .sidebar-toggle{width:100%;margin-top:.5rem}.sidebar-nav{flex:1;padding:1rem .75rem;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;margin-bottom:.25rem;color:#fffc;text-decoration:none;border-radius:10px;transition:all .2s ease;position:relative;font-size:.95rem}.sidebar.collapsed .nav-item{justify-content:center;padding:.875rem .5rem}.nav-item:hover{background:#ffffff1a;color:#fff;transform:translate(4px)}.nav-item.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 12px #667eea66;font-weight:600}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:4px;height:60%;background:#fff;border-radius:0 4px 4px 0}.nav-icon{font-size:1.25rem;display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.nav-label{flex:1;white-space:nowrap;overflow:hidden;transition:opacity .3s ease}.sidebar.collapsed .nav-label{opacity:0;width:0;overflow:hidden}.sidebar-footer{padding:1.25rem;border-top:1px solid rgba(255,255,255,.1);background:#0003}.user-info{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem;background:#ffffff0d;border-radius:10px;transition:opacity .3s ease}.sidebar.collapsed .user-info{opacity:0;height:0;margin:0;padding:0;overflow:hidden}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;color:#fff;flex-shrink:0;box-shadow:0 2px 8px #667eea4d}.user-details{display:flex;flex-direction:column;flex:1;min-width:0}.user-name{font-weight:600;font-size:.95rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:#fff9;margin-top:.125rem}.logout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:#ef444433;border:1px solid rgba(239,68,68,.3);border-radius:10px;color:#fca5a5;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.logout-btn.collapsed{padding:.75rem .5rem;gap:0}.logout-btn:hover{background:#ef44444d;border-color:#ef444480;color:#f87171;transform:translateY(-1px);box-shadow:0 4px 12px #ef444433}.logout-icon{font-size:1.1rem}.main-content{flex:1;margin-left:280px;padding:2rem;min-height:100vh;background:#f5f7fa;overflow-x:hidden;max-width:calc(100vw - 280px);box-sizing:border-box;transition:margin-left .3s ease,max-width .3s ease}.main-content.collapsed{margin-left:80px;max-width:calc(100vw - 80px)}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:#ffffff0d}.sidebar::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}@media(max-width:768px){.sidebar{transform:translate(-100%);transition:transform .3s ease}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-box{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 10px 25px #0003;width:100%;max-width:400px}.login-box h1{margin:0 0 1.5rem;text-align:center;color:#333}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:5px;font-size:1rem;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea}.error-message{color:#e74c3c;margin-bottom:1rem;padding:.5rem;background:#fee;border-radius:5px;font-size:.9rem}.login-box button{width:100%;padding:.75rem;background:#667eea;color:#fff;border:none;border-radius:5px;font-size:1rem;cursor:pointer;transition:background .3s}.login-box button:hover:not(:disabled){background:#5568d3}.login-box button:disabled{opacity:.6;cursor:not-allowed}.home{max-width:1200px;margin:0 auto}.home h1{color:#2c3e50;margin-bottom:2rem}.home-content{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 10px #0000001a}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:2rem}.dashboard-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;border-radius:10px;text-decoration:none;transition:transform .3s,box-shadow .3s;display:block}.dashboard-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px #0003}.dashboard-card h3{margin:0 0 1rem;font-size:1.5rem}.dashboard-card p{margin:0;opacity:.9}.admin-page{max-width:100%;margin:0 auto;width:100%;box-sizing:border-box}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h1{color:#2c3e50;margin:0}.btn-small{background:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:5px;cursor:pointer;font-size:.9rem;transition:background .3s;white-space:nowrap}.btn-small:hover{background:#2980b9}table .btn-small{padding:.4rem .8rem;font-size:.85rem}.table-container{background:#fff;border-radius:10px;overflow-x:auto;overflow-y:visible;box-shadow:0 2px 10px #0000001a;-webkit-overflow-scrolling:touch;position:relative}.table-container::-webkit-scrollbar{height:8px}.table-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.table-container::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.table-container::-webkit-scrollbar-thumb:hover{background:#555}table{width:100%;border-collapse:collapse;min-width:600px;table-layout:auto}thead{background:#2c3e50;color:#fff;position:sticky;top:0;z-index:10}th,td{padding:.75rem .5rem;text-align:left;border-bottom:1px solid #eee;white-space:nowrap;font-size:.9rem}th{font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px}th:first-child,td:first-child{min-width:60px;max-width:80px;padding-left:1rem}th:last-child,td:last-child{min-width:140px;max-width:180px;padding-right:1rem;position:sticky;right:0;box-shadow:-2px 0 4px #0000000d}thead th:last-child{background:#2c3e50}td:last-child{background:#fff}tbody tr:hover td:last-child{background:#f5f5f5}tbody tr:hover{background:#f5f5f5}.table-container table th:not(:first-child),.table-container table td:not(:first-child){min-width:100px;text-align:center}@media(max-width:1366px){th,td{padding:.6rem .4rem;font-size:.85rem}th{font-size:.8rem}}@media(max-width:1024px){.table-container{margin:0 -1rem;border-radius:0}th,td{padding:.5rem .35rem;font-size:.8rem}th{font-size:.75rem}.btn-small{padding:.4rem .8rem;font-size:.8rem}}.badge-success{background:#27ae60;color:#fff;padding:.25rem .75rem;border-radius:15px;font-size:.85rem}.badge-warning{background:#f39c12;color:#fff;padding:.25rem .75rem;border-radius:15px;font-size:.85rem}.badge-error{background:#e74c3c;color:#fff;padding:.25rem .75rem;border-radius:15px;font-size:.85rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal{background:#fff;padding:2rem;border-radius:10px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.form-group input[type=text],.form-group input[type=email],.form-group input[type=password],.form-group input[type=number],.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:5px;font-size:1rem;box-sizing:border-box;font-family:inherit}.form-group input[type=checkbox]{margin-right:.5rem}.form-actions{display:flex;gap:1rem;justify-content:flex-end}.card h2{margin-top:0;color:#2c3e50}.user-page{max-width:1200px;margin:0 auto}.user-page h1{color:#2c3e50;margin-bottom:2rem}.card{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem}.card h2{color:#2c3e50;margin-top:0}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#555;font-weight:500}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:5px;font-size:1rem;box-sizing:border-box;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.form-group small{display:block;margin-top:.5rem;color:#777;font-size:.85rem}.btn-primary{background:#667eea;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:5px;cursor:pointer;font-size:1rem;transition:background .3s}.btn-primary:hover:not(:disabled){background:#5568d3}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#95a5a6;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:5px;cursor:pointer;font-size:1rem;transition:background .3s}.btn-secondary:hover{background:#7f8c8d}.btn-small{background:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:5px;cursor:pointer;font-size:.9rem;transition:background .3s;margin-right:.5rem}.btn-small:hover:not(:disabled){background:#2980b9}.btn-small:disabled{opacity:.6;cursor:not-allowed}.error-message{background:#fee;color:#e74c3c;padding:1rem;border-radius:5px;margin-bottom:1rem}.success-message{background:#efe;color:#27ae60;padding:1rem;border-radius:5px;margin-bottom:1rem}.status-box{padding:1.5rem;border-radius:10px;margin-bottom:2rem}.status-box.success{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.status-box h3{margin-top:0}.generations-list{display:flex;flex-direction:column;gap:1rem}.generation-item{background:#fff;padding:1rem;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 1px 4px #0000000f;transition:all .2s ease;margin-bottom:.75rem}.generation-item:hover{box-shadow:0 2px 8px #0000001a;border-color:#667eea}.generation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #f0f0f0}.generation-header h3{margin:0;color:#2c3e50;font-size:1rem;font-weight:600}.model-type{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.25rem .65rem;border-radius:12px;font-size:.7rem;font-weight:500;box-shadow:0 1px 3px #667eea4d}.generation-text{color:#555;margin-bottom:.75rem;line-height:1.5;font-size:.875rem;background:#f8f9fa;padding:.75rem;border-radius:6px;border-left:3px solid #667eea;max-height:4.5em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.generation-text.expanded{max-height:none;-webkit-line-clamp:unset}.generation-actions{margin:0;display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;flex-shrink:0}.generation-date{color:#999;font-size:.75rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #f0f0f0;display:flex;align-items:center;gap:.5rem}.generation-date:before{content:"🕒";font-size:.9rem}.form-group input[type=range]{width:100%;margin:.5rem 0;cursor:pointer}.form-group input[type=range]::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:#667eea;cursor:pointer}.form-group input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#667eea;cursor:pointer;border:none}.form-group input[type=checkbox]{width:auto;margin-right:.5rem;cursor:pointer}.form-group label input[type=checkbox]{width:auto}audio{outline:none}audio::-webkit-media-controls-panel{background-color:#f8f9fa}audio::-webkit-media-controls-play-button{background-color:#667eea;border-radius:50%}audio::-webkit-media-controls-timeline{background-color:#dee2e6;border-radius:5px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .65rem;border-radius:12px;font-size:.75rem;font-weight:500}.status-badge.pending{background:#fff3cd;color:#856404;border:1px solid #ffc107}.status-badge.processing{background:#d1ecf1;color:#0c5460;border:1px solid #17a2b8}.status-badge.completed{background:#d4edda;color:#155724;border:1px solid #28a745}.status-badge.failed{background:#f8d7da;color:#721c24;border:1px solid #dc3545}.status-badge.processing:before{content:"⏳";animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:2rem;overflow-y:auto}.modal{background:#fff;padding:2rem;border-radius:12px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0003;position:relative}.modal h2{margin-top:0;color:#2c3e50}.modal::-webkit-scrollbar{width:8px}.modal::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.modal::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.modal::-webkit-scrollbar-thumb:hover{background:#555}.faq{max-width:1400px;margin:0 auto;padding:2rem}.faq h1{color:#2c3e50;margin-bottom:2rem}.faq-intro{font-size:1.1rem;color:#555;margin-bottom:2rem;line-height:1.6}.faq-content{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 10px #0000001a}.faq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:2rem}.faq-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;border-radius:10px;text-decoration:none;transition:transform .3s,box-shadow .3s;display:block;text-align:center}.faq-card:hover{transform:translateY(-5px);box-shadow:0 10px 25px #0003}.faq-card-icon{font-size:3rem;margin-bottom:1rem}.faq-card h3{margin:0 0 1rem;font-size:1.5rem}.faq-card p{margin:0;opacity:.9;font-size:.95rem}.faq-header{margin-bottom:2rem}.faq-back-link{color:#667eea;text-decoration:none;font-weight:500;display:inline-flex;align-items:center;gap:.5rem;transition:color .3s}.faq-back-link:hover{color:#764ba2}.faq-sidebar{background:#fff;padding:1.5rem;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:2rem;position:sticky;top:2rem}.faq-sidebar h3{margin:0 0 1rem;color:#2c3e50;font-size:1.2rem}.faq-nav{display:flex;flex-direction:column;gap:.5rem}.faq-nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:#555;text-decoration:none;border-radius:6px;transition:background-color .3s,color .3s}.faq-nav-item:hover{background-color:#f5f5f5;color:#667eea}.faq-nav-item.active{background-color:#667eea;color:#fff}.faq-nav-icon{font-size:1.2rem}.faq-content-wrapper{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 10px #0000001a;min-height:400px;flex:1}.faq-with-sidebar{display:grid;grid-template-columns:250px 1fr;gap:2rem;align-items:start}@media(max-width:1024px){.faq-with-sidebar{grid-template-columns:1fr}.faq-sidebar{position:static}}.faq-instruction{max-width:900px}.faq-instruction h2{color:#2c3e50;margin-bottom:1.5rem;font-size:2rem}.faq-instruction h3{color:#667eea;margin-top:2rem;margin-bottom:1rem;font-size:1.5rem}.faq-instruction p{color:#555;line-height:1.8;margin-bottom:1rem}.faq-instruction ol,.faq-instruction ul{color:#555;line-height:1.8;margin-left:2rem;margin-bottom:1.5rem}.faq-instruction li{margin-bottom:.75rem}.faq-instruction code{background-color:#f4f4f4;padding:.2rem .4rem;border-radius:4px;font-family:Courier New,monospace;font-size:.9em;color:#e83e8c}.faq-instruction .step{background-color:#f8f9fa;padding:1.5rem;border-radius:8px;border-left:4px solid #667eea;margin-bottom:1.5rem}.faq-instruction .step h4{color:#667eea;margin:0 0 .75rem;font-size:1.2rem}.faq-instruction .note{background-color:#fff3cd;border-left:4px solid #ffc107;padding:1rem;border-radius:6px;margin:1.5rem 0}.faq-instruction .note strong{color:#856404}.faq-instruction .warning{background-color:#f8d7da;border-left:4px solid #dc3545;padding:1rem;border-radius:6px;margin:1.5rem 0}.faq-instruction .warning strong{color:#721c24}@media(max-width:768px){.faq-grid{grid-template-columns:1fr}.faq-nav{flex-direction:row;flex-wrap:wrap}.faq-nav-item{flex:1;min-width:150px}}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}
