.map-loading { position: absolute; inset: 0; z-index: 3; display: grid; place-content: center; gap: 7px; padding: 30px; background: #e5e1d8; text-align: center; color: var(--pine); }.map-loading::before { content: ""; width: 34px; height: 34px; margin: 0 auto 8px; border: 3px solid rgba(23,63,57,.2); border-top-color: var(--rust); border-radius: 50%; animation: spin .8s linear infinite; }.map-loading span { color: var(--muted); font-size: 11px; }.map-loading.success { opacity: 0; pointer-events: none; transition: opacity .25s ease; }.map-loading.error { place-content: center; background: repeating-linear-gradient(0deg, #ece8df 0 39px, #e3ded4 40px); }.map-loading.error::before { content: "!"; display: grid; place-items: center; border: 2px solid var(--rust); animation: none; color: var(--rust); font-weight: 900; }
@keyframes spin { to { transform: rotate(360deg); } }
.home-map-card .stop-number, .route-stop-card .stop-number { display: grid; place-items: center; width: 44px; height: 44px; border: 2px solid var(--rust); border-radius: 50%; color: var(--rust); font: 700 14px Georgia, serif; }.home-map-card strong, .home-map-card small, .route-stop-card strong, .route-stop-card small { display: block; }.home-map-card strong, .route-stop-card strong { font: 700 18px Georgia, "Times New Roman", serif; }.home-map-card small, .route-stop-card small { margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.35; }.home-map-card button, .route-stop-card button { width: 40px; height: 40px; border: 0; border-radius: var(--radius-sm); background: var(--pine); color: white; }
.task-options, .suggested-questions { display: grid; gap: 7px; }.task-options { grid-template-columns: repeat(3, minmax(0, 1fr)); }.qa-module:has(.qa-answer:not(:empty)) .suggested-questions { grid-template-columns: repeat(3, minmax(0, 1fr)); }.task-options button, .suggested-questions button { min-height: 38px; padding: 9px 11px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper-strong); text-align: left; font-size: 13px; line-height: 1.35; }.task-options button:hover, .suggested-questions button:hover { border-color: var(--rust); }.task-options button.correct { border-color: var(--success); background: #edf5f1; }.task-options button.wrong { border-color: var(--error); background: #fbefed; }.task-feedback { min-height: 16px; margin-top: 7px; color: var(--muted); font-size: 12px; line-height: 1.4; }.qa-answer { max-height: 74px; margin-top: 8px; padding: 10px 12px; overflow: auto; border-left: 3px solid var(--pine); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; background: var(--paper-strong); font-size: 13px; line-height: 1.45; }.qa-answer:empty { display: none; }.qa-answer cite { display: block; margin-top: 5px; color: var(--muted); font-style: normal; font-size: 11px; }
.archive-card { min-height: 230px; display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper-strong); }.archive-card .archive-meta { display: flex; justify-content: space-between; gap: 10px; color: var(--rust); font-size: 11px; font-weight: 900; letter-spacing: .08em; }.archive-card h2 { margin: 25px 0 10px; font: 700 22px/1.25 Georgia, "Times New Roman", serif; }.archive-card p { color: var(--muted); font-size: 13px; line-height: 1.65; }.archive-card footer { margin-top: auto; padding-top: 18px; color: var(--pine); font-size: 11px; font-weight: 800; }.status-chip { display: inline-block; padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--radius-sm); font-size: 12px; }.status-chip.ok { border-color: var(--success); color: var(--success); }.status-chip.review { border-color: var(--warning); color: var(--warning); }
.location-dialog { width: min(520px, calc(100% - 32px)); padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--paper-strong); color: var(--ink); }.location-dialog::backdrop { background: rgba(23,47,43,.55); }.location-dialog form { padding: 30px; }.location-dialog h2 { margin: 10px 0 13px; font: 700 30px Georgia, "Times New Roman", serif; }.location-dialog form > p:last-of-type { color: var(--muted); font-size: 13px; line-height: 1.7; }.dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }.dialog-actions > button:first-child { border: 0; background: transparent; }
.location-status { position: absolute; z-index: 6; top: 68px; left: 20px; max-width: 370px; padding: 11px 13px; border: 1px solid var(--line); border-left: 3px solid var(--pine); border-radius: 0 var(--radius) var(--radius) 0; background: rgba(255,253,248,.96); color: var(--muted); font-size: 12px; box-shadow: var(--shadow); }.location-status.error { border-left-color: var(--error); color: var(--error); }
