*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d27;--surface2:#22263a;--border:#2e3347;--primary:#4f7cff;--primary-hover:#3d6aee;--danger:#e05252;--text:#e8eaf0;--text-muted:#8b90a8;--radius:10px;--radius-sm:6px}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5}.login-container{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;padding:40px 36px}.login-header{color:var(--primary);align-items:center;gap:10px;margin-bottom:28px;display:flex}.login-header h1{color:var(--text);font-size:22px}.login-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;flex:1;gap:6px;display:flex}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.form-group input,.form-group select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);outline:none;padding:9px 12px;font-size:14px;transition:border-color .15s}.form-group input:focus,.form-group select:focus{border-color:var(--primary)}.form-group select{cursor:pointer}.form-row{gap:12px;display:flex}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:500;transition:background .15s;display:inline-flex}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:9px 16px;font-size:14px;transition:border-color .15s,color .15s;display:inline-flex}.btn-secondary:hover{border-color:var(--text-muted);color:var(--text)}.btn-icon{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;transition:color .15s,background .15s;display:inline-flex}.btn-icon:hover{color:var(--text);background:var(--surface2)}.btn-icon.danger:hover{color:var(--danger)}.error-msg{color:var(--danger);font-size:13px}.page{max-width:960px;margin:0 auto;padding:24px 16px}.page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.header-left{color:var(--primary);align-items:center;gap:10px;display:flex}.header-left h1{color:var(--text);font-size:20px}.header-left .subtitle{color:var(--text-muted);margin-top:2px;font-size:13px}.header-right{align-items:center;gap:8px;display:flex}.toolbar{align-items:center;gap:12px;margin-bottom:20px;display:flex}.search-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);flex:1;align-items:center;gap:8px;padding:8px 12px;display:flex}.search-box input{color:var(--text);background:0 0;border:none;outline:none;width:100%;font-size:14px}.travels-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.travel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:16px;transition:border-color .15s,transform .1s;position:relative}.travel-card:hover{border-color:var(--primary);transform:translateY(-1px)}.travel-route{align-items:center;gap:8px;margin-bottom:8px;display:flex}.airport{letter-spacing:1px;font-size:20px;font-weight:700}.route-arrow{color:var(--primary)}.travel-dates{color:var(--text-muted);margin-bottom:8px;font-size:13px}.travel-meta{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.travel-meta span{background:var(--surface2);color:var(--text-muted);border-radius:4px;padding:2px 7px;font-size:11px}.travel-actions{justify-content:flex-end;gap:4px;display:flex}.travel-info-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);flex-wrap:wrap;gap:16px;margin-bottom:24px;padding:10px 16px;font-size:13px;display:flex}.travel-info-bar span{align-items:center;gap:5px;display:flex}.results-section h2{margin-bottom:14px;font-size:16px}.results-list{flex-direction:column;gap:12px;display:flex}.result-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.result-card-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.result-searched{color:var(--text-muted);font-size:11px}.result-total{color:var(--text);font-size:13px;font-weight:600}.flight-section{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.flight-section:first-of-type{border-top:none;margin-top:0;padding-top:0}.flight-section-toggle{cursor:pointer;width:100%;color:var(--text);background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.flight-section-toggle:hover .result-label{color:var(--primary)}.flight-section-left{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.flight-section-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.result-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.result-price{color:var(--primary);font-size:15px;font-weight:700}.result-meta-inline{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.result-meta{color:var(--text-muted);align-items:center;gap:5px;margin-bottom:8px;font-size:12px;display:flex}.legs{flex-direction:column;gap:6px;display:flex}.leg{background:var(--surface2);border-radius:var(--radius-sm);flex-direction:column;gap:3px;padding:8px 10px;display:flex}.leg-airline{color:var(--text);font-size:12px;font-weight:600}.leg-route{color:var(--text-muted);align-items:center;gap:5px;font-size:12px;display:flex}.leg-time{color:var(--text-muted);font-size:11px}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-wide{max-width:860px}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.modal-header h2{font-size:16px}.modal-form{flex-direction:column;gap:14px;padding:20px;display:flex}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.search-results-body{gap:0;padding:16px 20px;display:flex;overflow-x:auto}.search-col{flex:1;min-width:280px;padding:0 8px}.search-col:first-child{padding-left:0}.search-col:last-child{border-left:1px solid var(--border);padding-right:0}.search-col h3{color:var(--text-muted);margin-bottom:10px;font-size:14px}.search-flight-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;margin-bottom:8px;padding:12px;transition:border-color .15s}.search-flight-card:hover{border-color:var(--primary)}.search-flight-card.selected{border-color:var(--primary);background:#4f7cff14}.sfc-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.sfc-price{color:var(--primary);font-size:15px;font-weight:700}.sfc-meta{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;display:flex}.sfc-leg{border-top:1px solid var(--border);flex-direction:column;gap:2px;padding:6px 0;display:flex}.airport-input-wrap{position:relative}.airport-dropdown{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);z-index:200;max-height:220px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0006}.airport-dropdown li{cursor:pointer;align-items:center;gap:8px;padding:9px 12px;transition:background .1s;display:flex}.airport-dropdown li:hover{background:var(--border)}.airport-iata{color:var(--primary);min-width:36px;font-size:13px;font-weight:700}.airport-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.airport-country{color:var(--text-muted);flex-shrink:0;font-size:11px}.airport-loading{color:var(--text-muted);font-size:12px;position:absolute;top:50%;right:10px}.loading{text-align:center;color:var(--text-muted);padding:60px}.empty{text-align:center;color:var(--text-muted);padding:40px;font-size:14px}
