/* Phishing Awareness Training — content-specific styles, ported from the standalone app's
   course.css with a ph- prefix (chrome/shell reuses the existing qa-*/qz-* classes). */

/* Hero (unauthenticated /phishing/{lang} view) */
.ph-hero { display: flex; flex-wrap: wrap; gap: 2rem; align-items: center; }
.ph-hero-text { flex: 1 1 26rem; max-width: 48rem; }
.ph-hero-illustration { flex: 0 1 22rem; width: 100%; max-width: 22rem; height: auto; }

/* Figures */
.ph-lesson-figure { margin: 1.25rem 0; }
.ph-lesson-figure img { display: block; max-width: 100%; height: auto; border: 1px solid #dee2e6; border-radius: .5rem; box-shadow: 0 2px 6px rgba(0,0,0,.06); }
.ph-lesson-figure figcaption { font-size: .85rem; color: #495057; margin-top: .4rem; max-width: 40rem; }
.ph-lesson-figure figcaption .ph-credit { display: block; color: #868e96; font-size: .75rem; margin-top: .15rem; }
.ph-figure-row { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: flex-start; }
.ph-figure-row .ph-lesson-figure { flex: 1 1 18rem; margin-top: 0; }
.ph-credit-thumb { width: 5rem; height: 3.5rem; object-fit: cover; border-radius: .25rem; border: 1px solid #dee2e6; margin-right: .5rem; }

.ph-exercise-answer { background: #f8f9fa; border: 1px solid #dee2e6; border-radius: .5rem; padding: .5rem 1rem; margin-bottom: 1rem; }
.ph-exercise-answer summary { cursor: pointer; font-weight: 600; color: #1b6ec2; }
.ph-exercise-answer ul { margin: .5rem 0 0; }

/* URL anatomy diagram */
.ph-url-anatomy { display: flex; flex-wrap: wrap; row-gap: 1rem; padding: 1rem; background: #f8f9fa; border: 1px solid #dee2e6; border-radius: .5rem; }
.ph-url-part { display: flex; flex-direction: column; align-items: center; max-width: 14rem; }
.ph-url-part code { font-size: 1.1rem; padding: .2rem .1rem; border-bottom: 4px solid; color: #212529; }
.ph-url-label { font-size: .75rem; color: #495057; text-align: center; margin-top: .3rem; padding: 0 .3rem; }
.ph-url-label-strong { font-weight: 700; color: #c92a2a; }
.ph-url-protocol { border-color: #adb5bd !important; }
.ph-url-sub { border-color: #f08c00 !important; }
.ph-url-domain { border-color: #e03131 !important; background: #fff5f5; }
.ph-url-path { border-color: #1b6ec2 !important; }

/* Disguised file illustration */
.ph-disguised-file { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.ph-file-card { display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: 1rem 1.25rem; min-width: 12rem; background: #fff; border: 1px solid #dee2e6; border-radius: .5rem; text-align: center; }
.ph-file-card-danger { border: 2px solid #e03131; background: #fff5f5; }
.ph-file-card-title { font-weight: 600; font-size: .85rem; text-transform: uppercase; letter-spacing: .03em; color: #495057; }
.ph-file-arrow { font-size: 2rem; color: #adb5bd; }

/* Stop – Look – Verify – Report */
.ph-four-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .75rem; }
.ph-four-steps .ph-step { display: flex; flex-direction: column; align-items: center; text-align: center; gap: .3rem; padding: 1rem .75rem; border-radius: .75rem; background: #f8f9fa; border-top: 5px solid; }
.ph-four-steps svg { width: 3rem; height: 3rem; }
.ph-four-steps strong { font-size: 1.1rem; }
.ph-four-steps span { font-size: .85rem; color: #495057; }
.ph-step-stop { border-color: #e03131 !important; }
.ph-step-look { border-color: #f08c00 !important; }
.ph-step-verify { border-color: #1b6ec2 !important; }
.ph-step-report { border-color: #2f9e44 !important; }

.ph-lesson-content { max-width: 52rem; line-height: 1.6; }
.ph-lesson-content h4 { margin-top: 1.5rem; }

.ph-lesson-status {
    flex: 0 0 2rem; height: 2rem; margin-right: .75rem; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    background: #e9ecef; font-weight: 600;
}
.ph-lesson-status.done { background: #198754; color: #fff; }

.ph-email-mock { border: 1px solid #ced4da; border-radius: .5rem; margin: 1rem 0; max-width: 44rem; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.06); }
.ph-email-mock-header { background: #f1f3f5; padding: .75rem 1rem; border-bottom: 1px solid #ced4da; border-radius: .5rem .5rem 0 0; font-size: .9rem; }
.ph-email-mock-header .label { color: #6c757d; display: inline-block; min-width: 5.5rem; }
.ph-email-mock-body { padding: 1rem; }

.ph-red-flag { background: #ffe3e3; padding: 0 .15rem; border-bottom: 2px dashed #e03131; cursor: help; }
.ph-red-flag sup { color: #e03131; font-weight: 700; margin-left: .1rem; }

.ph-fake-link { color: #0b5ed7; text-decoration: underline; cursor: pointer; position: relative; }
.ph-fake-link-target {
    display: none; position: absolute; left: 0; top: 1.6em; z-index: 10; white-space: nowrap;
    background: #212529; color: #fff; font-size: .8rem; padding: .2rem .5rem; border-radius: .25rem; text-decoration: none;
}
.ph-fake-link:hover .ph-fake-link-target, .ph-fake-link:focus .ph-fake-link-target { display: block; }

/* Narrow screens: let wide tables scroll and long URLs wrap instead of overflowing the page. */
.ph-lesson-content table { display: block; overflow-x: auto; }
.ph-lesson-content code, .ph-email-mock code { overflow-wrap: anywhere; }
.ph-email-mock-header div { overflow-wrap: anywhere; }

/* Dark theme — this site sets <html data-theme> explicitly (see App.razor), no media-query fallback needed. */
html[data-theme="dark"] .ph-url-anatomy,
html[data-theme="dark"] .ph-exercise-answer,
html[data-theme="dark"] .ph-four-steps .ph-step,
html[data-theme="dark"] .ph-file-card { background: #1f2430; border-color: #343a46; }
html[data-theme="dark"] .ph-email-mock { background: #1a1f29; border-color: #343a46; }
html[data-theme="dark"] .ph-email-mock-header { background: #232938; border-color: #343a46; }
