:root{--blue:#07559d;--blue2:#0b6fbd;--orange:#f58220;--ink:#172335;--muted:#6c7787;--line:#e5eaf0;--bg:#f3f6fa;--green:#1b9b61;--red:#dc3e4a;--yellow:#e5a400}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:10px 15px;background:var(--blue);color:white;font-weight:700}button:hover{filter:brightness(.95)}button.secondary{background:#e9f1fa;color:var(--blue)}button.danger{background:#fff0f1;color:var(--red)}button.ghost{background:transparent;border:1px solid #ffffff55}.hidden{display:none!important}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#053c73,#0878c8)}.card{background:white;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 10px 30px #13395b12}.login-card{width:min(420px,92vw);padding:34px}.login-card h1{margin:25px 0 4px}.login-card p{color:var(--muted);margin-top:0}.brand{display:flex;align-items:center;gap:10px;color:var(--blue)}.brand small{letter-spacing:2px}.brandmark{font-size:30px;font-weight:900;font-style:italic}.brandmark span{color:var(--orange)}label{display:grid;gap:6px;margin:14px 0;font-weight:600}input,textarea,select{width:100%;padding:10px 12px;border:1px solid #ccd5df;border-radius:8px;background:white;color:var(--ink)}textarea{min-height:150px;resize:vertical}.login button{width:100%;margin:10px 0}.muted{color:var(--muted)}.shell{display:grid;grid-template-columns:245px 1fr;min-height:100vh}aside{background:#06467f;color:white;padding:24px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.inverse{color:white;padding:0 10px 25px}nav{display:grid;gap:4px}nav button{background:transparent;text-align:left;font-weight:500;padding:12px}nav button.active,nav button:hover{background:#ffffff18}.user{margin-top:auto;border-top:1px solid #ffffff30;padding:18px 8px 0;display:grid;gap:3px}.user .ghost{margin-top:10px}main{min-width:0}header{height:80px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:15px;position:sticky;top:0;z-index:3}header h2{margin:0;font-size:20px}header small{color:var(--muted)}header .primary{margin-left:auto}#menu{display:none;background:transparent;color:var(--blue);font-size:22px;padding:5px}#content{padding:28px;max-width:1450px;margin:auto}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(6,1fr)}.stat{padding:18px}.stat b{display:block;font-size:28px;color:var(--blue)}.stat small{text-transform:uppercase;color:var(--muted);font-size:11px}.two{grid-template-columns:1.2fr .8fr}.three{grid-template-columns:repeat(3,1fr)}h3{margin:0 0 15px}.list{display:grid;gap:10px}.item{border:1px solid var(--line);border-radius:10px;padding:13px;display:flex;align-items:center;gap:12px;background:#fff}.item .grow{flex:1}.item strong{display:block}.badge{display:inline-block;padding:4px 8px;border-radius:20px;font-size:11px;font-weight:800;background:#e7eef6;color:#526274}.badge.SENT,.badge.LAUNCHING{background:#e5f1ff;color:#0865a9}.badge.SCHEDULED,.badge.COMPLETED,.badge.COMPLETE{background:#e5f7ee;color:#17764d}.badge.PENDING,.badge.WARNING{background:#fff3ce;color:#8b6500}.badge.CANCELLED{background:#ffe7e9;color:#a52331}.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.form-grid label{margin:0}.span2{grid-column:span 2}.span4{grid-column:1/-1}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:11px;text-transform:uppercase;color:var(--muted)}td input{min-width:120px;padding:7px}.metricline{display:flex;gap:22px;margin:12px 0}.metricline b{color:var(--blue)}.routes{display:grid;grid-template-columns:repeat(auto-fit,minmax(275px,1fr));gap:15px}.route{border-top:4px solid var(--orange)}.passenger{padding:10px;border:1px solid var(--line);border-radius:8px;margin:8px 0;background:#fafbfd}.passenger small{display:block;color:var(--muted)}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px}.toolbar input{max-width:420px}.empty{text-align:center;padding:45px;color:var(--muted)}#toast{position:fixed;right:20px;top:20px;z-index:99;background:var(--ink);color:white;padding:12px 18px;border-radius:9px;transform:translateY(-100px);transition:.2s}#toast.show{transform:none}.alert{padding:12px;border-radius:8px;background:#fff3ce;color:#755600;margin:10px 0}.danger-text{color:var(--red)}@media(max-width:1050px){.stats{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.span4{grid-column:1/-1}}@media(max-width:720px){.shell{display:block}aside{position:fixed;left:-260px;z-index:10;width:245px;transition:.2s}aside.open{left:0}#menu{display:block}header{padding:0 15px}#content{padding:16px}.stats,.two,.three{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.span2,.span4{grid-column:auto}header .primary{font-size:0}header .primary:first-letter{font-size:18px}}@media(max-width:450px){.stats,.two,.three{grid-template-columns:1fr}.stat{display:flex;align-items:center;gap:15px}.stat b{order:-1}}
