.gps-page{padding:0;max-width:none}
.gps-breadcrumb{font-size:12px;color:#718096;margin-bottom:10px}
.gps-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px}.gps-title{display:flex;align-items:center;gap:12px}.gps-title h1{margin:0;font-size:28px;color:#0e2348}.gps-title p{margin:5px 0 0;color:#4b6587;font-size:13px}.gps-icon{width:40px;height:40px;border-radius:10px;background:#ff7a00;color:#fff;display:grid;place-items:center;font-weight:700}.gps-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.gps-lang{display:flex;gap:5px}.gps-lang button{border:1px solid #d5dfec;background:#fff;color:#0e2348;border-radius:8px;padding:9px 12px;font-weight:700;cursor:pointer}.gps-lang button.active{background:#1769e8;color:#fff;border-color:#1769e8}.gps-live{display:flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid #b9e8cb;background:#eafaf0;border-radius:9px;color:#087c38}.gps-live i{width:8px;height:8px;background:#16a34a;border-radius:50%}.gps-live small{color:#526b62}
.gps-btn{padding:11px 15px;border-radius:9px;border:1px solid #d5dfec;background:#fff;color:#0e2348;font-weight:600;cursor:pointer}.gps-btn.primary{background:#1769e8;color:#fff;border-color:#1769e8}.gps-btn.big{width:100%;height:48px;font-size:14px}.gps-filters{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:10px;background:#fff;border:1px solid #dfe6ef;border-radius:10px;padding:10px;margin-bottom:10px}.gps-filters>div{min-width:0}.gps-filters label{display:block;font-size:11px;font-weight:700;color:#526987;margin:0 0 5px}.gps-filters input,.gps-filters select{width:100%;height:40px;border:1px solid #d3deec;border-radius:8px;padding:0 11px;color:#182234;background:#fff}
.gps-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:10px}.gps-kpi{background:#fff;border:1px solid #dfe6ef;border-left:4px solid #1769e8;border-radius:9px;padding:12px 13px;min-height:70px}.gps-kpi.green{border-left-color:#16a34a}.gps-kpi.purple{border-left-color:#7c3aed}.gps-kpi.orange{border-left-color:#ff7a00}.gps-kpi.red{border-left-color:#ef4444}.gps-kpi small{display:block;color:#718096;font-size:10px;margin-bottom:5px}.gps-kpi b{font-size:17px;color:#0e2348}
.gps-main-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.9fr);gap:12px;align-items:stretch}.gps-map-card,.gps-detail-card,.gps-activity-card,.gps-chart-card{background:#fff;border:1px solid #dfe6ef;border-radius:10px;overflow:hidden;min-width:0}.gps-map-card{position:relative}.gps-map-tabs{position:absolute;z-index:1000;top:10px;left:10px;display:flex;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 10px #0e234822}.gps-map-tabs button{border:0;background:#fff;padding:9px 13px;color:#0e2348;font-weight:700;cursor:pointer}.gps-map-tabs button.active{background:#1769e8;color:#fff}
.gps-map-options{position:absolute;z-index:1000;top:55px;left:10px;background:#fff;border-radius:8px;padding:9px 11px;box-shadow:0 2px 12px #0e234822}.gps-map-options label{display:block;font-size:11px;color:#33445e;margin:7px 0}.gps-map-options input{accent-color:#1769e8;margin-right:5px}.gps-map{height:430px;width:100%;position:relative;background:#e8eef5;overflow:hidden}.gps-map .leaflet-container{height:100%;width:100%}.gps-loading{display:grid;place-items:center;height:100%;color:#718096;font-size:12px}
.gps-legend{height:32px;display:flex;align-items:center;gap:18px;padding:0 12px;font-size:10px;color:#526987}.gps-legend span{display:flex;align-items:center;gap:5px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.start{background:#16a34a}.dot.point{background:#1769e8}.dot.end{background:#ef4444}.gps-detail-card{display:flex;flex-direction:column;min-height:462px}.gps-card-head{display:flex;justify-content:space-between;align-items:center;padding:13px;border-bottom:1px solid #e1e7ef}.gps-card-head h3{margin:0;color:#0e2348;font-size:15px}.gps-timeline{overflow:auto;max-height:380px;flex:1}.gps-event{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;padding:11px 13px;border-bottom:1px solid #edf1f6}.gps-event small{display:block;color:#718096;font-size:9px;margin-top:3px}.gps-event b{font-size:11px;color:#173665}.gps-event strong{font-size:10px;color:#526987}.event-num{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#1769e8;color:#fff;font-size:10px}.gps-event.start .event-num{background:#16a34a}.gps-event.end .event-num{background:#ef4444}
.gps-note{margin:10px;padding:10px;background:#eaf3ff;border-radius:8px;color:#1769e8;font-size:10px}.gps-note span{display:block;margin-top:4px;color:#526987}.gps-note.warn{background:#fff3d8;color:#9a6700}.gps-bottom-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:12px;margin-top:12px}.gps-activity-card,.gps-chart-card{min-height:220px}.gps-activity-card .gps-table{width:100%;border-collapse:collapse}.gps-table th,.gps-table td{padding:8px 11px;border-bottom:1px solid #edf1f6;text-align:left;font-size:10px}.gps-table th{color:#718096;font-size:9px;text-transform:uppercase}.gps-event-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#1769e8;margin-right:5px}.gps-event-dot.stop{background:#ff7a00}
.gps-chart{height:180px;padding:14px}.gps-bars{height:145px;display:flex;align-items:flex-end;gap:3px;overflow:hidden}.gps-bars span{display:block;min-width:5px;flex:1;background:#1769e8;border-radius:3px 3px 0 0}.gps-chart-axis{display:flex;justify-content:space-between;font-size:9px;color:#718096;padding:4px 14px}.gps-div-icon{background:transparent;border:0}.gps-marker{width:28px;height:28px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 6px #0005;display:grid;place-items:center;font-size:9px;font-weight:700;color:#fff}.gps-marker.start{background:#16a34a}.gps-marker.end{background:#ef4444}.gps-marker.point{background:#1769e8}
@media(max-width:1000px){.gps-title-row{align-items:flex-start;flex-direction:column}.gps-kpis{grid-template-columns:repeat(3,1fr)}.gps-main-grid,.gps-bottom-grid{grid-template-columns:1fr}.gps-filters{grid-template-columns:1fr 1fr}.gps-actions{width:100%}}@media(max-width:650px){.gps-kpis{grid-template-columns:1fr 1fr}.gps-filters{grid-template-columns:1fr}.gps-actions{gap:5px}.gps-live{width:100%}.gps-map{height:360px}}
