.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;padding:40px;width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:32px}.login-icon{font-size:64px;margin-bottom:16px}.login-logo-container{display:flex;justify-content:center;margin-bottom:16px}.login-logo{height:80px;width:auto}.login-header h1{font-size:28px;color:var(--text-primary);margin-bottom:8px;font-weight:700}.login-header p{font-size:16px;color:var(--text-secondary)}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:var(--text-primary)}.form-group input{padding:12px 16px;border:2px solid var(--border-color);border-radius:8px;font-size:15px;transition:all .3s ease;outline:none}.form-group input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #04785724}.error-message{padding:12px 16px;background:#fee;border-left:4px solid var(--danger-color);border-radius:4px;color:var(--danger-color);font-size:14px}.login-button{padding:14px 24px;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:8px}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #0478575c}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}.home-container{padding:2rem;max-width:1400px;margin:0 auto;background:linear-gradient(135deg,#f8fafc,#e2e8f0);min-height:calc(100vh - 80px)}.welcome-banner{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);padding:2.5rem;border-radius:20px;color:#fff;margin-bottom:3rem;box-shadow:0 12px 40px #667eea66;position:relative;overflow:hidden}.welcome-banner:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(180deg)}}.welcome-content{position:relative;z-index:1}.welcome-content h1{margin:0 0 .5rem;font-size:2.2rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.1);display:flex;align-items:center;gap:.5rem}.inline-icon{display:inline-block;vertical-align:middle;color:#fbbf24;filter:drop-shadow(0 2px 4px rgba(251,191,36,.4))}.welcome-content p{margin:0;opacity:.95;font-size:1.2rem;font-weight:300}.stats-section{margin-bottom:3rem}.section-title{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem;font-size:1.6rem;font-weight:700;color:#1f2937;padding-bottom:.5rem;border-bottom:3px solid var(--primary-color);position:relative}.section-title:after{content:"";position:absolute;bottom:-3px;left:0;width:60px;height:3px;background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);border-radius:2px}.title-icon{width:24px;height:24px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.8rem;margin-bottom:2rem}.stat-card{background:#fff;padding:2rem 1.5rem;border-radius:16px;box-shadow:0 6px 25px #00000014;display:flex;align-items:center;gap:1.2rem;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border-left:5px solid;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(4,120,87,.3),transparent);transform:translate(-100%);transition:transform .6s ease}.stat-card:hover:before{transform:translate(100%)}.stat-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 12px 35px #00000026}.stat-card.primary,.stat-card.success{border-left-color:#10b981}.stat-card.warning{border-left-color:#34d399}.stat-card.danger{border-left-color:#ef4444}.stat-card.info{border-left-color:#7c3aed}.stat-icon{font-size:2.5rem;opacity:1;filter:drop-shadow(0 4px 6px rgba(0,0,0,.15));transition:all .3s ease}.stat-card:hover .stat-icon{transform:scale(1.1) rotate(5deg)}.stat-card.primary .stat-icon,.stat-card.success .stat-icon{color:#10b981}.stat-card.warning .stat-icon{color:#34d399}.stat-card.danger .stat-icon{color:#ef4444}.stat-card.info .stat-icon{color:#7c3aed}.stat-content{flex:1}.stat-label{font-size:.95rem;color:#6b7280;margin-bottom:.4rem;font-weight:500;letter-spacing:.5px}.stat-value{font-size:2rem;font-weight:800;color:#1f2937;text-shadow:0 1px 2px rgba(0,0,0,.05)}.amount-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem}.amount-card{background:#fff;padding:2.5rem;border-radius:20px;box-shadow:0 8px 30px #0000001f;display:flex;align-items:center;gap:2rem;transition:all .4s cubic-bezier(.175,.885,.32,1.275);border:2px solid transparent;position:relative;overflow:hidden}.amount-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#ffffff1a,#ffffff0d);opacity:0;transition:opacity .3s ease}.amount-card:hover:before{opacity:1}.amount-card:hover{transform:translateY(-10px) scale(1.03);box-shadow:0 15px 45px #0003}.amount-card.total{background:linear-gradient(135deg,#34d399,#6d28d9);color:#fff}.amount-card.today{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.amount-card.month{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff}.amount-icon{font-size:3.2rem;opacity:1;filter:drop-shadow(0 6px 10px rgba(0,0,0,.25));animation:pulse 2s ease-in-out infinite;transition:all .3s ease}.amount-card:hover .amount-icon{transform:scale(1.15) rotate(-5deg);animation:none}.amount-card.total .amount-icon{color:#fbbf24}.amount-card.today .amount-icon{color:#10b981}.amount-card.month .amount-icon{color:#a78bfa}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.amount-content{flex:1}.amount-label{font-size:1.1rem;margin-bottom:.6rem;opacity:.95;font-weight:500;letter-spacing:.5px}.amount-value{font-size:2.4rem;font-weight:800;text-shadow:0 2px 4px rgba(0,0,0,.2);letter-spacing:-1px}.home-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6rem 2rem;color:#6b7280;background:linear-gradient(135deg,#f8fafc,#e2e8f0);min-height:60vh}.spinner{width:50px;height:50px;border:5px solid #f3f4f6;border-top:5px solid #10b981;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1.5rem;box-shadow:0 4px 15px #0478574d}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:1024px){.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.amount-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}}@media(max-width:768px){.home-container{padding:1rem}.welcome-banner{padding:2rem 1.5rem}.welcome-content h1{font-size:1.8rem}.welcome-content p{font-size:1rem}.section-title{font-size:1.4rem}.stats-grid{grid-template-columns:1fr;gap:1.2rem}.stat-card{padding:1.5rem}.stat-value{font-size:1.8rem}.amount-grid{grid-template-columns:1fr;gap:1.2rem}.amount-card{padding:2rem 1.5rem;gap:1.5rem}.amount-icon{font-size:2.5rem}.amount-value{font-size:2rem}}@media(max-width:480px){.welcome-content h1{font-size:1.5rem}.stat-card,.amount-card{flex-direction:column;text-align:center;gap:1rem}}.calendar-container{background:#fff;padding:2rem;border-radius:16px;box-shadow:0 6px 25px #00000014}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.calendar-title{font-size:18px;font-weight:700;color:#1f2937;min-width:140px;text-align:center}.month-nav-btn{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;border:none;border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.month-nav-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;max-width:900px;margin:0 auto}.calendar-weekday{text-align:center;padding:8px;font-weight:700;color:#6b7280;background:#f8fafc;border-radius:6px;font-size:12px}.calendar-day{aspect-ratio:1;padding:6px;background:#f8fafc;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:all .3s ease;border:2px solid transparent;min-height:75px}.calendar-day.empty{background:transparent}.calendar-day.has-data{background:linear-gradient(135deg,#dbeafe,#bfdbfe);cursor:pointer;border-color:#c4b5fd}.calendar-day.has-data:hover{background:linear-gradient(135deg,#bfdbfe,#93c5fd);box-shadow:0 4px 12px #60a5fa66;transform:translateY(-2px)}.day-number{font-size:14px;font-weight:700;color:#1f2937}.day-stats{display:flex;flex-direction:column;gap:1px;align-items:center}.day-count{font-size:9px;color:#1d4ed8;font-weight:600}.day-completed{font-size:9px;color:#059669;font-weight:600}.day-amount{font-size:11px;font-weight:700;color:#dc2626;background:#fff;padding:1px 4px;border-radius:3px}.calendar-legend{margin-top:16px;padding:12px;background:#f3f4f6;border-radius:8px;display:flex;justify-content:center;gap:24px;font-size:13px}.legend-item{display:flex;align-items:center;gap:8px;color:#4b5563;font-weight:600}.legend-dot{width:16px;height:16px;border-radius:4px;background:#f8fafc;border:2px solid #e5e7eb}.legend-dot.has-data{background:linear-gradient(135deg,#c4b5fd,#7c3aed);border-color:#8b5cf6}.calendar-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:12px;color:#6b7280}.spinner-small{width:32px;height:32px;border:3px solid #f3f4f6;border-top:3px solid #10b981;border-radius:50%;animation:spin 1s linear infinite}@media(max-width:768px){.calendar-grid{gap:4px}.calendar-day{padding:4px;min-height:65px}.day-number{font-size:12px}.day-count,.day-completed{font-size:8px}.day-amount{font-size:10px}.calendar-legend{flex-direction:column;gap:12px}}.create-order{max-width:1600px;margin:0 auto}.page-header{margin-bottom:24px}.page-header h1{font-size:28px;color:var(--text-primary);margin-bottom:6px;font-weight:700}.page-header p{font-size:15px;color:var(--text-secondary)}.order-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card{background:#fff;border-radius:12px;padding:24px;box-shadow:var(--shadow-sm)}.card h2{font-size:18px;color:var(--text-primary);margin-bottom:20px;font-weight:600;border-bottom:2px solid var(--bg-light);padding-bottom:12px}.form-section{height:fit-content}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full-width{grid-column:1 / -1}.form-field label{font-size:13px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:4px}.required{color:var(--danger-color);font-size:14px}.form-field input{padding:10px 14px;border:2px solid var(--border-color);border-radius:6px;font-size:14px;transition:all .3s ease;outline:none}.form-field input:focus{border-color:#10b981;box-shadow:0 0 0 3px #0478571a}.form-field input::placeholder{color:#cbd5e0}.passengers-section{margin-bottom:24px;padding:16px;background:var(--bg-light);border-radius:8px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-header label{font-size:14px;font-weight:600;color:var(--text-primary)}.btn-add-passenger{padding:6px 14px;background:linear-gradient(135deg,#10b981,#065f46);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-add-passenger:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.no-passengers{text-align:center;padding:32px 16px;color:var(--text-secondary);font-size:14px}.passengers-list-form{display:flex;flex-direction:column;gap:12px}.passenger-form-item{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border-radius:8px;border:2px solid var(--border-color);transition:all .3s ease}.passenger-form-item:hover{border-color:#10b981}.passenger-number-badge{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#10b981,#065f46);color:#fff;border-radius:50%;font-weight:700;font-size:14px;flex-shrink:0}.passenger-inputs{flex:1;display:flex;gap:12px}.passenger-name-input,.passenger-id-input{flex:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;transition:all .3s ease}.passenger-name-input{max-width:150px}.passenger-name-input:focus,.passenger-id-input:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 2px #0478571a}.btn-remove-passenger{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--danger-color);color:#fff;border:none;border-radius:50%;font-size:18px;cursor:pointer;transition:all .3s ease;flex-shrink:0}.btn-remove-passenger:hover{background:#e53e3e;transform:scale(1.1)}.btn-submit{width:100%;padding:14px 24px;background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;transition:all .3s ease}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #48bb7866}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.recognize-section{height:fit-content;position:sticky;top:100px}.section-label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.template-selector{margin-bottom:20px}.template-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}.template-option{display:flex;align-items:center;justify-content:center;padding:10px 12px;background:var(--bg-light);border:2px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .3s ease;font-size:13px;font-weight:500}.template-option:hover{border-color:#10b981;background:#f0f4ff}.template-option input[type=radio]{margin-right:6px;cursor:pointer;accent-color:#10b981}.template-option input[type=radio]:checked+span{color:#10b981;font-weight:600}.template-option:has(input:checked){border-color:#10b981;background:linear-gradient(135deg,#0478571a,#10b9811a)}.paste-area{margin-bottom:16px}.paste-textarea{width:100%;padding:14px;border:2px solid var(--border-color);border-radius:8px;font-size:14px;font-family:Consolas,Monaco,monospace;resize:vertical;min-height:280px;transition:all .3s ease;line-height:1.6}.paste-textarea:focus{outline:none;border-color:#10b981;box-shadow:0 0 0 3px #0478571a}.paste-textarea::placeholder{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#a0aec0;font-size:13px}.button-group-recognize{display:flex;gap:12px;margin-bottom:20px}.btn-recognize{flex:1;padding:12px 20px;background:linear-gradient(135deg,#10b981,#065f46);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:6px}.btn-recognize:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-recognize:disabled{opacity:.6;cursor:not-allowed}.btn-clear{padding:12px 20px;background:var(--bg-light);color:var(--text-primary);border:2px solid var(--border-color);border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-clear:hover{border-color:var(--text-secondary);background:var(--border-color)}.recognize-preview{background:linear-gradient(135deg,#f7fafc,#e6f7ff);border-radius:8px;padding:16px;border:2px solid #d6e9ff;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.preview-title{font-size:14px;font-weight:700;color:#10b981;margin-bottom:12px;display:flex;align-items:center;gap:6px}.preview-title:before{content:"✓";display:inline-block;width:20px;height:20px;background:var(--success-color);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px}.preview-content{display:flex;flex-direction:column;gap:8px}.preview-item{font-size:13px;line-height:1.8;color:var(--text-primary)}.preview-label{color:var(--text-secondary);font-weight:500}.preview-value{color:var(--text-primary);font-weight:600}.preview-passengers{margin-top:4px;padding-left:12px}.preview-passengers div{border-left:2px solid #10b981;padding:4px 0 4px 12px;margin:2px 0}.message{position:fixed;bottom:32px;right:32px;padding:16px 24px;border-radius:8px;font-size:15px;font-weight:500;box-shadow:var(--shadow-lg);z-index:1000;min-width:200px;text-align:center}.message.success{background:var(--success-color);color:#fff}.message.error{background:var(--danger-color);color:#fff}@media(max-width:1200px){.order-layout{grid-template-columns:1fr}.recognize-section{position:static}.form-grid{grid-template-columns:1fr}.form-field.full-width{grid-column:1}}@media(max-width:768px){.template-options,.passenger-inputs{flex-direction:column}.passenger-name-input{max-width:100%}.button-group-recognize{flex-direction:column}}.order-list{padding:.75rem;width:100%;margin:0 auto;max-width:100%;box-sizing:border-box;min-height:100%;background:var(--bg-light)}@media(max-width:1600px){.order-list{padding:1rem}}@media(max-width:1200px){.order-list{padding:.75rem}}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{font-size:32px;color:var(--text-primary);margin-bottom:8px;font-weight:700}.page-header p{font-size:16px;color:var(--text-secondary)}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f5576c66}.filter-and-search-row{display:flex;gap:1rem;align-items:center;margin-bottom:1rem}.filter-tabs{display:flex;gap:8px;flex:1;background:#fff;padding:8px;border-radius:8px;box-shadow:0 2px 4px #00000014}.filter-tab{flex:1;padding:10px 20px;border:none;background:transparent;border-radius:6px;font-size:14px;font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .3s ease}.filter-tab:hover{background:var(--bg-light);color:var(--text-primary)}.filter-tab.active{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff}.btn-search-toggle{padding:10px 20px;background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 6px #667eea4d;white-space:nowrap;display:flex;align-items:center;justify-content:center;height:fit-content}.btn-search-toggle:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.search-container{background:#fff;padding:1rem 1.5rem;border-radius:8px;box-shadow:0 2px 4px #00000014;margin-bottom:1rem}.search-form{display:flex;gap:.4rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:.3rem}.search-field{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:110px}.search-field label{font-size:11px;font-weight:600;color:var(--text-primary)}.search-field input{padding:.35rem .5rem;border:1px solid var(--border-color);border-radius:4px;font-size:12px;transition:all .3s ease}.search-field input:focus{outline:none;border-color:#047857;box-shadow:0 0 0 3px #f5576c1a}.search-field .status-select{padding:.6rem 2rem .6rem .75rem;border:1px solid #e5e7eb;border-radius:4px;font-size:12px;background:#fff;cursor:pointer;transition:all .3s ease;width:100%;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .5rem center;background-size:1em 1em;appearance:none;-webkit-appearance:none;-moz-appearance:none}.search-field .status-select:hover{border-color:#047857}.search-field .status-select:focus{outline:none;border-color:#047857;box-shadow:0 0 0 3px #f5576c1a}.search-actions{display:flex;gap:.3rem}.btn-search,.btn-reset{padding:.35rem .75rem;border:none;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:all .3s ease;white-space:nowrap}.btn-search{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff}.btn-search:hover{transform:translateY(-2px);box-shadow:0 6px 20px #f5576c66}.btn-reset{background:var(--bg-light);color:var(--text-primary)}.btn-reset:hover{background:var(--border-color)}.search-stats{font-size:11px;color:var(--text-secondary);padding-top:.3rem;border-top:1px solid var(--border-color)}.search-stats .highlight{color:#047857;font-weight:700;font-size:13px}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:2rem;padding:1rem;background:#fff;border-radius:12px;box-shadow:var(--shadow-sm)}.pagination-btn{padding:.75rem 1.5rem;border:2px solid var(--border-color);background:#fff;border-radius:8px;font-size:14px;font-weight:600;color:var(--text-primary);cursor:pointer;transition:all .3s ease}.pagination-btn:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;border-color:transparent;transform:translateY(-2px);box-shadow:0 4px 12px #f5576c4d}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-info{padding:.75rem 1.5rem;font-size:14px;font-weight:600;color:var(--text-primary);background:var(--bg-light);border-radius:8px}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;color:var(--text-secondary)}.spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:#047857;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;background:#fff;border-radius:12px;box-shadow:var(--shadow-sm)}.empty-icon{font-size:64px;margin-bottom:16px;opacity:.5}.empty-state p{font-size:16px;color:var(--text-secondary)}.batch-controls{display:flex;align-items:center;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.checkbox-label{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-weight:600;font-size:12px}.checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.selected-count{color:#6b7280;font-size:12px;font-weight:600;flex:1}.btn-export{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-export:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0596694d}.btn-export:active{transform:translateY(0)}.orders-table-container{background:#fff;border-radius:12px;box-shadow:var(--shadow-sm);overflow:visible;width:100%;height:auto}.orders-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed;max-width:100%}@media(min-width:1920px){.orders-table{font-size:14px}}@media(max-width:1600px){.orders-table{font-size:12px}}@media(max-width:1200px){.orders-table{font-size:11px}}.orders-table thead{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff}.selected-row{background:#eff6ff!important}.checkbox-col{width:2.5%;text-align:center}.checkbox-col input[type=checkbox]{cursor:pointer;width:16px;height:16px}.orders-table th{padding:16px 12px;text-align:left;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.orders-table td{padding:14px 12px;border-bottom:1px solid var(--border-color);vertical-align:middle}.orders-table tbody tr{transition:all .3s ease;cursor:pointer}.orders-table tbody tr:hover{background:#fff5f8}.orders-table tbody tr:last-child td{border-bottom:none}.order-number-cell{font-family:monospace;font-size:13px;color:var(--text-secondary);width:11%;min-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-cell{font-weight:500;color:#374151;width:7%;min-width:75px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flight-number-cell{font-weight:800;font-size:16px;color:#047857;width:8%;min-width:80px}.route-cell{width:12%;min-width:130px}@media(max-width:1600px){.order-number-cell{width:11%;min-width:110px}.agent-cell{width:6%;min-width:70px}.flight-number-cell{width:7%;min-width:70px;font-size:14px}.route-cell{width:11%;min-width:110px}}@media(max-width:1200px){.order-number-cell{width:10%;min-width:100px;font-size:11px}.agent-cell{width:6%;min-width:65px;font-size:11px}.flight-number-cell{width:6%;min-width:60px;font-size:13px}.route-cell{width:10%;min-width:100px}}.route-display{display:flex;align-items:center;gap:8px}.airport-name{font-weight:600;color:var(--text-primary);font-size:13px}.route-arrow{color:#047857;font-weight:700;font-size:16px}.date-cell{color:var(--text-primary);font-weight:600;width:9%;min-width:95px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.date-cell.clickable{cursor:pointer;transition:all .2s ease;border-radius:4px;padding:4px 8px;margin:-4px -8px}.date-cell.clickable:hover{background:linear-gradient(135deg,#0478571a,#10b9811a);color:#047857;transform:scale(1.05);box-shadow:0 2px 8px #667eea33}.time-cell{color:var(--text-secondary);font-family:monospace;width:6%;min-width:65px}.ticketer-cell{color:var(--text-primary);font-weight:500;width:7%;min-width:70px}.agent-id-cell{color:var(--text-secondary);font-family:monospace;font-weight:600;width:6%;min-width:60px}.company-cell{color:var(--text-primary);font-weight:500;width:8%;min-width:80px}.passenger-count-cell{text-align:center;width:6%;min-width:60px}@media(max-width:1600px){.date-cell{width:8%;min-width:85px}.time-cell{width:5%;min-width:60px}.ticketer-cell{width:6%;min-width:65px}.agent-id-cell{width:5%;min-width:55px}.company-cell{width:7%;min-width:75px}.passenger-count-cell{width:5%;min-width:55px}}@media(max-width:1200px){.date-cell{width:7%;min-width:80px}.time-cell{width:5%;min-width:55px}.ticketer-cell{width:5%;min-width:60px}.agent-id-cell{width:4%;min-width:50px}.company-cell{width:6%;min-width:70px}.passenger-count-cell{width:5%;min-width:50px}}.passenger-count-badge{display:inline-block;padding:4px 12px;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;border-radius:16px;font-weight:700;font-size:12px}.passenger-count-badge.clickable{cursor:pointer;transition:all .3s ease}.passenger-count-badge.clickable:hover{transform:scale(1.1);box-shadow:0 4px 12px #667eea66}.passenger-names-cell{color:var(--text-primary);font-weight:500;font-size:13px;min-width:120px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.price-cell{color:var(--text-secondary);font-size:13px;min-width:90px}.total-cell{font-weight:700;font-size:15px;color:var(--danger-color);min-width:120px}.status-cell{min-width:120px;text-align:center;vertical-align:middle}.status-cell .status-badge-table{display:inline-block;margin-bottom:3px}.status-cell .pending-time-badge{display:block;margin:3px auto 0;width:fit-content}.status-cell .has-notes-indicator{display:block;margin:4px auto 0;width:fit-content}.status-badge-table{display:inline-block;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:700;text-align:center}.status-pending{background:#fff3cd;color:#856404}.status-processing{background:#d1ecf1;color:#0c5460}.status-completed{background:#d4edda;color:#155724}.status-intercepted{background:#fbbf24;color:#fff}.status-cancelled{background:#e2e3e5;color:#383d41}.status-refunded{background:#fde8e8;color:#c81e1e}.detail-item.full-width{grid-column:1 / -1}.detail-value.reason-text{color:#dc2626;background:#fef2f2;padding:.75rem;border-radius:6px;border-left:3px solid #dc2626}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:16px;padding:32px;max-width:600px;width:100%;max-height:80vh;overflow-y:auto}.modal-content h2{font-size:24px;color:var(--text-primary);margin-bottom:8px}.modal-subtitle{font-size:14px;color:var(--text-secondary);margin-bottom:24px}.passengers-detail-list{display:flex;flex-direction:column;gap:16px;margin-bottom:24px;max-height:400px;overflow-y:auto}.passenger-detail-item{display:flex;gap:16px;padding:16px;background:var(--bg-light);border-radius:8px;border:2px solid var(--border-color);transition:all .3s ease}.passenger-detail-item:hover{border-color:#047857;box-shadow:var(--shadow-sm)}.passenger-index{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;border-radius:50%;font-weight:700;font-size:16px;flex-shrink:0}.passenger-detail-info{flex:1;display:flex;flex-direction:column;gap:8px}.passenger-detail-row{display:flex;align-items:center;gap:12px}.btn-copy-inline{padding:.25rem .5rem;background:linear-gradient(135deg,#7c3aed,#8b5cf6);color:#fff;border:none;border-radius:4px;font-size:.75rem;cursor:pointer;transition:all .2s ease;margin-left:auto}.btn-copy-inline:hover{transform:translateY(-1px);box-shadow:0 2px 8px #3b82f64d}.detail-label{font-weight:600;color:var(--text-secondary);min-width:70px}.detail-value{font-weight:600;color:var(--text-primary)}.detail-value.highlight{color:var(--success-color);font-size:15px}.modal-actions{display:flex;gap:12px}.modal-actions .btn{flex:1}@media(max-width:1400px){.orders-table{font-size:13px}.orders-table th,.orders-table td{padding:12px 8px}}@media(max-width:1200px){.orders-table-container{overflow:visible}}.actions-col{width:160px;text-align:center}.actions-cell{text-align:center}.action-buttons .btn-table{width:100%;justify-content:center}.btn-table{padding:6px 12px;border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;transition:all .2s ease;white-space:nowrap}.btn-detail-table{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%);color:#fff}.btn-detail-table:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.detail-modal{background:#fff;border-radius:16px;max-width:1200px;width:95%;max-height:90vh;padding:0;overflow:hidden;box-shadow:0 20px 60px #0000004d}.detail-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;border-radius:16px 16px 0 0;margin:0}.detail-modal-header h2{margin:0;font-size:1.3rem;font-weight:600}.close-button{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:.5rem;border-radius:50%;transition:all .2s ease}.close-button:hover{background:#fff3}.detail-content{padding:1.5rem 2rem;max-height:calc(90vh - 180px);overflow-y:auto}.detail-content::-webkit-scrollbar{width:8px}.detail-content::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.detail-content::-webkit-scrollbar-thumb{background:#888;border-radius:10px}.detail-content::-webkit-scrollbar-thumb:hover{background:#555}.detail-section{margin-bottom:2rem;padding:1.5rem;background:var(--bg-light);border-radius:12px;border:1px solid var(--border-color)}.detail-section h3{margin:0 0 1.5rem;color:var(--text-primary);font-size:1.1rem;font-weight:600;padding-bottom:.5rem;border-bottom:2px solid var(--border-color)}.detail-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem;margin-bottom:1rem}.detail-item{display:flex;flex-direction:column;gap:.5rem}.detail-label{font-size:.85rem;color:var(--text-secondary);font-weight:500}.detail-value{font-size:.95rem;color:var(--text-primary);font-weight:500}.detail-value.order-number{font-family:Courier New,monospace;color:#047857;font-weight:600}.detail-value.company-name{color:var(--success-color);font-weight:600}.flight-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.flight-info-item{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:#fff;border-radius:8px;border:1px solid var(--border-color)}.flight-info-item.full-width{grid-column:1 / -1}.info-label{font-size:.8rem;color:var(--text-secondary);font-weight:500}.info-value{font-size:.95rem;color:var(--text-primary);font-weight:600}.info-value.flight-number{color:#047857;font-weight:700}.info-value.passenger-count{color:var(--success-color)}.info-value.price,.info-value.total-amount{color:var(--danger-color);font-family:Courier New,monospace}.passengers-table-container{background:#fff;border-radius:8px;overflow:hidden;border:1px solid var(--border-color)}.passengers-detail-table{width:100%;border-collapse:collapse;font-size:.85rem}.passengers-detail-table th{background:var(--bg-light);padding:.75rem .5rem;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:1px solid var(--border-color);font-size:.8rem}.passengers-detail-table td{padding:.75rem .5rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.passengers-detail-table tr:hover{background:var(--bg-light)}.passengers-detail-table .passenger-name{font-weight:600;color:var(--text-primary)}.passengers-detail-table .ticket-number{font-family:Courier New,monospace;color:#047857;font-weight:500;position:relative}.btn-copy-ticket{margin-left:.5rem;padding:.2rem .4rem;background:linear-gradient(135deg,#7c3aed,#8b5cf6);color:#fff;border:none;border-radius:4px;font-size:.7rem;cursor:pointer;transition:all .2s ease;vertical-align:middle}.btn-copy-ticket:hover{transform:translateY(-1px);box-shadow:0 2px 8px #3b82f666}.passengers-detail-table .id-number{font-family:Courier New,monospace;color:var(--text-secondary);font-size:.8rem}.detail-modal-actions{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem 2rem;background:var(--bg-light);border-radius:0 0 16px 16px;border-top:1px solid var(--border-color)}.btn-secondary{background:var(--text-secondary);color:#fff}.btn-secondary:hover{background:var(--text-primary);transform:translateY(-1px)}@media(max-width:768px){.detail-modal{width:98%;max-height:95vh}.detail-row{grid-template-columns:1fr}.flight-info-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.passengers-table-container{overflow-x:auto}.passengers-detail-table{min-width:600px}.detail-modal-actions{flex-direction:column}}.pending-time-badge{display:inline-block;padding:3px 8px;border-radius:8px;font-size:11px;font-weight:600;background:linear-gradient(135deg,#4ade80,#22c55e);color:#fff;box-shadow:0 2px 4px #22c55e4d;white-space:nowrap}.pending-time-badge.warning{background:#fbbf24;box-shadow:0 2px 4px #f59e0b4d}.pending-time-badge.urgent{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 2px 4px #ef44444d;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.btn-copy-table.copied{background:linear-gradient(135deg,#10b981,#059669)!important;box-shadow:0 2px 8px #10b9814d!important;border-color:#10b981!important}.btn-copy-table.copied:hover{background:linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%)!important;transform:translateY(-1px)}.btn-backfill-table.backfilled{background:linear-gradient(135deg,#7c3aed,#8b5cf6)!important;box-shadow:0 2px 8px #3b82f64d!important;border-color:#7c3aed!important;color:#fff!important}.btn-backfill-table.backfilled:hover{background:linear-gradient(135deg,#8b5cf6,#1d4ed8)!important;transform:translateY(-1px)}.action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;justify-content:center;align-items:center;width:150px;margin:0 auto}.modal-content h2{color:#1f2937;font-size:1.5rem;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.modal-subtitle{font-size:.95rem;color:#6b7280;margin-bottom:1rem;padding:.75rem;background:#f3f4f6;border-radius:8px;border-left:3px solid #7c3aed}.modal-warning{padding:1rem;background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #fbbf24;border-radius:8px;color:#92400e;font-weight:600;font-size:.95rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.modal-warning:before{content:"⚠️";font-size:1.25rem}.failure-input-group{margin-bottom:1.5rem}.failure-input-group label{display:block;font-weight:600;color:#374151;margin-bottom:.5rem;font-size:.95rem}.failure-input-group textarea{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:.95rem;font-family:inherit;transition:all .2s;resize:vertical;min-height:100px}.failure-input-group textarea:focus{outline:none;border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.failure-input-group textarea::placeholder{color:#9ca3af}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid #e5e7eb}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #ef44444d}.btn-danger:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}.btn-danger:active{transform:translateY(0)}.btn-secondary{background:#fff;color:#6b7280;padding:.75rem 1.5rem;border:2px solid #e5e7eb;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#f9fafb;border-color:#d1d5db;color:#374151}.note-section-highlight{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #fbbf24;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 4px 12px #fbbf2433}.note-section-highlight h3{color:#92400e;margin-bottom:1rem;font-size:1.1rem}.note-item{padding:.75rem;background:#fff;border-radius:8px;margin-bottom:.75rem;box-shadow:0 2px 4px #0000000d}.note-item:last-child{margin-bottom:0}.note-label{font-weight:600;color:#92400e;margin-right:.5rem}.note-value{color:#374151;line-height:1.6}.has-notes-badge{color:#34d399;font-weight:600;font-size:13px}.no-notes{color:#9ca3af}.has-notes-indicator{display:inline-block;margin-left:8px;padding:2px 8px;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #34d399;border-radius:12px;font-size:11px;font-weight:600;color:#92400e;cursor:help;white-space:nowrap;transition:all .2s}.has-notes-indicator:hover{background:linear-gradient(135deg,#fde68a,#fbbf24);transform:translateY(-1px);box-shadow:0 2px 4px #fbbf244d}.messages-container{position:fixed;top:0;right:20px;z-index:1001;pointer-events:none}.message{position:absolute;right:0;padding:1rem 1.5rem;border-radius:8px;color:#fff;font-weight:500;box-shadow:0 4px 20px #00000026;max-width:350px;min-width:200px;width:fit-content;height:fit-content;max-height:120px;overflow:hidden;line-height:1.5;pointer-events:auto;transition:top .3s ease}.message.success{background:linear-gradient(135deg,#10b981,#059669)}.message.error{background:linear-gradient(135deg,#ef4444,#dc2626)}.chatroom-page{position:fixed;top:80px;left:0;right:0;bottom:0;background:linear-gradient(135deg,#f5f7fa,#e8edf3);display:flex;flex-direction:column;z-index:1}.chatroom-header{padding:20px 30px;background:#fff;border-bottom:2px solid #e9ecef;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 8px #0000000d}.chatroom-header h1{margin:0;font-size:26px;color:#2c3e50;font-weight:700}.btn-create{background:linear-gradient(135deg,#10b981,#065f46);color:#fff;border:none;padding:12px 28px;border-radius:8px;font-size:15px;cursor:pointer;font-weight:600;box-shadow:0 4px 12px #667eea4d;transition:all .3s}.btn-create:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.chatroom-container{flex:1;display:flex;padding:20px;gap:20px;min-height:0}.room-list{width:320px;background:#fff;border-radius:12px;padding:20px;box-shadow:0 4px 20px #00000014;display:flex;flex-direction:column}.room-list h3{margin:0 0 15px;font-size:18px;color:#2c3e50;font-weight:700;padding-bottom:10px;border-bottom:2px solid #f0f0f0}.empty-rooms{text-align:center;padding:60px 20px;color:#95a5a6}.empty-rooms p{margin:8px 0;font-size:14px}.rooms{flex:1;overflow-y:auto;margin-right:-10px;padding-right:10px}.room-item{padding:14px;margin-bottom:10px;background:linear-gradient(135deg,#f8f9fa,#f0f1f3);border-radius:10px;cursor:pointer;border:2px solid transparent;transition:all .3s}.room-item:hover{background:linear-gradient(135deg,#e9ecef,#dee1e6);transform:translate(4px)}.room-item.active{background:linear-gradient(135deg,#e7f0ff,#d4e5ff);border-color:#10b981;box-shadow:0 4px 12px #667eea26}.room-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.room-name{font-weight:700;font-size:15px;color:#2c3e50}.unread-badge{background:linear-gradient(135deg,#ff4757,#ff3838);color:#fff;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;box-shadow:0 2px 6px #ff47574d}.room-description{font-size:13px;color:#7f8c8d;margin:6px 0;line-height:1.4}.room-item-footer{font-size:12px;color:#95a5a6;margin-top:8px}.member-count{font-weight:600}.last-message{margin-top:5px;font-size:12px;color:#7f8c8d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-actions{margin-top:10px;display:flex;gap:6px}.btn-action{flex:1;padding:6px 10px;font-size:12px;border:none;background:linear-gradient(135deg,#10b981,#065f46);color:#fff;border-radius:6px;cursor:pointer;font-weight:600;transition:all .3s}.btn-action:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn-action.btn-danger{background:linear-gradient(135deg,#ff4757,#ff3838)}.btn-action.btn-danger:hover{box-shadow:0 4px 12px #ff47574d}.chat-area{flex:1;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000014;display:flex;flex-direction:column;overflow:hidden}.chat-header{padding:20px;background:linear-gradient(135deg,#fff,#f8f9fa);border-bottom:2px solid #e9ecef}.chat-header h2{margin:0;font-size:20px;color:#2c3e50;font-weight:700}.room-desc{font-size:13px;color:#7f8c8d;margin-top:5px}.header-actions{margin-top:12px;display:flex;gap:10px}.btn-header-action{padding:8px 16px;font-size:13px;border:2px solid #10b981;background:#fff;color:#10b981;border-radius:6px;cursor:pointer;font-weight:600;transition:all .3s}.btn-header-action:hover{background:#10b981;color:#fff;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.no-room-selected{flex:1;display:flex;align-items:center;justify-content:center;color:#95a5a6;font-size:16px}.chat-messages-container{flex:1;overflow-y:auto;padding:20px;background:#f5f5f5;min-height:0}.no-messages{text-align:center;padding:60px 20px;color:#95a5a6}.no-messages p{font-size:15px}.loading-more{text-align:center;padding:10px;color:#10b981;font-size:13px;font-weight:600}.no-more-messages{text-align:center;padding:10px;color:#95a5a6;font-size:12px}.message-item{margin-bottom:16px;display:flex;gap:10px;width:100%;animation:messageSlideIn .3s ease}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-item.message-others{justify-content:flex-start}.message-item.message-mine{justify-content:flex-end}.message-avatar{width:40px;height:40px;border-radius:8px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0;box-shadow:0 2px 8px #00000026;text-transform:uppercase}.message-body{max-width:65%;min-width:100px;display:flex;flex-direction:column}.message-item.message-others .message-body{align-items:flex-start}.message-item.message-mine .message-body{align-items:flex-end}.message-header{font-size:12px;color:#999;margin-bottom:6px;display:flex;align-items:center;gap:6px}.message-item.message-others .message-header{justify-content:flex-start}.message-item.message-mine .message-header{justify-content:flex-end;flex-direction:row-reverse}.message-user{font-weight:700;font-size:13px;color:#2c3e50}.message-role{font-size:10px;padding:3px 8px;border-radius:4px;color:#fff;font-weight:600;flex-shrink:0}.message-time{font-size:11px;color:#aaa;flex-shrink:0}.message-content{padding:10px 14px;background:#fff;border-radius:8px;font-size:14px;line-height:1.6;word-wrap:break-word;word-break:break-word;white-space:pre-wrap;max-width:100%;width:fit-content;min-width:80px;box-shadow:0 2px 8px #00000014;transition:all .2s}.message-item.message-others .message-content{text-align:left}.message-item.message-mine .message-content{background:linear-gradient(135deg,#95ec69,#8de65b);text-align:left;box-shadow:0 2px 8px #95ec694d}.message-input-form{border-top:2px solid #e9ecef;background:#fff;display:flex;flex-direction:column;padding:0}.message-input{flex:1;padding:10px 14px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;outline:none;background:#f8f9fa;resize:none;min-height:40px;max-height:200px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:border-color .3s,background .3s,box-shadow .3s;overflow-y:auto}.message-input:focus{border-color:#07c160;background:#fff;box-shadow:0 0 0 3px #07c1601a}.btn-send{padding:10px 28px;background:linear-gradient(135deg,#07c160,#06ad56);color:#fff;border:none;border-radius:8px;font-size:15px;cursor:pointer;font-weight:600;box-shadow:0 4px 12px #07c1604d;transition:all .3s;height:40px}.btn-send:hover{background:linear-gradient(135deg,#06ad56,#059c4d);transform:translateY(-2px);box-shadow:0 6px 16px #07c16066}.btn-send:active{transform:translateY(0)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:#fff;border-radius:16px;padding:30px;max-width:520px;width:90%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-content.modal-large{max-width:650px}.modal-content h2{margin:0 0 24px;font-size:22px;color:#2c3e50;font-weight:700}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:700;color:#2c3e50;font-size:14px}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 14px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;outline:none;transition:all .3s;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:#10b981;box-shadow:0 0 0 3px #0478571a}.modal-actions{margin-top:24px;display:flex;gap:12px;justify-content:flex-end}.btn-cancel{padding:10px 24px;border:2px solid #e0e0e0;background:#fff;color:#666;border-radius:8px;cursor:pointer;font-weight:600;transition:all .3s}.btn-cancel:hover{background:#f5f5f5;border-color:#ccc}.btn-confirm{padding:10px 24px;background:linear-gradient(135deg,#10b981,#065f46);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;box-shadow:0 4px 12px #667eea4d;transition:all .3s}.btn-confirm:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.btn-confirm:disabled{opacity:.5;cursor:not-allowed;transform:none}.members-list{max-height:420px;overflow-y:auto}.member-item{display:flex;justify-content:space-between;align-items:center;padding:14px;background:linear-gradient(135deg,#f8f9fa,#f0f1f3);border-radius:10px;margin-bottom:10px;border:2px solid transparent;transition:all .3s}.member-item:hover{border-color:#10b981;background:linear-gradient(135deg,#f0f3ff,#e7ecff)}.member-info{display:flex;align-items:center;gap:10px}.member-name{font-weight:700;color:#2c3e50;font-size:14px}.member-role{font-size:11px;padding:4px 10px;border-radius:6px;color:#fff;font-weight:600}.btn-remove-member{padding:6px 16px;background:linear-gradient(135deg,#ff4757,#ff3838);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:all .3s;box-shadow:0 2px 8px #ff475733}.btn-remove-member:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff475766}.btn-remove-member:disabled{opacity:.5;cursor:not-allowed;transform:none}.rooms::-webkit-scrollbar,.chat-messages-container::-webkit-scrollbar,.members-list::-webkit-scrollbar{width:8px}.rooms::-webkit-scrollbar-track,.chat-messages-container::-webkit-scrollbar-track,.members-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.rooms::-webkit-scrollbar-thumb,.chat-messages-container::-webkit-scrollbar-thumb,.members-list::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#c1c1c1,#a8a8a8);border-radius:10px}.rooms::-webkit-scrollbar-thumb:hover,.chat-messages-container::-webkit-scrollbar-thumb:hover,.members-list::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#a1a1a1,#888)}.toast{position:fixed;top:100px;right:30px;padding:16px 24px;border-radius:12px;color:#fff;font-weight:600;font-size:15px;box-shadow:0 8px 24px #0003;z-index:10000}.toast-success{background:linear-gradient(135deg,#2ed573,#26de81)}.toast-error{background:linear-gradient(135deg,#ff4757,#ff3838)}.self-tag{font-size:11px;color:#10b981;font-weight:600;margin-left:6px;background:#e7f0ff;padding:2px 8px;border-radius:4px}.context-menu{background:#fff;border-radius:8px;box-shadow:0 4px 16px #00000026;padding:8px 0;min-width:200px;z-index:10000;animation:contextMenuFadeIn .2s ease-out}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}.context-menu-item{padding:12px 20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px;font-size:14px;color:#2c3e50}.context-menu-item:hover{background:linear-gradient(135deg,#f8f9fa,#e9ecef);color:#07c160}.context-menu-item:active{background:#dee2e6}.message-reply-to{margin-bottom:8px;padding:8px 12px;background:#07c16014;border-left:3px solid #07c160;border-radius:6px;display:flex;align-items:center;gap:8px}.reply-indicator{font-size:14px;flex-shrink:0}.reply-content{flex:1;min-width:0;display:flex;align-items:baseline;gap:6px}.reply-username{font-weight:600;color:#07c160;font-size:13px;flex-shrink:0}.reply-text{color:#6c757d;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-preview{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:2px solid #dee2e6;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.reply-preview-content{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0}.reply-preview-label{font-size:13px;font-weight:600;color:#07c160;flex-shrink:0}.reply-preview-username{font-size:13px;font-weight:600;color:#495057;flex-shrink:0}.reply-preview-text{font-size:13px;color:#6c757d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-cancel-btn{background:transparent;border:none;color:#6c757d;font-size:20px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s;line-height:1}.reply-cancel-btn:hover{background:#dee2e6;color:#495057}.reply-cancel-btn:active{transform:scale(.95)}.input-wrapper{display:flex;align-items:flex-end;gap:15px;padding:16px 20px;width:100%}@media(max-width:1024px){.room-list{width:280px}.message-body{max-width:70%}.context-menu{min-width:180px}.reply-preview-text{max-width:200px}}.credits-float-badge{position:fixed;z-index:900;display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:24px;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;font-size:14px;font-weight:600;box-shadow:0 6px 20px #00000040;cursor:grab;user-select:none;-webkit-user-select:none;transition:transform .15s ease,box-shadow .15s ease}.credits-float-badge:active{cursor:grabbing;transform:scale(1.02)}.credits-badge-icon{width:22px;height:22px;border-radius:50%;background:#ffffff40;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}.credits-badge-text{line-height:1}.credits-badge-arrow{font-size:12px;transition:transform .2s ease}.credits-badge-arrow.open{transform:rotate(180deg)}.credits-float-panel{position:fixed;z-index:950;width:280px;background:#fff;border-radius:12px;box-shadow:0 12px 40px #00000040;overflow:hidden}.credits-panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff}.credits-panel-header h4{margin:0;font-size:15px;font-weight:600}.credits-panel-loading{font-size:12px;opacity:.9}.credits-panel-body{max-height:320px;overflow-y:auto;padding:8px 0}.credits-row{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border-color)}.credits-row:last-child{border-bottom:none}.credits-row-name{font-weight:500;color:var(--text-primary)}.credits-row-balance{font-weight:700;color:var(--success-color)}.credits-row-balance.negative{color:var(--danger-color)}.credits-empty{padding:24px 16px;text-align:center;color:var(--text-secondary);font-size:14px}.dashboard{min-height:100vh;background:var(--bg-light)}.navbar{background:#fff;box-shadow:var(--shadow-sm);padding:16px 32px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.navbar-brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:700;color:var(--text-primary)}.brand-logo{height:45px;width:auto}.brand-icon{font-size:28px}.navbar-menu{display:flex;gap:8px}.nav-link{padding:10px 20px;border-radius:8px;text-decoration:none;color:var(--text-secondary);font-weight:500;transition:all .3s ease}.nav-link:hover{background:var(--bg-light);color:var(--primary-color)}.nav-link.active{background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff}.nav-link{position:relative}.nav-badge{position:absolute;top:-8px;right:-8px;background:linear-gradient(135deg,#ff4757,#ff3838);color:#fff;font-size:11px;font-weight:700;padding:3px 7px;border-radius:10px;min-width:20px;text-align:center;box-shadow:0 2px 8px #ff475766;animation:badgePulse 2s ease-in-out infinite}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.navbar-user{display:flex;align-items:center;gap:16px}.user-name{font-weight:600;color:var(--text-primary)}.logout-button{padding:8px 16px;background:transparent;border:2px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .3s ease}.logout-button:hover{border-color:var(--danger-color);color:var(--danger-color)}.dashboard-content{position:relative;padding:24px 16px;max-width:98%;margin:0 auto;min-height:calc(100vh - 80px);background:var(--bg-light)}*{margin:0;padding:0;box-sizing:border-box}body{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;background:linear-gradient(135deg,#059669,#34d399);min-height:100vh}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--primary-color: #059669;--secondary-color: #34d399;--success-color: #48bb78;--warning-color: #ed8936;--danger-color: #f56565;--text-primary: #2d3748;--text-secondary: #718096;--bg-light: #f7fafc;--bg-white: #ffffff;--border-color: #e2e8f0;--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05)}.login-logo.brand-full{height:auto;width:100%;max-width:340px}@media(max-height:860px){.login-logo.brand-full{max-width:240px}}@media(max-height:720px){.login-logo.brand-full{max-width:170px}}.brand-logo.brand-wordmark{height:45px;width:auto;padding:5px 0}
