@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{color:#172825;font-synthesis:none;background:#f4f6f3;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{margin:0}.app{grid-template-columns:238px 1fr;min-height:100vh;display:grid}.app>aside{color:#fff;background:#103b35;flex-direction:column;width:238px;height:100vh;padding:28px 16px;display:flex;position:fixed}.brand{align-items:center;gap:12px;padding:0 10px 28px;font-family:Manrope;font-size:19px;font-weight:800;display:flex}.brand small{letter-spacing:3px;color:#ddab5b;font-size:9px;display:block}.brandmark,.ticket-logo{color:#103b35;background:#d9a34e;border-radius:10px;place-items:center;width:37px;height:37px;font-size:22px;display:grid}.app nav{gap:5px;display:grid}.app nav button{color:#a9c1bc;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:12px 13px;font:500 14px inherit}.app nav button.active,.app nav button:hover{color:#fff;background:#23544c}.icon{width:28px;font-size:19px;display:inline-block}.agent{border-top:1px solid #2d554f;align-items:center;gap:10px;margin-top:auto;padding:20px 8px 0;display:flex}.agent>span{color:#173b35;background:#dfb160;border-radius:50%;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.agent b,.agent small{font-size:12px;display:block}.agent small{color:#91aaa6;margin-top:3px}.app>main{grid-column:2;width:100%;max-width:1500px;padding:0 34px 40px}header{justify-content:space-between;align-items:center;height:91px;display:flex}h1{margin:0;font:800 22px Manrope}header p{color:#7d8986;text-transform:capitalize;margin:5px 0 0;font-size:13px}.primary,.light{color:#17372f;cursor:pointer;background:#d6a04b;border:0;border-radius:7px;padding:11px 17px;font-weight:700}.light{color:#17473f;background:#fff}.hero{color:#fff;background:linear-gradient(115deg,#174b42,#28675c);border-radius:13px;justify-content:space-between;min-height:236px;padding:34px 44px;display:flex;overflow:hidden}.eyebrow{color:#e5bc76;letter-spacing:2px;font-size:10px;font-weight:700}.hero h2{margin:10px 0;font:800 30px/1.2 Manrope}.hero p{color:#c7d8d4;font-size:13px}.hero .light{margin-top:9px}.bus-art{text-align:center;color:#e1b566;opacity:.75;align-self:center;width:300px;font-size:50px;transform:rotate(-3deg)}.bus-art strong{border:5px solid;border-radius:24px;padding:25px;font-size:36px;display:block}.bus-art span{color:#e1b566;font-size:28px;display:block}.stats{grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0;display:grid}.stat{background:#fff;border:1px solid #e6ebe8;border-radius:10px;align-items:center;gap:13px;padding:18px;display:flex}.stat>span{color:#b57825;background:#f7eddb;border-radius:9px;place-items:center;width:40px;height:40px;font-size:21px;display:grid}.stat small,.stat b{display:block}.stat small{color:#7b8986;margin-bottom:5px;font-size:11px}.stat b{font:700 19px Manrope}.columns{grid-template-columns:1.25fr 1fr;gap:18px;display:grid}.panel{background:#fff;border:1px solid #e2e8e5;border-radius:10px}.panel-title{border-bottom:1px solid #edf0ee;justify-content:space-between;align-items:center;padding:19px 21px;display:flex}.panel-title h3,.step h3{margin:0;font:700 15px Manrope}.panel-title p,.step p{color:#89938f;margin:4px 0 0;font-size:11px}.departure,.sale{border-bottom:1px solid #eff2f0;align-items:center;padding:14px 20px;display:flex}.departure:last-child,.sale:last-child{border-bottom:0}.time{color:#19483f;width:68px;font:700 16px Manrope}.line,.sale>div:nth-child(2){flex:1}.line b,.line small,.sale b,.sale small{font-size:12px;display:block}.line em{color:#c58a35;font-style:normal}.line small,.sale small{color:#85908d;margin-top:5px}.occupancy{text-align:right}.occupancy b,.occupancy small{font-size:12px;display:block}.occupancy small{color:#89928f}.avatar{color:#24584f;background:#e6f0ed;border-radius:50%;flex:none;place-items:center;width:35px;height:35px;margin-right:11px;font-weight:700;display:grid}.sale>strong{color:#ad7525;font-size:12px}.form-layout{grid-template-columns:minmax(500px,1.5fr) minmax(280px,.7fr);gap:18px;display:grid}.form-card{padding:25px}.step{gap:12px;margin:3px 0 18px;display:flex}.step:not(:first-child){border-top:1px solid #e9ecea;margin-top:25px;padding-top:23px}.step>span{color:#fff;background:#17483f;border-radius:50%;place-items:center;width:30px;height:30px;font-weight:700;display:grid}label{color:#50605c;margin-bottom:16px;font-size:12px;font-weight:600;display:block}input,select{color:#243c37;background:#fbfcfb;border:1px solid #dce3e0;border-radius:7px;width:100%;margin-top:7px;padding:11px 12px;font:13px inherit;display:block}input:focus,select:focus{border-color:#0000;outline:2px solid #d8ae6d}.grid2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.full{width:100%;padding:14px}.summary{height:max-content;padding:23px}.summary h3{margin:0 0 25px;font:700 16px Manrope}.trip{color:#fff;background:#17483f;border-radius:9px;justify-content:space-around;align-items:center;padding:23px 15px;display:flex}.trip span{color:#e2b567}.summary dl{grid-template-columns:1fr 1fr;gap:14px;padding:15px 0;font-size:12px;display:grid}.summary dt{color:#83908c}.summary dd{text-align:right;margin:0;font-weight:600}.total{border-top:1px dashed #cad1ce;justify-content:space-between;padding-top:17px;display:flex}.total b{color:#a66d20}.empty{color:#87928f;text-align:center;padding:40px 10px;font-size:13px}.error{color:#b43d34;background:#fff1ef;border-radius:6px;padding:10px;font-size:12px}.table-panel{overflow:hidden}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#77837f;text-transform:uppercase;letter-spacing:.5px;background:#f7f9f7;padding:12px 18px;font-size:10px}td{white-space:nowrap;border-top:1px solid #edf0ee;padding:14px 18px}.badge{color:#287156;background:#e5f3ed;border-radius:15px;padding:5px 9px}.small-btn{cursor:pointer;background:#fff;border:1px solid #d5ddd9;border-radius:5px;padding:6px 9px}.inline-form{background:#fafbf9;grid-template-columns:repeat(6,1fr);gap:8px;padding:16px;display:grid}.inline-form input,.inline-form select{margin:0}.modal{z-index:10;background:#0d211dcc;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow:auto}.modal-card{background:#e9edeb;border-radius:10px;padding:18px}.modal-actions{justify-content:flex-end;gap:8px;margin-bottom:15px;display:flex}.modal-actions button{cursor:pointer;border:0;border-radius:5px;padding:9px 14px}.thermal-ticket{color:#000;text-align:center;background:#fff;width:48mm;padding:4mm 2.5mm 2mm;font-family:Arial,sans-serif;font-size:9pt}.thermal-ticket .ticket-logo{color:#000;border-radius:2mm;width:9mm;height:9mm;margin:auto}.thermal-ticket h2{margin:2mm 0 1mm;font-size:12pt}.thermal-ticket p{margin:1mm 0;font-size:7.5pt;line-height:1.4}.dash{border-top:.3mm dashed #000;margin:3mm 0}.thermal-ticket h3{letter-spacing:.4mm;font-size:9pt}.route-ticket{justify-content:space-between;align-items:center;margin:3mm 0;font-size:10pt;display:flex}.ticket-row{text-align:left;justify-content:space-between;gap:2mm;margin:2mm 0;font-size:8pt;display:flex}.ticket-row b{text-align:right}.ticket-row strong{font-size:14pt}.total-ticket{font-size:10pt}.ticket-ref{border:1px solid #000;margin:3mm 0;padding:2mm;font:700 9pt monospace}.thanks{margin:3mm 0!important}.cut{white-space:nowrap;margin-top:4mm;font-size:7pt;overflow:hidden}.toast{color:#fff;z-index:20;background:#173f38;border-radius:8px;padding:13px 19px;font-size:13px;position:fixed;bottom:25px;right:25px;box-shadow:0 5px 25px #0003}@media (width<=950px){.app{display:block}.app>aside{width:100%;height:auto;padding:15px;position:static}.brand{padding-bottom:14px}.app nav{display:flex;overflow:auto}.app nav button{white-space:nowrap}.agent{display:none}.app>main{padding:0 16px 30px}.stats{grid-template-columns:1fr 1fr}.columns,.form-layout{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr 1fr}.bus-art{display:none}.hero{padding:30px}.quick{display:none}}@media (width<=550px){header{height:75px}.stats,.grid2{grid-template-columns:1fr}.hero h2{font-size:25px}.inline-form{grid-template-columns:1fr}}@media print{body *{visibility:hidden}.modal,.modal *,.thermal-ticket,.thermal-ticket *{visibility:visible}.modal{background:#fff;padding:0;display:block;position:absolute;inset:0}.modal-card{background:#fff;padding:0}.modal-actions{display:none}.thermal-ticket{width:48mm;margin:0;padding:2mm 1mm;position:absolute;top:0;left:0}@page{size:58mm auto;margin:0}}.auto-seat{color:#8a5a17;background:#fff8eb;border:1px dashed #c99645;border-radius:7px;align-items:center;height:39px;margin-top:7px;padding:0 12px;font-size:14px;font-weight:800;display:flex}.primary:disabled{opacity:.55;cursor:not-allowed}.thermal-ticket{text-align:left;padding:3mm 2.5mm 2mm}.ticket-head{border:0;justify-content:center;align-items:center;gap:2mm;height:auto;margin:0;display:flex}.thermal-ticket .ticket-head .ticket-logo{border-radius:1.5mm;width:8mm;height:8mm;margin:0;font-size:14pt}.thermal-ticket .ticket-head h2{letter-spacing:.2mm;margin:0;font-size:12pt;line-height:1}.ticket-head small{letter-spacing:1.5mm;margin-top:1mm;font-size:6.5pt;display:block}.thermal-ticket .agency-line{text-align:center;margin:2mm 0!important}.ticket-title{text-align:center;letter-spacing:.6mm;border-top:.35mm solid #000;border-bottom:.35mm solid #000;margin:2.5mm 0;padding:1.6mm 0;font-size:8pt;font-weight:800}.thermal-ticket .route-ticket{gap:1mm;margin:3mm 0}.thermal-ticket .route-ticket>div{width:18mm}.thermal-ticket .route-ticket>div:last-child{text-align:right}.thermal-ticket .route-ticket small,.boarding small,.ticket-ref small{letter-spacing:.25mm;margin-bottom:.8mm;font-size:5.5pt;font-weight:400;display:block}.thermal-ticket .route-ticket b{overflow-wrap:anywhere;font-size:10pt;line-height:1.1;display:block}.thermal-ticket .route-ticket span{font-size:12pt}.boarding{background:#f1f1f1;border:.25mm solid #000;grid-template-columns:1fr 11mm;align-items:stretch;gap:2mm;margin:2mm 0;padding:1.5mm;display:grid}.boarding>div:first-child{flex-direction:column;justify-content:center;display:flex}.boarding b{font-size:8pt;line-height:1.25}.seat-box{text-align:center;border-left:.25mm solid #000;padding-left:1mm}.seat-box strong{font-size:18pt;line-height:1;display:block}.thermal-ticket .ticket-row{margin:1.5mm 0;font-size:7.5pt}.thermal-ticket .total-ticket{margin:2.5mm 0;font-size:10pt}.thermal-ticket .ticket-ref{text-align:center;margin:2.5mm 0;padding:1.5mm;font-family:Arial,sans-serif}.ticket-ref strong{letter-spacing:.3mm;font:700 10pt monospace;display:block}.thermal-ticket .thanks{text-align:center;margin:3mm 0!important}.departure-form{grid-template-columns:1.2fr 1fr 1fr 1fr auto}.bus-form{grid-template-columns:1.2fr 1fr .8fr auto}.bus-form .error{grid-column:1/-1;margin:0}@media (width<=950px){.departure-form,.bus-form{grid-template-columns:1fr 1fr}}@media (width<=550px){.departure-form,.bus-form{grid-template-columns:1fr}}.menu-toggle,.menu-close,.menu-overlay{display:none}.header-title{flex:1}@media (width<=950px){.app>aside{z-index:50;width:min(82vw,300px);height:100vh;padding:22px 16px;transition:transform .25s;display:flex;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:10px 0 35px #001c}.app>aside.menu-open{transform:translate(0)}.app>aside .brand{padding:0 8px 24px}.app>aside nav{display:grid;overflow:visible}.app>aside nav button{white-space:normal}.app>aside .agent{display:flex}.menu-overlay{z-index:45;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#071713aa;border:0;display:block;position:fixed;inset:0}.menu-toggle{cursor:pointer;background:#fff;border:1px solid #dce4e0;border-radius:8px;flex:none;place-content:center;gap:4px;width:42px;height:42px;margin-right:12px;padding:10px;display:grid}.menu-toggle span{background:#17483f;border-radius:2px;width:19px;height:2px;display:block}.menu-close{color:#fff;cursor:pointer;background:0 0;border:1px solid #41675f;border-radius:7px;place-items:center;width:34px;height:34px;margin-left:auto;font-size:24px;line-height:1;display:grid}.header-title h1{font-size:19px}}@media (width<=550px){.header-title p{max-width:190px;font-size:10px}.app>main>header{height:72px}}.logout{color:#a9c1bc;cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:20px}.auth-loading{color:#fff;letter-spacing:2px;background:#103b35;place-items:center;min-height:100vh;font:800 18px Manrope;display:grid}.login-page{background:radial-gradient(circle at 70% 20%,#2c6a5e,#103b35 55%);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:#fff;border-radius:15px;width:min(420px,100%);padding:38px;box-shadow:0 25px 70px #0018}.login-brand{color:#123b36;justify-content:center;align-items:center;gap:12px;margin-bottom:35px;display:flex}.login-brand b{font:800 19px Manrope;display:block}.login-brand small{color:#b47a29;letter-spacing:3px;font-size:8px;display:block}.login-card>h1{text-align:center;font-size:25px}.login-card>p{text-align:center;color:#7d8986;margin:7px 0 28px;font-size:13px}.login-card .primary{margin-top:5px}.user-form .error{grid-column:1/-1;margin:0}.user-form{grid-template-columns:repeat(4,minmax(150px,1fr)) auto auto}.check-label{white-space:nowrap;align-items:center;gap:7px;margin:0;padding:0 8px;display:flex}.check-label input{width:auto;margin:0}@media (width<=950px){.user-form{grid-template-columns:1fr 1fr}}@media (width<=550px){.user-form{grid-template-columns:1fr}.login-card{padding:28px 22px}}.locations-layout{align-items:start}.location-form{border-bottom:1px solid #edf0ee;gap:8px;padding:16px;display:flex}.location-form input,.location-form select{margin:0}.counter-form{grid-template-columns:.8fr 1fr auto;display:grid}.location-row{border-bottom:1px solid #edf0ee;justify-content:space-between;align-items:center;padding:14px 20px;font-size:13px;display:flex}.location-row small{color:#7d8986}.ticket-office{text-align:center;border:.25mm solid #000;margin:2mm 0;padding:1.5mm;font-size:8pt}.ticket-office b,.ticket-office span,.ticket-office small{display:block}.ticket-office span{margin:.5mm 0;font-weight:700}.ticket-office small{font-size:6.5pt}@media (width<=550px){.counter-form{grid-template-columns:1fr}.location-form{flex-direction:column}}.route-form,.sale-edit-form{grid-template-columns:repeat(4,1fr) auto auto}.route-form .error,.sale-edit-form .error,.departure-form .error{grid-column:1/-1;margin:0}.row-actions{gap:6px;display:flex}.location-row>div b,.location-row>div small{display:block}.location-row>div small{margin-top:3px}@media (width<=950px){.route-form,.sale-edit-form{grid-template-columns:1fr 1fr}}@media (width<=550px){.route-form,.sale-edit-form{grid-template-columns:1fr}}
