/* Personalización ligera de Ruta Digital: sin cuentas, sólo almacenamiento local. */
.personalBar{display:grid;grid-template-columns:auto minmax(170px,.8fr) minmax(250px,1.35fr) auto;gap:10px;align-items:stretch;margin:14px 0 22px}
.personalBar>button,.personalProgress{min-height:58px;border:1px solid #c5d7dd;border-radius:11px;background:#fff}
.personalBar button{font:inherit;color:#16475a;cursor:pointer}
.personalRole,.continueCard{display:grid;gap:2px;padding:10px 13px;text-align:left}
.personalRole small,.continueCard small,.personalProgress small{color:#718690;font-size:.64rem;font-weight:850;text-transform:uppercase;letter-spacing:.045em}
.personalRole strong,.continueCard strong{font-size:.82rem;line-height:1.25}
.personalRole:hover,.continueCard:hover,.guidedTourBtn:hover{border-color:#0b7791;background:#f3fafb}
.personalProgress{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-content:center;padding:9px 12px}
.personalProgress b{color:#0b506a;font-size:.78rem}
.personalProgressTrack{grid-column:1/-1;height:4px;margin-top:5px;border-radius:99px;background:#dce8eb;overflow:hidden}
.personalProgressTrack i{display:block;width:0;height:100%;border-radius:inherit;background:#0b8794;transition:width .3s ease}
.guidedTourBtn{padding:0 14px;font-size:.75rem;font-weight:850;white-space:nowrap}
.rolePrompt{position:fixed;left:50%;bottom:18px;z-index:12000;width:min(760px,calc(100% - 28px));transform:translateX(-50%);padding:18px;border:1px solid #8fb4c2;border-radius:16px;background:#faffff;box-shadow:0 24px 70px #03253b40}
.rolePrompt[hidden]{display:none}.rolePromptHead{display:flex;justify-content:space-between;gap:18px;align-items:start}
.rolePromptHead small{display:block;color:#08728e;font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.rolePromptHead h3{margin:3px 0 2px;color:#063b5c;font-size:1.2rem}.rolePromptHead p{margin:0;color:#617986;font-size:.78rem}
.rolePromptDismiss{border:0;background:transparent;color:#607985;font-weight:800;cursor:pointer}
.rolePromptChoices{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:14px}
.rolePromptChoices button{min-height:42px;padding:8px 10px;border:1px solid #bfd2d9;border-radius:9px;background:#fff;color:#194a5d;font-size:.77rem;font-weight:800;cursor:pointer}
.rolePromptChoices button:hover,.rolePromptChoices button:focus-visible{border-color:#08758e;background:#eaf6f6}
.favoritesButton{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 9px;border:1px solid #ffffff38;border-radius:8px;background:#ffffff0f;color:inherit;font:inherit;font-size:.72rem;font-weight:850;cursor:pointer}
.favoritesButton b{display:grid;min-width:18px;height:18px;place-items:center;padding:0 4px;border-radius:99px;background:#9de6e2;color:#063b5c;font-size:.62rem}
.favoritesButton .star{font-size:1rem}.favoritesButton:hover{border-color:#9de6e2}
.favoritesShade{position:fixed;inset:0;z-index:11900;background:#02131d8f;backdrop-filter:blur(2px)}.favoritesShade[hidden]{display:none}
.favoritesDrawer{position:fixed;top:0;right:0;z-index:11910;width:min(420px,92vw);height:100dvh;display:flex;flex-direction:column;background:#f7fbfc;box-shadow:-20px 0 70px #02131d4d;transform:translateX(105%);transition:transform .22s ease}
.favoritesDrawer.open{transform:none}.favoritesDrawerHead{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:20px;border-bottom:1px solid #d4e2e6}
.favoritesDrawerHead small{color:#08728e;font-size:.66rem;font-weight:900;text-transform:uppercase}.favoritesDrawerHead h3{margin:3px 0 0;color:#063b5c}
.favoritesDrawerHead button{width:38px;height:38px;border:1px solid #bfd1d8;border-radius:50%;background:#fff;color:#315968;font-size:1.1rem;cursor:pointer}
.favoritesList{display:grid;gap:8px;overflow:auto;padding:14px 16px 28px}.favoriteEmpty{padding:25px 12px;color:#607985;text-align:center;line-height:1.5}
.favoriteRow{display:grid;grid-template-columns:1fr auto;gap:8px;padding:13px;border:1px solid #c8d9df;border-radius:10px;background:#fff}
.favoriteOpen{display:grid;gap:3px;border:0;background:transparent;text-align:left;cursor:pointer}.favoriteOpen small{color:#08728e;font-size:.64rem;font-weight:850;text-transform:uppercase}.favoriteOpen strong{color:#153f51;font-size:.86rem;line-height:1.3}
.favoriteRemove{width:32px;height:32px;border:0;border-radius:50%;background:#eff5f6;color:#607985;cursor:pointer}.favoriteRemove:hover{background:#ffe9e7;color:#a1372d}
.favWrap{position:relative;min-width:0}.favWrap>.baseCard,.favWrap>.resCard,.favWrap>.downloadCard,.favWrap>.videoPick{height:100%;box-sizing:border-box}.favWrap.favVideoWrap{width:100%;flex:0 0 auto}
.favToggle{position:absolute;top:9px;right:9px;z-index:6;display:grid;width:30px;height:30px;place-items:center;padding:0;border:1px solid #a8c5ce;border-radius:50%;background:#fafffff2;color:#446b79;font-size:1.05rem;line-height:1;cursor:pointer;box-shadow:0 4px 14px #052b3c16}
.favToggle:hover,.favToggle:focus-visible,.favToggle.on{border-color:#0a8194;background:#e7f7f5;color:#08687c}.favToggle.on{font-weight:900}
.normCard,.legalDecreeCard{position:relative}.normCard>.favToggle,.legalDecreeCard>.favToggle{top:14px;right:14px}
.favWrap>.resCard .resTop{padding-right:34px}.favWrap>.downloadCard{padding-right:48px}.favWrap>.baseCard{padding-right:48px}.favWrap>.videoPick{padding-right:52px}
.roleRelevant{outline:1px solid #7bc7c0;outline-offset:-1px;box-shadow:inset 3px 0 #58b6aa}.baseRail .favWrap.roleRelevant,.downloadGrid .favWrap.roleRelevant,.resGrid .favWrap.roleRelevant{position:relative}
.commandOverlay{position:fixed;inset:0;z-index:12500;display:grid;place-items:start center;padding:9vh 16px;background:#02131da6;backdrop-filter:blur(5px)}.commandOverlay[hidden]{display:none}
.commandPanel{width:min(720px,100%);max-height:82vh;overflow:hidden;border:1px solid #8fb4c2;border-radius:17px;background:#f9fcfd;box-shadow:0 28px 90px #0007}
.commandTop{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:13px 14px;border-bottom:1px solid #cfdee3}.commandTop svg{width:21px;height:21px;fill:none;stroke:#47707f;stroke-width:1.8}
.commandTop input{height:44px;border:0;outline:0;background:transparent;color:#123e51;font:inherit;font-size:1rem}.commandTop button{border:0;background:transparent;color:#637b86;font-weight:850;cursor:pointer}
.commandBody{max-height:calc(82vh - 72px);overflow:auto;padding:14px}.commandSectionTitle{display:flex;justify-content:space-between;gap:12px;margin:4px 2px 9px;color:#70848e;font-size:.64rem;font-weight:900;text-transform:uppercase;letter-spacing:.055em}
.commandQuick,.commandRecent{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}.commandChip{padding:8px 10px;border:1px solid #bfd2d9;border-radius:8px;background:#fff;color:#245468;font-size:.72rem;font-weight:800;cursor:pointer}
.commandChip:hover{border-color:#0b7b92;background:#ebf6f7}.commandResults{display:grid;gap:5px}
.commandResult{display:grid;grid-template-columns:1fr auto;gap:10px;width:100%;padding:11px 12px;border:1px solid transparent;border-radius:9px;background:transparent;text-align:left;cursor:pointer}
.commandResult:hover,.commandResult:focus-visible{border-color:#b6d0d9;background:#edf7f8}.commandResult small{display:block;color:#0b7891;font-size:.63rem;font-weight:850;text-transform:uppercase}.commandResult strong{display:block;margin-top:2px;color:#153f51;font-size:.85rem}.commandResult p{margin:3px 0 0;color:#6a7f89;font-size:.71rem;line-height:1.35}.commandResult b{align-self:center;color:#0a718b}.commandEmpty{padding:22px 8px;color:#617986;text-align:center}
.smartTerm{position:relative;border-bottom:1px dotted #0b7891;color:inherit;cursor:help;outline:none}.smartTerm::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);z-index:13000;width:min(290px,78vw);padding:9px 10px;border-radius:8px;background:#063b5c;color:#fff;font-size:.68rem;font-weight:500;line-height:1.4;box-shadow:0 10px 30px #0004;opacity:0;visibility:hidden;transform:translate(-50%,4px);transition:.14s ease}.smartTerm:hover::after,.smartTerm:focus::after{opacity:1;visibility:visible;transform:translate(-50%,0)}
.videoPick{position:relative}.videoSeenChip{display:inline-flex;margin-top:8px;padding:5px 8px;border-radius:999px;background:#e5f4f1;color:#176858;font-size:.67rem;font-weight:900}.videoPick.is-watched{border-color:#7fc4b9!important}.videoPick.is-watched::after{content:"✓ Visto";position:absolute;right:10px;bottom:8px;color:#2a806f;font-size:.6rem;font-weight:900}
.toastStack{position:fixed;right:16px;bottom:16px;z-index:14000;display:grid;gap:8px;pointer-events:none}.routeToast{min-width:230px;max-width:min(360px,85vw);padding:11px 13px;border:1px solid #8db9c5;border-radius:10px;background:#063b5c;color:#fff;box-shadow:0 14px 35px #0004;font-size:.76rem;line-height:1.4;animation:toastIn .2s ease}.routeToast.good{border-color:#75c6b5;background:#0b5d58}.routeToast.out{opacity:0;transform:translateY(6px);transition:.2s ease}@keyframes toastIn{from{opacity:0;transform:translateY(7px)}}
.checkItem.done .checkBox{animation:checkPop .22s ease}.checkSummary.is-complete{border-color:#74c2b2;background:#effaf6}.checkSummary.is-complete>b{color:#126b5a}@keyframes checkPop{50%{transform:scale(1.16)}}
.tourFocus{position:relative!important;z-index:13501!important;border-radius:13px;box-shadow:0 0 0 3px #9de6e2,0 0 0 9999px #02131dc9!important}
.tourCard{position:fixed;left:50%;bottom:20px;z-index:13510;width:min(560px,calc(100% - 28px));transform:translateX(-50%);padding:16px;border:1px solid #8dc7cd;border-radius:14px;background:#faffff;box-shadow:0 20px 60px #0007}.tourCard[hidden]{display:none}
.tourCardHead{display:flex;justify-content:space-between;gap:14px}.tourCard small{color:#08728e;font-size:.65rem;font-weight:900;text-transform:uppercase}.tourCard h3{margin:4px 0;color:#063b5c;font-size:1.15rem}.tourCard p{margin:5px 0 0;color:#5d7580;font-size:.79rem;line-height:1.45}.tourClose{border:0;background:transparent;color:#607985;font-weight:850;cursor:pointer}.tourActions{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:13px}.tourDots{display:flex;gap:5px}.tourDots i{width:7px;height:7px;border-radius:50%;background:#cad9de}.tourDots i.on{background:#0a8092}.tourButtons{display:flex;gap:7px}.tourButtons button{min-height:38px;padding:7px 11px;border:1px solid #a9c4cd;border-radius:8px;background:#fff;color:#205166;font-size:.72rem;font-weight:850;cursor:pointer}.tourButtons .next{border-color:#075f7d;background:#063b5c;color:#fff}
.shareTool{min-height:32px;padding:5px 9px;border:1px solid #a9c6cf;border-radius:8px;background:#fff;color:#225468;font-size:.68rem;font-weight:850;cursor:pointer}.shareTool:hover{border-color:#08778f}
@media(max-width:920px){.personalBar{grid-template-columns:1fr 1fr}.guidedTourBtn{min-height:50px}.rolePromptChoices{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.favoritesButton .label{display:none}.favoritesButton{padding:0 8px}.personalBar{grid-template-columns:1fr}.personalProgress{min-height:54px}.rolePrompt{bottom:8px;padding:14px}.rolePromptChoices{grid-template-columns:1fr 1fr}.rolePromptChoices button{font-size:.7rem}.commandOverlay{padding-top:4vh}.toolkitMiniStats .shareTool{width:100%}.tourCard{bottom:8px}}
@media(prefers-reduced-motion:reduce){.favoritesDrawer,.smartTerm::after,.personalProgressTrack i,.routeToast{transition:none;animation:none}.checkItem.done .checkBox{animation:none}}