:root{--bg-color:#080c16;--bg-gradient:radial-gradient(circle at 50% 0%, #1e1b4b 0%, #080c16 80%);--card-bg:#141c2f73;--card-bg-hover:#19233b99;--card-border:#ffffff0f;--card-border-focus:#6366f166;--primary:#4f46e5;--primary-glow:#4f46e580;--primary-hover:#6366f1;--accent:#8b5cf6;--accent-glow:#8b5cf666;--text-main:#f8fafc;--text-sub:#94a3b8;--text-muted:#64748b;--success:#10b981;--success-glow:#10b98166;--danger:#f43f5e;--danger-glow:#f43f5e66;--warning:#f59e0b;--glass-blur:16px;--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}body{background:var(--bg-color);background-image:var(--bg-gradient);color:var(--text-main);justify-content:center;align-items:center;min-height:100vh;display:flex;overflow:hidden}#root{justify-content:center;align-items:center;width:100%;height:100vh;display:flex}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}.app-container{width:100%;max-width:580px;height:100vh;-webkit-backdrop-filter:blur(var(--glass-blur));border-left:1px solid var(--card-border);border-right:1px solid var(--card-border);background:#0a0f1d99;flex-direction:column;padding:24px;display:flex;overflow-y:auto;box-shadow:0 24px 60px #0006}header{border-bottom:1px solid var(--card-border);flex-shrink:0;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:20px;display:flex}.logo{align-items:center;gap:12px;display:flex}.logo i{background:linear-gradient(135deg, var(--primary), var(--accent));-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 8px var(--primary-glow));-webkit-background-clip:text;font-size:1.8rem}.logo h1{letter-spacing:-.5px;background:linear-gradient(to right, var(--text-main), var(--text-sub));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.4rem;font-weight:700}.status-indicator{border:1px solid var(--card-border);transition:var(--transition-smooth);background:#ffffff0a;border-radius:99px;align-items:center;gap:10px;padding:8px 16px;font-size:.85rem;font-weight:600;display:flex}.status-indicator.running{background:#10b98114;border-color:#10b9814d;box-shadow:0 0 15px #10b98126}.dot{background-color:var(--text-muted);width:8px;height:8px;transition:var(--transition-smooth);border-radius:50%}.status-indicator.running .dot{background-color:var(--success);box-shadow:0 0 10px var(--success);animation:2s infinite pulse-glow}@keyframes pulse-glow{0%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}main{flex-direction:column;flex:1;gap:20px;padding-bottom:40px;display:flex}.card{background:var(--card-bg);border:1px solid var(--card-border);transition:var(--transition-smooth);border-radius:20px;padding:20px;overflow:hidden;box-shadow:0 8px 32px #00000026}.card:hover{background:var(--card-bg-hover);border-color:#6366f140;transform:translateY(-2px);box-shadow:0 12px 40px #4f46e51a}.card.collapsed-state{padding-bottom:20px}.card-header{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;display:flex}.card-header-left{align-items:center;gap:10px;display:flex}.card-header-left i{color:var(--primary);background:linear-gradient(135deg, var(--primary), var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.1rem}.card-header h2{color:var(--text-main);font-size:1.05rem;font-weight:600}.toggle-icon{color:var(--text-sub);font-size:.85rem;transition:transform .3s cubic-bezier(.4,0,.2,1)}.toggle-icon.rotated{transform:rotate(180deg)}.card-body{opacity:1;flex-direction:column;gap:16px;max-height:1000px;margin-top:18px;transition:max-height .4s cubic-bezier(.4,0,.2,1),opacity .3s;display:flex}.card-body.collapsed{opacity:0;pointer-events:none;max-height:0;margin-top:0;overflow:hidden}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--text-sub);text-transform:uppercase;letter-spacing:.5px;font-size:.8rem;font-weight:600}.platform-selector{gap:10px;margin-top:4px;display:flex}.platform-btn{border:1px solid var(--card-border);color:var(--text-sub);cursor:pointer;transition:var(--transition-smooth);background:#ffffff05;border-radius:10px;flex:1;padding:12px;font-size:.95rem;font-weight:600}.platform-btn:hover{background:#ffffff0d;border-color:#ffffff26}.platform-btn.active{background:linear-gradient(135deg, var(--primary), var(--accent));color:#fff;border-color:#0000;box-shadow:0 8px 20px #4f46e540}input,select{border:1px solid var(--card-border);color:var(--text-main);transition:var(--transition-smooth);background:#00000040;border-radius:10px;outline:none;padding:12px 14px;font-size:.95rem}input:focus,select:focus{border-color:var(--primary-hover);box-shadow:0 0 10px var(--primary-glow);background:#00000059}.row{align-items:center;gap:12px;display:flex}.row input{flex:1;width:100%}.swap-btn{border:1px solid var(--card-border);color:var(--text-sub);cursor:pointer;width:36px;height:36px;transition:var(--transition-smooth);background:#ffffff0a;border-radius:50%;justify-content:center;align-items:center;display:flex}.swap-btn:hover{background:var(--primary);color:#fff;box-shadow:0 0 12px var(--primary-glow);border-color:#0000;transform:rotate(180deg)}.swap-btn:active{transform:scale(.9)rotate(180deg)}.swap-btn:disabled{opacity:.5;cursor:not-allowed}.time-range{border:1px solid var(--card-border);background:#00000026;border-radius:12px;align-items:center;gap:10px;padding:6px;display:flex}.time-range input{text-align:center;background:0 0;border:none;padding:8px}.time-range input:focus{box-shadow:none;background:#ffffff0a;border-radius:8px}.time-connector{color:var(--text-muted);font-weight:600}.checkbox-group{border:1px solid var(--card-border);background:#00000026;border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;padding:12px;display:grid}.checkbox-label{cursor:pointer;color:var(--text-sub);transition:var(--transition-smooth);align-items:center;gap:8px;font-size:.9rem;display:flex}.checkbox-label:hover{color:var(--text-main)}.checkbox-label input[type=checkbox]{accent-color:var(--primary);cursor:pointer;width:16px;height:16px}.passenger-controls{flex-direction:column;gap:8px;display:flex}.p-control{border:1px solid var(--card-border);background:#00000026;border-radius:12px;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.p-control span{font-size:.9rem;font-weight:600}.counter{align-items:center;gap:14px;display:flex}.counter button{border:1px solid var(--card-border);width:28px;height:28px;color:var(--text-main);cursor:pointer;transition:var(--transition-smooth);background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.counter button:hover{background:var(--primary);box-shadow:0 0 10px var(--primary-glow);border-color:#0000}.counter button:active{transform:scale(.9)}.counter span{text-align:center;min-width:18px;font-size:1.05rem;font-weight:700}.control-card{flex-direction:column;gap:20px;display:flex}.log-container{border:1px solid var(--card-border);background:#050811d9;border-radius:16px;flex-direction:column;gap:12px;height:260px;padding:18px;display:flex;box-shadow:inset 0 2px 12px #000c}.log-title-bar{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.log-title-bar h3{color:var(--text-sub);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;font-size:.85rem;display:flex}.log-title-bar h3 i{color:var(--accent)}.btn-clear-logs{color:var(--text-muted);cursor:pointer;transition:var(--transition-smooth);background:0 0;border:none;font-size:.8rem}.btn-clear-logs:hover{color:var(--danger)}.log-area{flex-direction:column;flex:1;gap:6px;padding-right:4px;font-family:Consolas,Courier New,monospace;font-size:.85rem;display:flex;overflow-y:auto}.log-entry{color:var(--text-sub);word-break:break-all;border-bottom:1px solid #ffffff05;padding-bottom:4px;line-height:1.4}.log-entry.success{color:var(--success);text-shadow:0 0 8px #10b98133;font-weight:600}.log-entry.error{color:var(--danger);text-shadow:0 0 8px #f43f5e33;font-weight:600}.log-entry.warning{color:var(--warning);text-shadow:0 0 8px #f59e0b33}.action-buttons{gap:12px;display:flex}.btn-main{background:linear-gradient(135deg, var(--primary), var(--accent));color:#fff;cursor:pointer;transition:var(--transition-smooth);height:52px;box-shadow:0 8px 24px var(--primary-glow);border:none;border-radius:14px;flex:3;justify-content:center;align-items:center;gap:10px;font-size:1.1rem;font-weight:700;display:flex}.btn-main:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 12px 30px #6366f166}.btn-main:active{transform:translateY(1px)}.btn-main.running{background:linear-gradient(135deg, var(--danger), #be123c);box-shadow:0 8px 24px var(--danger-glow)}.btn-main.running:hover{box-shadow:0 12px 30px #f43f5e66}.btn-settings{border:1px solid var(--card-border);color:var(--text-main);cursor:pointer;transition:var(--transition-smooth);background:#ffffff08;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:8px;height:52px;font-size:1rem;display:flex}.btn-settings:hover{background:#ffffff14;border-color:#ffffff26}.modal{z-index:1000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#05070dcc;justify-content:center;align-items:center;width:100%;height:100%;animation:.25s ease-out fade-in;display:flex;position:fixed;top:0;left:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-content{border:1px solid var(--card-border);background-color:#0b101f;border-radius:24px;flex-direction:column;gap:18px;width:92%;max-width:420px;padding:30px;animation:.3s cubic-bezier(.4,0,.2,1) slide-up;display:flex;position:relative;box-shadow:0 20px 50px #0009}@keyframes slide-up{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.modal-header h2{color:var(--text-main);font-size:1.15rem;font-weight:700}.close{color:var(--text-muted);cursor:pointer;transition:var(--transition-smooth);font-size:1.5rem}.close:hover{color:var(--danger)}.modal-actions{border-top:1px solid #ffffff0d;justify-content:flex-end;gap:10px;margin-top:10px;padding-top:16px;display:flex}.modal-actions button{cursor:pointer;transition:var(--transition-smooth);border:none;border-radius:10px;align-items:center;gap:6px;padding:10px 18px;font-size:.9rem;font-weight:600;display:flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 0 12px var(--primary-glow)}.btn-danger{color:var(--danger);background:0 0;border:1px solid var(--danger)!important}.btn-danger:hover{background:#f43f5e14}.btn-info{color:var(--text-main);background:#ffffff0d;border:1px solid var(--card-border)!important}.btn-info:hover{background:#ffffff1a}.simulation-bar{justify-content:center;margin-top:-10px;margin-bottom:10px;display:flex}.btn-simulate{border:1px dashed var(--accent);color:var(--accent);cursor:pointer;transition:var(--transition-smooth);background:#8b5cf61f;border-radius:10px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:600;display:flex}.btn-simulate:hover{box-shadow:0 0 10px var(--accent-glow);background:#8b5cf633;transform:scale(1.02)}
