/* Shared RPG surfaces. Static light, original artwork, no scrolling effects. */
:root body#sensei-app.tactical166{--rpg-blue185:#b1e2ff;--rpg-line185:#88b8d33d;--rpg-panel185:#0c1822f2}
:root body#sensei-app.tactical166 #root .app.online47 :is(button,.btn,.text-button,.navlink),:root body#sensei-app.tactical166 :is(#modal,.release109-dialog) button{border-radius:6px!important;border:1px solid #8ab3cc45!important;background:linear-gradient(180deg,#253d4d,#14232e)!important;color:#e4eef5!important;box-shadow:inset 0 1px #d5ecff20,inset 0 -2px #0002!important;font-family:RpgDisplay184,system-ui!important;font-weight:600!important;letter-spacing:.015em;transform:none!important;text-shadow:none!important;transition:background-color .12s,border-color .12s}
:root body#sensei-app.tactical166 #root .app.online47 :is(button,.btn):hover:not(:disabled){background:linear-gradient(180deg,#304c60,#1e3343)!important;border-color:#b3dfff99!important}
:root body#sensei-app.tactical166 #root .app.online47 :is(.primary,button[aria-current=page],button[aria-pressed=true],button[aria-selected=true],button.active){background:linear-gradient(180deg,#426d87,#25485e)!important;border-color:#addcff99!important;color:#f2faff!important;box-shadow:inset 0 1px #e1f7ff38,inset 0 -2px #9bd7ff88!important}
:root body#sensei-app.tactical166 #root .app.online47 :is(.danger,[data-ex132-remove]){background:linear-gradient(180deg,#493038,#2b2028)!important;border-color:#b06d7466!important}
:root body#sensei-app.tactical166 #root .app.online47 button:disabled{opacity:.45!important;cursor:not-allowed!important}
:root body#sensei-app.tactical166 #root .app.online47 :is(button,a,summary,input,select,textarea):focus-visible{outline:2px solid #c9eaff!important;outline-offset:3px!important}
:root body#sensei-app.tactical166 #root .app.online47 :is(input:not([type=checkbox]):not([type=radio]),select,textarea){border:1px solid #91b7ce4d!important;border-radius:6px!important;background:#091620!important;color:#e8f2f8!important;box-shadow:inset 0 1px 4px #0003!important}
:root body#sensei-app.tactical166 #root .app.online47 :is(input,select,textarea){accent-color:#a9dafa}
:root body#sensei-app.tactical166 #root .app.online47 :is(.desktop-nav124,.mobile-nav){border-radius:12px!important;border-color:#91bad23d!important;background:linear-gradient(115deg,#91b9d112,transparent 50%),#0b151ff5!important;box-shadow:inset 0 1px #d1eaff1c,0 10px 24px #0003!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
:root body#sensei-app.tactical166 #root .app.online47 .desktop-nav124 summary{font:600 15px/1.2 RpgDisplay184,system-ui!important;border-radius:6px!important;background:transparent!important}
:root body#sensei-app.tactical166 #root .app.online47 .topbar{height:auto!important;min-height:38px!important;padding:4px 24px!important}
:root body#sensei-app.tactical166 #root .app.online47 .topbar .tag{padding:4px 8px!important;font-size:10px!important}
:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132){max-width:1440px;margin-inline:auto;color:#e4edf3}
:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132) :is(h1,h2,h3){font-family:RpgDisplay184,system-ui!important;color:#e4edf3!important;letter-spacing:.015em!important;text-transform:none!important}
:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132) h1{font-size:32px!important;line-height:1.2!important;margin:0!important}
:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132) h2{font-size:25px!important;line-height:1.25!important}
:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132) h3{font-size:21px!important;line-height:1.25!important}
:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132) :is(p,small){line-height:1.55}
:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132) :is(button,.btn){min-height:42px!important;padding:10px 16px!important;font-size:15px!important;white-space:normal;max-width:100%}
:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132) *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
:root body#sensei-app.tactical166 #root #content :is(.xp-stage,.skill-hub,.rank-strip,.skill-board-widget,.xp-level-directory,.ex132>section,.ex132>details){border:1px solid #88b8d33d!important;border-radius:12px!important;background:linear-gradient(125deg,#9ecae00a,transparent 60%),#0c1822ed!important;box-shadow:inset 0 1px #d2eaff17!important;padding:24px!important;margin:0!important;min-width:0}
:root body#sensei-app.tactical166 #root #content :is(.task94-row,.ex132-tech,.skill-video-row,.skill-category,.skill-item){border:1px solid #88b8d331!important;border-radius:8px!important;background:linear-gradient(115deg,#8cc2df0b,transparent 70%),#101e29!important;box-shadow:inset 0 1px #c3e7ff12!important;min-width:0}
:root body#sensei-app.tactical166 #root #content :is(.progress,.thin-track,progress){accent-color:#a6d9f5;border-radius:3px!important;background:#061019!important;box-shadow:inset 0 1px 3px #0008!important}
:root body#sensei-app.tactical166 #root #content :is(.xp-stage-track>span,progress::-webkit-progress-value){background:linear-gradient(90deg,#3f779a,#bee8ff)!important;border-radius:2px!important}
/* Training: character progress and a quest journal. */
:root body#sensei-app.tactical166 #root #content .rpg-training185{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,2fr);gap:20px;align-items:start}
:root body#sensei-app.tactical166 #root #content .rpg-training185>.pagehead{grid-column:1/-1;margin:0!important;padding:8px 0 10px!important;min-width:0}
.rpg-training185 .pagehead .lead:empty{display:none}
:root body#sensei-app.tactical166 #root #content .rpg-training185>.xp-stage{grid-column:1;grid-row:2;display:block!important;min-height:0!important;overflow:hidden}
:root body#sensei-app.tactical166 #root #content .rpg-training185>.skill-hub{grid-column:2;grid-row:2/span 3;padding:24px!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185>.rank-strip{grid-column:1;grid-row:3;display:flex!important;flex-wrap:wrap;gap:16px;min-height:0!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185>.skill-board-widget{grid-column:1;grid-row:4;display:grid;gap:14px}
:root body#sensei-app.tactical166 #root #content .rpg-training185>.xp-level-directory{grid-column:1/-1}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage::before,:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage::after{content:none!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-top{display:flex!important;gap:14px;align-items:start!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-top>div:first-child{flex:1;min-width:0}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-top h2{font-size:25px!important;line-height:1.15!important;margin:8px 0!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-badge{width:64px!important;height:74px!important;flex:0 0 64px!important;padding:7px!important;border-radius:0!important;clip-path:polygon(20% 0,80% 0,100% 18%,100% 82%,80% 100%,20% 100%,0 82%,0 18%);border:0!important;background:linear-gradient(140deg,#8fbed4,#24485e)!important;box-shadow:inset 0 0 0 2px #b4ddf4!important;text-align:center}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-badge strong{font:700 38px/1 RpgDisplay184,system-ui!important;color:#f2faff!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-badge span{font-size:10px!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-values{display:block!important;margin:22px 0 18px!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-total strong{font:700 44px/1.1 RpgDisplay184,system-ui!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-remaining{margin-top:14px;text-align:left!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-caption{display:flex;flex-direction:column;align-items:start;gap:7px;margin-top:16px}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .skill-hub-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:0 0 18px;margin:0 0 20px;border:0;border-bottom:1px solid #91b7ce30;background:transparent!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .skill-hub-tabs button{flex:1 1 100px}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .task94-list{padding:0!important;margin:0!important;background:transparent!important;border:0!important;box-shadow:none!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .skill-catalog-head{margin:0 0 20px!important;padding:0!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .task94-row{padding:22px!important;margin-bottom:14px!important;gap:24px;align-items:start;position:relative}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .task94-actions{min-width:130px;gap:14px}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .task94-actions>strong{font:600 25px/1.2 RpgDisplay184,system-ui!important;color:#b1e2ff!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .task-state157{display:inline-block;padding:4px 9px;border:1px solid #88b8d34d;border-radius:4px;font-size:11px!important;background:#adcfe410;margin:0 0 12px!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .task-state157[data-state=done]{color:#b3ddc9!important;border-color:#86c9ac66}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .rank-strip .space{flex:1 1 150px;min-width:0}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .rank-strip .rank-badge{max-width:100%}
/* Exams: target belt and the verified preparation checklist. */
:root body#sensei-app.tactical166 #root #content .ex132{display:grid;gap:20px}
:root body#sensei-app.tactical166 #root #content .ex132>header{padding:8px 0 0!important}
:root body#sensei-app.tactical166 #root #content .ex132>header>p:not(.eyebrow){max-width:850px;color:#b0c2cf!important}
:root body#sensei-app.tactical166 #root #content .ex132-select{padding:18px 22px!important;margin:0!important;background:#0d1a25!important;border:1px solid #88b8d33d!important;border-radius:9px!important;gap:18px!important;align-items:end}
:root body#sensei-app.tactical166 #root #content .ex132-overview{display:grid!important;grid-template-columns:minmax(240px,1fr) minmax(0,1.6fr)!important;gap:36px!important;align-items:center!important;padding:28px!important}
:root body#sensei-app.tactical166 #root #content .ex132-overview h2{font-size:34px!important;margin:12px 0!important}
:root body#sensei-app.tactical166 #root #content .ex132-overview figure{width:100%!important;max-width:none!important;margin:0!important;padding:14px;border:1px solid #a8cce535;border-radius:6px;background:#07111a}
:root body#sensei-app.tactical166 #root #content .ex132-overview img{display:block!important;width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important;border-radius:2px!important;filter:none!important}
:root body#sensei-app.tactical166 #root #content .ex132-overview figcaption{font-size:12px;line-height:1.5;color:#9bb0c0;margin-top:12px}
:root body#sensei-app.tactical166 #root #content .ex132-tech{margin:10px 0!important;padding:0!important;overflow:visible}
:root body#sensei-app.tactical166 #root #content .ex132-tech>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px!important;color:#e1eff9!important;font:600 20px/1.3 RpgDisplay184,system-ui!important}
:root body#sensei-app.tactical166 #root #content .ex132-tech>summary small{flex-shrink:0;font:500 12px/1.4 system-ui!important;padding:5px 9px;border:1px solid #7da6bf40;border-radius:4px;color:#b8d8ee!important;background:#a0cce810}
:root body#sensei-app.tactical166 #root #content .ex132-tech[open]{border-color:#a2d6f37a!important}
:root body#sensei-app.tactical166 #root #content .ex132-detail{padding:20px!important;border-top:1px solid #88b8d330;background:#08141d55}
:root body#sensei-app.tactical166 #root #content .ex132 :is(.ex132-event,.ex132-history,.ex132-final)>summary{font:600 21px/1.4 RpgDisplay184,system-ui!important;color:#c4e1f4!important}
:root body#sensei-app.tactical166 #root #content .ex132 [data-ex132-status]:empty{display:none}
@media(max-width:1000px){:root body#sensei-app.tactical166 #root #content .rpg-training185{grid-template-columns:minmax(0,1fr)}:root body#sensei-app.tactical166 #root #content .rpg-training185>:is(.pagehead,.xp-stage,.skill-hub,.rank-strip,.skill-board-widget,.xp-level-directory){grid-column:1!important;grid-row:auto!important}:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-values{display:flex!important;justify-content:space-between}:root body#sensei-app.tactical166 #root #content .ex132-overview{grid-template-columns:minmax(0,1fr)!important;gap:22px!important}}
@media(max-width:600px){:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132){gap:14px}:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132) h1{font-size:28px!important}:root body#sensei-app.tactical166 #root #content :is(.xp-stage,.skill-hub,.rank-strip,.skill-board-widget,.xp-level-directory,.ex132>section,.ex132>details){padding:18px!important}:root body#sensei-app.tactical166 #root #content .rpg-training185>.skill-hub{padding:16px!important}:root body#sensei-app.tactical166 #root #content .rpg-training185 .task94-row{padding:16px!important;display:flex!important;flex-direction:column;gap:16px}:root body#sensei-app.tactical166 #root #content .rpg-training185 .task94-actions{width:100%;align-items:start}:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-values{display:block!important}:root body#sensei-app.tactical166 #root #content .ex132-select{padding:16px!important;display:flex;flex-wrap:wrap}:root body#sensei-app.tactical166 #root #content .ex132-select label{flex:1 1 180px;min-width:0;width:100%}:root body#sensei-app.tactical166 #root #content .ex132-overview h2{font-size:29px!important}:root body#sensei-app.tactical166 #root #content .ex132-tech>summary{padding:15px 12px!important;gap:10px;font-size:18px!important}:root body#sensei-app.tactical166 #root #content .ex132-tech>summary small{font-size:10px!important;max-width:105px;white-space:normal;text-align:center;flex-shrink:1}:root body#sensei-app.tactical166 #root #content .ex132-detail{padding:14px!important}}
@media(prefers-reduced-transparency:reduce){:root body#sensei-app.tactical166 #root #content :is(.xp-stage,.skill-hub,.rank-strip,.skill-board-widget,.xp-level-directory,.ex132>section,.ex132>details){background:#0c1822!important}}
@media(prefers-reduced-motion:reduce){:root body#sensei-app.tactical166 #root .app.online47 :is(button,.btn){transition:none!important}}
/* Carry the established mountain scene across the application. */
:root body#sensei-app.tactical166:has(.rpg-app185){background-attachment:scroll!important}
:root body#sensei-app.tactical166 #root .app.rpg-app185:not(.dashboard89-home) .main{isolation:isolate;position:relative;background:#010205!important}
:root body#sensei-app.tactical166 #root .app.rpg-app185:not(.dashboard89-home) .main::before{content:'';position:absolute;pointer-events:none;top:70px;left:0;right:0;width:100%;height:1120px;z-index:0;background:url('/assets/samurai-mountains89-v018134.webp') center top/100% auto no-repeat!important;opacity:.46;mask-image:radial-gradient(ellipse at 50% 40%,#000 20%,transparent 76%);-webkit-mask-image:radial-gradient(ellipse at 50% 40%,#000 20%,transparent 76%)}
:root body#sensei-app.tactical166 #root .app.rpg-app185:not(.dashboard89-home) .main::after{content:none!important}
:root body#sensei-app.tactical166 #root .app.rpg-app185 .wrap{position:relative;z-index:2}
:root body#sensei-app.tactical166 #root .app.rpg-app185 .wrap::before{content:none!important}
:root body#sensei-app.tactical166 #root #content :is(.rpg-training185,.ex132) :is(p,small,label){font-family:system-ui,sans-serif!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .task94-actions{flex:0 1 210px;max-width:210px}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .task94-actions>strong{font-size:19px!important;line-height:1.4!important;text-align:left}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-badge{display:flex!important;flex-direction:column;align-items:center!important;justify-content:center!important;gap:3px;filter:none!important;text-shadow:none!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .xp-stage-badge strong{color:#f2faff!important;text-shadow:none!important;filter:none!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 :is(.skill-row,.skill-library,.video-submit,.skill-library-empty){background:#0c1922e8!important;border:1px solid #88b8d330!important;border-radius:8px!important;box-shadow:inset 0 1px #d2eaff12!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .skill-row{padding:16px!important}
@media(max-width:600px){:root body#sensei-app.tactical166 #root #content .rpg-training185 .task94-actions{flex:0 0 auto;max-width:100%}}
:root body#sensei-app.tactical166 #root #content .ex132 progress{appearance:none;-webkit-appearance:none;width:100%;height:8px!important;border:0!important;overflow:hidden;border-radius:2px!important;background:#061019!important}
:root body#sensei-app.tactical166 #root #content .ex132 progress::-webkit-progress-bar{background:#061019!important;border-radius:2px}
:root body#sensei-app.tactical166 #root #content .ex132 progress::-webkit-progress-value{background:linear-gradient(90deg,#3f779a,#bee8ff)!important;border-radius:2px}
:root body#sensei-app.tactical166 #root #content .ex132 progress::-moz-progress-bar{background:linear-gradient(90deg,#3f779a,#bee8ff)!important;border-radius:2px}

/* Dashboard controls use the same finish as the other sections. */
:root body#sensei-app.tactical166 #root .app.online47 #content :is(button,.btn,.text-button,.navlink),:root body#sensei-app.tactical166 :is(#modal,.release109-dialog) button{border-radius:6px!important;border:1px solid #8ab3cc45!important;background:linear-gradient(180deg,#253d4d,#14232e)!important;color:#e4eef5!important;box-shadow:inset 0 1px #d5ecff20,inset 0 -2px #0002!important;font-family:RpgDisplay184,system-ui!important;font-weight:600!important;letter-spacing:.015em;transform:none!important;text-shadow:none!important;transition:background-color .12s,border-color .12s}
:root body#sensei-app.tactical166 #root .app.online47 #content :is(button,.btn):hover:not(:disabled){background:linear-gradient(180deg,#304c60,#1e3343)!important;border-color:#b3dfff99!important}
:root body#sensei-app.tactical166 #root .app.online47 #content :is(.primary,button[aria-current=page],button[aria-pressed=true],button[aria-selected=true],button.active){background:linear-gradient(180deg,#426d87,#25485e)!important;border-color:#addcff99!important;color:#f2faff!important;box-shadow:inset 0 1px #e1f7ff38,inset 0 -2px #9bd7ff88!important}
:root body#sensei-app.tactical166 #root .app.online47 #content :is(button,a,summary,input,select,textarea):focus-visible{outline:2px solid #c9eaff!important;outline-offset:3px!important}
:root body#sensei-app.tactical166 #root #content .ex132-tech>summary{border-radius:6px!important;background:#122532!important;box-shadow:none!important;border:0!important;text-align:left!important;justify-content:space-between!important}
:root body#sensei-app.tactical166 #root .app.online47 input[type=file]::file-selector-button{border:1px solid #8ab3cc66;border-radius:5px;background:linear-gradient(180deg,#253d4d,#14232e);color:#e4eef5;padding:9px 12px;min-height:38px;font:600 14px/1.3 RpgDisplay184,system-ui;cursor:pointer;margin-right:10px}
:root body#sensei-app.tactical166 #root .app.online47 #content :is(.danger,[data-ex132-remove]){background:linear-gradient(180deg,#493038,#2b2028)!important;border-color:#b06d7466!important}
:root body#sensei-app.tactical166 #root #content .rpg-training185 :is(.task-photos138 form[data-photo-upload],.photo-list138 article){background:#0c1922e8!important;border:1px solid #88b8d330!important;border-radius:8px!important;box-shadow:inset 0 1px #d2eaff12!important}
@media(min-width:1001px){:root body#sensei-app.tactical166 #root #content .rpg-training185{grid-template-rows:auto auto auto 1fr auto}}
:root body#sensei-app.tactical166 #root #content .rpg-training185 .rank-strip .rank-current-card121{width:100%!important;max-width:none!important;height:auto!important;object-fit:contain!important;border-radius:4px!important}
