/* Layout shared by the public pages, account area and learning module. */
.muted { color: #68728a; line-height: 1.55; }
.eyebrow { color: #315ee7; font-size: 12px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.pinkText { color: #b93678; }
.pricePending { font-size:24px; line-height:1.25; }
.pricingAction { text-align:center; margin-top:30px; }
.seminarNotice { margin-bottom:16px; }
.message.info { background: #edf3ff; color: #234274; }
.message.warning { background: #fff3df; color: #765016; }
.statusPill.inactive { background: #edf1f8; color: #596581; }
.statusPill.inactive .dot { background: #8b95aa; }
.hero h1 span { background: linear-gradient(90deg, #bfd0ff, #ffd1e6); -webkit-background-clip: text; background-clip: text; color: transparent; }
.heroCard p { color: #566079; }
.serviceCard > .btn { width: 100%; margin-top: 14px; }
.serviceCard h2 { margin: 0 0 10px; color: #13255e; font-size: 21px; }
.quickCard { display: block; color: inherit; text-decoration: none; }
.quickCard:hover, .quickCard:focus-visible { text-decoration: none; }
.welcomeActions .btn { min-width: 185px; }
.avatar.large { width: 72px; height: 72px; font-size: 24px; }
.profilePreview { min-width: 0; overflow-wrap: anywhere; }
.profilePreview h1, .profilePreview h2 { margin-bottom: 8px; color: #13255e; }
.profilePreview .actions { display: flex; gap: 8px; flex-wrap: wrap; }
.pageWrap, .legalText { min-width: 0; }
.panel, .serviceCard, .catalogCard, .situationCard { min-width: 0; }
.panelHead { flex-wrap: wrap; }
.panelHead > :first-child { min-width: 0; }
.panelHead h2, .panelHead h3 { overflow-wrap: anywhere; }
.formStack { display: grid; gap: 15px; min-width: 0; }
.formStack > div { display: grid; gap: 6px; min-width: 0; }
.formStack label { color: #374363; font-weight: 750; font-size: 13px; }
.formStack input:not([type="checkbox"]):not([type="radio"]),
.formStack select, .formStack textarea,
.comments textarea { width: 100%; max-width: 100%; min-height: 44px; box-sizing: border-box; border: 1px solid #cbd5e7; border-radius: 10px; background: #fff; color: #18213d; padding: 10px 12px; font: inherit; }
.formStack input[type="file"] { padding: 8px; }
.formStack textarea, .comments textarea { min-height: 96px; resize: vertical; }
.formStack .helptext { color: #68728a; font-size: 12px; line-height: 1.5; }
.formStack ul.errorlist { margin: 0; padding-left: 18px; color: #9c2845; font-size: 13px; }
.formStack > .btn { justify-self: start; }
.formStack > .btn.full { justify-self: stretch; }
.listRow { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-width: 0; padding: 16px 2px; border-top: 1px solid #e2e7f2; color: #243250; text-decoration: none; }
.listRow:first-of-type { border-top: 0; }
.listRow > :first-child { min-width: 0; overflow-wrap: anywhere; }
a.listRow:hover { color: #315ee7; background: #f8faff; border-radius: 10px; padding-left: 10px; padding-right: 10px; }
.listRow h3 { margin: 0 0 5px; color: #13255e; font-size: 16px; }
.listRow p { margin: 4px 0; color: #68728a; font-size: 13px; line-height: 1.5; }
.listRow > .btn, .listRow > .tag { flex: 0 0 auto; }
.listRow .actions { display: flex; flex-wrap: wrap; gap: 8px; }
.listRow .actions form { margin: 0; }
.tag { display: inline-flex; align-items: center; justify-content: center; min-height: 27px; max-width: 100%; padding: 5px 10px; border: 1px solid #dbe4f4; border-radius: 999px; background: #f2f5fb; color: #405170; font-size: 11px; font-weight: 850; line-height: 1.25; text-align: center; overflow-wrap: anywhere; }
.tag.green { background: #e9f8ef; border-color: #c4e9d2; color: #236b45; }
.tag.red { background: #fff0f2; border-color: #f4c9d1; color: #9c2845; }
.tag.pink { background: #fff0f7; border-color: #f7cbe1; color: #a3346f; }
.emptyState { padding: 30px 16px; text-align: center; color: #68728a; }
.emptyState > span:first-child { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: #eef3ff; color: #315ee7; font-size: 24px; }
.emptyState h2, .emptyState h3 { margin: 12px 0 7px; color: #13255e; }
.emptyState p { margin: 0 auto 16px; max-width: 44ch; line-height: 1.55; }
.noteRow { padding: 18px 0; border-bottom: 1px solid #e2e7f2; }
.noteRow:last-child { border-bottom: 0; }
.noteRow > p { overflow-wrap: anywhere; line-height: 1.55; }
.noteRow > .btn { margin-top: 12px; }
.searchForm { display: flex; gap: 10px; margin: 0 0 18px; }
.searchForm input { flex: 1 1 auto; min-width: 0; min-height: 44px; border: 1px solid #cbd5e7; border-radius: 11px; background: #fff; padding: 10px 13px; font: inherit; }
.srOnly { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.tableScroll { overflow-x: auto; padding: 0; scrollbar-width: thin; }
.dataTable { width: 100%; min-width: 760px; border-collapse: collapse; background: #fff; }
.dataTable th, .dataTable td { padding: 14px 16px; border-bottom: 1px solid #e2e7f2; text-align: left; vertical-align: middle; font-size: 13px; }
.dataTable th { background: #f7f9fe; color: #56627e; font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.dataTable tr:last-child td { border-bottom: 0; }
.dataTable td:first-child { min-width: 190px; overflow-wrap: anywhere; }
.dataTable td:last-child { text-align: right; }
.postCard { margin-bottom: 16px; }
.postCard h2 { margin: 0 0 12px; color: #13255e; overflow-wrap: anywhere; }
.postBody { line-height: 1.65; overflow-wrap: anywhere; }
.assignmentBox, .solutionBox { margin-top: 18px; padding: 16px; border: 1px solid #dbe4ff; border-radius: 14px; background: #f5f8ff; }
.solutionBox { border-color: #cbe8d7; background: #f2faf5; }
.assignmentBox p, .solutionBox p { line-height: 1.55; }
.comments { margin-top: 20px; padding-top: 16px; border-top: 1px solid #e2e7f2; }
.comments h3 { margin: 0 0 14px; color: #13255e; }
.comment { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 11px; padding: 13px 0; border-top: 1px solid #eef1f7; }
.comment:first-of-type { border-top: 0; }
.comment .avatar { text-decoration: none; }
.comment p { margin: 5px 0; line-height: 1.5; overflow-wrap: anywhere; }
.memberRow { display: flex; align-items: center; gap: 10px; padding: 8px 0; color: #243250; text-decoration: none; overflow-wrap: anywhere; }
.memberRow:hover { color: #315ee7; }
.memberRow .avatar { flex: 0 0 38px; }
.learningApp .topTitleGroup { display: flex; align-items: center; gap: 12px; min-width: 0; }
.learningApp .topTitleGroup > div { min-width: 0; }
.learningApp .topTitleGroup h2 { overflow-wrap: anywhere; }
.learningApp .topTitleGroup p { overflow-wrap: anywhere; }
.learningApp .theoryNav { position: relative; padding-right: 34px; }
.learningApp .theoryNav::after { content: "▸"; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: currentColor; font-size: 15px; opacity: .8; }
.learningApp .theoryNav[aria-expanded="true"]::after { transform: translateY(-50%) rotate(90deg); }
.learningApp .practiceNavCounter { display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding-bottom: 0; }
.learningApp .practiceNavCounter span { white-space: nowrap; }
.learningApp .annotationTools label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 6px 10px; border: 1px solid #d7e1ef; border-radius: 10px; background: #fff; color: #13255e; font-size: 13px; font-weight: 750; }
.learningApp .annotationTools select { min-height: 30px; border: 1px solid #d7e1ef; border-radius: 7px; background: #fff; color: #18213d; padding: 3px 7px; }
.learningApp .simNumbers .numBtn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; color: #18213b; }
.learningApp .simNumbers .numBtn.locked { background: #f3f4f8; color: #939caf; }
.catalogGrid, .situationGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.catalogCard, .situationCard { display: flex; flex-direction: column; gap: 10px; padding: 20px; border: 1px solid #e2e7f2; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(20, 36, 87, .05); }
.catalogCard h2 { margin: 0; color: #13255e; font-size: 20px; overflow-wrap: anywhere; }
.catalogCard p, .situationCard p { margin: 0; color: #68728a; line-height: 1.55; }
.catalogCard .btn, .situationCard .btn { margin-top: auto; align-self: flex-start; }
.practicePreview { margin-top: 16px; }
.practicePreview > summary { width: fit-content; min-height: 44px; display: inline-flex; align-items: center; padding: 9px 14px; border: 1px solid #d7e1ff; border-radius: 10px; background: #edf2ff; color: #234a9c; font-size: 13px; font-weight: 800; cursor: pointer; }
.practicePreview > summary:hover { background: #dfe9ff; }
.practicePreview .situationGrid { margin-top: 14px; }
.situationCard.isLocked { background: #f8f9fc; }
.blurPlaceholder { padding: 16px; border: 1px solid #e3e7f0; border-radius: 12px; background: repeating-linear-gradient(0deg, #f0f2f7, #f0f2f7 14px, #f8f9fc 14px, #f8f9fc 28px); color: #929bb0; filter: blur(2px); line-height: 1.8; user-select: none; }
.bigPlaceholder { min-height: 230px; }
.lockedPage { position: relative; max-width: 760px; margin: 0 auto; }
.lockedPage .lockCard { position: relative; margin: -120px auto 0; }
.itemProgress { display: block; width: 100%; height: 8px; margin: 0 0 18px; accent-color: #315ee7; }
.simJumpNav { margin-bottom: 12px; }
.simJumpCurrent { color: #56627e; font-size: 12px; font-weight: 800; }
.review { margin-top: 16px; }
.reviewCard p { overflow-wrap: anywhere; }
.categoryChips { display: flex; flex-wrap: wrap; gap: 8px; }
.appShell .sideNav a,.appShell .sideNav button { width:100%; min-height:44px; margin:0; border:0; background:transparent; color:rgba(255,255,255,.82); display:flex; align-items:center; gap:11px; padding:11px 12px; border-radius:11px; text-align:left; text-decoration:none; font-size:13px; font-weight:750; cursor:pointer; box-sizing:border-box; }
.appShell .sideNav a:hover,.appShell .sideNav a.active,.appShell .sideNav button:hover { background:rgba(255,255,255,.11); color:#fff; }
.appShell .sideNav a.active .ico { background:linear-gradient(135deg,var(--blue-2),var(--pink-2)); }
.appShell .sideNav form { margin:0; }
.appShell .sidebarFoot .miniUserText span { font-size:10px; line-height:1.35; color:rgba(255,255,255,.65); overflow-wrap:anywhere; }
.appShell .quickCard { text-decoration:none; color:inherit; }
.appShell .quickCard:hover { text-decoration:none; }
.appShell .accountGrid > *,.appShell .cardGrid > *,.appShell .sessionCard > * { min-width:0; }
.appShell .sessionInfo,.appShell .sessionInfo h3,.appShell .sessionInfo p { overflow-wrap:anywhere; }
.appShell .sessionAction .btn.disabled { pointer-events:none; }
.appShell .panel details { padding:12px 0; border-bottom:1px solid var(--line); }
.appShell .panel details summary { cursor:pointer; font-weight:800; color:var(--navy); }
.appShell .panel details p { color:var(--muted); line-height:1.55; }
@media (max-width: 820px) {
  .catalogGrid, .situationGrid { grid-template-columns: 1fr; }
  .learningApp .top { align-items: center; }
}
@media (max-width: 620px) {
  .publicNavInner { gap: 8px; }
  .navActions { gap: 6px; }
  .navActions .btn { padding: 8px 9px; font-size: 12px; }
  .navActions .btn:first-child { display: inline-flex; }
  .hero h1 { font-size: clamp(34px, 9vw, 42px); }
  .heroTrust { gap: 10px; }
  .welcomeActions { display: grid; grid-template-columns: 1fr; }
  .welcomeActions .btn { width: 100%; min-width: 0; }
  .serviceMeta { flex-wrap: wrap; }
  .listRow { flex-wrap: wrap; align-items: flex-start; gap: 10px; }
  .listRow > .btn { width: 100%; }
  .listRow .actions { width: 100%; }
  .listRow .actions form { flex: 1 1 130px; }
  .listRow .actions .btn { width: 100%; }
  .pageHead > .btn, .pageHead > form { width: 100%; }
  .searchForm { flex-wrap: wrap; }
  .searchForm input { flex-basis: 100%; }
  .searchForm .btn { flex: 1 1 100%; }
  .tableScroll { overflow: visible; }
  .dataTable { min-width: 0; display: block; }
  .dataTable thead { display: none; }
  .dataTable tbody, .dataTable tr { display: block; }
  .dataTable tr { padding: 14px 16px; border-bottom: 1px solid #e2e7f2; }
  .dataTable tr:last-child { border-bottom: 0; }
  .dataTable td, .dataTable td:last-child { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 10px; align-items: center; width: 100%; padding: 7px 0; border: 0; text-align: right; overflow-wrap: anywhere; }
  .dataTable td::before { content: attr(data-label); color: #68728a; font-size: 11px; font-weight: 850; text-align: left; text-transform: uppercase; }
  .dataTable td:first-child { display: block; min-width: 0; text-align: left; }
  .dataTable td:first-child::before { display: block; margin-bottom: 6px; }
  .dataTable td[colspan] { display: block; text-align: left; }
  .dataTable td[colspan]::before { content: none; }
  .dataTable td .tag, .dataTable td .btn { justify-self: end; }
  .formStack > .btn { width: 100%; justify-self: stretch; }
  .catalogCard, .situationCard { padding: 16px; }
  .catalogCard .btn, .situationCard .btn { align-self: stretch; }
  .learningApp .topTitleGroup { gap: 8px; }
  .learningApp .topTitleGroup h2 { font-size: 14px; }
  .profilePreview .actions .btn { width: 100%; }
}
