:root {
    --portal-green-950: #123d2d;
    --portal-green-800: #1c5b42;
    --portal-green-700: #267152;
    --portal-green-100: #e7f2ed;
    --portal-ink: #173229;
    --portal-muted: #61736c;
    --portal-border: #dbe5e0;
    --portal-canvas: #f4f7f5;
    --portal-gold: #e8bd62;
    --bs-primary: #1c694b;
    --bs-primary-rgb: 28, 105, 75;
    --bs-link-color: #176342;
    --bs-link-hover-color: #0f482f;
}

html { min-height: 100%; }
body.portal-modern {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--portal-canvas);
    color: var(--portal-ink);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 16px;
    line-height: 1.55;
}
.portal-modern > .container { flex: 1 0 auto; padding-top: 2rem; padding-bottom: 2rem; }
.portal-modern a { text-underline-offset: .18em; }
.portal-modern h1, .portal-modern h2, .portal-modern h3 { color: var(--portal-ink); font-weight: 700; letter-spacing: -.025em; }
.portal-modern h3 { font-size: clamp(1.65rem, 3vw, 2.15rem); margin-bottom: 1.25rem; }

.portal-navbar { background: linear-gradient(105deg, var(--portal-green-950), var(--portal-green-800)); box-shadow: 0 3px 18px rgba(15, 52, 38, .22); }
.portal-navbar .navbar-brand { display: flex; align-items: center; gap: .65rem; color: #fff; font-weight: 700; letter-spacing: -.015em; }
.portal-brand-logo { display: block; width: 2.25rem; height: 2.25rem; border-radius: .65rem; object-fit: cover; }
.portal-navbar .nav-link { color: rgba(255,255,255,.78); border-radius: .55rem; padding: .55rem .7rem !important; font-size: .94rem; white-space: nowrap; }
.portal-navbar .nav-link:hover, .portal-navbar .nav-link:focus, .portal-navbar .nav-link.active { color: #fff; background: rgba(255,255,255,.12); }
.portal-navbar .nav-link i { margin-right: .25rem; }
.portal-preview-badge { display: inline-flex; align-items: center; gap: .35rem; margin: .4rem .35rem; padding: .28rem .55rem; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; color: #fff6d8; font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }

.portal-dashboard { padding-top: 2rem !important; }
.portal-welcome { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(1.5rem, 4vw, 3rem); margin-bottom: 2.25rem; border-radius: 1.25rem; background: linear-gradient(120deg, var(--portal-green-950), var(--portal-green-700)); color: #fff; box-shadow: 0 16px 36px rgba(21, 72, 52, .18); overflow: hidden; position: relative; }
.portal-welcome::after { content: ""; position: absolute; width: 18rem; height: 18rem; right: -6rem; top: -9rem; border: 1px solid rgba(255,255,255,.15); border-radius: 50%; box-shadow: 0 0 0 3rem rgba(255,255,255,.035), 0 0 0 6rem rgba(255,255,255,.025); }
.portal-welcome > * { position: relative; z-index: 1; }
.portal-welcome h1 { color: #fff; margin: .15rem 0 .5rem; font-size: clamp(2rem, 5vw, 3.25rem); }
.portal-welcome p:last-child { max-width: 44rem; margin: 0; color: rgba(255,255,255,.82); }
.portal-eyebrow { margin: 0; color: var(--portal-green-700); font-size: .76rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.portal-welcome .portal-eyebrow { color: #f5d999; }
.portal-primary-action { min-width: max-content; border-radius: .7rem; padding: .75rem 1rem; font-weight: 700; color: var(--portal-green-950); }
.portal-section-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 1rem; }
.portal-section-heading h2 { font-size: 1.35rem; margin: .2rem 0 0; }
.portal-action-grid { margin-bottom: 2.25rem; }
.portal-action-card { height: 100%; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .85rem; padding: 1.1rem; color: var(--portal-ink); background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; text-decoration: none; box-shadow: 0 5px 18px rgba(24, 64, 49, .06); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.portal-action-card:hover { color: var(--portal-ink); transform: translateY(-3px); border-color: #9fc3b3; box-shadow: 0 12px 26px rgba(24, 64, 49, .12); }
.portal-action-icon { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: .8rem; color: var(--portal-green-700); background: var(--portal-green-100); font-size: 1.2rem; }
.portal-action-card strong, .portal-action-card small { display: block; }
.portal-action-card small { margin-top: .1rem; color: var(--portal-muted); font-size: .8rem; }
.portal-panel { padding: clamp(1.2rem, 3vw, 1.7rem); background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; box-shadow: 0 5px 18px rgba(24, 64, 49, .05); }
.portal-link-list a { display: grid; grid-template-columns: 1.5rem 1fr auto; gap: .7rem; align-items: center; padding: .85rem 0; color: var(--portal-ink); text-decoration: none; border-bottom: 1px solid #edf2ef; }
.portal-link-list a:last-child { border-bottom: 0; }
.portal-link-list a > i:first-child { color: var(--portal-green-700); font-size: 1.1rem; }
.portal-link-list strong, .portal-link-list small { display: block; }
.portal-link-list small { color: var(--portal-muted); }

.portal-modern .btn { border-radius: .55rem; font-weight: 650; }
.portal-modern .btn-primary { --bs-btn-bg: #1c694b; --bs-btn-border-color: #1c694b; --bs-btn-hover-bg: #145239; --bs-btn-hover-border-color: #145239; }
.portal-modern .btn-default { color: var(--portal-ink); background: #fff; border: 1px solid #b9c9c1; }
.portal-modern .btn-default:hover { background: #edf3f0; }
.portal-modern .btn-xs { --bs-btn-padding-y: .2rem; --bs-btn-padding-x: .45rem; --bs-btn-font-size: .78rem; }
.portal-modern .form-group { margin-bottom: 1rem; }
.portal-modern label, .portal-modern .control-label { margin-bottom: .35rem; font-weight: 650; }
.portal-modern .form-control, .portal-modern select { min-height: 2.6rem; border-color: #bfcfc7; border-radius: .5rem; }
.portal-modern .form-control:focus, .portal-modern select:focus { border-color: #4f9375; box-shadow: 0 0 0 .2rem rgba(28,105,75,.14); }
.portal-modern .input-group-addon { display: flex; align-items: center; padding: .375rem .75rem; color: var(--portal-muted); background: #eef3f0; border: 1px solid #bfcfc7; }
.portal-modern .table { --bs-table-bg: transparent; --bs-table-striped-bg: #f5f8f6; width: 100%; background: #fff; border-color: #dce6e1; }
.portal-modern .portal-table-responsive { width: 100%; overflow-x: auto; border-radius: .85rem; -webkit-overflow-scrolling: touch; }
.portal-modern .portal-table-responsive > .table { width: 100%; margin-bottom: 0; }
.portal-modern .portal-table-responsive.portal-table-before-actions { margin-bottom: 1.25rem; }
.portal-modern .portal-table-responsive.inspection-asset-panel { margin-bottom: 1rem; }
.portal-modern .table > thead > tr > th { color: #365248; background: #edf3f0; border-bottom-width: 1px; font-size: .79rem; letter-spacing: .035em; text-transform: uppercase; }
.portal-modern .table td, .portal-modern .table th { vertical-align: middle; padding: .72rem; }
.portal-modern .table > thead > tr > th.portal-action-heading { width: 1%; background: #edf3f0; }
.portal-modern .table > tbody > tr > td.portal-action-cell { width: 1%; vertical-align: top !important; white-space: nowrap; text-align: right; }
.portal-modern .portal-action-cell .btn { white-space: nowrap; }
.portal-modern .portal-planning-table > tbody > tr > td { vertical-align: top !important; }
.portal-modern .portal-planning-table .planning-admin-actions { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: .45rem; margin: 0; }
.portal-modern .portal-planning-table .planning-admin-actions .btn { display: inline-flex; align-items: center; justify-content: center; width: 2.45rem; height: 2.45rem; padding: 0; flex: 0 0 2.45rem; }
.portal-modern .portal-planning-table th.planning-admin-heading { min-width: 6.5rem !important; }
.portal-modern .alert { border: 0; border-radius: .75rem; }
.portal-modern .alert-info { color: #214f3d; background: #dceee6; }
.portal-modern .inspection-category-heading,
.portal-modern .inspection-section-heading { margin-top: 2rem; margin-bottom: 1rem; font-weight: 700; }
.portal-modern .inspection-control-panel { padding: 1.4rem; background: #fff; border-radius: .85rem; }
.portal-modern .inspection-control-panel > :last-child { margin-bottom: 0; }
.portal-modern .portal-flag-button { width: 7rem; min-width: 7rem; text-align: center; }
.portal-modern .table > tbody > tr > td.inspection-status-cell,
.portal-modern .table > tbody > tr > td.inspection-flag-cell { vertical-align: top !important; }
.portal-modern .confirmation-modal .modal-content { color: var(--portal-ink); background: #fff; border: 0; border-radius: 1rem; box-shadow: 0 1.25rem 3rem rgba(10, 40, 29, .28); }
.portal-modern .confirmation-modal .portal-confirm-title { display: block; margin: 0; color: var(--portal-ink) !important; opacity: 1; }
.portal-modern .confirmation-modal .portal-confirm-message { display: block; min-height: 3rem; padding: 1.35rem; color: #30483f !important; opacity: 1; font-size: 1rem; }
.portal-modern .confirmation-modal .portal-confirm-footer { display: flex; gap: .55rem; }
.portal-modern .confirmation-modal .portal-confirm-footer .btn { display: inline-block; min-width: 5.5rem; padding: .55rem .9rem; opacity: 1; font-size: .95rem; }
.portal-modern .confirmation-modal .portal-confirm-cancel { color: #344a42 !important; background: #fff !important; border-color: #9bada5 !important; }
.portal-modern .confirmation-modal .portal-confirm-accept.btn-primary { color: #fff !important; background: #1c694b !important; border-color: #1c694b !important; }
.portal-modern .confirmation-modal .portal-confirm-accept.btn-danger { color: #fff !important; background: #c93442 !important; border-color: #c93442 !important; }
.portal-modern .validation-error { color: #a02727; font-size: .86rem; }
.portal-modern .row > [class*="col-xs-"] { position: relative; width: 100%; }
.portal-modern .pull-right { float: right !important; }
.portal-modern .pull-left { float: left !important; }
.portal-modern .well, .portal-modern .panel { padding: 1rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .75rem; }
.portal-modern .portal-footer { flex-shrink: 0; margin-top: auto; padding: 1.4rem 0; color: rgba(255,255,255,.72); background: var(--portal-green-950); font-size: .88rem; }
.portal-modern .portal-footer a { color: #fff; }

.portal-assets-page { padding-bottom: 7rem !important; }
.portal-page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.75rem; }
.portal-page-heading h1 { margin: .15rem 0 .35rem; font-size: clamp(2rem, 4vw, 2.7rem); }
.portal-page-heading p:last-child { margin: 0; color: var(--portal-muted); }
.portal-assets-tabs { gap: .45rem; padding: .45rem; margin-bottom: 1rem; background: #e6eee9; border-radius: .9rem; }
.portal-assets-tabs .nav-link { display: flex; align-items: center; gap: .4rem; color: #385248; border-radius: .65rem; font-weight: 700; }
.portal-assets-tabs .nav-link:hover { color: var(--portal-green-800); background: rgba(255,255,255,.58); }
.portal-assets-tabs .nav-link.active { color: #fff; background: var(--portal-green-700); box-shadow: 0 3px 10px rgba(27, 87, 63, .18); }
.portal-assets-content { padding: clamp(1rem, 3vw, 1.5rem); background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; box-shadow: 0 5px 18px rgba(24, 64, 49, .05); }
.portal-assets-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.portal-asset-search { position: relative; flex: 1 1 34rem; margin: 0 !important; }
.portal-asset-search > i { position: absolute; left: .9rem; top: 50%; z-index: 1; color: var(--portal-muted); transform: translateY(-50%); }
.portal-asset-search .form-control { padding-left: 2.55rem; }
.portal-flag-filter { flex: 0 0 auto; margin: 0; }
.portal-asset-table-summary { display: flex; justify-content: space-between; gap: 1rem; padding: .2rem .1rem .75rem; color: var(--portal-muted); font-size: .88rem; }
.portal-asset-table-summary strong { color: var(--portal-ink); }
.portal-asset-register .portal-select-column { width: 3.25rem; text-align: center; }
.portal-asset-register .portal-view-column { width: 3.5rem; text-align: right; }
.portal-asset-register > tbody > tr > td { vertical-align: middle; }
.portal-asset-name { color: var(--portal-green-800); font-weight: 700; text-decoration: none; }
.portal-asset-name:hover { text-decoration: underline; }
.portal-status { display: inline-flex; align-items: center; gap: .3rem; padding: .28rem .55rem; border-radius: 999px; font-size: .76rem; font-weight: 750; white-space: nowrap; }
.portal-status-danger { color: #a1212e; background: #fbe2e5; }
.portal-status-clear { color: #456057; background: #edf2ef; }
.portal-filter-empty { padding: 2rem; text-align: center; color: var(--portal-muted); background: var(--portal-canvas); border-radius: .75rem; }
.portal-selection-bar { position: sticky; bottom: 1rem; z-index: 1010; display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; max-width: 68rem; padding: 1rem 1.15rem; margin: 1rem auto 0; color: #fff; background: var(--portal-green-950); border: 1px solid rgba(255,255,255,.14); border-radius: 1rem; box-shadow: 0 14px 32px rgba(12, 44, 32, .28); }
.portal-selection-bar[hidden] { display: none !important; }
.portal-selection-bar strong, .portal-selection-bar small { display: block; }
.portal-selection-bar small { color: rgba(255,255,255,.7); }
.portal-selection-actions { display: flex; gap: .55rem; }
.portal-selection-bar .btn-outline-secondary { color: #fff; border-color: rgba(255,255,255,.45); }
.portal-selection-bar .btn-outline-secondary:hover { color: var(--portal-green-950); background: #fff; }
.portal-assets-feature { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; min-height: 12rem; padding: clamp(1rem, 4vw, 2rem); background: var(--portal-canvas); border-radius: .9rem; }
.portal-assets-feature-icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; color: var(--portal-green-700); background: var(--portal-green-100); border-radius: 1rem; font-size: 1.5rem; }
.portal-assets-feature h2 { margin: 0 0 .3rem; font-size: 1.3rem; }
.portal-assets-feature p { margin: 0; color: var(--portal-muted); }
.portal-maintenance-entry > h1 { margin: .15rem 0 1.5rem; font-size: clamp(2rem, 4vw, 2.7rem); }
.portal-selected-assets { padding: 1.2rem 1.35rem; margin-bottom: 1rem; color: var(--portal-ink); background: var(--portal-green-100); border-radius: .85rem; }
.portal-selected-assets h2 { margin: 0 0 .65rem; font-size: 1rem; }
.portal-selected-assets ul { display: grid; gap: .45rem; padding: 0; margin: 0; list-style: none; }
.portal-selected-assets li { display: flex; justify-content: space-between; gap: 1rem; }
.portal-selected-assets li span { color: var(--portal-muted); text-align: right; }
.portal-maintenance-form { padding: clamp(1.15rem, 3vw, 1.75rem); background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; box-shadow: 0 5px 18px rgba(24,64,49,.05); }
.portal-maintenance-form .form-control { max-width: 46rem; }
.portal-maintenance-form textarea { resize: vertical; }
.portal-maintenance-form > .mb-3:last-of-type { margin-bottom: 1.5rem !important; }

.portal-privacy-page { max-width: 78rem; }
.portal-privacy-hero { padding: clamp(1.5rem, 4vw, 2.7rem); margin-bottom: 1.5rem; color: #fff; background: linear-gradient(120deg, var(--portal-green-950), var(--portal-green-700)); border-radius: 1.2rem; box-shadow: 0 14px 32px rgba(21,72,52,.15); }
.portal-privacy-hero .portal-eyebrow { color: #f5d999; }
.portal-privacy-hero h1 { margin: .15rem 0 .45rem; color: #fff; font-size: clamp(2.1rem, 5vw, 3.2rem); }
.portal-privacy-hero > p:not(.portal-eyebrow) { max-width: 48rem; margin: 0 0 1rem; color: rgba(255,255,255,.84); }
.portal-privacy-updated { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .65rem; background: rgba(255,255,255,.12); border-radius: 999px; font-size: .82rem; }
.portal-privacy-layout { display: grid; grid-template-columns: 15rem minmax(0, 1fr); align-items: start; gap: 1.5rem; }
.portal-privacy-nav { position: sticky; top: 5.5rem; display: grid; gap: .15rem; padding: 1rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .9rem; }
.portal-privacy-nav strong { padding: .35rem .55rem .65rem; color: var(--portal-ink); }
.portal-privacy-nav a { padding: .42rem .55rem; color: #456057; border-radius: .45rem; text-decoration: none; font-size: .9rem; }
.portal-privacy-nav a:hover, .portal-privacy-nav a:focus { color: var(--portal-green-800); background: var(--portal-green-100); }
.portal-privacy-content { min-width: 0; padding: clamp(1.3rem, 3vw, 2.2rem); background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; box-shadow: 0 5px 18px rgba(24,64,49,.05); }
.portal-privacy-content section { scroll-margin-top: 5.5rem; padding-bottom: 1.6rem; margin-bottom: 1.6rem; border-bottom: 1px solid #e8efeb; }
.portal-privacy-content section:last-child { padding-bottom: 0; margin-bottom: 0; border-bottom: 0; }
.portal-privacy-content h2 { margin: 0 0 .75rem; font-size: 1.35rem; }
.portal-privacy-content h2:not(:first-child) { margin-top: 1.6rem; }
.portal-privacy-content li + li { margin-top: .4rem; }
.portal-privacy-note { display: flex; gap: .75rem; align-items: flex-start; padding: .9rem 1rem; margin: 1rem 0; color: #274c3d; background: var(--portal-green-100); border-radius: .75rem; }
.portal-privacy-note i { margin-top: .08rem; color: var(--portal-green-700); font-size: 1.15rem; }
.portal-privacy-table-wrap { margin: 1rem 0; border: 1px solid var(--portal-border); border-radius: .75rem; }
.portal-privacy-table { margin-bottom: 0 !important; }
.portal-privacy-table th:first-child { width: 58%; }

.portal-training-page, .portal-training-course, .portal-training-quiz, .portal-certificate-page { max-width: 78rem; }
.portal-training-grid { margin-bottom: 2.5rem; }
.portal-training-card { display: grid; grid-template-columns: auto 1fr; gap: 1rem; height: 100%; padding: 1.35rem; background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; box-shadow: 0 6px 20px rgba(24,64,49,.06); }
.portal-training-card-icon { display: grid; place-items: center; align-self: start; width: 3.25rem; height: 3.25rem; color: var(--portal-green-700); background: var(--portal-green-100); border-radius: .9rem; font-size: 1.35rem; }
.portal-training-card h3 { margin: .65rem 0 .35rem; font-size: 1.35rem; }
.portal-training-card p { margin-bottom: .8rem; color: var(--portal-muted); }
.portal-training-card > .btn { grid-column: 2; justify-self: start; }
.portal-training-meta { display: flex; flex-wrap: wrap; gap: .75rem 1rem; color: #50675e; font-size: .82rem; }
.portal-training-meta i { color: var(--portal-green-700); }
.portal-status-required { color: #765812; background: #fff0c7; }
.portal-status-complete { color: #17603f; background: #ddf3e8; }
.portal-training-empty { display: flex; gap: .85rem; align-items: center; padding: 1.2rem; margin-bottom: 2.5rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .9rem; }
.portal-training-empty > i { color: #218b5a; font-size: 1.7rem; }
.portal-training-empty p { margin: .1rem 0 0; color: var(--portal-muted); }
.portal-training-completed { margin-top: 2.2rem; }
.portal-completed-table strong { color: var(--portal-ink); }
.portal-completed-actions { display: flex; justify-content: flex-end; gap: .45rem; white-space: nowrap; }
.portal-training-course-header { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.5rem; margin-bottom: 1.25rem; color: #fff; background: linear-gradient(120deg,var(--portal-green-950),var(--portal-green-700)); border-radius: 1rem; }
.portal-training-course-header h1 { margin: .15rem 0 .35rem; color: #fff; font-size: clamp(1.8rem,4vw,2.6rem); }
.portal-training-course-header p:last-child { max-width: 48rem; margin: 0; color: rgba(255,255,255,.8); }
.portal-training-course-header .portal-eyebrow { color: #f5d999; }
.portal-course-progress { display: grid; place-items: center; flex: 0 0 5.5rem; width: 5.5rem; height: 5.5rem; padding: .65rem; background: rgba(255,255,255,.12); border-radius: 50%; text-align: center; line-height: 1.05; }
.portal-course-progress strong { font-size: 1.2rem; }
.portal-course-progress span { color: rgba(255,255,255,.72); font-size: .74rem; }
.portal-course-layout { display: grid; grid-template-columns: 17rem minmax(0,1fr); gap: 1.25rem; align-items: start; }
.portal-course-sections { position: sticky; top: 5.5rem; display: grid; gap: .2rem; padding: .85rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .9rem; }
.portal-course-sections > strong { padding: .45rem .55rem .7rem; }
.portal-course-sections a { display: grid; grid-template-columns: 1.65rem 1fr; align-items: center; gap: .55rem; padding: .5rem; color: #41584f; border-radius: .5rem; text-decoration: none; font-size: .88rem; }
.portal-course-sections a span { display: grid; place-items: center; width: 1.65rem; height: 1.65rem; background: #edf3f0; border-radius: 50%; font-size: .75rem; font-weight: 800; }
.portal-course-sections a:hover { color: var(--portal-green-800); background: var(--portal-green-100); }
.portal-course-sections a.active { color: #fff; background: var(--portal-green-700); font-weight: 700; }
.portal-course-sections a.active span { color: var(--portal-green-800); background: #fff; }
.portal-course-sections .portal-course-quiz-link { grid-template-columns: 1.65rem 1fr; margin-top: .45rem; border-top: 1px solid var(--portal-border); border-radius: 0 0 .5rem .5rem; padding-top: .8rem; font-weight: 700; }
.portal-course-content { min-width: 0; padding: clamp(1.35rem,4vw,2.5rem); background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; box-shadow: 0 5px 18px rgba(24,64,49,.05); }
.portal-course-content-number { color: var(--portal-green-700); font-size: .76rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.portal-course-content h2 { margin: .25rem 0 1.2rem; font-size: clamp(1.7rem,3vw,2.2rem); }
.portal-course-copy h3 { margin: 1.6rem 0 .6rem; font-size: 1.18rem; }
.portal-course-copy li + li { margin-top: .45rem; }
.portal-course-copy .training-callout { padding: 1rem 1.1rem; margin: 1.2rem 0; color: #274c3d; background: var(--portal-green-100); border-left: .3rem solid var(--portal-green-700); border-radius: .2rem .75rem .75rem .2rem; }
.portal-course-copy .training-warning { color: #6c321b; background: #fff0e7; border-left-color: #c96535; }
.portal-course-copy .training-scenario { padding: 1.1rem; margin: 1.2rem 0; background: #f7f3e8; border: 1px solid #eadcb8; border-radius: .75rem; }
.portal-course-copy .training-scenario strong { display: block; margin-bottom: .35rem; color: #6c5417; }
.portal-course-actions { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; margin-top: 2rem; border-top: 1px solid var(--portal-border); }
.portal-quiz-form { display: grid; gap: 1rem; }
.portal-quiz-question { padding: 1.35rem; background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; }
.portal-quiz-question legend { display: grid; grid-template-columns: 2rem 1fr; gap: .7rem; align-items: start; float: none; width: 100%; margin-bottom: 1rem; font-size: 1.08rem; font-weight: 750; }
.portal-quiz-question legend span { display: grid; place-items: center; width: 2rem; height: 2rem; color: #fff; background: var(--portal-green-700); border-radius: 50%; font-size: .85rem; }
.portal-answer-list { display: grid; gap: .55rem; margin-left: 2.7rem; }
.portal-answer { display: flex; gap: .65rem; align-items: flex-start; padding: .7rem .8rem; margin: 0; background: var(--portal-canvas); border: 1px solid transparent; border-radius: .6rem; cursor: pointer; font-weight: 500 !important; }
.portal-answer:hover { border-color: #9fc3b3; }
.portal-answer .form-check-input { flex: 0 0 auto; margin-top: .25rem; }
.portal-answer-explanation { padding: .8rem 1rem; margin: 1rem 0 0 2.7rem; background: #eef3f0; border-radius: .6rem; }
.portal-quiz-question.is-correct { border-color: #78bb99; }
.portal-quiz-question.is-incorrect { border-color: #d99292; }
.portal-quiz-result { display: flex; gap: 1.2rem; align-items: center; padding: 1.5rem; margin-bottom: 1.25rem; border-radius: 1rem; }
.portal-quiz-result > i { font-size: 2.4rem; }
.portal-quiz-result h2 { margin: .1rem 0 .35rem; }
.portal-quiz-result p { margin-bottom: .8rem; }
.portal-quiz-pass { color: #fff; background: linear-gradient(120deg,var(--portal-green-950),var(--portal-green-700)); }
.portal-quiz-pass h2 { color: #fff; }
.portal-quiz-pass .portal-eyebrow { color: #f5d999; }
.portal-quiz-retry { color: #603411; background: #fff1d8; }
.portal-quiz-review { padding: clamp(1.2rem,3vw,1.7rem); background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; }
.portal-quiz-review > h2 { margin: 0 0 1rem; font-size: 1.35rem; }
.portal-quiz-review-item { display: grid; grid-template-columns: 2rem 1fr; gap: .8rem; padding: 1rem 0; border-top: 1px solid var(--portal-border); }
.portal-quiz-review-number { display: grid; place-items: center; width: 2rem; height: 2rem; color: #fff; background: #b54848; border-radius: 50%; font-weight: 800; }
.portal-quiz-review-item h3 { margin: .15rem 0 .65rem; font-size: 1.05rem; }
.portal-quiz-review-item p { margin-bottom: .45rem; }
.portal-quiz-review-item p:last-child { margin-bottom: 0; color: var(--portal-muted); }
.portal-quiz-review-actions { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1rem; margin-top: .4rem; border-top: 1px solid var(--portal-border); }
.portal-certificate-actions { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.portal-certificate { position: relative; padding: clamp(2rem,7vw,5rem); overflow: hidden; background: #fff; border: .6rem double var(--portal-green-800); border-radius: 1rem; text-align: center; box-shadow: 0 12px 30px rgba(24,64,49,.1); }
.portal-certificate::before, .portal-certificate::after { content: ''; position: absolute; width: 16rem; height: 16rem; border: 1px solid var(--portal-green-100); border-radius: 50%; }
.portal-certificate::before { left: -9rem; top: -9rem; box-shadow: 0 0 0 2.5rem #f4f9f6,0 0 0 5rem #eef6f2; }
.portal-certificate::after { right: -9rem; bottom: -9rem; box-shadow: 0 0 0 2.5rem #f4f9f6,0 0 0 5rem #eef6f2; }
.portal-certificate > * { position: relative; z-index: 1; }
.portal-certificate-mark { display: flex; align-items: center; justify-content: center; gap: .7rem; color: var(--portal-green-950); font-weight: 800; }
.portal-certificate-mark img { width: 3rem; height: 3rem; border-radius: .8rem; }
.portal-certificate-label { margin: 2rem 0 .6rem; color: #90702a; font-size: .82rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.portal-certificate h1 { margin: 0 auto 2rem; max-width: 45rem; font-family: Georgia,serif; font-size: clamp(2rem,5vw,3.7rem); }
.portal-certificate-awarded { margin-bottom: .4rem; color: var(--portal-muted); }
.portal-certificate h2 { display: inline-block; padding: 0 1rem .3rem; margin-bottom: 1rem; border-bottom: 2px solid var(--portal-gold); font-family: Georgia,serif; font-size: clamp(1.7rem,4vw,2.6rem); }
.portal-certificate > p:not(.portal-certificate-label):not(.portal-certificate-awarded):not(.portal-certificate-code) { max-width: 42rem; margin-left: auto; margin-right: auto; }
.portal-certificate-details { display: flex; justify-content: center; gap: clamp(1.5rem,5vw,4rem); margin: 2.2rem 0; }
.portal-certificate-details span, .portal-certificate-details strong { display: block; }
.portal-certificate-details span { color: var(--portal-muted); font-size: .75rem; text-transform: uppercase; letter-spacing: .07em; }
.portal-certificate-code { margin: 0; color: var(--portal-muted); font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: .78rem; }

.portal-guided-inspection { max-width: 82rem; }
.guided-inspection-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 2rem; margin-bottom: 1.25rem; }
.guided-inspection-header h1 { margin: .15rem 0 .35rem; font-size: clamp(2rem,4vw,2.8rem); }
.guided-inspection-header p:last-child { max-width: 43rem; margin: 0; color: var(--portal-muted); }
.guided-test-badge { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .6rem; margin-bottom: .85rem; color: #765812; background: #fff0c7; border-radius: 999px; font-size: .76rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.guided-inspector-meta { flex: 0 0 14rem; display: grid; gap: .35rem; padding: 1rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .85rem; }
.guided-inspector-meta > span { margin-bottom: .3rem; color: var(--portal-green-800); font-weight: 700; }
.guided-inspector-meta label { color: var(--portal-muted); font-size: .75rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.guided-date-help { color: var(--portal-muted); font-size: .72rem; }
.guided-test-notice { display: flex; align-items: flex-start; gap: .75rem; color: #274c3d; background: var(--portal-green-100); }
.guided-test-notice > i { font-size: 1.35rem; }
.guided-progress-panel { display: grid; grid-template-columns: minmax(14rem,auto) minmax(14rem,1fr) auto; align-items: center; gap: 1.5rem; padding: 1rem 1.15rem; margin: 1rem 0; color: #fff; background: var(--portal-green-950); border-radius: .9rem; }
.guided-progress-panel strong, .guided-progress-panel span { display: block; }
.guided-progress-panel span { color: rgba(255,255,255,.7); font-size: .8rem; }
.guided-progress-panel .progress { height: .65rem; background: rgba(255,255,255,.16); }
.guided-progress-panel .progress-bar { background: var(--portal-gold); transition: width .25s ease; }
.guided-progress-panel .guided-progress-review { display: inline-flex; align-items: center; gap: .45rem; width: auto; padding: .55rem .75rem; color: #fff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.35); border-radius: .6rem; white-space: nowrap; }
.guided-progress-panel .guided-progress-review:hover, .guided-progress-panel .guided-progress-review.active { color: var(--portal-green-950); background: #fff; }
.guided-inspection-layout { display: grid; grid-template-columns: 19rem minmax(0,1fr); align-items: start; gap: 1.25rem; }
.guided-asset-nav { position: sticky; top: 5.5rem; max-height: calc(100vh - 7rem); overflow: auto; background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; }
.guided-nav-heading { position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: center; padding: .9rem 1rem; background: #fff; border-bottom: 1px solid var(--portal-border); }
.guided-nav-heading span { color: var(--portal-muted); font-size: .68rem; }
.guided-nav-heading i { margin-right: .2rem; font-size: .55rem; }
.guided-category-label { padding: .75rem 1rem .35rem; color: var(--portal-muted); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.guided-asset-link { display: grid; grid-template-columns: 1rem 1fr auto; align-items: center; gap: .55rem; width: 100%; padding: .68rem 1rem; color: #3e554c; background: transparent; border: 0; text-align: left; font-size: .88rem; }
.guided-asset-link:hover { background: #f3f7f5; }
.guided-asset-link.active { color: var(--portal-green-800); background: var(--portal-green-100); font-weight: 750; }
.guided-nav-status { color: #aebbb5; font-size: .55rem; }
.guided-asset-link[data-state="ok"] .guided-nav-status { color: #27835c; }
.guided-asset-link[data-state="issue"] .guided-nav-status { color: #cf7d29; }
.guided-review-link { margin-top: .5rem; padding-top: .85rem; padding-bottom: .85rem; border-top: 1px solid var(--portal-border); }
.guided-review-link .guided-nav-status { color: var(--portal-green-700); font-size: 1rem; }
.guided-stage { min-width: 0; scroll-margin-top: 5rem; }
.guided-asset-card { display: none; padding: clamp(1.2rem,4vw,2rem); background: #fff; border: 1px solid var(--portal-border); border-radius: 1rem; box-shadow: 0 7px 24px rgba(24,64,49,.07); }
.guided-asset-card.active { display: block; }
.guided-card-count { margin-bottom: .4rem; color: var(--portal-muted); font-size: .76rem; font-weight: 750; }
.guided-card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.guided-card-title h2 { margin: .1rem 0 0; font-size: clamp(1.7rem,3vw,2.25rem); }
.guided-card-state { flex: 0 0 auto; padding: .32rem .65rem; color: #61736c; background: #edf2ef; border-radius: 999px; font-size: .76rem; font-weight: 800; }
.guided-asset-card[data-state="ok"] .guided-card-state { color: #17603f; background: #ddf3e8; }
.guided-asset-card[data-state="issue"] .guided-card-state { color: #8a3d1c; background: #fff0e7; }
.guided-asset-image { display: block; width: 100%; max-height: 24rem; margin-bottom: 1.25rem; object-fit: contain; background: var(--portal-canvas); border-radius: .8rem; }
.guided-existing-issues { margin-bottom: 1.25rem; color: #6c5417; background: #fff8e5; border: 1px solid #eadcb8; border-radius: .75rem; }
.guided-existing-issues summary { padding: .8rem 1rem; cursor: pointer; font-weight: 750; }
.guided-existing-issues > div { padding: 0 1rem .8rem; }
.guided-existing-issues p { padding-top: .65rem; margin: 0; border-top: 1px solid #eadcb8; font-size: .88rem; }
.guided-existing-issues p + p { margin-top: .65rem; }
.guided-result-fieldset { margin: 0; }
.guided-result-fieldset legend { margin-bottom: .7rem; font-size: 1rem; font-weight: 750; }
.guided-result-options { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.guided-result-choice { display: flex; align-items: center; gap: .8rem; min-height: 5.25rem; padding: 1rem; margin: 0; background: var(--portal-canvas); border: 2px solid transparent; border-radius: .8rem; cursor: pointer; }
.guided-result-choice > i { font-size: 1.6rem; }
.guided-result-choice strong, .guided-result-choice small { display: block; }
.guided-result-choice small { margin-top: .1rem; color: var(--portal-muted); font-weight: 500; }
.guided-result-ok > i { color: #27835c; }
.guided-result-issue > i { color: #c56b26; }
.guided-result-input:checked + .guided-result-ok { background: #e5f5ed; border-color: #27835c; }
.guided-result-input:checked + .guided-result-issue { background: #fff0e7; border-color: #c56b26; }
.guided-result-input:focus-visible + .guided-result-choice { box-shadow: 0 0 0 .22rem rgba(28,105,75,.18); }
.guided-result-ok.guided-ok-confirmed { animation: guided-ok-pulse .48s ease-out; }
@keyframes guided-ok-pulse {
	0% { background: #e5f5ed; box-shadow: 0 0 0 0 rgba(39,131,92,.5); transform: scale(1); }
	45% { background: #bfe8d2; box-shadow: 0 0 0 .42rem rgba(39,131,92,.16); transform: scale(1.015); }
	100% { background: #e5f5ed; box-shadow: 0 0 0 0 rgba(39,131,92,0); transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
	.guided-result-ok.guided-ok-confirmed { animation: none; background: #bfe8d2; }
}
.guided-issue-fields { padding: 1rem; margin-top: 1rem; background: #fff8f3; border-radius: .8rem; }
.guided-issue-fields > label:first-child { display: block; margin-bottom: .4rem; }
.guided-flag-option { display: flex; gap: .6rem; align-items: flex-start; padding: .8rem; margin-top: .8rem; background: #fff; border: 1px solid #ecd8c9; border-radius: .65rem; }
.guided-flag-option strong, .guided-flag-option small { display: block; }
.guided-flag-option small { color: var(--portal-muted); font-weight: 500; }
.guided-card-actions { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.25rem; margin-top: 1.5rem; border-top: 1px solid var(--portal-border); }
.guided-review-summary { display: grid; grid-template-columns: repeat(3,1fr); gap: .75rem; margin-bottom: 1rem; }
.guided-review-summary > div { padding: 1rem; background: var(--portal-canvas); border-radius: .75rem; text-align: center; }
.guided-review-summary strong, .guided-review-summary span { display: block; }
.guided-review-summary strong { color: var(--portal-green-800); font-size: 1.7rem; }
.guided-review-summary span { color: var(--portal-muted); font-size: .78rem; font-weight: 700; }
.guided-review-list { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.guided-review-list button { display: flex; justify-content: space-between; align-items: center; padding: .75rem; color: var(--portal-ink); background: #fff; border: 1px solid var(--portal-border); border-radius: .65rem; text-align: left; }
.guided-review-list strong, .guided-review-list small { display: block; }
.guided-review-list small { color: var(--portal-muted); }
.guided-review-list .guided-review-item-issue { color: #8f2430; background: #fff0f1; border-color: #e5a7ae; }
.guided-review-list .guided-review-item-issue small { color: #a1212e; font-weight: 750; }
.guided-review-list .guided-review-item-issue > i { color: #c93442; }
.guided-review-list .guided-review-item-ok small { color: #277251; }
.guided-review-fields { display: grid; gap: .5rem; padding: 1rem; margin-top: 1rem; background: var(--portal-canvas); border-radius: .75rem; }
.guided-review-fields label:not(:first-child) { margin-top: .5rem; }
.guided-submit-warning { padding: .75rem 1rem; margin-top: 1rem; color: #8a3d1c; background: #fff0e7; border-radius: .65rem; }
.guided-footer-actions { display: flex; justify-content: space-between; padding: 1rem 0 2rem; }
.guided-test-complete { padding: 2rem; text-align: center; }
.guided-test-complete > i { display: block; margin-bottom: 1rem; color: #27835c; font-size: 3.5rem; }
.guided-test-complete h2 { margin: .2rem 0 .7rem; }
.guided-test-complete p:not(.portal-eyebrow) { max-width: 36rem; margin: 0 auto 1.2rem; color: var(--portal-muted); }

.portal-inspection-report { max-width: 82rem; }
.inspection-report-hero { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(1.4rem,4vw,2.4rem); margin-bottom: 1rem; color: #fff; background: linear-gradient(120deg,var(--portal-green-950),var(--portal-green-700)); border-radius: 1.1rem; box-shadow: 0 14px 32px rgba(21,72,52,.15); }
.inspection-report-hero .portal-eyebrow { color: #f5d999; }
.inspection-report-hero h1 { margin: .15rem 0 .65rem; color: #fff; font-size: clamp(2rem,4vw,3rem); }
.inspection-report-meta { display: flex; flex-wrap: wrap; gap: .55rem 1rem; color: rgba(255,255,255,.8); font-size: .88rem; }
.inspection-report-meta span { display: inline-flex; align-items: center; gap: .35rem; }
.inspection-overall-status { flex: 0 0 9rem; display: grid; place-items: center; min-height: 9rem; padding: 1rem; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 1rem; text-align: center; }
.inspection-overall-status > i { font-size: 2.25rem; }
.inspection-overall-status strong, .inspection-overall-status span { display: block; }
.inspection-overall-status span { color: rgba(255,255,255,.72); font-size: .78rem; }
.inspection-overall-status.is-clear > i { color: #9de0ba; }
.inspection-overall-status.has-issues > i { color: #ffd0a8; }
.inspection-report-actions { display: flex; flex-wrap: wrap; gap: .55rem; padding: .85rem; margin-bottom: 1rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .85rem; }
.inspection-summary-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: .8rem; margin-bottom: 1rem; }
.inspection-summary-grid > div { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: .75rem; align-items: center; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .85rem; }
.inspection-summary-grid i { grid-row: 1 / 3; color: var(--portal-green-700); font-size: 1.55rem; }
.inspection-summary-grid strong { color: var(--portal-ink); font-size: 1.45rem; line-height: 1.1; }
.inspection-summary-grid span { color: var(--portal-muted); font-size: .76rem; font-weight: 700; }
.inspection-summary-grid .summary-issues { background: #fff0f1; border-color: #e5a7ae; }
.inspection-summary-grid .summary-issues i, .inspection-summary-grid .summary-issues strong { color: #a1212e; }
.inspection-report-note { display: flex; align-items: flex-start; gap: .9rem; padding: 1.1rem; margin-bottom: 1.5rem; color: #274c3d; background: var(--portal-green-100); border-radius: .85rem; }
.inspection-report-note > i { margin-top: .15rem; color: var(--portal-green-700); font-size: 1.3rem; }
.inspection-report-note h2 { margin: 0 0 .3rem; font-size: 1rem; }
.inspection-report-note p { margin: 0; }
.inspection-issues-section, .inspection-checklist-section { margin-top: 1.8rem; }
.inspection-section-title { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: .85rem; }
.inspection-section-title h2 { margin: .1rem 0 0; font-size: 1.45rem; }
.inspection-section-title > span { display: grid; place-items: center; min-width: 2rem; height: 2rem; padding: 0 .5rem; color: var(--portal-green-800); background: var(--portal-green-100); border-radius: 999px; font-size: .8rem; font-weight: 800; }
.inspection-issues-section .inspection-section-title .portal-eyebrow { color: #a1212e; }
.inspection-issues-section .inspection-section-title > span { color: #a1212e; background: #fbe2e5; }
.inspection-issue-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.inspection-issue-card { display: flex; gap: .85rem; padding: 1rem; color: #662029; background: #fff0f1; border: 1px solid #e5a7ae; border-radius: .85rem; }
.inspection-issue-card > i { flex: 0 0 auto; margin-top: .15rem; color: #c93442; font-size: 1.3rem; }
.inspection-issue-card small { color: #9a555d; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.inspection-issue-card h3 { margin: .1rem 0 .35rem; color: #7c202b; font-size: 1.05rem; }
.inspection-issue-card p { margin: 0; font-size: .88rem; }
.inspection-category-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; align-items: start; }
.inspection-category-card { overflow: hidden; background: #fff; border: 1px solid var(--portal-border); border-radius: .9rem; box-shadow: 0 4px 15px rgba(24,64,49,.04); }
.inspection-category-card > header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .85rem 1rem; background: #edf3f0; border-bottom: 1px solid var(--portal-border); }
.inspection-category-card > header h3 { margin: 0; font-size: 1rem; letter-spacing: 0; }
.inspection-category-card > header span { color: var(--portal-muted); font-size: .72rem; }
.inspection-result-row { display: grid; grid-template-columns: 1.2rem minmax(0,1fr) auto; gap: .65rem; align-items: start; padding: .8rem 1rem; border-bottom: 1px solid #edf2ef; }
.inspection-result-row:last-child { border-bottom: 0; }
.inspection-result-row > i { margin-top: .18rem; color: #27835c; }
.inspection-result-row strong { display: block; font-size: .9rem; }
.inspection-result-row p { margin: .25rem 0 0; color: var(--portal-muted); font-size: .8rem; }
.inspection-result-row > span { padding: .18rem .42rem; color: #277251; background: #e5f5ed; border-radius: 999px; font-size: .66rem; font-weight: 800; }
.inspection-result-row.result-issue { background: #fff5f5; }
.inspection-result-row.result-issue > i { color: #c93442; }
.inspection-result-row.result-issue > span { color: #a1212e; background: #fbe2e5; }
.inspection-recent-section { padding: 1.2rem; margin-top: 2rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .9rem; }
.inspection-recent-section > h4 { margin-bottom: .2rem; }
.inspection-recent-section > div[style] { display: none; }

@media (min-width: 768px) {
    .portal-modern .col-xs-1 { width: 8.333333%; } .portal-modern .col-xs-2 { width: 16.666667%; }
    .portal-modern .col-xs-3 { width: 25%; } .portal-modern .col-xs-4 { width: 33.333333%; }
    .portal-modern .col-xs-5 { width: 41.666667%; } .portal-modern .col-xs-6 { width: 50%; }
    .portal-modern .col-xs-7 { width: 58.333333%; } .portal-modern .col-xs-8 { width: 66.666667%; }
    .portal-modern .col-xs-9 { width: 75%; } .portal-modern .col-xs-10 { width: 83.333333%; }
    .portal-modern .col-xs-11 { width: 91.666667%; } .portal-modern .col-xs-12 { width: 100%; }
}
@media (max-width: 991.98px) {
    .portal-navbar .navbar-collapse { padding: .7rem 0 1rem; }
    .portal-preview-badge { margin-left: .7rem; }
    .portal-user-link { margin-top: .25rem; }
	.guided-inspection-layout { grid-template-columns: 1fr; }
	.guided-asset-nav { position: static; max-height: none; }
	.guided-asset-list { display: flex; gap: .45rem; padding: .6rem; overflow-x: auto; }
	.guided-nav-heading, .guided-category-label { display: none; }
	.guided-asset-link { flex: 0 0 auto; grid-template-columns: 1rem auto; width: auto; padding: .55rem .7rem; border: 1px solid var(--portal-border); border-radius: 999px; white-space: nowrap; }
	.guided-asset-link > i:last-child { display: none; }
	.guided-review-link { margin: 0; border-top: 1px solid var(--portal-border); }
	.guided-progress-panel { grid-template-columns: minmax(12rem,auto) minmax(10rem,1fr) auto; }
}
@media (max-width: 767.98px) {
    .portal-modern > .container { padding-top: 1.3rem; }
    .portal-welcome { align-items: flex-start; flex-direction: column; }
    .portal-primary-action { width: 100%; }
    .portal-modern .portal-table-responsive > .table { display: table; min-width: 42rem; white-space: normal; }
    .portal-modern .portal-table-responsive > .table th,
    .portal-modern .portal-table-responsive > .table td { overflow-wrap: anywhere; }
    .portal-modern .pull-right, .portal-modern .pull-left { float: none !important; }
	.portal-page-heading, .portal-assets-toolbar, .portal-selection-bar { align-items: stretch; flex-direction: column; }
	.portal-asset-search { flex: 0 0 auto; width: 100%; }
	.portal-assets-tabs { display: grid; grid-template-columns: 1fr 1fr; }
	.portal-assets-tabs .nav-link { width: 100%; justify-content: center; }
	.portal-flag-filter { align-self: flex-start; }
	.portal-asset-table-summary { flex-direction: column; gap: .2rem; }
	.portal-modern .portal-assets-content { padding: .85rem; }
	.portal-modern .portal-asset-register { display: block; min-width: 0 !important; background: transparent; }
	.portal-modern .portal-asset-register thead { display: none; }
	.portal-modern .portal-asset-register tbody { display: grid; gap: .75rem; }
	.portal-modern .portal-asset-register tr { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem .75rem; align-items: center; padding: .9rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .8rem; box-shadow: 0 3px 12px rgba(24,64,49,.05); }
	.portal-modern .portal-asset-register-selectable tr { grid-template-columns: 2rem minmax(0, 1fr) auto; }
	.portal-modern .portal-asset-register td { display: block; width: auto !important; padding: 0; border: 0; overflow-wrap: normal; word-break: normal; text-align: left; }
	.portal-modern .portal-asset-register tbody tr > * { background: transparent; box-shadow: none; }
	.portal-modern .portal-asset-register td.portal-select-column { grid-column: 1; grid-row: 1 / span 2; text-align: center; }
	.portal-modern .portal-asset-register td[data-label="Asset"] { grid-column: 1; grid-row: 1; min-width: 0; }
	.portal-modern .portal-asset-register td[data-label="Location"] { grid-column: 1; grid-row: 2; min-width: 0; color: var(--portal-muted); font-size: .88rem; overflow-wrap: break-word; }
	.portal-modern .portal-asset-register td[data-label="Status"] { grid-column: 2; grid-row: 1; }
	.portal-modern .portal-asset-register td.portal-view-column { grid-column: 2; grid-row: 2; text-align: right; }
	.portal-modern .portal-asset-register-selectable td[data-label="Asset"] { grid-column: 2; }
	.portal-modern .portal-asset-register-selectable td[data-label="Location"] { grid-column: 2; }
	.portal-modern .portal-asset-register-selectable td[data-label="Status"] { grid-column: 3; }
	.portal-modern .portal-asset-register-selectable td.portal-view-column { grid-column: 3; }
	.portal-modern .portal-asset-register .portal-asset-name { overflow-wrap: break-word; }
	.portal-selection-actions { display: grid; grid-template-columns: 1fr; }
	.portal-assets-feature { grid-template-columns: auto 1fr; }
	.portal-assets-feature .btn { grid-column: 1 / -1; }
	.portal-selected-assets li { align-items: flex-start; flex-direction: column; gap: .1rem; }
	.portal-selected-assets li span { text-align: left; }
	.portal-privacy-layout { grid-template-columns: 1fr; }
	.portal-privacy-nav { position: static; }
	.portal-training-card { grid-template-columns: auto 1fr; }
	.portal-training-card > .btn { grid-column: 1 / -1; width: 100%; }
	.portal-modern .portal-training-completed .portal-table-responsive { overflow: visible; border-radius: 0; }
	.portal-modern .portal-training-completed .portal-completed-table { display: block; background: transparent; }
	.portal-modern .portal-completed-table thead { display: none; }
	.portal-modern .portal-completed-table tbody { display: grid; gap: .85rem; }
	.portal-modern .portal-completed-table tr { display: block; padding: 1rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .9rem; box-shadow: 0 4px 14px rgba(24,64,49,.05); }
	.portal-modern .portal-completed-table td { display: grid; grid-template-columns: 6.4rem minmax(0,1fr); gap: .75rem; align-items: start; width: 100%; padding: .38rem 0; border: 0; overflow-wrap: normal; word-break: normal; text-align: left !important; }
	.portal-modern .portal-completed-table td::before { content: attr(data-label); color: var(--portal-muted); font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
	.portal-modern .portal-completed-table td > div,
	.portal-modern .portal-completed-table td > span { min-width: 0; overflow-wrap: break-word; }
	.portal-modern .portal-completed-table .portal-completed-action-cell { display: block; padding-top: .85rem; margin-top: .45rem; border-top: 1px solid var(--portal-border); }
	.portal-modern .portal-completed-table .portal-completed-action-cell::before { display: none; }
	.portal-completed-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
	.portal-completed-actions .btn { width: 100%; white-space: normal; }
	.portal-modern .portal-training-report .portal-table-responsive { overflow: visible; border-radius: 0; }
	.portal-modern .portal-training-report-table { display: block; background: transparent; }
	.portal-modern .portal-training-report-table thead { display: none; }
	.portal-modern .portal-training-report-table tbody { display: grid; gap: .85rem; }
	.portal-modern .portal-training-report-table tr { display: block; padding: 1rem; background: #fff; border: 1px solid var(--portal-border); border-radius: .9rem; box-shadow: 0 4px 14px rgba(24,64,49,.05); }
	.portal-modern .portal-training-report-table td { display: grid; grid-template-columns: 7.25rem minmax(0,1fr); gap: .75rem; align-items: start; width: 100%; padding: .42rem 0; border: 0; overflow-wrap: break-word; word-break: normal; text-align: left !important; }
	.portal-modern .portal-training-report-table td::before { content: attr(data-label); color: var(--portal-muted); font-size: .72rem; font-weight: 800; letter-spacing: .06em; line-height: 1.4; text-transform: uppercase; }
	.portal-modern .portal-training-report-table td:first-child { padding-bottom: .8rem; margin-bottom: .35rem; border-bottom: 1px solid var(--portal-border); }
	.portal-modern .portal-training-report-table td:first-child strong,
	.portal-modern .portal-training-report-table td:first-child small { min-width: 0; overflow-wrap: anywhere; }
	.portal-training-course-header { align-items: flex-start; flex-direction: column; }
	.portal-course-layout { grid-template-columns: 1fr; }
	.portal-course-sections { position: static; }
	.portal-answer-list, .portal-answer-explanation { margin-left: 0; }
	.portal-certificate-details { align-items: center; flex-direction: column; gap: 1rem; }
	.guided-inspection-header { align-items: stretch; flex-direction: column; gap: 1rem; }
	.guided-inspector-meta { flex-basis: auto; }
	.guided-progress-panel { grid-template-columns: 1fr auto; gap: .7rem; }
	.guided-progress-panel .progress { grid-column: 1 / -1; grid-row: 2; }
	.guided-progress-panel .guided-progress-review { grid-column: 2; grid-row: 1; }
	.guided-result-options, .guided-review-list { grid-template-columns: 1fr; }
	.guided-card-title { flex-direction: column; }
	.guided-card-actions .btn { flex: 1 1 0; }
	.guided-review-summary { gap: .4rem; }
	.guided-review-summary > div { padding: .75rem .4rem; }
	.guided-footer-actions { align-items: stretch; flex-direction: column; }
	.inspection-report-hero { align-items: stretch; flex-direction: column; }
	.inspection-overall-status { grid-template-columns: auto 1fr auto; gap: .7rem; min-height: 0; text-align: left; }
	.inspection-overall-status > i { font-size: 1.7rem; }
	.inspection-summary-grid { grid-template-columns: 1fr 1fr; gap: .55rem; }
	.inspection-summary-grid > div { padding: .8rem; }
	.inspection-report-actions .btn { flex: 1 1 auto; }
	.inspection-report-actions .ms-auto { margin-left: 0 !important; }
	.inspection-issue-grid, .inspection-category-grid { grid-template-columns: 1fr; }
}
@media print {
    .portal-navbar, .portal-footer, .portal-preview-badge { display: none !important; }
    body.portal-modern { background: #fff; }
	.portal-certificate-actions { display: none !important; }
	.portal-certificate-page { max-width: none !important; padding: 0 !important; }
	.portal-certificate { min-height: 95vh; box-shadow: none; }
}
