.auth-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-box{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;max-width:500px;padding:40px;width:100%}.auth-logo{align-items:center;display:flex;gap:15px;justify-content:center;margin-bottom:25px;text-align:center}.logo-icon{font-size:3rem}.auth-logo h1{color:#667eea;font-size:1.4rem;margin:0}.auth-logo h3{color:#666;font-size:.9rem;font-weight:500;margin:0}.auth-box h2{color:#333;font-size:1.5rem;font-weight:600;text-align:center}.auth-box h2,.role-selection{margin-bottom:25px}.role-label{color:#333;font-weight:600;margin-bottom:12px;text-align:center}.role-buttons{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:20px}.role-btn{align-items:center;background:#f9f9f9;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font-size:.9rem;gap:8px;padding:15px;transition:all .3s ease}.role-btn.active,.role-btn:hover{background:#f0f0ff;border-color:#667eea}.role-btn.active{box-shadow:0 0 0 3px #667eea1a}.role-icon{font-size:1.8rem}.role-title{color:#333;font-weight:600}.role-desc{color:#999;font-size:.75rem}.role-info{margin-bottom:20px}.info-box{background:#f0f4ff;border-left:4px solid #667eea;border-radius:4px;font-size:.85rem;padding:12px}.info-box h4{color:#667eea;margin:0 0 8px}.info-box ul{list-style:none;margin:0;padding:0}.info-box li{align-items:center;color:#555;display:flex;padding:3px 0}.info-box li:before{color:#667eea;content:"✓";font-weight:700;margin-right:6px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form input{border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;padding:12px;transition:border-color .2s ease;width:100%}.auth-form input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.auth-form button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:5px;padding:12px;transition:transform .2s ease,box-shadow .2s ease}.auth-form button:hover:not(:disabled){box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}.auth-form button:disabled{cursor:not-allowed;opacity:.6}.auth-link{color:#666;font-size:.95rem;margin-top:15px;text-align:center}.auth-link a{color:#667eea;font-weight:600;text-decoration:none;transition:color .2s ease}.auth-link a:hover{color:#764ba2}@media (max-width:480px){.auth-box{padding:25px}.auth-logo{flex-direction:column;gap:8px}.auth-logo h1{font-size:1.2rem}.auth-logo h3{font-size:.8rem}.logo-icon{font-size:2.5rem}.auth-box h2{font-size:1.2rem}.role-buttons{grid-template-columns:1fr}.role-btn{padding:12px}}.navbar{background:linear-gradient(135deg,#1e3c72,#2a5298 50%,#1e3c72);box-shadow:0 2px 10px #0000001a;color:#fff}.navbar-container{grid-gap:16px;align-items:center;display:grid;gap:16px;grid-template-columns:auto 1fr auto;margin:0 auto;max-width:1400px;padding:15px 30px}.navbar-logo{align-items:center;display:flex;gap:12px}.logo-icon{font-size:2rem}.navbar-logo h1{font-size:1.3rem;font-weight:700;line-height:1.2;margin:0}.navbar-logo p{font-size:.75rem;font-weight:500;margin:0;opacity:.9}.navbar-highlights{align-items:center;display:flex;gap:10px;overflow:hidden;white-space:nowrap}.highlight-chip{align-items:center;background:#ffffff2e;border:1px solid #ffffff59;border-radius:10px;box-shadow:0 4px 12px #0000002e;color:#f8fafc;display:inline-flex;font-size:.95rem;font-weight:600;gap:6px;padding:8px 12px}.highlight-chip.success{border-color:#22c55e;color:#dcfce7}.highlight-chip.info{border-color:#60a5fa;color:#e0f2fe}.navbar-content{align-items:center;display:flex;gap:20px}.user-info{display:flex;flex-direction:column;font-size:.9rem;gap:4px}.role-badge{align-items:center;background:#fff3;border-radius:12px;display:flex;font-size:.85rem;font-weight:700;gap:4px;padding:4px 8px;width:-webkit-fit-content;width:fit-content}.user-name{font-weight:500}.logout-btn{align-items:center;background:#fff3;border:2px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:8px;padding:8px 16px;transition:all .3s ease}.logout-btn:hover{background:#ffffff4d;border-color:#ffffff80;transform:translateY(-2px)}@media (max-width:768px){.navbar-container{gap:10px;grid-template-columns:1fr;padding:12px 20px}.navbar-logo{gap:8px}.logo-icon{font-size:1.5rem}.navbar-logo h1{font-size:1.1rem}.navbar-logo p{display:none}.navbar-highlights{flex-wrap:wrap;white-space:normal}.navbar-content{justify-content:space-between;width:100%}.user-info{font-size:.85rem}.logout-btn{font-size:.9rem;padding:6px 12px}}.enhanced-dashboard{background:linear-gradient(135deg,#1e3c72,#2a5298 50%,#1e3c72);color:#fff;min-height:100vh;padding-bottom:40px}.enhanced-loading{align-items:center;background:linear-gradient(135deg,#1e3c72,#2a5298);color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:100vh}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #ffffff4d;border-radius:50%;border-top-color:gold;height:60px;width:60px}@keyframes spin{to{transform:rotate(1turn)}}.dashboard-header{background:linear-gradient(90deg,#0006,#0003);border-bottom:3px solid #ffd7004d;box-shadow:0 4px 15px #0000004d;padding:30px}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1400px}.city-info h1{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,gold,#ffed4e);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:700;margin:0;text-shadow:2px 2px 4px #00000080}.subtitle{font-size:1.1rem;font-weight:300;margin:8px 0 0;opacity:.9}.header-stats{text-align:right}.time-display{align-items:center;color:gold;display:flex;font-size:1.8rem;font-weight:600;gap:8px;margin-bottom:5px}.date-display{font-size:.95rem;opacity:.8}.main-stats-grid{grid-gap:25px;display:grid;gap:25px;grid-template-columns:repeat(4,minmax(220px,1fr));margin:30px auto;max-width:1400px;padding:0 30px}@media (max-width:1200px){.main-stats-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}}.summary-chips{display:flex;flex-wrap:wrap;gap:12px;margin:20px auto 10px;max-width:1400px;padding:0 30px}.chip{background:#ffffff1f;border:1px solid #ffffff4d;border-radius:10px;box-shadow:0 6px 18px #00000040;color:#fff;font-size:.95rem;font-weight:600;padding:10px 14px}.chip.success{border-color:#22c55e;color:#d1fae5}.chip.info{border-color:#60a5fa;color:#dbeafe}.chip.warning{border-color:#f59e0b;color:#fef3c7}.chip.danger{border-color:#f87171;color:#fee2e2}.chip.neutral{border-color:#a5b4fc;color:#e0e7ff}.chip.muted{border-color:#fff6;color:#ffffffd9}@media (max-width:720px){.summary-chips{padding:0 20px}.main-stats-grid{grid-template-columns:1fr}}.stat-card-enhanced{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border:2px solid #fff3;border-radius:15px;box-shadow:0 8px 32px #0000004d;overflow:hidden;padding:25px;position:relative;transition:all .3s ease}.stat-card-enhanced:before{background:linear-gradient(90deg,gold,#ffed4e);content:"";height:4px;left:0;position:absolute;right:0;top:0}.stat-card-enhanced.primary:before{background:linear-gradient(90deg,#667eea,#764ba2)}.stat-card-enhanced.success:before{background:linear-gradient(90deg,gold,#ff8c00)}.stat-card-enhanced.info:before{background:linear-gradient(90deg,#4a90e2,#357abd)}.stat-card-enhanced.danger:before{background:linear-gradient(90deg,#ff6b6b,#ee5a6f)}.stat-card-enhanced:hover{border-color:#ffd70080;box-shadow:0 12px 48px #0006;transform:translateY(-5px)}.card-icon{align-items:center;background:#ffffff1a;border:3px solid #ffffff4d;border-radius:50%;display:flex;height:80px;justify-content:center;margin:0 auto 20px;width:80px}.card-icon svg{color:gold;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.card-content h3{font-size:1rem;font-weight:600;letter-spacing:1px;margin:0 0 15px;opacity:.9;text-align:center;text-transform:uppercase}.stat-number{color:gold;font-size:3.5rem;font-weight:700;line-height:1;margin:15px 0;text-align:center;text-shadow:0 2px 8px #ffd70080}.stat-label{font-size:1rem;margin-top:10px;opacity:.8;text-align:center}.card-footer{align-items:center;border-top:1px solid #fff3;display:flex;font-size:.9rem;gap:8px;justify-content:center;margin-top:20px;opacity:.9;padding-top:15px}.system-architecture{margin:50px auto;max-width:1400px;padding:0 30px}.system-architecture h2{color:gold;font-size:2rem;font-weight:600;letter-spacing:2px;margin-bottom:30px;text-align:center;text-shadow:2px 2px 4px #00000080;text-transform:uppercase}.architecture-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.architecture-card{background:linear-gradient(135deg,#ffffff26,#ffffff0d);border:2px solid #fff3;border-radius:12px;padding:30px;position:relative;text-align:center;transition:all .3s ease}.architecture-card:after{background:linear-gradient(90deg,#0000,gold,#0000);bottom:0;content:"";height:3px;left:0;opacity:0;position:absolute;right:0;transition:opacity .3s ease}.architecture-card:hover:after{opacity:1}.architecture-card:hover{border-color:#ffd70080;box-shadow:0 8px 32px #0006;transform:translateY(-5px)}.arch-icon{align-items:center;background:#ffd70033;border:2px solid #ffd70080;border-radius:50%;display:flex;height:70px;justify-content:center;margin:0 auto 15px;width:70px}.arch-icon svg{color:gold}.architecture-card h3{font-size:1.1rem;font-weight:600;letter-spacing:1px;margin-bottom:15px;text-transform:uppercase}.arch-number{color:gold;font-size:2.5rem;font-weight:700;margin:15px 0}.architecture-card p{font-size:.95rem;margin:10px 0 15px;opacity:.8}.arch-status{align-items:center;border-top:1px solid #fff3;display:flex;gap:8px;justify-content:center;margin-top:15px;padding-top:15px}.status-dot{height:10px;width:10px}.energy-section{margin:50px auto;max-width:1400px;padding:0 30px}.energy-section h2{color:gold;font-size:2rem;font-weight:600;letter-spacing:2px;margin-bottom:30px;text-align:center;text-shadow:2px 2px 4px #00000080;text-transform:uppercase}.energy-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.energy-card{background:linear-gradient(135deg,#ffffff26,#ffffff0d);border:2px solid #fff3;border-radius:12px;padding:25px;text-align:center;transition:all .3s ease}.energy-card:hover{border-color:#ffd70080;box-shadow:0 8px 32px #0006;transform:translateY(-5px)}.energy-card h3{font-size:1rem;letter-spacing:1px;margin-bottom:15px;opacity:.9;text-transform:uppercase}.energy-value{color:gold;font-size:2.5rem;font-weight:700;margin:15px 0}.progress-bar{background:#fff3;border-radius:10px;height:8px;margin:15px 0;overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,gold,#ff8c00);border-radius:10px;box-shadow:0 0 10px #ffd70080;height:100%;transition:width .5s ease}.energy-card p{font-size:.9rem;margin-top:10px;opacity:.8}.quick-actions{margin:50px auto 0;max-width:1400px;padding:0 30px}.quick-actions h2{color:gold;font-size:2rem;font-weight:600;letter-spacing:2px;margin-bottom:30px;text-align:center;text-shadow:2px 2px 4px #00000080;text-transform:uppercase}.actions-grid{grid-gap:20px;align-items:stretch;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));justify-items:stretch}.action-btn{align-items:center;background:linear-gradient(135deg,#ffffff26,#ffffff0d);border:2px solid #ffffff4d;border-radius:12px;color:#fff;cursor:pointer;display:flex;flex-direction:column;font-size:1rem;font-weight:600;gap:12px;letter-spacing:1px;padding:20px;text-align:center;text-transform:uppercase;transition:all .3s ease;width:100%}.action-btn svg{color:gold}.action-btn:hover{background:linear-gradient(135deg,#ffffff40,#ffffff26);border-color:#ffd700b3;box-shadow:0 8px 32px #0006;transform:translateY(-3px)}@media (max-width:1200px){.header-content{flex-direction:column;gap:20px}.header-content,.header-stats{text-align:center}}@media (max-width:768px){.enhanced-dashboard{padding-bottom:20px}.dashboard-header{padding:20px}.city-info h1{font-size:1.8rem}.subtitle{font-size:.95rem}.time-display{font-size:1.4rem}.date-display{font-size:.85rem}.actions-grid,.architecture-grid,.energy-grid,.main-stats-grid{gap:15px;grid-template-columns:1fr;padding:0 15px}.energy-section,.quick-actions,.system-architecture{margin:30px auto;padding:0 15px}.energy-section h2,.quick-actions h2,.system-architecture h2{font-size:1.5rem}.stat-number{font-size:2.5rem}.arch-number,.energy-value{font-size:2rem}}@media (max-width:480px){.city-info h1{font-size:1.5rem}.main-stats-grid{margin:20px auto}.stat-card-enhanced{padding:20px}.card-icon{height:60px;width:60px}.card-icon svg{height:32px;width:32px}}.light-control-container{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:30px}.light-control-container h2{color:#333;font-size:1.8rem;margin-bottom:25px}.lights-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.light-card{background:#fff;border:2px solid #e0e0e0;border-radius:10px;padding:20px;transition:all .3s ease}.light-card.on{background:linear-gradient(135deg,#ffd7000d,#ffd70005);border-color:gold}.light-card.off{background:linear-gradient(135deg,#4a90e20d,#4a90e205);border-color:#4a90e2}.light-card.error{background:linear-gradient(135deg,#ff6b6b0d,#ff6b6b05);border-color:#ff6b6b}.light-card:hover{box-shadow:0 5px 15px #0000001a;transform:translateY(-3px)}.light-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:12px}.light-header h3{color:#333;font-size:1.2rem;margin:0}.status-badge{border-radius:20px;font-size:.8rem;font-weight:700;padding:6px 12px;text-transform:uppercase}.status-badge.on{background:gold;color:#333}.status-badge.off{background:#4a90e2;color:#fff}.status-badge.error{background:#ff6b6b;color:#fff}.light-details{font-size:.9rem;margin-bottom:15px}.light-details p{color:#555;margin-bottom:8px}.light-details strong{color:#333}.error-details{align-items:center;background:#fff3cd;border-left:4px solid #ff6b6b;border-radius:4px;color:#d73a4a;display:flex;gap:8px;margin-top:10px;padding:10px 12px}.light-controls{display:flex;gap:10px;margin-top:15px}.btn{align-items:center;border-radius:6px;display:flex;flex:1 1;font-weight:600;gap:8px;justify-content:center;padding:10px}.btn-on{background:gold;color:#333}.btn-on:hover:not(:disabled){background:#ffed4e;transform:translateY(-2px)}.btn-off{background:#4a90e2;color:#fff}.btn-off:hover:not(:disabled){background:#5a9ff5;transform:translateY(-2px)}.btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.light-control-container{padding:20px}.light-control-container h2{font-size:1.4rem;margin-bottom:20px}.lights-grid{gap:15px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.light-card{padding:15px}}@media (max-width:480px){.lights-grid{grid-template-columns:1fr}.light-controls{gap:8px}.btn{font-size:.9rem;padding:8px}}.map-container{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000d;padding:30px}.map-container h2{color:#333;font-size:1.8rem;margin-bottom:15px}.map-legend{display:flex;flex-wrap:wrap;font-size:.9rem;font-weight:600;gap:20px;margin-bottom:20px}.legend-item{align-items:center;background:#f5f7fa;border-radius:6px;display:flex;gap:8px;padding:8px 12px}.legend-item.on{background:#ffd7001a;color:#d9a600}.legend-item.off{background:#4a90e21a;color:#2d5aa6}.legend-item.error{background:#ff6b6b1a;color:#d73a4a}.map{box-shadow:0 2px 10px #0000001a;overflow:hidden}.map,.map-placeholder{border-radius:10px;height:600px;width:100%}.map-placeholder{align-items:center;background:linear-gradient(135deg,#f5f7fa,#e8ebf0);color:#666;display:flex;font-size:1.1rem;justify-content:center;padding:20px;text-align:center}.info-window{background:#fff;border-radius:6px;box-shadow:0 2px 8px #00000026;padding:10px}.info-window h4{color:#333;font-size:1rem;margin:0 0 8px}.info-window p{color:#666;font-size:.9rem;margin:0}.info-window strong{color:#333}@media (max-width:768px){.map-container{padding:20px}.map-container h2{font-size:1.4rem;margin-bottom:15px}.map{height:400px}.map-placeholder{font-size:.95rem;height:400px}.map-legend{font-size:.85rem;gap:10px}.legend-item{padding:6px 10px}}@media (max-width:480px){.map-container{padding:15px}.map-container h2{font-size:1.2rem}.map,.map-placeholder{height:300px}.map-legend{font-size:.8rem;gap:8px}}.reports-container{background:linear-gradient(135deg,#1e3c72,#2a5298 50%,#1e3c72);color:#fff;min-height:100vh;padding:20px}.reports-header{background:#ffffff14;border:2px solid #ffd7004d;border-radius:12px;margin-bottom:25px;padding:20px;text-align:center}.reports-header h2{color:gold;font-size:2.2rem;font-weight:700;letter-spacing:1px;margin:0 0 12px;text-shadow:2px 2px 6px #0009}.reports-header p{color:#fffffff2;font-size:1.05rem;margin:0;opacity:.92}.reports-content{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(135deg,#ffffff1f,#ffffff14);border:2px solid #ffffff40;border-radius:16px;box-shadow:0 10px 40px #0006;margin:0 auto;max-width:1500px;padding:35px}.form-row{grid-gap:20px;align-items:end;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.form-group{display:flex;flex-direction:column;gap:10px}.form-group.col-2,.form-group.col-3,.form-group.col-4{grid-column:span 1;min-width:0}.form-group label{color:gold;font-size:.92rem;font-weight:700;letter-spacing:.5px;opacity:1;text-shadow:1px 1px 2px #0006;text-transform:uppercase}.form-control{background:#ffffff2e;border:2px solid #ffffff59;border-radius:10px;box-shadow:inset 0 2px 4px #0003;color:#fff;font-size:.96rem;font-weight:500;padding:12px 14px;transition:all .3s ease}.form-control:focus{background:#ffffff40;border-color:gold;box-shadow:0 0 0 3px #ffd70033,inset 0 2px 4px #0003;outline:none;transform:translateY(-1px)}.form-control::placeholder{color:#fff9}.form-control option{background:#1e3c72;color:#fff;font-weight:500;padding:10px}.form-control[multiple]{min-height:120px;scrollbar-color:#ffd70080 #ffffff1a;scrollbar-width:thin}.form-control[multiple]::-webkit-scrollbar{width:8px}.form-control[multiple]::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.form-control[multiple]::-webkit-scrollbar-thumb{background:#ffd70080;border-radius:4px}.form-control[multiple]::-webkit-scrollbar-thumb:hover{background:#ffd700b3}.btn{border:none;border-radius:10px;box-shadow:0 4px 12px #0000004d;cursor:pointer;font-size:.96rem;font-weight:700;letter-spacing:.5px;margin-top:0;padding:12px 24px;text-transform:uppercase;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#51afc4,#3d8a9a);color:#fff}.btn-primary:hover{background:linear-gradient(135deg,#3d8a9a,#2d6a77);box-shadow:0 6px 18px #0006;transform:translateY(-3px)}.btn-primary:active{transform:translateY(-1px)}.btn.load-map{background:linear-gradient(135deg,#51afc4,#3d8a9a)}.btn.load-map:hover{background:linear-gradient(135deg,#3d8a9a,#2d6a77)}.btn.view-report{background:linear-gradient(135deg,#667eea,#764ba2)}.btn.view-report:hover{background:linear-gradient(135deg,#764ba2,#5a3579)}.hide{display:none!important}.report-output{background:#00000040;border:2px solid #fff3;border-radius:14px;box-shadow:inset 0 2px 8px #0000004d;margin-top:35px;min-height:350px;padding:35px}.report-placeholder{align-items:center;display:flex;flex-direction:column;gap:15px;height:280px;justify-content:center}.report-placeholder p{color:#ffffffd9;font-size:1.15rem;font-weight:500;line-height:1.6;max-width:500px;opacity:.8;text-align:center}@media (max-width:1024px){.form-group.col-2,.form-group.col-3,.form-group.col-4{flex-basis:calc(50% - 15px);flex-grow:0;flex-shrink:0}}@media (max-width:640px){.reports-container{padding:15px}.reports-content{padding:20px}.form-row{gap:10px}.form-group.col-2,.form-group.col-3,.form-group.col-4{flex:0 0 100%}.btn{margin-top:8px;width:100%}}:root{--chat-primary-1:#b45309;--chat-primary-2:#f59e0b;--chat-accent:#fde047;--chat-gradient:linear-gradient(135deg,var(--chat-primary-1) 0%,var(--chat-primary-2) 100%)}.ai-chatbot-overlay{align-items:center;animation:fadeIn .25s ease;background:#00000073;display:flex;inset:0;justify-content:center;position:fixed;z-index:10000}.ai-chatbot-container{animation:slideUp .25s ease;background:#fffdf7;border:1px solid #b4530940;border-radius:16px;box-shadow:0 18px 48px #b4530947;display:flex;flex-direction:column;height:80vh;max-height:720px;max-width:520px;overflow:hidden;width:90%}.chat-header{background:linear-gradient(135deg,#b45309,#f59e0b);background:var(--chat-gradient);box-shadow:0 10px 30px #00000026;color:#fff;justify-content:space-between;padding:16px 20px}.chat-header,.header-left{align-items:center;display:flex}.header-left{gap:12px}.ai-avatar{align-items:center;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 2px #f59e0b33;color:#b45309;display:flex;font-size:22px;height:46px;justify-content:center;width:46px}.chat-header h3{font-size:18px;font-weight:700;margin:0}.status{align-items:center;display:flex;font-size:12px;gap:6px;opacity:.9}.status-dot{animation:pulse 2s infinite;background:#4ade80;border-radius:50%;height:8px;width:8px}.close-btn{align-items:center;background:#ffffff2e;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;height:34px;justify-content:center;transition:background .2s ease,transform .2s ease;width:34px}.close-btn:hover{background:#ffffff47;transform:scale(1.03)}.chat-messages{background:linear-gradient(180deg,#fffdf7,#fff7e6);display:flex;flex:1 1;flex-direction:column;gap:14px;overflow-y:auto;padding:18px}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-thumb{background:#b4530973;border-radius:4px}.message{align-items:flex-start;gap:10px}.message.user .message-content{align-self:flex-end;background:#fef3c7;color:#92400e}.message.ai .message-content{background:#ecfeff;border:1px solid #0ea5e933;color:#0f172a}.message-content{border-radius:12px;box-shadow:0 6px 18px #0000000f;max-width:82%;padding:12px 14px;white-space:pre-wrap}.timestamp{color:#6b7280}.action-details{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;margin-top:8px;padding:10px}.intent-badge{background:#f59e0b26;border-radius:8px;color:#b45309;padding:4px 8px}.action-result pre{background:#0f172a;border-radius:8px;color:#e5e7eb;font-size:12px;margin:8px 0 0}.typing-indicator{align-items:center;gap:4px}.typing-indicator span{animation:pulse 1.4s ease-in-out infinite;background:#0ea5e9;height:8px;width:8px}.typing-indicator span:nth-child(2){animation-delay:.15s}.typing-indicator span:nth-child(3){animation-delay:.3s}.quick-actions{grid-gap:10px;background:#fff8eb;border-top:1px solid #b453091f;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));padding:12px 18px}.quick-actions button{border:1px solid #b453094d;border-radius:10px;color:#b45309;font-weight:600;padding:10px 12px;transition:all .2s ease}.quick-actions button:hover{background:#fef3c7;box-shadow:0 10px 24px #b4530926}.chat-input-container{border-top:1px solid #b453091f;gap:10px;padding:12px 18px}.chat-input{background:#fffdf7;border:1px solid #b453094d;border-radius:12px;color:#0f172a;padding:12px}.chat-input:focus{outline:2px solid #f59e0b59}.send-btn{border-radius:12px;font-size:16px;min-width:72px;padding:0 16px;transition:transform .15s ease,box-shadow .15s ease}.send-btn:not(:disabled):hover{box-shadow:0 12px 24px #b4530933;transform:translateY(-1px)}.chat-footer{background:#fff8eb;border-top:1px solid #b453091a;color:#92400e;font-size:12px;padding:10px 18px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.message{animation:messageSlide .3s ease;display:flex;flex-direction:column}@keyframes messageSlide{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-items:flex-end}.message.ai{align-items:flex-start}.message-content{word-wrap:break-word;background:#fff;border-radius:18px;box-shadow:0 2px 8px #00000014;max-width:85%;padding:12px 16px}.message.user .message-content{background:linear-gradient(135deg,#b45309,#f59e0b);background:var(--chat-gradient);border:1px solid #ffffff2e;box-shadow:0 6px 18px #0d6efd40;color:#fff}.message-content p{line-height:1.5;margin:0;white-space:pre-wrap}.action-details{border-top:1px solid #0000001a;margin-top:10px;padding-top:10px}.intent-badge{background:#e6f0ff;border-radius:12px;color:#0052cc;display:inline-block;font-size:11px;font-weight:600;margin-bottom:8px;padding:4px 10px}.action-result pre{background:#f5f5f5;border-radius:6px;font-size:11px;margin:0;overflow-x:auto;padding:8px}.timestamp{color:#999;font-size:11px;margin-top:4px}.typing-indicator{display:flex;gap:6px;padding:8px}.typing-indicator span{animation:bounce 1.4s infinite;background:#999;border-radius:50%;height:10px;width:10px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-8px)}}.quick-actions{background:#fff;border-top:1px solid #e0e0e0;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;overflow-x:auto;padding:10px 16px}.quick-actions::-webkit-scrollbar{height:4px}.quick-actions button{background:#fff;border:1px solid #e0e0e0;border-radius:18px;cursor:pointer;flex:1 1 auto;font-size:11px;max-width:120px;min-width:70px;overflow:hidden;padding:8px 12px;text-overflow:ellipsis;transition:all .2s;white-space:nowrap}.quick-actions button:hover{background:#f5f5f5;border-color:#0052cc;transform:translateY(-2px)}.chat-input-container{align-items:flex-end;background:#fff;border-top:1px solid #e0e0e0;display:flex;gap:12px;padding:16px 20px}.chat-input{border:2px solid #e0e0e0;border-radius:20px;flex:1 1;font-family:inherit;font-size:14px;outline:none;padding:12px 16px;resize:none;transition:border-color .2s}.chat-input:focus{border-color:#0052cc}.chat-input:disabled{background:#f5f5f5;cursor:not-allowed}.send-btn{align-items:center;background:linear-gradient(135deg,#b45309,#f59e0b);background:var(--chat-gradient);background-position:0 50%;background-size:180% 180%;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:20px;height:48px;justify-content:center;transition:transform .2s,box-shadow .2s,background-position .35s ease;width:48px}.send-btn:hover:not(:disabled){background-position:100% 50%;box-shadow:0 6px 16px #0ea5e959;transform:scale(1.05)}.send-btn:disabled{cursor:not-allowed;opacity:.5}.chat-footer{background:#f8f9fa;border-radius:0 0 16px 16px;border-top:1px solid #e0e0e0;padding:12px 20px;text-align:center}.chat-footer small{color:#666;font-size:11px}@media (max-width:768px){.ai-chatbot-container{border-radius:0;height:100vh;max-height:100vh;width:100%}.chat-footer,.chat-header{border-radius:0}.message-content{max-width:90%}.quick-actions button{font-size:11px;padding:6px 12px}}.ai-chat-float-btn{align-items:center;background:linear-gradient(135deg,#b45309,#f59e0b);background:var(--chat-gradient);background-position:0 50%;background-size:180% 180%;border:none;border-radius:50%;bottom:24px;box-shadow:0 4px 20px #0ea5e959;color:#fff;cursor:pointer;display:flex;font-size:28px;height:60px;justify-content:center;position:fixed;right:24px;transition:transform .2s,box-shadow .2s,background-position .35s ease;width:60px;z-index:9999}.ai-chat-float-btn:hover{background-position:100% 50%;box-shadow:0 8px 28px #0ea5e973;transform:scale(1.1)}.dashboard{background-color:#f5f7fa;display:flex;flex-direction:column;min-height:100vh}.dashboard-container{display:flex;flex:1 1;gap:0}.sidebar{background:#fff;border-right:1px solid #e0e0e0;box-shadow:2px 0 5px #0000000d;display:flex;flex-direction:column;gap:10px;padding:20px;width:250px}.tab-btn{background:#f0f2f5;border:2px solid #0000;border-radius:6px;color:#333;cursor:pointer;font-weight:500;padding:12px 15px;text-align:left;transition:all .3s ease}.tab-btn:hover{background:#e8ebf0;border-color:#667eea}.tab-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff}.stat-section{margin-bottom:10px}.stat-dropdown-btn{align-items:center;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:6px;color:#333;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;justify-content:space-between;padding:12px 15px;text-align:left;transition:all .3s ease;width:100%}.stat-dropdown-btn:hover{background:#e8ebf0;border-color:#667eea}.stat-dropdown-btn .arrow{color:#667eea;font-size:.8rem}.stat-dropdown-content{background:#f0f2f5;border:2px solid #e0e0e0;border-radius:0 0 6px 6px;border-top:none;margin-top:-6px;padding:10px}.stat-dropdown-content .stat-item{border-bottom:1px solid #ddd;color:#555;display:flex;font-size:.9rem;justify-content:space-between;padding:8px 12px}.stat-dropdown-content .stat-item:last-child{border-bottom:none}.stat-dropdown-content .stat-item strong{color:#667eea;font-weight:700}.admin-section{margin-top:20px}.section-divider{background:#e0e0e0;height:1px;margin:15px 0}.section-label{color:#333;font-size:.9rem;font-weight:600;margin:10px 0 5px}.role-info{background:#f0f4ff;border-left:4px solid #667eea;border-radius:4px;font-size:.85rem;margin-top:20px;padding:15px}.role-info p{line-height:1.4;margin:5px 0}.main-content{flex:1 1;overflow-y:auto;padding:30px}@media (max-width:768px){.dashboard-container{flex-direction:column}.sidebar{border-bottom:1px solid #e0e0e0;border-right:none;flex-direction:row;overflow-x:auto;padding:10px;width:100%}.tab-btn{flex:1 1;white-space:nowrap}.main-content{padding:15px}}@media (max-width:480px){.main-content{padding:10px}}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#667eea,#764ba2);color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6}#root,body,html{height:100%}button{border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;padding:10px 15px;transition:all .3s ease}button:disabled{cursor:not-allowed;opacity:.6}input,select,textarea{border:2px solid #e0e0e0;border-radius:6px;font-family:inherit;font-size:1rem;padding:12px;transition:border-color .3s ease}input:focus,select:focus,textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.loading{color:#666;font-size:1.1rem;padding:40px 20px;text-align:center}.error-message{background-color:#fee;border-left:4px solid red;color:#c00}.error-message,.success-message{border-radius:4px;margin-bottom:20px;padding:15px}.success-message{background-color:#efe;border-left:4px solid #0f0;color:#0a0}@media (max-width:768px){input,select,textarea{font-size:16px}}
/*# sourceMappingURL=main.b24d7e5c.css.map*/