/* default.css ma * { font-size:16px } - zvyrazneni a odkazy uvnitr komponent musi velikost dedit */
.stEntity a, .stEntity span, .stEntity strong, .stEntity b, .stEntity small,
.stPop a, .stPop span, .stPop strong, .stPop b, .stPop small,
.stForm a, .stForm span, .stForm strong, .stForm b, .stForm small { font-size: inherit; }

/* Senditrack – ikony + popupy/modaly (podle balíčku "Popupy a ikony", 15. 9. 2026)
   Scope: .stIcon, .stEntity, .stPop (popup na mapě), .stModal (modal nad mapou) */
.stIcon { width: 18px; height: 18px; display: inline-block; flex: 0 0 auto; vertical-align: -3px; color: currentColor; }
.stEntity { width: 36px; height: 36px; border-radius: 10px; background: #fff; border: 1px solid #dce2e8; display: inline-flex; align-items: center; justify-content: center; position: relative; color: #101722; flex: 0 0 auto; overflow: visible; }
.stEntity::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; border-radius: 10px 10px 0 0; }
.stEntity .stIcon { width: 20px; height: 20px; vertical-align: 0; }
.stEntity--depot::before { background: #9B62D0; }
.stEntity--vehicle::before { background: #6CBA55; }
.stEntity--load::before, .stEntity--cargo::before { background: #EF665B; }
.stEntity--loading::before { background: #F4B223; }
.stEntity--unloading::before { background: #2E68D8; }
.stEntity--waypoint::before { background: #98A2B3; }
.stEntity--sm { width: 28px; height: 28px; border-radius: 8px; }
.stEntity--sm .stIcon { width: 16px; height: 16px; }
.stOnline::after { content: ""; position: absolute; right: -3px; top: -3px; width: 10px; height: 10px; border-radius: 50%; background: #22C55E; border: 2px solid #fff; box-shadow: 0 0 0 0 rgba(34,197,94,.55); animation: stGpsPulse 1.45s ease-out infinite; }
@keyframes stGpsPulse { 0% { box-shadow: 0 0 0 0 rgba(34,197,94,.55); } 70% { box-shadow: 0 0 0 8px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }

/* ===== popup na mapě (InfoWindow) ===== */
.gm-style .gm-style-iw-c { border-radius: 16px !important; box-shadow: 0 14px 40px rgba(17,24,39,.18) !important; }
.stPop { position: relative; width: 460px; max-width: 92vw; padding: 16px 16px 14px; font-family: "Rubik", Arial, sans-serif; color: #303742; font-size: 13px; line-height: 1.45; }
.stPop * { box-sizing: border-box; font-size: inherit; color: inherit; }
.stPop a { color: #111827; }
.stPop .stClose { position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border: 0; background: #f3f5f7; border-radius: 999px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; color: #4b5563; }
.stPop .stClose:hover { background: #e8ebef; }
.stPop .stHead { display: flex; gap: 12px; align-items: flex-start; padding-right: 36px; margin-bottom: 12px; }
.stPop .stHead h3 { margin: 0; font-size: 15px; font-weight: 700; color: #111827; line-height: 1.3; }
.stPop .stHead .stSub { font-size: 12px; color: #6b7280; margin-top: 2px; }
.stPop .stBadges { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.stBadge { display: inline-flex; align-items: center; gap: 5px; border-radius: 999px; padding: 4px 9px; font-size: 11px; font-weight: 700; background: #eef1f4; color: #46505c; white-space: nowrap; }
.stBadge.yellow { background: #fff4cf; color: #745800; }
.stBadge.green { background: #eaf7ee; color: #2c7a45; }
.stBadge.blue { background: #edf4ff; color: #2f67a7; }
.stBadge.red { background: #fff0ee; color: #b23e32; }
.stBadge.purple { background: #f3ebfb; color: #6e3f9f; }
.stBadge.dark { background: #111827; color: #fff; }
.stBadge i.dot { width: 7px; height: 7px; border-radius: 50%; background: currentColor; display: inline-block; }
.stPop .stKv { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin: 0 0 12px; }
.stPop .stKv > div { min-width: 0; }
.stPop .stKv b { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: #8a929d; font-weight: 700; margin-bottom: 2px; }
.stPop .stKv strong { display: block; font-size: 13px; color: #111827; font-weight: 700; overflow-wrap: anywhere; }
.stPop .stKv span.s { display: block; font-size: 11px; color: #8a929d; }
.stPop .stKv .full { grid-column: 1 / -1; }
.stPop .stRoute { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; padding: 10px 12px; background: #f8f9fb; border-radius: 10px; font-size: 13px; }
.stPop .stRoute .pt { flex: 1; min-width: 0; }
.stPop .stRoute .pt small { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: #8a929d; font-weight: 700; }
.stPop .stRoute .pt strong { display: block; color: #111827; font-weight: 700; overflow-wrap: anywhere; }
.stPop .stRoute .arr { color: #f4b223; font-weight: 700; flex: none; }
.stPop .stNote { background: #fff8dd; border: 1px solid #efd98b; border-left: 4px solid #f4b223; border-radius: 10px; padding: 9px 12px; font-size: 12px; color: #4d5661; margin: 0 0 12px; line-height: 1.45; }
.stPop .stNote.lock { background: #f8f9fb; border-color: #e3e7eb; border-left-color: #98A2B3; }
.stPop .stNote a { color: #8a6500; font-weight: 700; text-decoration: underline; }
.stPop .stLine { height: 1px; background: #edf0f3; margin: 12px -16px; }
.stPop .stActions { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.stPop .stActions .grow { flex: 1; }
.stBtn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 11px; border-radius: 9px; border: 1px solid #dfe3e8; background: #fff; color: #111827; font-size: 12px; font-weight: 700; cursor: pointer; text-decoration: none; line-height: 1.2; white-space: nowrap; transition: filter .15s, background .15s; font-family: "Rubik", Arial, sans-serif; }
.stBtn:hover { background: #f7f8fa; color: #111827; text-decoration: none; }
.stBtn.yellow { background: #f4b223; border-color: #f4b223; color: #111; }
.stBtn.yellow:hover { filter: brightness(1.06); background: #f4b223; color: #111; }
.stBtn.dark { background: #101722; border-color: #101722; color: #fff; }
.stBtn.dark:hover { background: #1c2740; color: #fff; }
.stBtn.wa { background: #eaf7ee; border-color: #cce7d3; color: #1f7a3f; }
.stBtn.wa:hover { background: #dff2e5; }
.stBtn.disabled, .stBtn[disabled] { opacity: .5; cursor: not-allowed; pointer-events: none; }
.stBtn .stIcon { width: 15px; height: 15px; vertical-align: 0; }
.stPop .stContact { display: flex; flex-direction: column; gap: 5px; margin: 0 0 12px; }
.stPop .stContact div { display: flex; align-items: center; gap: 8px; font-size: 13px; color: #303742; }
.stPop .stContact div a { color: #111827; font-weight: 700; text-decoration: underline; text-decoration-color: #d5dae0; }
.stPop .stContact .stIcon { color: #8a929d; }
.stPop .stTags { display: flex; gap: 5px; flex-wrap: wrap; margin: 0 0 12px; }
.stTag { display: inline-flex; padding: 4px 8px; border-radius: 6px; background: #f3f5f7; font-size: 11px; font-weight: 700; color: #596371; }
@media (max-width: 640px) { .stPop { width: auto; min-width: 280px; } .stPop .stKv { grid-template-columns: 1fr; } }

/* ===== modal nad mapou (Bootstrap .modal + .stModal) ===== */
.stModal .modal-content { border: 0; border-radius: 18px; overflow: hidden; font-family: "Rubik", Arial, sans-serif; font-size: 13px; color: #303742; }
.stModal .modal-content * { font-size: inherit; box-sizing: border-box; }
.stModal .modal-header { padding: 16px 22px; border-bottom: 1px solid #edf0f3; align-items: center; }
.stModal .modal-title { font-size: 18px; font-weight: 700; color: #111827; }
.stModal .modal-title small { display: block; font-size: 12px; color: #6b7280; font-weight: 400; margin-top: 2px; }
.stModal .modal-body { padding: 20px 22px; background: #f5f6f8; }
.stModal .modal-footer { border-top: 1px solid #edf0f3; padding: 12px 22px; gap: 8px; }
.stModal .stIntro { background: #fff; border: 1px solid #e3e7eb; border-radius: 14px; padding: 16px 18px; margin-bottom: 16px; }
.stModal .stIntro h3 { margin: 0 0 4px; font-size: 17px; font-weight: 700; color: #111827; }
.stModal .stIntro p { margin: 0; font-size: 13px; color: #6b7280; }
.stModal .stNote { background: #fff8dd; border: 1px solid #efd98b; border-left: 4px solid #f4b223; border-radius: 10px; padding: 9px 12px; font-size: 12px; color: #4d5661; margin-bottom: 12px; }
.stModal .stSectionHead { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0 0 10px; }
.stModal .stSectionHead h4 { margin: 0; font-size: 14px; font-weight: 700; color: #111827; }
.stModal .stSectionHead span { font-size: 12px; color: #8a929d; }
.stModal .stVehicleGrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 18px; }
.stModal .stVehicleMatch { background: #fff; border: 1px solid #e3e7eb; border-radius: 14px; padding: 14px; display: flex; flex-direction: column; gap: 8px; }
.stModal .stVehicleMatch .top { display: flex; align-items: center; gap: 10px; }
.stModal .stVehicleMatch .code { font-weight: 700; font-size: 15px; color: #111827; }
.stModal .stVehicleMatch .route { font-size: 12px; color: #4b5563; line-height: 1.4; }
.stModal .stVehicleMatch .meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.stModal .stVehicleMatch .meta span { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: #8a929d; font-weight: 700; }
.stModal .stVehicleMatch .meta strong { font-size: 13px; color: #111827; }
.stModal .stCarrier { background: #fff; border: 1px solid #e3e7eb; border-radius: 14px; padding: 14px 16px; display: grid; grid-template-columns: 1.4fr 1fr .7fr auto; gap: 14px; align-items: center; margin-bottom: 10px; }
.stModal .stCarrier .main { display: flex; gap: 10px; align-items: flex-start; min-width: 0; }
.stModal .stCarrier h4 { margin: 0 0 2px; font-size: 14px; font-weight: 700; color: #111827; }
.stModal .stCarrier .small { font-size: 12px; color: #6b7280; line-height: 1.4; }
.stModal .stCarrier .match { display: inline-block; margin-top: 6px; }
.stModal .stCarrier .box label { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: #8a929d; font-weight: 700; margin-bottom: 2px; }
.stModal .stCarrier .box strong { font-size: 13px; color: #111827; overflow-wrap: anywhere; }
.stModal .stCarrier .box .n { font-size: 22px; font-weight: 700; color: #111827; line-height: 1; }
.stModal .stCarrier .acts { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.stModal .stEmpty { background: #fff; border: 1px dashed #d5dae0; border-radius: 14px; padding: 22px; text-align: center; color: #6b7280; font-size: 13px; }
.stModal .stConfirm { text-align: center; padding: 10px 0 18px; }
.stModal .stConfirm .check { width: 56px; height: 56px; border-radius: 50%; background: #eaf7ee; color: #2c7a45; display: inline-flex; align-items: center; justify-content: center; font-size: 26px; font-weight: 700; margin-bottom: 12px; }
.stModal .stConfirm h3 { font-size: 20px; margin: 0 0 6px; font-weight: 700; color: #111827; }
.stModal .stConfirm p { margin: 0 auto; max-width: 520px; font-size: 13px; color: #6b7280; }
.stModal .stKpi { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.stModal .stKpi div { background: #fff; border: 1px solid #e3e7eb; border-radius: 12px; padding: 10px 12px; }
.stModal .stKpi span { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: #8a929d; font-weight: 700; }
.stModal .stKpi strong { font-size: 15px; color: #111827; font-weight: 700; }
.stModal .stSheet { display: grid; grid-template-columns: 1.3fr .9fr; gap: 16px; }
.stModal .stCard { background: #fff; border: 1px solid #e3e7eb; border-radius: 14px; padding: 16px; }
.stModal .stCard h4 { margin: 0 0 8px; font-size: 13px; font-weight: 700; color: #111827; }
.stModal .stDetailRows .d { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-top: 1px solid #edf0f3; font-size: 13px; }
.stModal .stDetailRows .d:first-child { border-top: 0; }
.stModal .stDetailRows .d span { color: #7b8490; }
.stModal .stDetailRows .d strong { color: #111827; text-align: right; overflow-wrap: anywhere; }
.stModal .stDetailRows .d strong a { color: #8a6500; text-decoration: underline; }
.stModal .stTags { display: flex; gap: 5px; flex-wrap: wrap; }
.stModal .stSideActions { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.stModal .stSideActions .stBtn { justify-content: center; }
.stModal .stMini { height: 170px; border-radius: 10px; background: #eef0f4; margin-top: 12px; }
.stModal .companyHead { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.stModal .companyHead h3 { margin: 0; font-size: 17px; font-weight: 700; color: #111827; }
.stModal .companyHead .small { font-size: 12px; color: #6b7280; }
.stModal .stForm .row2 { display: flex; gap: 8px; }
.stModal .stForm input[type=email] { flex: 1; border: 1px solid #dfe3e8; border-radius: 9px; padding: 10px 11px; font-size: 13px; height: auto; }
.stModal .stForm label.chk { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; color: #56606c; margin-top: 8px; }
.stModal .stForm label.chk input { margin-top: 2px; accent-color: #f4b223; }
@media (max-width: 900px) { .stModal .stVehicleGrid { grid-template-columns: 1fr; } .stModal .stCarrier { grid-template-columns: 1fr; } .stModal .stCarrier .acts { justify-content: flex-start; } .stModal .stKpi { grid-template-columns: 1fr 1fr; } .stModal .stSheet { grid-template-columns: 1fr; } }

/* ===== formulářové modaly (nabídka, reakce na cestu) – .stForm ===== */
.stForm .modal-content { border: 0; border-radius: 18px; overflow: hidden; font-family: "Rubik", Arial, sans-serif; font-size: 13px; color: #303742; box-shadow: 0 24px 60px rgba(17,24,39,.22); }
.stForm .modal-content * { font-size: inherit; box-sizing: border-box; }
.stForm .modal-header { padding: 16px 22px; border-bottom: 1px solid #edf0f3; align-items: flex-start; }
.stForm .stFormHead { display: flex; gap: 12px; align-items: center; }
.stForm .stFormTitle { font-size: 18px; font-weight: 700; color: #111827; line-height: 1.2; }
.stForm .stFormTitle span { font-size: 13px; font-weight: 400; color: #6b7280; }
.stForm .stFormSub { font-size: 12px; color: #6b7280; margin-top: 3px; }
.stForm .modal-body { padding: 18px 22px 16px; background: #f5f6f8; }
.stForm .modal-footer { border-top: 1px solid #edf0f3; padding: 12px 22px; gap: 8px; }
.stForm .modal-footer .stBtn { padding: 10px 16px; font-size: 13px; }
.stForm .stFields { display: grid; gap: 10px; }
.stForm .stFields.two { grid-template-columns: 1fr 1fr; }
.stForm .stField { background: #fff; border: 1px solid #dfe3e8; border-radius: 10px; padding: 8px 12px 7px; min-height: 54px; }
.stForm .stField:focus-within { border-color: #f4b223; box-shadow: 0 0 0 3px rgba(244,178,35,.18); }
.stForm .stField label { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .8px; color: #7b8490; font-weight: 800; margin-bottom: 2px; }
.stForm .stField input, .stForm .stField select, .stForm .stField textarea { width: 100%; border: 0; background: transparent; padding: 0; margin: 0; font-size: 14px; font-weight: 700; color: #111827; height: auto; outline: none; box-shadow: none; line-height: 1.35; }
.stForm .stField input::placeholder, .stForm .stField textarea::placeholder { color: #9aa3ae; font-weight: 600; }
.stForm .stField select { appearance: auto; font-size: 13px; }
.stForm .stField select option { font-size: 12px; }
.stForm .stField textarea { resize: vertical; min-height: 58px; font-weight: 500; }
.stForm .stField .withUnit { display: flex; align-items: baseline; gap: 6px; }
.stForm .stField .withUnit span { font-size: 13px; color: #7b8490; font-weight: 700; }
.stForm .stFieldHint { font-size: 11px; color: #7b8490; margin-top: 4px; font-weight: 400; }
.stForm .stFieldHint a { color: #8a6500; font-weight: 700; }
.stForm .stChipsLabel { font-size: 10px; text-transform: uppercase; letter-spacing: .8px; color: #7b8490; font-weight: 800; margin: 12px 0 6px; }
.stForm .stChips { display: flex; gap: 6px; flex-wrap: wrap; }
.stForm .stChip { display: inline-flex; align-items: center; gap: 7px; border: 1px solid #dfe3e8; background: #fff; border-radius: 999px; padding: 7px 12px; font-size: 12px; font-weight: 700; color: #353b41; cursor: pointer; margin: 0; transition: background .15s, border-color .15s; }
.stForm .stChip input { width: 14px; height: 14px; accent-color: #f4b223; margin: 0; }
.stForm .stChip:hover { border-color: #efd98b; }
.stForm .stChip.on { background: #fff8dd; border-color: #efd98b; color: #111827; }
.stForm .stFormNote { margin-top: 12px; font-size: 12px; color: #6b7280; line-height: 1.5; }
.stForm .stFormErr { margin-top: 12px; background: #fff0f0; border: 1px solid #f0caca; color: #b42318; border-radius: 10px; padding: 10px 12px; font-size: 13px; }
@media (max-width: 520px) { .stForm .stFields.two { grid-template-columns: 1fr; } }