:root{--blue: #2563eb;--blue-light: #dbeafe;--green: #059669;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-500: #6b7280;--gray-700: #374151;--gray-900: #111827;--radius: 8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--gray-50);color:var(--gray-900)}header{background:linear-gradient(135deg,#1e3a5f,#2563eb);color:#fff;padding:24px 32px}header h1{font-size:24px;font-weight:700}header p{opacity:.8;margin-top:4px;font-size:14px}.controls{background:#fff;border-bottom:1px solid var(--gray-200);padding:20px 32px;display:flex;flex-wrap:wrap;gap:16px;align-items:end}.control-group{display:flex;flex-direction:column;gap:4px}.control-group label{font-size:12px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.control-group input,.control-group select{padding:8px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:14px}.control-group input:focus,.control-group select:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-light)}#address{width:320px}#maxDrive{width:80px}#departDate,#returnDate{width:150px}.mode-toggle{display:flex;border:1px solid var(--gray-300);border-radius:var(--radius);overflow:hidden}.mode-btn{padding:8px 16px;border:none;background:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;color:var(--gray-700)}.mode-btn:first-child{border-right:1px solid var(--gray-300)}.mode-btn.active{background:var(--blue);color:#fff}.mode-btn:hover:not(.active){background:var(--gray-100)}.btn{padding:8px 20px;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:all .15s}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-primary:disabled{background:var(--gray-300);cursor:not-allowed}.filters{padding:12px 32px;background:#fff;border-bottom:1px solid var(--gray-200);display:flex;flex-wrap:wrap;gap:8px;align-items:center}.filter-chip{padding:4px 12px;border:1px solid var(--gray-300);border-radius:20px;font-size:13px;cursor:pointer;background:#fff;transition:all .15s;user-select:none}.filter-chip.active{background:var(--blue);color:#fff;border-color:var(--blue)}.filter-chip:hover{border-color:var(--blue)}.filter-label{font-size:12px;font-weight:600;color:var(--gray-500);text-transform:uppercase;margin-right:4px}.status-bar{padding:8px 32px;background:var(--gray-100);font-size:13px;color:var(--gray-500);border-bottom:1px solid var(--gray-200)}main{padding:16px 32px}table{width:100%;border-collapse:collapse;font-size:13px}thead th{position:sticky;top:0;background:var(--gray-700);color:#fff;padding:10px 12px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.3px;cursor:pointer;white-space:nowrap;user-select:none}thead th:hover{background:var(--gray-900)}thead th .sort-arrow{margin-left:4px;opacity:.5}thead th.sorted .sort-arrow{opacity:1}tbody tr{border-bottom:1px solid var(--gray-200)}tbody tr:nth-child(2n){background:var(--gray-50)}tbody tr:hover{background:var(--blue-light)}td{padding:8px 12px;vertical-align:middle}td a{color:var(--blue);text-decoration:none}td a:hover{text-decoration:underline}.badge{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}.badge-pass{background:var(--blue-light);color:var(--blue)}.badge-yes{background:#d1fae5;color:#065f46}.badge-no{background:var(--gray-100);color:var(--gray-500)}.badge-flight{background:#dbeafe;color:#1e40af;cursor:pointer;text-decoration:none}.badge-flight:hover{background:#bfdbfe}.drive-time{font-weight:600}.drive-time.short{color:var(--green)}.drive-time.medium{color:#d97706}.drive-time.long{color:#dc2626}.loading{display:none;align-items:center;gap:8px;font-size:13px;color:var(--gray-500)}.loading.active{display:flex}.spinner{width:16px;height:16px;border:2px solid var(--gray-300);border-top-color:var(--blue);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;padding:48px;color:var(--gray-500)}.pass-count{font-size:12px;color:var(--gray-500)}@media(max-width:768px){.controls{padding:12px 16px}#address{width:100%}main{padding:8px;overflow-x:auto}header,.filters,.status-bar{padding-left:16px;padding-right:16px}}
