:root{
  --bg:#f5f7fb;--card:#fff;--ink:#162033;--muted:#667085;--line:#d9e1ec;
  --brand:#1677ff;--ok:#12805c;--bad:#c03221;--soft:#eef5ff;--warn:#8a6100;
  --green:#16a34a;--red:#dc2626;--blue:#2563eb;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(180deg,#eef5ff 0,#f7f8fb 260px);color:var(--ink)}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
.logout-link{font-size:14px;margin-left:0;color:var(--brand);font-weight:500}.logout-link:hover{text-decoration:underline}

.wrap{max-width:1180px;margin:0 auto;padding:24px}
.top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}
.brand{min-width:0}.brand p{color:var(--muted);margin:8px 0 0}.brand h1{font-size:28px;line-height:1.1;margin:0}
.title-line{display:flex;align-items:center;gap:12px;min-width:0}.brand-icon{width:46px;height:46px;object-fit:contain;background:transparent}.login-logo{display:block;width:132px;height:132px;object-fit:contain;margin:0 auto 18px;background:transparent}
.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.main-nav{flex:0 0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:0 12px 30px rgba(22,32,51,.07);padding:22px}
.grid{display:grid;gap:16px}.grid.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.doc-card,.test-card{display:flex;flex-direction:column;gap:12px;min-height:238px;min-width:0}.test-card{min-height:214px}.admin-doc{min-height:174px;display:flex;flex-direction:column;gap:12px;min-width:0}
.doc-card .card-title{min-height:5.1em;-webkit-line-clamp:4}.test-card .card-title,.admin-doc .card-title{min-height:3.7em;-webkit-line-clamp:3}
.card-title{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25;margin:.15rem 0;overflow-wrap:anywhere;word-break:normal;hyphens:auto}
.doc-card h2,.test-card h3,.admin-doc h3{font-size:20px}.card-meta{margin-top:auto;display:flex;flex-direction:column;gap:8px}.card-meta p{margin:0}.doc-card .actions,.test-card .btn:last-child{margin-top:4px}
.badge{display:inline-flex;align-items:center;gap:6px;width:max-content;max-width:100%;border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:13px;color:var(--muted);background:#fff;white-space:normal}
.btn{border:0;border-radius:14px;background:var(--brand);color:white;padding:12px 16px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:8px;min-height:44px;line-height:1.15}.btn:hover{filter:brightness(.96);text-decoration:none}.btn:disabled,.qdot:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.3)}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.ghost{background:transparent;color:var(--brand);border:1px solid var(--line)}.btn.danger{background:var(--bad)}.btn.blue{background:var(--blue);color:#fff}.smallbtn{font-size:13px;padding:9px 12px;min-height:36px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.between{justify-content:space-between}.actions{display:grid;gap:10px;margin-top:auto}.actions.two{grid-template-columns:1fr 1fr}.actions .btn{width:100%}
.muted{color:var(--muted)}.small{font-size:13px}.login{max-width:560px;margin:8vh auto;text-align:left}.login h1{text-align:center}.login input{width:100%;border:1px solid var(--line);border-radius:14px;padding:14px 16px;font-size:16px;margin:12px 0}.error{color:var(--bad);font-weight:700}.ok{color:var(--ok);font-weight:700}.bad{color:var(--bad);font-weight:700}.warn{color:var(--warn)}
.crumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;color:var(--muted)}.question-title{font-size:22px;margin:18px 0 12px;line-height:1.25}.option{width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:8px 0;cursor:pointer;color:var(--ink);font-weight:600;line-height:1.35}.option:hover{border-color:var(--brand);background:var(--soft)}.option.correct{border-color:var(--ok);background:#ecfdf5}.option.wrong{border-color:var(--bad);background:#fff2f0}
.progressbar{height:10px;background:#e9eef6;border-radius:999px;overflow:hidden}.progressbar div{height:100%;background:var(--brand);width:0;transition:width .25s ease}.progressbar.green div{background:var(--green)}.explain{margin-top:16px;border-left:4px solid var(--brand);padding:12px 14px;background:var(--soft);border-radius:12px}.explain.okbox{border-left-color:var(--green);background:#ecfdf5}.explain p{margin:8px 0 12px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0}.stat{padding:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.stat strong{font-size:24px;display:block}.hidden{display:none!important}.notice{margin:14px 0;padding:12px 14px;border-radius:12px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:14px;line-height:1.45}.notice code{background:#ffedd5;padding:2px 6px;border-radius:6px}.doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.doc-head .btn{flex:0 0 auto}.resultbar{height:10px;width:100%;border-radius:999px;overflow:hidden;background:#e9eef6;display:flex}.resultbar-ok{height:100%;background:var(--green)}.resultbar-bad{height:100%;background:var(--red)}
.question-nav{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 18px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fbfcff}.qdot{width:36px;height:36px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--muted);font-weight:800;cursor:pointer}.qdot.active{outline:3px solid rgba(22,119,255,.20);border-color:var(--brand);color:var(--brand)}.qdot.ok{background:#ecfdf5;border-color:var(--green);color:var(--green)}.qdot.bad{background:#fff2f0;border-color:var(--red);color:var(--red)}.quiz-actions{justify-content:flex-end}.quiz-actions .left-action{margin-right:auto}.question-source{margin:16px 0 0;color:var(--muted);font-size:14px;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.admin-actions{margin-top:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{border-bottom:1px solid var(--line);padding:10px;text-align:left;vertical-align:top}th{color:var(--muted);font-weight:800;background:#f8fafc}.pagination{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}
@media(max-width:980px){.grid.cards-3{grid-template-columns:repeat(2,minmax(0,1fr))}.top{align-items:flex-start;flex-direction:column}.top-actions{justify-content:flex-start}}
@media(max-width:760px){.wrap{padding:16px}.brand h1{font-size:24px}.brand-icon{width:40px;height:40px}.card{padding:16px}.grid.cards-3{grid-template-columns:1fr}.actions.two{grid-template-columns:1fr}.row .btn,.top-actions .btn{width:100%}.top-actions{width:100%}.doc-head{flex-direction:column}.doc-head .btn{width:100%}.quiz-actions .btn{width:100%}.quiz-actions .left-action{margin-right:0}.qdot{width:34px;height:34px}.question-title{font-size:20px}.login-logo{width:96px;height:96px}.doc-card .card-title,.test-card .card-title,.admin-doc .card-title{min-height:auto;-webkit-line-clamp:unset}.doc-card,.test-card,.admin-doc{min-height:auto}.pagination{justify-content:flex-start}}

/* Callejero */
.street-hero{background:linear-gradient(135deg,#ffffff 0%,#eef5ff 100%)}
.street-grid{grid-template-columns:1fr 1fr}
.street-attempts{margin:0;padding-left:20px}.street-attempts li{margin:10px 0}.street-attempts span{display:block;color:var(--muted);font-size:13px;margin-top:2px}.street-attempts .empty{color:var(--muted)}
.street-map-card{overflow:hidden}.clean-map-wrap{margin:16px 0;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#f8fafc;box-shadow:inset 0 0 0 1px rgba(255,255,255,.75)}
.clean-street-map{display:block;width:100%;height:min(62vh,620px);min-height:420px;background:#f8fafc}.map-bg{fill:#f8fafc}.municipal-shape{fill:#eef5ff;stroke:#d7e3f3;stroke-width:3}.roads-layer{isolation:isolate}.street-line{fill:none;stroke:#bac6d6;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;opacity:.62}.street-line.avenue{stroke:#9fb0c8;stroke-width:3;opacity:.72}.street-line.target{stroke:#dc2626;stroke-width:8.5;opacity:1;filter:url(#targetGlow)}
.street-answer{display:grid;grid-template-columns:1fr auto;gap:10px;margin:14px 0 4px}.street-answer input{width:100%;border:1px solid var(--line);border-radius:14px;padding:13px 14px;font-size:15px;background:#fff;color:var(--ink)}.street-answer .btn{white-space:nowrap}
@media(max-width:760px){.street-grid{grid-template-columns:1fr}.street-answer{grid-template-columns:1fr}.clean-street-map{height:420px;min-height:360px}.street-line{stroke-width:2.4}.street-line.avenue{stroke-width:3.2}.street-line.target{stroke-width:8}}

/* Callejero v13 */
.street-hero,.street-grid,.clean-map-wrap{display:none!important}
.street-map-panel{overflow:hidden;padding-bottom:20px}
.street-map-head{align-items:flex-start;gap:16px;margin-bottom:14px}
.street-map-head h2{margin:0 0 6px}.street-map-head p{margin:0}.map-controls{flex-wrap:nowrap}.btn.mini{padding:9px 12px;border-radius:12px;min-width:42px}
.street-map-wrap{position:relative;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#f8fafc;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);touch-action:none}
.street-svg-map{display:block;width:100%;height:min(64vh,660px);min-height:480px;background:#f8fafc;cursor:grab;user-select:none}.street-svg-map:active{cursor:grabbing}
.map-bg{fill:#f8fafc}.municipal-shape{fill:#eef5ff;stroke:#d7e3f3;stroke-width:3;opacity:.78}.roads-layer{isolation:isolate}.labels-layer{pointer-events:none}
.street-line{fill:none;stroke:#9fb0c8;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.76;vector-effect:non-scaling-stroke}.street-line.avenue{stroke:#7186a5;stroke-width:3.2;opacity:.84}.street-line.square{stroke:#8aa0bd;stroke-width:3;opacity:.84}.street-line.target{stroke:#2563eb;stroke-width:9;opacity:1;filter:url(#targetGlow)}.street-line.target.correct{stroke:#16a34a}.street-line.target.wrong{stroke:#dc2626}
.street-label{font-size:12px;font-weight:700;fill:#334155;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;opacity:.9;dominant-baseline:middle;text-anchor:middle;pointer-events:none}.street-label:nth-child(3n){font-size:10.5px;opacity:.75}.street-label:nth-child(4n){font-size:11px;opacity:.8}
.map-loading-pill{position:absolute;z-index:2;right:18px;top:18px;background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:var(--muted);font-weight:700;font-size:13px;box-shadow:var(--shadow)}
.street-question-card{margin-bottom:0}.street-question-card .progressbar{margin:16px 0}.street-answer{display:grid;grid-template-columns:1fr auto auto;gap:10px;margin:14px 0 4px}.street-answer input{width:100%;border:1px solid var(--line);border-radius:14px;padding:13px 14px;font-size:15px;background:#fff;color:var(--ink)}.street-answer .btn{white-space:nowrap}
.street-feedback{border-radius:16px;padding:14px 16px;margin-top:14px;display:grid;gap:4px;border:1px solid var(--line)}.street-feedback.correct{background:#ecfdf5;border-color:#bbf7d0;color:#14532d}.street-feedback.wrong{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}.street-feedback span{display:block}
@media(max-width:760px){.street-map-head{display:block}.map-controls{margin-top:12px}.street-answer{grid-template-columns:1fr}.street-svg-map{height:470px;min-height:390px}.street-label{font-size:11px}.street-line{stroke-width:2.4}.street-line.avenue,.street-line.square{stroke-width:3.3}.street-line.target{stroke-width:8.5}}

/* Callejero v14 */
.street-label{
  font-size:9.5px;
  font-weight:700;
  fill:#334155;
  paint-order:stroke;
  stroke:#fff;
  stroke-width:3px;
  stroke-linejoin:round;
  opacity:.92;
  dominant-baseline:middle;
  text-anchor:middle;
  pointer-events:none;
}
.street-label:nth-child(3n),.street-label:nth-child(4n){font-size:9.5px;opacity:.88}
.street-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0 10px}
.street-option-btn{width:100%;justify-content:flex-start;text-align:left;white-space:normal;line-height:1.25}
.street-option-btn.correct,.street-option-btn.correct:disabled{background:#ecfdf5;color:#14532d;border-color:#16a34a;opacity:1;filter:none}
.street-option-btn.wrong,.street-option-btn.wrong:disabled{background:#fef2f2;color:#7f1d1d;border-color:#dc2626;opacity:1;filter:none}
.street-option-btn.selected,.street-option-btn.selected:disabled{box-shadow:0 0 0 3px rgba(22,163,74,.16)}
.street-status{margin:10px 0 0;font-weight:800}.street-status.correct{color:#14532d}.street-status.wrong{color:#7f1d1d}.street-next-row{justify-content:flex-end;margin-top:8px}
@media(max-width:760px){.street-options{grid-template-columns:1fr}.street-label{font-size:9px}.street-label:nth-child(3n),.street-label:nth-child(4n){font-size:9px}}

/* Callejero v15 */
.street-osm-panel{overflow:hidden}
.osm-map-wrap{margin-top:14px;border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#eef2f7;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7)}
.osm-map-frame{display:block;width:100%;height:min(64vh,660px);min-height:500px;border:0;background:#eef2f7}
.street-quiz-view{overflow:hidden}.street-quiz-top{align-items:center;margin-bottom:14px;gap:12px}.street-quiz-top>.row{gap:8px}.street-quiz-map-head{margin-top:18px}.street-answer-panel{margin-top:18px}.street-answer-panel h2{margin:0 0 12px}.street-quiz-view .street-map-wrap{margin-top:0}.street-quiz-view .street-svg-map{height:min(58vh,620px);min-height:460px}.street-quiz-view .progressbar{margin-bottom:12px}
@media(max-width:760px){.osm-map-frame{height:430px;min-height:380px}.street-quiz-top{display:block}.street-quiz-top>.row{margin-bottom:10px}.street-quiz-view .street-svg-map{height:430px;min-height:380px}.street-answer-panel{margin-top:14px}}

/* v22 login/reportes */
.password-wrap{position:relative;margin:12px 0}.password-wrap input{margin:0;padding-right:52px}.eye-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;cursor:pointer;font-size:18px;width:38px;height:38px;border-radius:10px}.eye-btn:hover{background:#eef5ff}.btn.report-soft{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.btn.report-soft:hover{background:#fecaca;filter:none}.quiz-actions .report-soft{margin-right:auto}.quiz-actions .report-soft + .left-action{margin-left:0;margin-right:auto}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:9999;padding:18px}.modal-card{width:min(560px,100%);max-height:90vh;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 80px rgba(15,23,42,.28);padding:22px}.modal-card.wide{width:min(760px,100%)}.modal-card h2{margin-top:0}.modal-card textarea,.modal-card input,.modal-card select{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:15px;margin:8px 0 14px;background:#fff;color:var(--ink)}.modal-card label{display:block;font-weight:700;margin-top:8px}.reported-question-preview{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:12px;margin:12px 0;color:var(--ink);font-weight:700;line-height:1.35}.toast-ok{position:fixed;right:24px;bottom:24px;z-index:10000;background:#ecfdf5;color:#14532d;border:1px solid #bbf7d0;border-radius:16px;padding:14px 16px;font-weight:800;box-shadow:0 16px 40px rgba(15,23,42,.16)}.toast-ok span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:#16a34a;color:#fff;margin-right:8px}.admin-report-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-report-actions .btn{margin-bottom:4px}
@media(max-width:760px){.quiz-actions .report-soft{margin-right:0}.modal-card{padding:18px}.toast-ok{left:16px;right:16px;bottom:16px}.admin-report-actions{display:grid}}

/* v23 ajustes */
.password-wrap{position:relative;margin:12px 0}.password-wrap input{margin:0!important;padding-right:48px!important}.eye-btn{position:absolute;right:9px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0!important;background:transparent!important;color:#7b8798;display:flex;align-items:center;justify-content:center;border-radius:10px;cursor:pointer;padding:0!important;min-height:0!important;box-shadow:none!important}.eye-btn svg{width:20px;height:20px;fill:currentColor;display:block}.eye-btn:hover{background:#eef2f7!important;color:#475467}.eye-btn.active{color:#2563eb}.quiz-actions{justify-content:flex-end}.quiz-actions .report-soft{margin-right:auto;background:#fee2e2!important;color:#991b1b!important;border:1px solid #fecaca!important}.btn.report-soft:hover{background:#fecaca!important}.modal-backdrop{position:fixed!important;inset:0!important;background:rgba(15,23,42,.48)!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:99999!important;padding:18px!important}.modal-card{width:min(560px,100%)!important;max-height:90vh!important;overflow:auto!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:22px!important;box-shadow:0 30px 80px rgba(15,23,42,.28)!important;padding:24px!important}.modal-card textarea{min-height:130px;resize:vertical}.modal-success{text-align:center;padding:12px 6px}.modal-check{width:56px;height:56px;border-radius:999px;background:#16a34a;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:34px;font-weight:900;margin-bottom:12px}.admin-user-label{display:block;font-weight:800;margin-top:14px}.admin-user-label select{display:block;width:min(360px,100%);margin-top:8px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;color:var(--ink);font-size:15px}.street-map-wrap.osm-underlay{background:#eef2f7}.street-map-osm-bg{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:0}.osm-underlay .street-svg-map{position:relative;z-index:1;background:transparent}.osm-underlay .map-bg{fill:transparent}.osm-underlay .street-line:not(.target){display:none}.municipal-shape{display:none!important}
@media(max-width:760px){.quiz-actions .report-soft{margin-right:0}.eye-btn{right:8px}.admin-user-label select{width:100%}}

/* v24 ajustes finales */
.password-wrap,.eye-btn{display:none!important}
.login input#password{margin:12px 0!important;padding-right:16px!important}
.quiz-actions-split{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}
.quiz-actions-right{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.quiz-actions-split .report-soft{margin-right:0!important;background:#fee2e2!important;color:#991b1b!important;border:1px solid #fecaca!important}.quiz-actions-split .report-soft:hover{background:#fecaca!important}
#appModal.modal-backdrop{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;background:rgba(15,23,42,.48)!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:2147483647!important;padding:20px!important;box-sizing:border-box!important}
#appModal .modal-card{position:relative!important;width:min(560px,calc(100vw - 40px))!important;max-height:90vh!important;overflow:auto!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:22px!important;box-shadow:0 30px 80px rgba(15,23,42,.28)!important;padding:24px!important;box-sizing:border-box!important;color:var(--ink)!important}
#appModal .modal-card textarea,#appModal .modal-card input,#appModal .modal-card select{width:100%!important;border:1px solid var(--line)!important;border-radius:14px!important;padding:12px 14px!important;font-size:15px!important;background:#fff!important;color:var(--ink)!important;box-sizing:border-box!important}
#appModal .modal-card .row{display:flex!important;gap:10px!important;align-items:center!important;justify-content:space-between!important}
#appModal .modal-success{text-align:center!important;padding:16px 8px!important}
#appModal .modal-check{width:56px!important;height:56px!important;border-radius:999px!important;background:#16a34a!important;color:#fff!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:34px!important;font-weight:900!important;margin-bottom:12px!important}
.admin-user-label select{appearance:none;-webkit-appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M5 7.5L10 12.5L15 7.5' stroke='%2364758b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center!important;background-size:18px!important;padding-right:44px!important;border:1px solid var(--line)!important;border-radius:14px!important;min-height:46px!important;box-shadow:0 1px 1px rgba(15,23,42,.03)!important}
.street-map-wrap.osm-underlay .street-line:not(.target){display:none!important}.street-map-wrap.osm-underlay .map-bg{fill:transparent!important}.street-map-wrap.osm-underlay .street-svg-map{background:transparent!important}.street-map-wrap.osm-underlay .street-line.target{stroke:#2563eb!important;stroke-width:9!important;opacity:1!important;filter:url(#targetGlow)}.street-map-wrap.osm-underlay .street-line.target.correct{stroke:#16a34a!important}.street-map-wrap.osm-underlay .street-line.target.wrong{stroke:#dc2626!important}
@media(max-width:760px){.quiz-actions-split{display:grid}.quiz-actions-right{justify-content:stretch}.quiz-actions-right .btn{width:100%}}

/* v25: en los tests de callejero el SVG solo debe superponer la vía marcada sobre OSM. */
.street-map-wrap.osm-underlay .street-svg-map{
  background: transparent !important;
}
.street-map-wrap.osm-underlay .map-bg{
  display: none !important;
  fill: transparent !important;
}
.street-map-wrap.osm-underlay path.street-line:not(.target){
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}
.street-map-wrap.osm-underlay .street-line.target{
  stroke: #2563eb !important;
  stroke-width: 9 !important;
  opacity: 1 !important;
  filter: url(#targetGlow);
}
.street-map-wrap.osm-underlay .street-line.target.correct{stroke:#16a34a!important}
.street-map-wrap.osm-underlay .street-line.target.wrong{stroke:#dc2626!important}

/* v27: login con placeholders correctos y ojito integrado */
.login input#username{margin:12px 0!important}
.login .password-wrap{display:block!important;position:relative!important;margin:12px 0!important}
.login .password-wrap input#password{display:block!important;width:100%!important;margin:0!important;padding-right:52px!important}
.login .password-wrap .eye-btn{display:flex!important;position:absolute!important;right:10px!important;top:50%!important;transform:translateY(-50%)!important;width:34px!important;height:34px!important;border:0!important;background:transparent!important;color:#8a94a6!important;align-items:center!important;justify-content:center!important;border-radius:10px!important;cursor:pointer!important;padding:0!important;min-height:0!important;box-shadow:none!important}
.login .password-wrap .eye-btn svg{width:20px!important;height:20px!important;fill:currentColor!important;display:block!important}
.login .password-wrap .eye-btn:hover{background:#eef2f7!important;color:#475467!important}
.login .password-wrap .eye-btn.active{color:#2563eb!important;background:#eef5ff!important}

/* v29 visor PDF interno */
.pdf-backdrop{align-items:stretch;justify-content:center;padding:22px;z-index:10050}
.pdf-modal-card{width:min(1180px,100%);height:min(92vh,940px);display:flex;flex-direction:column;overflow:hidden;padding:0}
.pdf-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line);background:#fff}
.pdf-modal-head h2{margin:0;font-size:20px;line-height:1.2}.pdf-modal-head p{margin:6px 0 0}.pdf-modal-head .row{flex-wrap:nowrap}
.pdf-viewer-frame{width:100%;height:100%;border:0;background:#f8fafc;flex:1;display:block}
@media(max-width:760px){.pdf-backdrop{padding:10px}.pdf-modal-card{height:94vh;border-radius:18px}.pdf-modal-head{display:block;padding:14px}.pdf-modal-head .row{margin-top:12px}.pdf-modal-head .btn{width:100%}}


/* v30: visor PDF ancho como el contenido de la web y acceso admin separado */
.btn.admin-green{background:var(--green)!important;color:#fff!important;border:0!important}
.btn.admin-green:hover{filter:brightness(.96)}
#appModal.pdf-backdrop{align-items:center!important;justify-content:center!important;padding:22px!important}
#appModal .pdf-modal-card{width:min(1180px,calc(100vw - 48px))!important;height:min(92vh,940px)!important;max-height:min(92vh,940px)!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;padding:0!important;border-radius:22px!important}
#appModal .pdf-modal-card .pdf-modal-head{flex:0 0 auto!important}
#appModal .pdf-modal-card .pdf-viewer-frame{flex:1 1 auto!important;min-height:0!important}
@media(max-width:760px){#appModal.pdf-backdrop{padding:10px!important}#appModal .pdf-modal-card{width:calc(100vw - 20px)!important;height:94vh!important;max-height:94vh!important}}

/* v31: gestión de usuarios en panel admin */
.admin-user-tools{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;margin-top:12px}
.admin-user-tools .admin-user-label{margin-top:0;flex:0 0 min(360px,100%);max-width:360px}
.admin-user-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:0}
.admin-user-buttons .btn{white-space:nowrap}
@media(max-width:760px){.admin-user-tools{display:grid}.admin-user-buttons{display:grid}.admin-user-buttons .btn{width:100%}}

/* v33: responsive móvil, PDF en móvil y foco controlado */
@media(max-width:760px), (pointer:coarse){
  .wrap{padding:14px!important;max-width:100%!important}
  .card{border-radius:20px;padding:16px!important}
  .top{gap:12px}
  .top-actions.main-nav{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
  .top-actions.main-nav .btn{width:100%}
  .question-nav{justify-content:center}
  .quiz-actions-split{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    align-items:stretch!important;
    justify-items:stretch!important;
  }
  .quiz-actions-split > .btn,
  .quiz-actions-split .report-soft,
  .quiz-actions-right,
  .quiz-actions-right .btn,
  .quiz-actions-split .row .btn{
    width:100%!important;
  }
  .quiz-actions-right{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    justify-content:stretch!important;
  }
  .street-start-actions,
  .street-next-row,
  .street-answer{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .street-start-actions .btn,
  .street-next-row .btn,
  .street-answer .btn,
  .street-options .btn{
    width:100%!important;
  }
  #appModal .modal-card{
    width:calc(100vw - 28px)!important;
    max-height:88vh!important;
    padding:18px!important;
    border-radius:20px!important;
  }
  #appModal .modal-card .row,
  #appModal .modal-card .row.between{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
    align-items:stretch!important;
    justify-content:stretch!important;
  }
  #appModal .modal-card .row .btn,
  #appModal .modal-card .btn{
    width:100%!important;
  }
  .admin-user-tools{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .admin-user-tools .admin-user-label,
  .admin-user-buttons,
  .admin-user-buttons .btn{
    width:100%!important;
    max-width:none!important;
  }
}

/* v34: carga dentro de la vista de test de callejero */
.street-map-loading-box{
  height:min(58vh,620px);
  min-height:460px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f1f5f9;
}
.street-loading-state{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  color:var(--muted);
  text-align:center;
  padding:24px;
}
.street-loading-state strong{color:var(--ink);font-size:17px}
.street-loading-state.error strong{color:var(--bad)}
.spinner{
  width:42px;
  height:42px;
  border-radius:999px;
  border:4px solid #dbe5f0;
  border-top-color:var(--brand);
  animation:spin .85s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:760px){.street-map-loading-box{height:470px;min-height:390px}.street-loading-state strong{font-size:16px}}


/* v35: desplegable de rol del modal de usuario con diseño coherente */
.admin-role-select{position:relative;width:100%;margin:8px 0 14px}
.admin-custom-select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:12px 44px 12px 14px;font-size:15px;text-align:left;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 1px rgba(15,23,42,.03);cursor:pointer;font-weight:500}
.admin-custom-select:hover{border-color:#cbd5e1;background:#fbfdff}
.admin-custom-select.open{border-color:#93c5fd;box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.admin-custom-select-arrow{position:absolute;right:14px;color:#64748b;font-size:18px;line-height:1;pointer-events:none}
.admin-custom-select-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:100001;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(15,23,42,.16);padding:6px;overflow:hidden}
.admin-custom-select-menu button{width:100%;border:0;background:#fff;color:var(--ink);text-align:left;padding:11px 12px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer}
.admin-custom-select-menu button:hover{background:#eff6ff;color:#1d4ed8}
#appModal .modal-card .admin-role-select input{display:none!important}
@media(max-width:760px){.admin-custom-select-menu{position:static;margin-top:6px}.admin-custom-select-menu[hidden]{display:none!important}}

/* v38: rediseño visual global + modo claro/oscuro por perfil */
body.theme-light{
  --bg:#eef4ff;
  --card:rgba(255,255,255,.86);
  --surface:rgba(255,255,255,.78);
  --surface-strong:#ffffff;
  --ink:#0b1220;
  --muted:#5d6b82;
  --line:rgba(129,150,180,.34);
  --brand:#2563eb;
  --brand-2:#06b6d4;
  --soft:rgba(37,99,235,.08);
  --ok:#16a34a;
  --bad:#dc2626;
  --warn:#a16207;
  --green:#16a34a;
  --red:#dc2626;
  --blue:#2563eb;
  --shadow:0 18px 48px rgba(15,23,42,.10);
  --shadow-soft:0 10px 26px rgba(15,23,42,.07);
  --glass:rgba(255,255,255,.72);
}
body.theme-dark{
  --bg:#060b18;
  --card:rgba(13,23,42,.82);
  --surface:rgba(15,23,42,.72);
  --surface-strong:#111c31;
  --ink:#e8eefc;
  --muted:#9aa9bf;
  --line:rgba(148,163,184,.22);
  --brand:#4f8cff;
  --brand-2:#22d3ee;
  --soft:rgba(79,140,255,.13);
  --ok:#34d399;
  --bad:#fb7185;
  --warn:#fbbf24;
  --green:#22c55e;
  --red:#f43f5e;
  --blue:#3b82f6;
  --shadow:0 24px 70px rgba(0,0,0,.42);
  --shadow-soft:0 16px 36px rgba(0,0,0,.28);
  --glass:rgba(15,23,42,.64);
}
body.theme-light{
  background:
    radial-gradient(circle at top left,rgba(37,99,235,.16),transparent 32rem),
    radial-gradient(circle at top right,rgba(34,211,238,.12),transparent 30rem),
    linear-gradient(180deg,#eef4ff 0,#f7f9fd 55%,#edf3fb 100%);
  color:var(--ink);
}
body.theme-dark{
  background:
    radial-gradient(circle at 10% 0%,rgba(37,99,235,.34),transparent 34rem),
    radial-gradient(circle at 90% 12%,rgba(34,211,238,.18),transparent 30rem),
    linear-gradient(180deg,#050914 0,#08111f 48%,#050914 100%);
  color:var(--ink);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background-image:linear-gradient(rgba(148,163,184,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(180deg,rgba(0,0,0,.75),transparent 72%);
}
body.theme-dark::before{opacity:.34}body.theme-light::before{opacity:.5}
.wrap{max-width:1180px}.top{padding-top:2px}.brand h1{letter-spacing:.01em}.brand p{font-size:15px}.brand-icon{filter:drop-shadow(0 10px 18px rgba(15,23,42,.14))}
.card,.modal-card,.pdf-modal-card{
  background:var(--card)!important;
  color:var(--ink)!important;
  border:1px solid var(--line)!important;
  box-shadow:var(--shadow)!important;
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
}
.card{position:relative;overflow:hidden}.card::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);opacity:.8;pointer-events:none}.doc-card,.test-card,.admin-doc{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.doc-card:hover,.test-card:hover,.admin-doc:hover{transform:translateY(-2px);border-color:rgba(37,99,235,.34)!important;box-shadow:0 24px 56px rgba(15,23,42,.13)!important}
body.theme-dark .doc-card:hover,body.theme-dark .test-card:hover,body.theme-dark .admin-doc:hover{box-shadow:0 26px 64px rgba(0,0,0,.46)!important;border-color:rgba(79,140,255,.42)!important}
.btn{border-radius:14px;background:linear-gradient(135deg,var(--brand),#1d4ed8);box-shadow:0 12px 24px rgba(37,99,235,.22);transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,border-color .16s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 16px 30px rgba(37,99,235,.28);filter:none}.btn:active{transform:translateY(0)}.btn.secondary,.btn.ghost{background:var(--surface)!important;color:var(--ink)!important;border:1px solid var(--line)!important;box-shadow:var(--shadow-soft)!important}.btn.secondary:hover,.btn.ghost:hover{border-color:rgba(37,99,235,.42)!important}.btn.blue{background:linear-gradient(135deg,var(--blue),#1d4ed8)!important}.btn.danger{background:linear-gradient(135deg,var(--bad),#b91c1c)!important}.btn.admin-green{background:linear-gradient(135deg,#16a34a,#059669)!important;box-shadow:0 12px 26px rgba(22,163,74,.24)!important}
.badge,.stat,.option,.qdot,.question-nav,.notice,.question-source,.street-feedback,.street-map-wrap,.clean-map-wrap,.street-map-loading-box,.admin-custom-select,.admin-custom-select-menu,.admin-user-label select,
input,textarea,select{
  background:var(--surface)!important;
  color:var(--ink)!important;
  border-color:var(--line)!important;
}
input,textarea,select{box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 1px 1px rgba(15,23,42,.03)}input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 78%,transparent)}
.option{box-shadow:0 6px 18px rgba(15,23,42,.04);transition:transform .14s ease,border-color .14s ease,background .14s ease}.option:hover{background:var(--soft)!important;transform:translateX(2px)}.option.correct{background:color-mix(in srgb,var(--ok) 13%,var(--surface-strong))!important;border-color:color-mix(in srgb,var(--ok) 70%,var(--line))!important}.option.wrong{background:color-mix(in srgb,var(--bad) 12%,var(--surface-strong))!important;border-color:color-mix(in srgb,var(--bad) 72%,var(--line))!important}.qdot.ok{background:color-mix(in srgb,var(--ok) 13%,var(--surface-strong))!important}.qdot.bad{background:color-mix(in srgb,var(--bad) 12%,var(--surface-strong))!important}
.progressbar,.resultbar{background:rgba(148,163,184,.18)!important}.progressbar div{background:linear-gradient(90deg,var(--green),#22c55e)!important}.progressbar:not(.green) div{background:linear-gradient(90deg,var(--brand),var(--brand-2))!important}.resultbar-ok{background:linear-gradient(90deg,var(--green),#22c55e)!important}.resultbar-bad{background:linear-gradient(90deg,var(--red),#ef4444)!important}
.explain{background:var(--soft)!important;border-left-color:var(--brand)!important}.explain.okbox{background:color-mix(in srgb,var(--ok) 13%,var(--surface-strong))!important;border-left-color:var(--ok)!important}.stat{box-shadow:var(--shadow-soft);background:linear-gradient(180deg,var(--surface-strong),var(--surface))!important}.stat strong{letter-spacing:-.02em}
th{background:color-mix(in srgb,var(--surface-strong) 85%,var(--brand) 6%)!important;color:var(--muted)!important}td,th{border-color:var(--line)!important}table{color:var(--ink)}.muted{color:var(--muted)!important}.small{color:inherit}.ok{color:var(--ok)!important}.bad,.error{color:var(--bad)!important}.warn{color:var(--warn)!important}
.login{margin-top:7vh}.login.card{background:linear-gradient(180deg,var(--card),color-mix(in srgb,var(--card) 74%,var(--brand) 5%))!important}.login h1{font-size:31px;letter-spacing:.01em}.login-logo{filter:drop-shadow(0 20px 28px rgba(15,23,42,.16))}.password-wrap .eye-btn{color:var(--muted)!important}.password-wrap .eye-btn:hover,.password-wrap .eye-btn.active{background:var(--soft)!important;color:var(--brand)!important}
.crumbs{font-weight:600}.crumbs a{color:var(--brand)}.top-actions.main-nav{gap:10px}.theme-toggle{min-height:44px;border:1px solid var(--line);border-radius:999px;background:var(--glass);color:var(--ink);display:inline-flex;align-items:center;gap:7px;padding:7px 10px;cursor:pointer;box-shadow:var(--shadow-soft);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);transition:transform .16s ease,border-color .16s ease,background .16s ease}.theme-toggle:hover{transform:translateY(-1px);border-color:rgba(37,99,235,.42)}.theme-toggle-track{width:42px;height:24px;border-radius:999px;background:rgba(148,163,184,.25);position:relative;display:inline-flex;align-items:center;padding:3px}.theme-toggle-knob{width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 4px 12px rgba(15,23,42,.25);transition:transform .18s ease,background .18s ease}.theme-toggle.is-dark .theme-toggle-track{background:linear-gradient(135deg,#2563eb,#06b6d4)}.theme-toggle.is-dark .theme-toggle-knob{transform:translateX(18px);background:#dbeafe}.theme-icon{font-size:15px;line-height:1;filter:saturate(1.1)}
.modal-backdrop,.pdf-backdrop{background:rgba(15,23,42,.58)!important;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.pdf-modal-head{background:var(--card)!important;border-color:var(--line)!important}.pdf-viewer-frame{background:var(--surface-strong)!important}.toast-ok{box-shadow:var(--shadow)!important}
.street-svg-map,.clean-street-map,.street-map-loading-box,.map-bg{background:color-mix(in srgb,var(--surface-strong) 86%,var(--brand) 4%)!important;fill:color-mix(in srgb,var(--surface-strong) 86%,var(--brand) 4%)!important}.municipal-shape{fill:color-mix(in srgb,var(--brand) 8%,var(--surface-strong))!important;stroke:var(--line)!important}.street-line{stroke:color-mix(in srgb,var(--muted) 58%,var(--brand) 18%)!important}.street-line.avenue,.street-line.square{stroke:color-mix(in srgb,var(--muted) 72%,var(--brand) 15%)!important}.street-line.target{stroke:var(--brand)!important}.street-line.target.correct{stroke:var(--ok)!important}.street-line.target.wrong{stroke:var(--bad)!important}.street-label{fill:var(--ink)!important;stroke:var(--surface-strong)!important}.street-map-wrap{box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),var(--shadow-soft)}.street-options .btn.secondary{background:var(--surface-strong)!important}
body.theme-dark iframe[src*="openstreetmap"],body.theme-dark .osm-map iframe{filter:brightness(.74) saturate(.82) contrast(1.05)}
.admin-custom-select-menu button{background:transparent!important;color:var(--ink)!important}.admin-custom-select-menu button:hover{background:var(--soft)!important;color:var(--brand)!important}.admin-custom-select-arrow{color:var(--muted)!important}.admin-user-label select{color:var(--ink)!important}.admin-user-label select option{color:#0f172a;background:#fff}
body.theme-dark .admin-user-label select option,body.theme-dark select option{color:#e8eefc;background:#111827}.notice{background:color-mix(in srgb,var(--warn) 10%,var(--surface-strong))!important;color:var(--ink)!important}.notice code{background:rgba(251,191,36,.16)!important;color:var(--ink)!important}
body.theme-dark .login-logo,body.theme-dark .brand-icon{filter:drop-shadow(0 14px 26px rgba(79,140,255,.20))}.pdf-modal-card iframe{color-scheme:light}.modal-success .modal-check{box-shadow:0 18px 34px rgba(22,163,74,.28)}
@media(max-width:760px){.theme-toggle{width:100%;justify-content:center}.top-actions.main-nav{grid-template-columns:1fr!important}.login h1{font-size:28px}.card::before{opacity:.45}}

/* v39: selects y toggle visual refinados */
.admin-user-picker{display:block;font-weight:800;color:var(--ink);margin-top:0!important}
.admin-user-picker > span{display:block;margin-bottom:8px}
.admin-user-select{position:relative;width:100%}
.admin-user-custom-select,.admin-custom-select{appearance:none!important;-webkit-appearance:none!important;min-height:46px!important;border:1px solid var(--line)!important;border-radius:14px!important;background:var(--surface)!important;color:var(--ink)!important;padding:12px 44px 12px 14px!important;font-size:15px!important;line-height:1.2!important;text-align:left!important;width:100%!important;display:flex!important;align-items:center!important;justify-content:space-between!important;box-shadow:0 1px 1px rgba(15,23,42,.03)!important;cursor:pointer!important;font-weight:650!important;position:relative!important;overflow:hidden!important}
.admin-user-custom-select:hover,.admin-custom-select:hover{border-color:color-mix(in srgb,var(--brand) 44%,var(--line))!important;background:var(--surface-strong)!important}
.admin-user-custom-select.open,.admin-custom-select.open{border-color:color-mix(in srgb,var(--brand) 70%,var(--line))!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)!important;background:var(--surface-strong)!important}
.admin-custom-select-arrow{position:absolute!important;right:14px!important;top:50%!important;transform:translateY(-50%)!important;width:18px!important;height:18px!important;color:var(--muted)!important;display:flex!important;align-items:center!important;justify-content:center!important;pointer-events:none!important;font-size:0!important;line-height:0!important}
.admin-custom-select-arrow svg{width:18px!important;height:18px!important;display:block!important;stroke:currentColor!important;transition:transform .16s ease!important}
.admin-custom-select.open .admin-custom-select-arrow svg{transform:rotate(180deg)!important}
.admin-user-select-menu{position:absolute!important;left:0!important;right:0!important;top:calc(100% + 8px)!important;z-index:10010!important;background:var(--surface-strong)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:0 20px 44px rgba(15,23,42,.18)!important;padding:6px!important;overflow:hidden!important;backdrop-filter:blur(18px) saturate(135%)!important;-webkit-backdrop-filter:blur(18px) saturate(135%)!important}
.admin-custom-select-menu[hidden]{display:none!important}
.admin-custom-select-menu button{width:100%!important;border:0!important;background:transparent!important;color:var(--ink)!important;text-align:left!important;padding:11px 12px!important;border-radius:11px!important;font-size:15px!important;font-weight:750!important;cursor:pointer!important;box-shadow:none!important;min-height:40px!important;display:block!important}
.admin-custom-select-menu button:hover,.admin-custom-select-menu button.selected{background:color-mix(in srgb,var(--brand) 12%,var(--surface-strong))!important;color:var(--brand)!important}
body.theme-dark .admin-custom-select-menu{background:#111827!important;border-color:rgba(148,163,184,.28)!important;box-shadow:0 24px 50px rgba(0,0,0,.42)!important}
#appModal .modal-card{overflow:visible!important}
#appModal .modal-card .admin-role-select{position:relative!important;width:100%!important;margin:8px 0 22px!important;z-index:2!important}
#appModal .modal-card .admin-role-select .admin-custom-select-menu{position:static!important;margin-top:8px!important;background:var(--surface-strong)!important;color:var(--ink)!important;border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:0 14px 32px rgba(15,23,42,.14)!important;padding:6px!important;overflow:hidden!important;opacity:1!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
#appModal .modal-card label:has(.admin-role-select){display:block!important;margin-bottom:18px!important}

.theme-toggle{width:88px!important;height:44px!important;min-height:44px!important;border:1px solid var(--line)!important;border-radius:999px!important;background:transparent!important;color:var(--ink)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important;cursor:pointer!important;box-shadow:var(--shadow-soft)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease!important;overflow:hidden!important;flex:0 0 auto!important}
.theme-toggle:hover{transform:translateY(-1px)!important;border-color:color-mix(in srgb,var(--brand) 48%,var(--line))!important;box-shadow:0 18px 34px rgba(37,99,235,.18)!important}
.theme-toggle-track{width:78px!important;height:34px!important;border-radius:999px!important;position:relative!important;display:block!important;padding:0!important;overflow:hidden!important;background:linear-gradient(135deg,#fff7e6,#eaf2ff)!important;border:1px solid rgba(148,163,184,.28)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.7), inset 0 -10px 24px rgba(37,99,235,.08)!important;transition:background .22s ease,border-color .22s ease!important}
.theme-toggle.is-dark .theme-toggle-track{background:linear-gradient(135deg,#111827,#020617)!important;border-color:rgba(148,163,184,.28)!important;box-shadow:inset 0 1px 1px rgba(255,255,255,.06), inset 0 -10px 24px rgba(79,140,255,.18)!important}
.theme-toggle-knob{position:absolute!important;left:2px!important;top:2px!important;width:30px!important;height:30px!important;border-radius:50%!important;background:#fff!important;box-shadow:0 5px 16px rgba(15,23,42,.24)!important;z-index:2!important;transition:transform .23s cubic-bezier(.2,.8,.2,1),background .22s ease,box-shadow .22s ease!important}
.theme-toggle.is-dark .theme-toggle-knob{transform:translateX(44px)!important;background:#f8fafc!important;box-shadow:0 5px 18px rgba(0,0,0,.42)!important}
.theme-toggle-symbol{position:absolute!important;top:50%!important;transform:translateY(-50%)!important;z-index:3!important;font-size:15px!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;width:30px!important;height:30px!important;pointer-events:none!important;transition:opacity .18s ease,filter .18s ease,color .18s ease!important;filter:saturate(1.08)!important}
.theme-toggle-sun{left:2px!important;color:#f59e0b!important;text-shadow:0 1px 0 rgba(255,255,255,.8)!important}
.theme-toggle-moon{right:2px!important;color:#64748b!important;opacity:.62!important}
.theme-toggle.is-dark .theme-toggle-sun{opacity:.44!important;color:#94a3b8!important;text-shadow:none!important}
.theme-toggle.is-dark .theme-toggle-moon{opacity:1!important;color:#facc15!important;text-shadow:0 0 12px rgba(250,204,21,.24)!important}
@media(max-width:760px){.theme-toggle{width:88px!important;justify-content:center!important}.admin-user-select-menu{position:static!important;margin-top:8px!important}.admin-user-tools{gap:10px!important}.admin-user-buttons{align-self:stretch!important}}

/* v41: ajustes visuales de callejero, toggle móvil y login */
.login .password-wrap{margin:14px 0 20px!important}
.login .login-submit{width:100%!important;margin-top:2px!important;justify-content:center!important;text-align:center!important;font-size:15px!important}

/* Callejero: líneas nítidas, sin glow ni transparencias del rediseño */
.street-svg-map .street-line,
.clean-street-map .street-line{
  stroke:#8fa1ba!important;
  stroke-width:1.45!important;
  opacity:1!important;
  filter:none!important;
  vector-effect:non-scaling-stroke!important;
  shape-rendering:geometricPrecision!important;
}
.street-svg-map .street-line.avenue,
.street-svg-map .street-line.square,
.clean-street-map .street-line.avenue,
.clean-street-map .street-line.square{
  stroke:#7387a4!important;
  stroke-width:1.8!important;
  opacity:1!important;
  filter:none!important;
}
.street-svg-map .street-line.target,
.clean-street-map .street-line.target{
  stroke:#2563eb!important;
  stroke-width:5.2!important;
  opacity:1!important;
  filter:none!important;
  vector-effect:non-scaling-stroke!important;
  shape-rendering:geometricPrecision!important;
}
.street-svg-map .street-line.target.correct,
.clean-street-map .street-line.target.correct{stroke:#16a34a!important}
.street-svg-map .street-line.target.wrong,
.clean-street-map .street-line.target.wrong{stroke:#dc2626!important}
body.theme-dark .street-svg-map .street-line,
body.theme-dark .clean-street-map .street-line{stroke:#6f87ad!important;opacity:1!important;filter:none!important}
body.theme-dark .street-svg-map .street-line.avenue,
body.theme-dark .street-svg-map .street-line.square,
body.theme-dark .clean-street-map .street-line.avenue,
body.theme-dark .clean-street-map .street-line.square{stroke:#8ca4ca!important;opacity:1!important;filter:none!important}
body.theme-dark .street-svg-map .street-line.target,
body.theme-dark .clean-street-map .street-line.target{stroke:#4f8cff!important;filter:none!important}
body.theme-dark .street-svg-map .street-line.target.correct,
body.theme-dark .clean-street-map .street-line.target.correct{stroke:#22c55e!important}
body.theme-dark .street-svg-map .street-line.target.wrong,
body.theme-dark .clean-street-map .street-line.target.wrong{stroke:#ef4444!important}

/* Callejero: recuperar estados correctos/fallados en opciones y feedback */
.street-options .street-option-btn.correct,
.street-options .street-option-btn.correct:disabled{
  background:#ecfdf5!important;
  color:#14532d!important;
  border-color:#16a34a!important;
  opacity:1!important;
  filter:none!important;
}
.street-options .street-option-btn.wrong,
.street-options .street-option-btn.wrong:disabled{
  background:#fef2f2!important;
  color:#7f1d1d!important;
  border-color:#dc2626!important;
  opacity:1!important;
  filter:none!important;
}
.street-options .street-option-btn.selected,
.street-options .street-option-btn.selected:disabled{box-shadow:0 0 0 3px rgba(22,163,74,.18)!important}
.street-feedback.correct{background:#ecfdf5!important;border-color:#bbf7d0!important;color:#14532d!important}
.street-feedback.wrong{background:#fef2f2!important;border-color:#fecaca!important;color:#7f1d1d!important}
body.theme-dark .street-options .street-option-btn.correct,
body.theme-dark .street-options .street-option-btn.correct:disabled{
  background:rgba(22,163,74,.18)!important;
  color:#bbf7d0!important;
  border-color:#22c55e!important;
}
body.theme-dark .street-options .street-option-btn.wrong,
body.theme-dark .street-options .street-option-btn.wrong:disabled{
  background:rgba(239,68,68,.16)!important;
  color:#fecaca!important;
  border-color:#ef4444!important;
}
body.theme-dark .street-feedback.correct{background:rgba(22,163,74,.16)!important;border-color:#22c55e!important;color:#bbf7d0!important}
body.theme-dark .street-feedback.wrong{background:rgba(239,68,68,.15)!important;border-color:#ef4444!important;color:#fecaca!important}

/* Toggle: en móvil arriba a la derecha, antes de Tests */
@media(max-width:760px){
  .top-actions.main-nav{display:flex!important;flex-wrap:wrap!important;justify-content:flex-end!important;align-items:center!important;width:100%!important;gap:10px!important}
  .top-actions.main-nav .theme-toggle{order:0!important;width:88px!important;flex:0 0 88px!important;margin-left:auto!important;margin-right:0!important}
  .top-actions.main-nav .btn{width:100%!important;flex:1 1 100%!important;order:1!important}
}
