/* TJSP LFQ: componentes institucionais adaptados aos contratos PCPR (somente UX) */
.lfqSession{min-width:0}.sessionBar{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;border-bottom:1px solid #dbe5ed;padding:1px 0 18px;margin-bottom:13px}
.sessionHeading h2{margin:6px 0;font-size:24px}.sessionBarTools{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.sessionBarTools .btn{padding:10px 11px}
.sessionMetrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:11px}
.sessionMetrics>div{background:linear-gradient(150deg,#eef5fa,#fbfdff);border:1px solid #d5e3ec;padding:12px 14px;border-radius:10px}
.sessionMetrics b{font-size:24px;color:#1d5174;display:block;line-height:1.2}.sessionMetrics small{color:#648299;font-size:10px}
.sessionProgress{height:8px;background:#dce7f0;border-radius:99px;overflow:hidden;margin:0 0 19px}
.sessionProgress span{height:100%;display:block;transition:width .2s ease;background:linear-gradient(90deg,#376b9a,#d9b478);border-radius:99px}
.questionSidebar{padding:16px;border-radius:12px;border:1px solid #dce6ee;background:#f8fbfd;align-self:start}
.questionSidebar .quizNav button{border-radius:8px;font-weight:800}.questionSidebar .quizNav button.pending{background:#fff;color:#627b91;border-color:#d2dee8}
.questionSidebar .quizNav button.correct{background:#e8f7ee;border-color:#a1d0b1;color:#226d4e}
.questionSidebar .quizNav button.wrong{background:#fff0f0;border-color:#dca1a1;color:#a23a41}
.questionSidebar .quizNav button.active{outline:2px solid #bb975b;outline-offset:1px}
.questionSidebar .legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;font-size:10px;color:#57738d}
.lfqSession .questionText{font-size:15px;white-space:pre-line;margin:19px 0}
.lfqSession .quizCard{min-width:0}
.lfqSession .questionSidebar .description{font-size:11px}
.conceptRoutes{border:1px solid #d4e3ec;background:#f7fbff;border-radius:10px;padding:13px;display:flex;flex-wrap:wrap;gap:9px;margin-top:18px;align-items:center}
.conceptRoutes>b{font-size:11px;color:#58758d;text-transform:uppercase;letter-spacing:.5px;width:100%}
.conceptRoutes>a{display:inline-block;border:1px solid #bed4e4;background:white;border-radius:8px;padding:9px 10px;font-size:12px;color:#29597e;font-weight:700}
.conceptRoutes>a:hover{background:#ebf5ff}
.conceptRoutes>span{font-size:11px;color:#71889b}
.conceptBridge{margin:0 0 19px;background:linear-gradient(145deg,#f6f9fe,#f1f6fa);border:1px solid #d2e2ed;border-left:4px solid #cbab6d;border-radius:8px;padding:13px 14px}
.conceptBridgeTitle{color:#647e93;font-size:10px;letter-spacing:1px;font-weight:850;margin-bottom:11px}
.conceptBridgeLinks{display:flex;gap:6px;flex-wrap:wrap}
.conceptBridgeLinks a{border:1px solid #c3d9e9;background:#fff;color:#285c80;padding:7px 9px;border-radius:7px;font-size:11px;line-height:1.3;text-decoration:none}
.conceptBridgeLinks a:hover{border-color:#c79b59;background:#fff9ef}
.conceptBridgeFoot{border-top:1px solid #d8e5ed;margin-top:12px;padding-top:11px;display:flex;flex-direction:column;gap:6px}
.conceptBridgeFoot span{font-size:11px;line-height:1.6;color:#647b8e}
.conceptBridgeFoot a{font-size:11px;color:#2b688e;font-weight:750;text-decoration:none}
.conceptBridgeFoot a:hover{text-decoration:underline}
@media(max-width:760px){.sessionBarTools{width:100%;justify-content:flex-start}.sessionBarTools .btn{flex:1;font-size:10px;padding:9px 4px}.sessionHeading h2{font-size:21px}.sessionMetrics{gap:5px}.sessionMetrics>div{padding:8px;text-align:center}.sessionMetrics b{font-size:19px}.sessionMetrics small{font-size:9px;line-height:1.2;display:block}.questionSidebar{padding:10px;order:-1}.questionSidebar .quizNav{grid-template-columns:repeat(15,minmax(21px,1fr));gap:3px}.questionSidebar .quizNav button{padding:8px 0;font-size:10px}.questionSidebar .description{display:none}.conceptBridge{padding:11px 10px}.conceptBridgeLinks a{font-size:10px;padding:6px}.conceptRoutes>a{font-size:11px}}
@media(max-width:410px){.sessionMetrics{grid-template-columns:repeat(2,1fr)}.questionSidebar .quizNav{grid-template-columns:repeat(8,minmax(23px,1fr))}}

/* A interface do mapa tem três motores e inspetor próprio: exibir sem corte vertical. */
.mapFrame{display:block;width:100%;height:1160px;min-height:950px;border:1px solid #d5e1ea;border-radius:13px;box-shadow:0 8px 22px #18395612;background:#f2f5f8}
@media(max-width:1100px){.mapFrame{height:1380px}}
@media(max-width:760px){.mapFrame{height:1450px;min-height:1100px}}
