/* Data-only course binding: keep the approved homepage, green question header,
   five tools, answer card and fixed footer from index.html. */
.home-scene .pair{margin-bottom:12px}
.home-scene .card{min-height:calc(clamp(132px,22dvh,180px) - 12px)}
.home-scene .lower-panel{min-height:0}
.home-scene .orbit-area{min-height:315px}
.home-scene .orbit-area .center{width:120px}
.home-scene .orbit-area #favorites,.home-scene .orbit-area #progress,.home-scene .orbit-area #wrong{top:calc(50% - 114px)}
.home-scene .orbit-area #desktop,.home-scene .orbit-area #teacher{top:calc(50% + 114px)}
@media(max-height:700px){
 .home-scene .card{min-height:calc(clamp(120px,21dvh,147px) - 12px)}
 .home-scene .orbit-area{min-height:272px}
 .home-scene .orbit-area .center{width:104px}
 .home-scene .orbit-area #favorites,.home-scene .orbit-area #progress,.home-scene .orbit-area #wrong{top:calc(50% - 96px)}
 .home-scene .orbit-area #desktop,.home-scene .orbit-area #teacher{top:calc(50% + 96px)}
}
@media(max-height:650px){
 .home-scene .card{min-height:96px}
 .home-scene .lower-panel{padding:8px}
 .home-scene .priority-button{min-height:56px;padding-top:10px;padding-bottom:10px}
 .home-scene .orbit-area{min-height:250px}
 .home-scene .orbit-area .center{width:94px}
 .home-scene .orbit-area .go{width:94px;font-size:20px}
 .home-scene .orbit-area .tool{font-size:14px}
 .home-scene .orbit-area .tool .icon{width:44px;height:44px}
 .home-scene .orbit-area .tool .icon svg{width:27px;height:27px}
 .home-scene .orbit-area #favorites,.home-scene .orbit-area #progress,.home-scene .orbit-area #wrong{top:calc(50% - 90px)}
 .home-scene .orbit-area #desktop,.home-scene .orbit-area #teacher{top:calc(50% + 90px)}
}
.home-scene .priority-button{justify-content:center;text-align:center}
.home-scene .priority-button>span{width:100%;text-align:center}
.home-scene #exam .sprint-title{font-size:29px}
.home-scene #exam .sprint-subtitle{font-size:clamp(14px,4.1vw,18px);letter-spacing:0;padding-left:0;white-space:nowrap}
.home-scene #lessons{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.home-scene #lessons::after{content:none}
.home-scene #lessons .selected-pattern{position:absolute;width:165px;height:138px;right:-20px;bottom:-20px;opacity:.18;transform:rotate(12deg);pointer-events:none}
.home-scene #lessons strong{font-size:29px;line-height:1.25;letter-spacing:1px;margin:0;white-space:nowrap}
.home-scene #lessons small{display:block;margin-top:8px;font-size:clamp(13px,3.8vw,15px);line-height:1.4;white-space:nowrap}
.home-scene .settings{grid-template-columns:minmax(0,.85fr) minmax(0,1.45fr);padding:6px 8px;gap:3px 8px;border-radius:13px}
.home-scene .settings label{min-width:0;display:flex;flex-direction:column;justify-content:flex-end}
.setting-caption{font-size:12px;line-height:1.3;margin-bottom:3px}.settings-complete .setting-caption{display:none}
.home-scene .settings select,.home-scene .settings .city-choice,.home-scene .settings .vehicle-choice{height:36px;min-height:36px;margin-top:0;padding:6px 8px;border:0;border-radius:8px;background:#fff;color:#24475d;font-size:clamp(12px,3.5vw,15px);line-height:1.2}
.vehicle-choice{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;min-width:0;text-align:center}.vehicle-choice>span:first-of-type{min-width:0;white-space:nowrap;text-align:center}.vehicle-choice>svg{width:23px;height:22px;flex-shrink:0;color:#309afa}.vehicle-choice.is-placeholder{color:#758fa1!important}
.vehicle-picker{width:min(100% - 24px,440px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);padding:20px 16px 16px;border:0;border-radius:22px;background:#fff;color:#1e3e55;box-shadow:0 18px 65px #163a5940}.vehicle-picker::backdrop{background:#12334f80}.vehicle-picker .city-picker-header h2{font-size:21px}.vehicle-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:22px 0 18px}.vehicle-options button{display:flex;align-items:center;flex-direction:column;gap:8px;min-width:0;min-height:145px;padding:14px 3px 12px;border:1px solid #dadfe3;border-radius:18px;background:#fff;color:#263d50;text-align:center}.vehicle-options svg{width:42px;height:40px;color:#a0a0a0;margin-bottom:4px}.vehicle-options strong{font-size:16px;font-weight:500;line-height:1.3}.vehicle-options button>span{font-size:clamp(11px,3.1vw,13px);line-height:1.5;white-space:nowrap}.vehicle-options button[aria-checked=true]{border-color:#13a8ff;color:#06a5f8;background:#f8fcff;box-shadow:inset 0 0 0 1px #13a8ff}.vehicle-options button[aria-checked=true] svg{color:#06a5f8}
.home-scene .settings .city-choice{position:relative;width:100%;display:flex;align-items:center;justify-content:center;gap:4px;text-align:center}
.home-scene .settings .vehicle-choice,.home-scene .settings .city-choice{padding-left:20px;padding-right:20px}
.home-scene .settings .city-choice-arrow{position:absolute;right:8px;top:50%;transform:translateY(-50%)}
.city-choice-text{display:block;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3;text-align:center}.city-choice-name{display:inline;font:inherit;font-weight:600}.city-choice small{display:inline;font:inherit;color:#54778e}.city-choice.is-placeholder .city-choice-name{font-weight:400;color:#758fa1}.city-choice-arrow{color:#487b9e;font-size:15px;line-height:1;flex-shrink:0}
.city-picker{width:min(100% - 24px,440px);height:min(690px,88dvh);max-height:calc(100dvh - 24px);max-width:calc(100vw - 24px);padding:20px 18px 16px;border:0;border-radius:24px;background:#fff;color:#1e3e55;box-shadow:0 18px 65px #163a5940;overflow:hidden}
.city-picker[open]{display:flex;flex-direction:column;gap:14px}.city-picker::backdrop{background:#12334f80}
.city-picker-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-shrink:0}.city-picker-header h2{font-size:23px;margin:0;line-height:1.4}.city-picker-header p{font-size:13px;margin:5px 0 0;line-height:1.5;color:#7a91a3}.city-picker-header button{width:34px;height:34px;border-radius:50%;background:#f0f6fa;font-size:17px;color:#648299;flex-shrink:0}
.city-picker-search{display:flex;gap:8px;align-items:center;background:#f1f6fa;border:1px solid #e3edf4;padding:10px 12px;border-radius:12px;flex-shrink:0}.city-picker-search>span{font-size:24px;line-height:1;color:#809bad}.city-picker-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;font:inherit;font-size:15px;color:#24475d}.city-picker-search:focus-within{outline:2px solid #309afa}
.city-picker-tabs{display:flex;gap:14px;border-bottom:1px solid #e7eef5;flex-shrink:0;min-width:0}.city-picker-tabs button{min-width:0;max-width:45%;background:none;color:#698598;font-size:14px;line-height:1.5;padding:0 0 10px;border-bottom:3px solid transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.city-picker-tabs button[aria-selected=true]{color:#087af0;border-bottom-color:#087af0;font-weight:600}
.city-picker-caption{margin:0;font-size:12px;color:#8097a8;line-height:1.4;flex-shrink:0}.city-picker-options{min-height:0;overflow-y:auto;overscroll-behavior:contain;flex:1;scrollbar-width:thin}.city-picker-options button{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;gap:12px;background:#fff;border-radius:10px;padding:13px 12px;min-height:46px;font-size:16px;line-height:1.5;color:#294c65}.city-picker-options button>span:first-child{min-width:0;overflow-wrap:anywhere}.city-picker-options button>span:last-child{color:#91a9b9;flex-shrink:0}.city-picker-options button.is-selected{background:#edf6ff;color:#087af0;font-weight:600}.city-picker-options button.is-selected>span:last-child{color:#087af0}.city-picker-options button:hover{background:#f2f8fd}.city-picker-options small{display:block;font-size:11px;color:#8299a9;font-weight:400;margin-top:2px}.city-picker-empty{font-size:14px;color:#8299a9;text-align:center}
.city-picker-footer{border-top:1px solid #e7eef5;padding-top:12px;flex-shrink:0}.city-picker-footer p{font-size:12px;color:#648298;line-height:1.6;margin:0 0 10px;overflow-wrap:anywhere;min-height:20px}.city-picker-footer button{width:100%;border-radius:13px;min-height:46px;padding:12px;background:#087ff5;color:#fff;font-size:18px;font-weight:600}.city-picker-footer button:disabled{background:#dce7ef;color:#93a8b8;cursor:default}
@media(max-width:480px){.city-picker{margin:auto auto 0;width:100%;max-width:100%;max-height:92dvh;height:min(680px,86dvh);border-radius:24px 24px 0 0;padding-bottom:max(16px,env(safe-area-inset-bottom))}}
.training-video:has(small){flex-direction:column;gap:4px}.training-video small{font-size:12px;font-weight:400}.local-course-content button:disabled{opacity:.45;cursor:default}
[data-sprint-practice] strong,[data-selected] strong,#regional-practice strong,#vehicle-topic-practice strong{white-space:normal;font-size:clamp(17px,4.7vw,21px)}
.local-course-content{font-size:18px;line-height:1.8}.local-course-content p{white-space:pre-wrap;overflow-wrap:anywhere}.local-course-content h3{font-size:19px;margin:20px 0 8px;display:flex;align-items:center;justify-content:space-between;gap:10px}.local-course-content .local-tip{font-size:var(--exam-font,22px);font-weight:700;line-height:1.7;color:#1d3027}.local-course-meta{font-size:12px;line-height:1.8;color:#7b8e86;white-space:normal}.local-source-answer{color:#278b46!important}.local-course-login input{width:100%;padding:13px;border:1px solid #c6e3f8;border-radius:12px;font:inherit;margin:12px 0 20px}.local-course-login .primary{width:100%}.local-course-favorite{color:#297647;font-size:12px}.local-source-image{cursor:zoom-in}.local-image-dialog{border:0;border-radius:16px;max-width:96vw;max-height:94dvh;padding:16px;color:#1e323e}.local-image-dialog::backdrop{background:#132b3dc9}.local-image-dialog>div{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:13px;margin-bottom:15px}.local-image-dialog img{display:block;max-width:88vw;max-height:75dvh;object-fit:contain;cursor:zoom-in}.local-image-dialog img.full-size{max-width:none;max-height:none;cursor:zoom-out}.local-course-source{font-size:12px;color:#7b8e86;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:15px}.local-course-source summary{cursor:pointer}.local-course-answer-grid .completed{background:#e8f5ec;color:#297647}.local-course-answer-grid .current{outline:2px solid #309afa}.local-course-count{font-size:13px;color:#7895a5}.local-image-failure{font-size:14px;color:#b44b34;padding:12px;background:#fff4ee;border-radius:8px}
.course-explanation-toggle{margin-top:14px;padding:8px 12px;border-radius:9px;background:#e2f1fc;color:#2a7fb4;font-size:15px}
.course-result>.primary,.course-result>.secondary{width:100%;margin-top:14px}
.desktop-guide-sheet{max-height:calc(100dvh - 24px);overflow:auto}
.desktop-guide-sheet>h2{font-size:24px;margin:3px 60px 20px 0;line-height:1.4}
.desktop-guide-platforms{display:flex;gap:6px;padding:4px;border-radius:12px;background:#eef5fa}
.desktop-guide-platforms button{flex:1;padding:9px 4px;border-radius:9px;background:none;color:#668093;font-size:15px}
.desktop-guide-platforms button[aria-selected=true]{background:#fff;color:#2484c6;font-weight:600;box-shadow:0 2px 8px #27618b12}
.desktop-menu-example{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 18px;padding:12px;border:1px solid #dce9f1;border-radius:12px;background:#f8fcff;color:#22495e;font-size:16px;font-weight:600}
.desktop-menu-capsule{display:flex;align-items:center;justify-content:space-around;gap:12px;padding:2px 10px;border:1px solid #d5e1ea;border-radius:20px;background:#fff;color:#222;font-size:21px;line-height:1.4}
.desktop-menu-capsule b{display:block;border:2px solid #299bf2;border-radius:15px;padding:0 6px;line-height:1;font-size:28px;color:#208cd9}
.desktop-menu-capsule i{width:1px;height:20px;background:#e7edf1}
.desktop-guide-steps{display:flex;flex-direction:column;gap:15px;padding:0;margin:0;list-style:none}
.desktop-guide-steps li{display:flex;align-items:center;gap:11px;font-size:19px;line-height:1.5;color:#203d50}
.desktop-guide-steps li>span{display:grid;place-items:center;flex-shrink:0;width:29px;height:29px;border-radius:50%;background:#e5f3fe;color:#2187cd;font-size:17px}
.desktop-guide-steps strong{font-weight:600}
.desktop-guide-note{margin:16px 0 0;font-size:14px;line-height:1.7;color:#6c8291}
.desktop-guide-context{margin:14px 0 0;font-size:12px;line-height:1.6;color:#8295a1}
.desktop-guide .primary{margin-top:18px;padding:13px;font-size:18px}
@media(max-width:350px){.desktop-guide-sheet{padding:20px 16px}.desktop-guide-steps li{font-size:16px}.desktop-guide-note{font-size:13px}.desktop-guide-sheet>h2{font-size:22px}}

.question-swipe-surface{touch-action:pan-y pinch-zoom}
@media(orientation:portrait){body.landscape-exam .question-swipe-surface{touch-action:pan-x pinch-zoom}}

.technique-bank-page .learning-header h1{font-size:26px;line-height:1.4;overflow-wrap:anywhere}
.technique-search{display:block;margin:16px 0 22px;color:#486476;font-size:18px;font-weight:600}
.technique-search span{display:block;margin-bottom:8px}
.technique-search input{box-sizing:border-box;width:100%;min-width:0;border:1px solid #cbdfe9;background:#fff;border-radius:13px;padding:14px 12px;font:inherit;font-size:17px;color:#233d4b}
.technique-bank-page .technique-card{min-width:0;min-height:174px;padding:18px 13px}
.technique-bank-page .technique-card strong{font-size:22px;line-height:1.5;overflow-wrap:anywhere}
.technique-bank-page .technique-description{font-size:16px;white-space:normal;overflow-wrap:anywhere}
.technique-bank-page .technique-card small{margin-top:auto;font-size:15px;color:#50738a}
.technique-section{margin:26px 0}
.technique-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.technique-section-title h2{font-size:22px;margin:0;line-height:1.5}
.technique-section-title>button{flex-shrink:0;font-size:16px;background:#e4f3fd;color:#287ab6;border-radius:10px;padding:10px 8px}
.technique-topic{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:17px 14px;margin:10px 0;border:1px solid #dceaf1;border-radius:15px;background:#fff;text-align:left;color:#233d4b}
.technique-topic strong{font-size:20px;line-height:1.55;font-weight:650;min-width:0;overflow-wrap:anywhere}
.technique-topic>span{flex-shrink:0;font-size:16px;color:#56809a}
.technique-found{font-size:17px}.technique-search-result>small{display:block;color:#6f8795;font-size:14px;margin-top:18px;line-height:1.5}
@media(max-width:360px){.technique-bank-page .technique-grid{grid-template-columns:1fr}.technique-section-title{align-items:flex-start;flex-wrap:wrap}}

.shell:has(.technique-directory-page){background:linear-gradient(155deg,#f2f8ff 0%,#edf5fb 55%,#f6f9ff 100%)}
.technique-directory-top{display:flex;align-items:center;min-height:34px;margin:0 0 18px}
.technique-directory-top .back{background:transparent;color:#64829a;padding:5px 1px;font-size:17px;font-weight:550}
.technique-directory-page .technique-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 13px;padding-bottom:8px}
.technique-directory-page .technique-card{--tile-top:#fff;--tile-bottom:#e5f1ff;--tile-rim:#c0d5eb;position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;text-align:center;gap:0;min-height:84px;padding:14px 12px;border:1px solid rgba(255,255,255,.95);border-radius:18px;background:linear-gradient(160deg,var(--tile-top),var(--tile-bottom));box-shadow:0 5px 0 var(--tile-rim),0 9px 16px rgba(54,87,118,.1),inset 0 2px 2px #ffffff;transition:transform .16s ease,box-shadow .16s ease;color:#284760;-webkit-tap-highlight-color:transparent}
.technique-directory-page .technique-card:nth-child(4n+2){--tile-bottom:#e7f4ef;--tile-rim:#bdd8cf;color:#2d5146}
.technique-directory-page .technique-card:nth-child(4n+3){--tile-bottom:#f1edfb;--tile-rim:#cec7e3;color:#4b4266}
.technique-directory-page .technique-card:nth-child(4n){--tile-bottom:#fff1e7;--tile-rim:#e6d0bd;color:#66503d}
.technique-directory-page .technique-card strong{display:block;width:100%;font-size:20px;font-weight:700;line-height:1.5;overflow-wrap:anywhere;text-wrap:pretty;text-shadow:0 1px 0 rgba(255,255,255,.95)}
.technique-directory-page .technique-card:active{transform:translateY(4px);box-shadow:0 1px 0 var(--tile-rim),0 3px 8px rgba(54,87,118,.1),inset 0 1px 3px #dbe5ed}
.technique-directory-page .technique-card:focus-visible{outline:3px solid #438fcb;outline-offset:6px}
.technique-directory-page .technique-pending:disabled{opacity:.55;cursor:default}
@media(hover:hover){.technique-directory-page .technique-ready:hover{transform:translateY(-2px);box-shadow:0 7px 0 var(--tile-rim),0 12px 20px rgba(54,87,118,.14),inset 0 2px 2px #fff}}
@media(max-width:360px){.technique-directory-page .technique-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 11px}.technique-directory-page .technique-card{padding:12px 8px;min-height:82px;border-radius:16px}.technique-directory-page .technique-card strong{font-size:18px}}
@media(prefers-reduced-motion:reduce){.technique-directory-page .technique-card{transition:none}}

.technique-submenu-header{position:relative;display:flex;align-items:center;justify-content:center;min-height:40px;margin:0 0 26px}
.technique-submenu-header .back{position:absolute;left:0;background:transparent;color:#64829a;padding:5px 1px;font-size:17px;font-weight:550}
.technique-bank-page .technique-submenu-header h1{margin:0;font-size:23px;line-height:1.4;text-align:center;color:#2d495e}
.technique-submenu-page .technique-card{min-height:104px;padding:18px 13px}
.technique-submenu-page .technique-card strong{font-size:23px;line-height:1.5}
.technique-submenu-page .technique-card:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc((100% - 13px)/2)}
@media(max-width:360px){.technique-submenu-page .technique-card{min-height:98px;padding:16px 9px}.technique-submenu-page .technique-card strong{font-size:21px}.technique-submenu-page .technique-card:last-child:nth-child(odd){width:calc((100% - 11px)/2)}}
