/* Loaded only by Flasher pages; content rules remain scoped. */
:root {
    color-scheme: dark;
    --fd-bg: #101317;
    --fd-panel: #1b2027;
    --fd-raised: #252d36;
    --fd-text: #edf2f7;
    --fd-muted: #aab7c5;
    --fd-border: #657380;
    --fd-line: #343e49;
    --fd-link: #7dd3fc;
    --fd-primary: #38bdf8;
    --fd-input: #13181e;
}
html.flasher-design body { background: var(--fd-bg); }
:is(.flasher-workspace, .flasher-legacy) {
    color: var(--fd-text);
    font-size: 16px;
    line-height: 1.65;
    text-align: left;
    min-width: 0;
}
.flasher-workspace { width: min(1440px, calc(100% - 40px)); margin: 28px auto 64px; }
:is(.flasher-workspace, .flasher-legacy) *, :is(.flasher-workspace, .flasher-legacy) *::before, :is(.flasher-workspace, .flasher-legacy) *::after { box-sizing: border-box; }
:is(.flasher-workspace, .flasher-legacy) :is(h1, h2, h3, h4, strong, label, dt, summary) { color: var(--fd-text); }
:is(.flasher-workspace, .flasher-legacy) h1 { font-size: clamp(26px, 3vw, 36px); line-height: 1.2; margin: 0 0 12px; letter-spacing: -.025em; }
:is(.flasher-workspace, .flasher-legacy) h2 { font-size: 21px; line-height: 1.35; margin: 0 0 12px; }
:is(.flasher-workspace, .flasher-legacy) h3 { font-size: 18px; margin: 0 0 10px; }
:is(.flasher-workspace, .flasher-legacy) p { color: var(--fd-muted); margin: 0 0 16px; max-width: 100ch; }
:is(.flasher-workspace, .flasher-legacy) :is(a, a:visited) { color: var(--fd-link); text-decoration: underline; text-underline-offset: 4px; }
:is(.flasher-workspace, .flasher-legacy) a:hover { color: #ffffff; }
:is(.flasher-workspace, .flasher-legacy) :is(code, pre) { color: var(--fd-text); background: #101b2b; border: 1px solid var(--fd-border); border-radius: 6px; padding: 2px 6px; white-space: normal; overflow-wrap: anywhere; }
:is(.flasher-workspace, .flasher-legacy) small { font-size: 14px; color: var(--fd-muted); }
:is(.flasher-workspace, .flasher-legacy) :focus-visible { outline: 3px solid #facc15; outline-offset: 4px; }
.flasher-hero { padding: 10px 0 12px; }
.flasher-hero p { max-width: 85ch; }
.flasher-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.flasher-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 24px; padding-bottom: 20px; border-bottom: 1px solid var(--fd-border); }
.flasher-tabs a { display: inline-flex; align-items: center; padding: 10px 16px; border: 1px solid var(--fd-border); border-radius: 9px; background: var(--fd-panel); text-decoration: none; font-weight: 600; }
.flasher-tabs a[aria-current="page"] { background: var(--fd-raised); color: #ffffff; box-shadow: inset 0 -3px 0 #93c5fd; }
.flasher-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 20px; align-items: start; }
.flasher-card, .flasher-stat, .flasher-legacy > details, .flasher-legacy .filter-bar { background: var(--fd-panel); border: 1px solid var(--fd-border); border-radius: 14px; padding: 24px; margin-bottom: 20px; min-width: 0; }
.flasher-card > :last-child { margin-bottom: 0; }
.flasher-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; }
.flasher-stat { padding: 18px 22px; }
.flasher-stat strong { display: block; font-size: 26px; line-height: 1.3; overflow-wrap: anywhere; }
.flasher-stat span { display: block; color: var(--fd-muted); font-size: 14px; }
.flasher-section-head { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.flasher-section-head h2, .flasher-section-head p { margin: 0; }
.flasher-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 18px 0 0; }
:is(.flasher-workspace, .flasher-legacy) .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 44px; height: auto; padding: 10px 16px; border: 1px solid var(--fd-border);
    border-radius: 8px; font: inherit; font-size: 14px; font-weight: 650; line-height: 1.4;
    background: var(--fd-raised); color: var(--fd-text); text-decoration: none;
    white-space: normal; text-align: center; cursor: pointer; box-shadow: none;
}
:is(.flasher-workspace, .flasher-legacy) .btn-primary { background: var(--fd-primary); color: #ffffff; border-color: #93c5fd; }
:is(.flasher-workspace, .flasher-legacy) .btn-danger { background: #5b2633; color: #fff1f4; border-color: #df8395; }
:is(.flasher-workspace, .flasher-legacy) .btn:hover { background: #304663; color: #ffffff; }
:is(.flasher-workspace, .flasher-legacy) .btn-primary:hover { background: #1d4ed8; }
:is(.flasher-workspace, .flasher-legacy) .btn-danger:hover { background: #763044; }
:is(.flasher-workspace, .flasher-legacy) .btn:disabled { background: #263345; color: #c1ccdc; border-color: var(--fd-border); opacity: 1; cursor: not-allowed; }
:is(.flasher-workspace, .flasher-legacy) label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 8px; }
:is(.flasher-workspace, .flasher-legacy) :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea) {
    display: block; width: 100%; max-width: 100%; min-height: 46px; height: auto; margin: 6px 0 16px;
    padding: 11px 12px; border: 1px solid var(--fd-border); border-radius: 8px;
    background: #101b2b; color: var(--fd-text); font: inherit; line-height: 1.5; box-shadow: none;
}
:is(.flasher-workspace, .flasher-legacy) :is(input, textarea)::placeholder { color: var(--fd-muted); opacity: 1; }
:is(.flasher-workspace, .flasher-legacy) select option { background: #101b2b; color: var(--fd-text); }
:is(.flasher-workspace, .flasher-legacy) :is(input[type="checkbox"], input[type="radio"]) { width: 18px; height: 18px; margin: 0 10px 0 0; vertical-align: middle; accent-color: var(--fd-primary); }
:is(.flasher-workspace, .flasher-legacy) textarea { resize: vertical; }
:is(.flasher-workspace, .flasher-legacy) .flasher-code { font-family: Consolas, monospace; font-size: 16px; overflow-wrap: anywhere; }
:is(.flasher-workspace, .flasher-legacy) .alert { padding: 16px 20px; margin-bottom: 20px; border-radius: 10px; border: 1px solid var(--fd-border); color: var(--fd-text); background: var(--fd-raised); overflow-wrap: anywhere; }
:is(.flasher-workspace, .flasher-legacy) .alert-danger { background: #46222d; border-color: #df8395; color: #fff1f4; }
:is(.flasher-workspace, .flasher-legacy) .alert-success { background: #143c35; border-color: #79bbaa; color: #d8fff1; }
.flasher-badge { display: inline-flex; padding: 4px 10px; border: 1px solid var(--fd-border); border-radius: 6px; background: var(--fd-raised); color: var(--fd-text); font-size: 13px; font-weight: 600; line-height: 1.4; white-space: normal; }
.flasher-badge[data-state="active"] { background: #143c35; border-color: #79bbaa; color: #d8fff1; }
.flasher-badge[data-state="inactive"] { background: #46222d; border-color: #df8395; color: #fff1f4; }
.flasher-empty { border: 1px dashed var(--fd-border); padding: 24px; border-radius: 10px; color: var(--fd-muted); }
.flasher-search { max-width: 560px; width: 100%; }
.flasher-table-scroll { width: 100%; overflow-x: auto; border: 1px solid var(--fd-border); border-radius: 12px; margin-bottom: 24px; }
:is(.flasher-workspace, .flasher-legacy) table { width: 100%; border-collapse: collapse; color: var(--fd-text); font-size: 14px; margin: 0; background: var(--fd-panel); }
:is(.flasher-workspace, .flasher-legacy) :is(th, td) { padding: 16px; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid #425570; color: var(--fd-text); line-height: 1.6; overflow-wrap: anywhere; }
:is(.flasher-workspace, .flasher-legacy) th { color: #d7e3f3; background: #203047; font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
:is(.flasher-workspace, .flasher-legacy) tbody tr { background: var(--fd-panel); }
:is(.flasher-workspace, .flasher-legacy) tbody tr:nth-child(even) { background: #1b293d; }
:is(.flasher-workspace, .flasher-legacy) tbody tr:hover { background: #243650; }
:is(.flasher-workspace, .flasher-legacy) tbody tr:last-child td { border-bottom: 0; }
.flasher-table-scroll table { min-width: 780px; }
#flasher-access-table:not(.flasher-access-compact) { min-width: 1500px; }
.flasher-access-compact { min-width: 1060px !important; table-layout: fixed; }
.flasher-access-compact th:nth-child(1) { width: 25%; }
.flasher-access-compact th:nth-child(2) { width: 11%; }
.flasher-access-compact th:nth-child(3) { width: 17%; }
.flasher-access-compact th:nth-child(4) { width: 23%; }
.flasher-access-compact th:nth-child(5) { width: 14%; }
.flasher-access-compact th:nth-child(6) { width: 10%; }
.flasher-cell-item { margin-bottom: 10px; }
.flasher-cell-label { display: block; color: var(--fd-muted); font-size: 12px; font-weight: 500; }
.flasher-cell-value { display: block; color: var(--fd-text); overflow-wrap: anywhere; }
.flasher-cell-item:last-child { margin-bottom: 0; }
:is(.flasher-workspace, .flasher-legacy) details { margin: 12px 0; }
:is(.flasher-workspace, .flasher-legacy) summary { cursor: pointer; font-size: 14px; font-weight: 600; padding: 8px 0; text-decoration: underline; text-underline-offset: 4px; }
:is(.flasher-workspace, .flasher-legacy) details[open] > summary { margin-bottom: 12px; }
.flasher-legacy .filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; }
.flasher-legacy .filter-bar .form-control { flex: 1 1 340px; width: auto; margin: 0; }
.flasher-legacy .filter-bar label { margin: 0; }
.flasher-legacy > h2 { margin-top: 32px; }
.flasher-legacy .modal { display: none; position: fixed; inset: 0; z-index: 100; align-items: center; justify-content: center; padding: 20px 16px; background: rgba(3, 8, 17, .85); }
.flasher-legacy .modal.open { display: flex; }
.flasher-legacy .modal-box { background: var(--fd-panel); color: var(--fd-text); border: 1px solid var(--fd-border); border-radius: 16px; width: min(800px, calc(100vw - 32px)); max-width: 100%; max-height: calc(100dvh - 40px); overflow-y: auto; padding: 24px; }
.flasher-legacy .modal-title { color: var(--fd-text); }
.flasher-legacy .modal-close { color: var(--fd-text); background: var(--fd-raised); border: 1px solid var(--fd-border); border-radius: 8px; min-width: 44px; min-height: 44px; cursor: pointer; }
.flasher-legacy .modal-header, .flasher-legacy .modal-footer { border-color: var(--fd-border); padding: 12px 0; }
.flasher-legacy .modal-footer { display: flex; flex-wrap: wrap; gap: 12px; }
.flasher-legacy #flasher-access-form > label { margin: 16px 0; }
.flasher-legacy .flasher-account-option { margin: 6px 0; }
:is(.flasher-workspace, .flasher-legacy) [hidden] { display: none !important; }
@media (max-width: 680px) {
    .flasher-workspace { width: calc(100% - 24px); margin-top: 16px; }
    .flasher-card, .flasher-stat, .flasher-legacy .filter-bar { padding: 18px; }
    .flasher-tabs { gap: 6px; }
    .flasher-tabs a { padding: 10px 12px; font-size: 14px; }
    .flasher-actions { align-items: stretch; }
    .flasher-actions .btn { flex: 1 1 100%; }
    .flasher-section-head { align-items: flex-start; }
}
.flasher-data-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 12px; margin: 0; }
.flasher-data-item { min-width: 0; padding: 14px 16px; border: 1px solid #425570; border-radius: 9px; background: #101b2b; }
.flasher-data-item dt { color: var(--fd-muted); font-size: 12px; font-weight: 650; letter-spacing: .035em; margin: 0 0 5px; }
.flasher-data-item dd { margin: 0; color: var(--fd-text); font-size: 15px; font-weight: 550; line-height: 1.55; overflow-wrap: anywhere; }
.flasher-data-item dd code, .flasher-code-block { display: block; max-width: 100%; padding: 10px 12px; border: 1px solid #425570; border-radius: 7px; background: #0c1421; color: #eaf2ff; font-family: Consolas, 'Courier New', monospace; font-size: 13px; font-weight: 500; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.flasher-detail-groups { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 18px; align-items: start; }
.flasher-detail-groups > .flasher-card { min-width: 0; margin: 0; }
.flasher-detail-groups .flasher-data-grid { grid-template-columns: 1fr; }
.flasher-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 12px; margin: 18px 0 0; }
.flasher-summary-tile { min-width: 0; padding: 14px 16px; border: 1px solid var(--fd-border); border-radius: 10px; background: var(--fd-raised); }
.flasher-summary-tile span { display: block; color: var(--fd-muted); font-size: 12px; font-weight: 650; }
.flasher-summary-tile strong { display: block; margin-top: 3px; color: var(--fd-text); font-size: 15px; overflow-wrap: anywhere; }
.flasher-callout { padding: 14px 16px; margin-bottom: 18px; border: 1px solid var(--fd-border); border-left: 4px solid #60a5fa; border-radius: 9px; background: #101b2b; color: var(--fd-muted); }
.flasher-callout p:last-child { margin-bottom: 0; }
.flasher-callout-success { border-left-color: #34d399; }
.flasher-danger-zone { border-color: #9f5363; background: #241923; }
.flasher-danger-zone h2, .flasher-danger-zone h3 { color: #ffd9df; }
.flasher-workspace .flasher-section-head > div { min-width: 0; }
.flasher-workspace .flasher-eyebrow { margin-bottom: 4px; }
.flasher-workspace .flasher-data-table td { vertical-align: middle; }
.flasher-workspace .flasher-data-table .flasher-badge { white-space: nowrap; }
.flasher-workspace .flasher-data-table .flasher-row-actions { white-space: nowrap; }
.flasher-workspace .flasher-data-table td code { display: inline-block; max-width: 20ch; padding: 3px 6px; border: 1px solid #425570; border-radius: 5px; background: #101b2b; color: var(--fd-text); font-family: Consolas, 'Courier New', monospace; font-size: 12px; overflow-wrap: anywhere; }
.flasher-workspace .flasher-data-table .flasher-cell-item { margin-bottom: 6px; }
.flasher-workspace .flasher-data-table .flasher-cell-item:last-child { margin-bottom: 0; }
.diagnosis-page .diagnosis-list-toolbar { margin: 0 0 18px; justify-content: space-between; }
.diagnosis-page .diagnosis-list-toolbar :is(label, form) { margin: 0; }
.diagnosis-record-list { display: grid; gap: 16px; }
.diagnosis-record { min-width: 0; padding: 20px; border: 1px solid #425570; border-radius: 10px; background: #101b2b; }
.diagnosis-record-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.diagnosis-record-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.diagnosis-record-title > div { min-width: 0; }
.diagnosis-record-title h3 { font-size: 16px; overflow-wrap: normal; }
.diagnosis-record-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 18px 24px; }
.diagnosis-record-grid dl { min-width: 0; margin: 0; }
.diagnosis-record-grid dl > div + div { margin-top: 10px; }
.diagnosis-record-grid dt { color: var(--fd-muted); font-size: 12px; }
.diagnosis-record-grid dd { margin: 2px 0 0; font-size: 14px; overflow-wrap: break-word; }
.diagnosis-page .diagnosis-record-grid code { display: inline-block; max-width: 100%; overflow-wrap: break-word; }
.diagnosis-page .diagnosis-record-action { flex-shrink: 0; white-space: nowrap; }
.diagnosis-fault-list { display: grid; gap: 16px; }
.diagnosis-fault { min-width: 0; padding: 20px; border: 1px solid #627895; border-left: 4px solid #60a5fa; border-radius: 10px; background: #101b2b; }
.diagnosis-fault h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 16px; font-size: 16px; }
.diagnosis-fault h3 span { flex: 1 1 260px; min-width: 0; overflow-wrap: break-word; }
.diagnosis-page .diagnosis-fault h3 code { white-space: nowrap; }
.diagnosis-page .diagnosis-fault-raw { margin: 8px 0; font-size: 12px; }
.diagnosis-page .diagnosis-fault-status { margin: 0; padding: 12px; font: 13px/1.7 Consolas, monospace; white-space: pre-wrap; overflow-wrap: break-word; }
.diagnosis-page .diagnosis-report-context { margin: 0; }
.ersatz-cpc-page .ersatz-detail-groups { margin-bottom: 20px; }
.ersatz-detail-list { margin: 0; }
.ersatz-detail-list > div { display: grid; grid-template-columns: minmax(120px, 1fr) minmax(0, 2fr); gap: 8px 18px; padding: 12px 0; border-bottom: 1px solid #425570; }
.ersatz-detail-list > div:last-child { border-bottom: 0; }
.ersatz-detail-list dt { color: var(--fd-muted); font-size: 13px; }
.ersatz-detail-list dd { min-width: 0; margin: 0; overflow-wrap: break-word; font-size: 15px; }
.ersatz-cpc-page .ersatz-detail-list code { display: block; padding: 10px; white-space: normal; }
.ersatz-cpc-page .ersatz-tabs { margin-top: 0; }
.fp-main .ersatz-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.fp-main .ersatz-form-grid label { min-width: 0; }
.fp-main .ersatz-form-grid .ersatz-form-wide { grid-column: 1 / -1; }
.ersatz-cpc-page .ersatz-preview-grid { margin-top: 14px; }
:is(.diagnosis-page, .ersatz-cpc-page) .diagnosis-search { display: grid; grid-template-columns: minmax(220px, 1fr) auto; gap: 12px; align-items: end; }
:is(.diagnosis-page, .ersatz-cpc-page) .diagnosis-search label { margin: 0; }
:is(.diagnosis-page, .ersatz-cpc-page) .diagnosis-search input { margin-bottom: 0; }
:is(.diagnosis-page, .ersatz-cpc-page) .diagnosis-search .btn { min-width: 110px; }
.diagnosis-page .diagnosis-report { max-height: 38rem; margin: 14px 0 0; padding: 16px; border: 1px solid var(--fd-border); border-radius: 10px; background: #0c1421; color: var(--fd-text); font: 13px/1.65 Consolas, 'Courier New', monospace; white-space: pre-wrap; overflow: auto; overflow-wrap: anywhere; }
.diagnosis-page .diagnosis-danger-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.diagnosis-page .diagnosis-danger-actions form { margin: 0; }
.flasher-workspace .flasher-empty { margin: 0; }
@media (max-width: 680px) {
    .fp-main .ersatz-form-grid { grid-template-columns: 1fr; }
    .fp-main .ersatz-form-grid .ersatz-form-wide { grid-column: auto; }
    .ersatz-detail-list > div { grid-template-columns: 1fr; gap: 4px; }
    .diagnosis-record, .diagnosis-fault { padding: 14px; }
    .diagnosis-page .diagnosis-record-action { width: 100%; }
    :is(.diagnosis-page, .ersatz-cpc-page) .diagnosis-search { grid-template-columns: 1fr; }
    :is(.diagnosis-page, .ersatz-cpc-page) .diagnosis-search .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    :is(.flasher-workspace, .flasher-legacy) * { scroll-behavior: auto !important; transition: none !important; }
}
/* Shared shell for all standalone portal and authentication pages. */
.fp-portal { margin: 0; background: var(--fd-bg); color: var(--fd-text); font: 16px/1.6 system-ui, -apple-system, sans-serif; }
.fp-portal *, .fp-portal *::before, .fp-portal *::after { box-sizing: border-box; }
.fp-portal a { color: var(--fd-link); }
.fp-portal :focus-visible { outline: 3px solid #facc15; outline-offset: 4px; }
.fp-portal [hidden] { display: none !important; }
.fp-portal { --border: var(--fd-border); --success: #79bbaa; --danger: #df8395; }
.fp-main .form-row { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.fp-main .form-group { min-width: 0; }
.fp-main fieldset { min-width: 0; margin: 0 0 20px; padding: 18px; border: 1px solid var(--fd-border); border-radius: 10px; }
.fp-main legend { max-width: 100%; padding: 0 8px; color: var(--fd-text); font-weight: 700; overflow-wrap: anywhere; }
.fp-main .form-hint, .fp-main .text-muted { color: var(--fd-muted); font-size: 13px; }
.fp-main .flex-between { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; }
.fp-main .mb-16 { margin-bottom: 16px; }
.fp-main .modal-content { background: var(--fd-panel); border: 1px solid var(--fd-border); border-radius: 16px; padding: 24px; width: min(800px, 100%); max-height: calc(100dvh - 40px); overflow-y: auto; }
.fp-shell { display: grid; grid-template-columns: 260px minmax(0, 1fr); min-height: 100dvh; }
.fp-sidebar { position: sticky; top: 0; height: 100dvh; overflow-y: auto; padding: 24px 16px; background: #101b2b; border-right: 1px solid #33465f; }
.fp-brand { display: flex; align-items: center; gap: 12px; color: var(--fd-text); text-decoration: none; font-size: 21px; font-weight: 750; }
.fp-brand small { display: block; font-size: 11px; font-weight: 500; color: var(--fd-muted); }
.fp-brand-mark { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; border-radius: 12px; background: #2563eb; color: #fff; font-size: 16px; }
.fp-navigation { margin: 26px 0 20px; }
.fp-navigation > summary { display: none; }
.fp-nav-group { margin-bottom: 6px; }
.fp-nav-group > summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 44px; margin: 0; padding: 12px; border: 1px solid transparent; border-radius: 8px; color: #c4d3e8; font-size: 14px; font-weight: 700; cursor: pointer; list-style: none; }
.fp-nav-group > summary::-webkit-details-marker { display: none; }
.fp-nav-group > summary::after { content: ''; width: 7px; height: 7px; flex-shrink: 0; margin-right: 2px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); }
.fp-nav-group[open] > summary::after { transform: rotate(45deg); }
.fp-nav-group > summary:hover { background: #203047; color: #fff; }
.fp-nav-group-active > summary { color: #d6e8ff; border-color: #33465f; background: #172a43; }
.fp-nav-group > summary:focus-visible { outline: 2px solid #93c5fd; outline-offset: 2px; }
.fp-nav-links { padding: 4px 0 6px 8px; }
.fp-nav-group a { display: block; margin: 4px 0; padding: 10px 12px; border: 1px solid transparent; border-radius: 8px; color: #c4d3e8; font-size: 14px; font-weight: 550; text-decoration: none; }
.fp-nav-group a:hover { background: #203047; color: #fff; }
.fp-nav-group a[aria-current="page"] { background: #1b365f; border-color: #4d81d3; color: #fff; box-shadow: inset 3px 0 #60a5fa; }
.fp-sidebar-account { border-top: 1px solid #33465f; padding: 20px 12px 0; }
.fp-sidebar-account p { margin: 8px 0 16px; color: var(--fd-muted); font-size: 12px; overflow-wrap: anywhere; }
.fp-role { color: #d6e8ff; font-size: 12px; font-weight: 650; }
.fp-portal button, .fp-portal .btn { padding: 10px 16px; min-height: 44px; border: 1px solid #627895; border-radius: 8px; background: #203047; color: var(--fd-text); font: inherit; font-size: 14px; font-weight: 650; cursor: pointer; }
.fp-portal button:hover { background: #304663; }
.fp-sidebar-account button { width: 100%; }
.fp-content { min-width: 0; }
.fp-topbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 72px; padding: 16px 36px; border-bottom: 1px solid #33465f; color: var(--fd-muted); font-size: 14px; }
.fp-stage { padding: 4px 10px; border: 1px solid #766246; border-radius: 20px; background: #2b241c; color: #f2d29a; font-size: 12px; white-space: nowrap; }
.fp-main { width: 100%; max-width: 1600px; margin: 0 auto; padding: 32px 36px 48px; min-height: calc(100dvh - 132px); }
.fp-page-heading { display: block; margin: 0 0 28px; padding: 0 0 22px; border-bottom: 1px solid #33465f; }
.fp-page-heading h1 { font-size: clamp(26px, 3vw, 36px); margin: 0 0 8px; }
.fp-page-heading .flasher-eyebrow { margin: 0 0 6px; color: #93c5fd; }
.fp-page-heading .fp-sub { margin: 0; }
.fp-main .flasher-workspace { width: 100%; margin: 0; }
.fp-main > .card, .fp-main > form { padding: 24px; margin-bottom: 20px; background: var(--fd-panel); border: 1px solid var(--fd-border); border-radius: 14px; }
.fp-main pre { display: block; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 36rem; overflow: auto; padding: 16px; }
.fp-footer { padding: 16px 36px; border-top: 1px solid #33465f; color: #9aaec9; font-size: 12px; }
.fp-skip { position: fixed; top: -100px; left: 20px; z-index: 1000; padding: 12px 20px; border-radius: 8px; background: #fff; color: #101b2b !important; }
.fp-skip:focus { top: 12px; }
.fp-guest .fp-shell { display: block; }
.fp-guest .fp-content { max-width: 960px; margin: auto; }
.fp-guest .fp-main { max-width: 680px; }
.fp-guest .fp-main:has(.flasher-grid) { max-width: 960px; }
.fp-auth { padding: 28px; border: 1px solid var(--fd-border); border-radius: 14px; background: var(--fd-panel); }
.fp-auth label { margin-top: 18px; }
.fp-auth button { width: 100%; margin-top: 12px; background: var(--fd-primary); }
.fp-auth .fp-message { padding: 16px; border: 1px solid #79bbaa; border-radius: 8px; background: #143c35; overflow-wrap: anywhere; }
@media (max-width: 960px) {
    .fp-shell { display: block; }
    .fp-sidebar { position: static; height: auto; padding: 16px; border-right: 0; border-bottom: 1px solid #33465f; }
    .fp-navigation { margin: 16px 0 0; }
    .fp-navigation > summary { display: block; cursor: pointer; padding: 10px 12px; border: 1px solid #627895; border-radius: 8px; color: var(--fd-text); font-weight: 650; }
    .fp-navigation > summary::after { content: '+'; float: right; }
    .fp-navigation[open] > summary::after { content: '-'; }
    .fp-navigation nav { padding-top: 18px; }
    .fp-sidebar-account { margin-top: 16px; padding: 12px 0 0; display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
    .fp-sidebar-account p { margin: 0; flex: 1; }
    .fp-sidebar-account form { margin: 0; }
    .fp-topbar { min-height: 60px; padding: 14px 20px; }
    .fp-main { padding: 24px 20px 36px; }
    .fp-footer { padding: 16px 20px; }
}
@media (max-width: 480px) {
    .fp-main { padding: 20px 14px 28px; }
    .fp-main > .card, .fp-main > form, .fp-auth { padding: 18px; }
    .fp-topbar { padding: 12px 14px; }
    .fp-page-heading { margin-bottom: 20px; }
}
/* Precision: shared visual language; workflow-specific layouts remain scoped. */
.fp-portal { font-family: "Segoe UI", system-ui, sans-serif; }
.fp-icon { width: 22px; height: 22px; flex-shrink: 0; vertical-align: middle; }
.fp-sidebar { background: #14191f; border-color: var(--fd-line); }
.fp-brand { font-size: 20px; letter-spacing: -.025em; }
.fp-brand-mark { background: var(--fd-primary); color: #07131b; border-radius: 10px; box-shadow: 0 0 26px #38bdf814; }
.fp-nav-caption { display: flex; align-items: center; gap: 10px; min-width: 0; }
.fp-nav-caption .fp-icon { width: 18px; height: 18px; color: var(--fd-muted); }
.fp-nav-group > summary { font-size: 13px; font-weight: 600; color: #bac5d0; }
.fp-nav-group a { color: #b7c2ce; font-size: 13px; }
.fp-nav-group > summary:hover, .fp-nav-group a:hover { background: #252d36; }
.fp-nav-group-active > summary { background: #1c2b34; color: var(--fd-text); border-color: #3c5867; }
.fp-nav-group-active .fp-icon { color: var(--fd-primary); }
.fp-nav-group a[aria-current="page"] { color: #bceaff; background: #143445; border-color: #3b738b; box-shadow: inset 3px 0 var(--fd-primary); }
.fp-nav-group > summary:focus-visible, .fp-portal :focus-visible { outline-color: var(--fd-primary); }
.fp-sidebar-account, .fp-topbar, .fp-footer { border-color: var(--fd-line); }
.fp-role { color: var(--fd-muted); }
.fp-topbar { min-height: 60px; background: #14191f; }
.fp-main { max-width: 1400px; padding-top: 36px; }
.fp-page-heading { border: 0; padding-bottom: 0; margin-bottom: 30px; }
.fp-page-heading h1 { letter-spacing: -.035em; font-size: clamp(28px, 3vw, 38px); }
.fp-page-heading .flasher-eyebrow { color: var(--fd-primary); font-size: 10px; letter-spacing: .18em; }
.fp-main .flasher-eyebrow { color: var(--fd-primary); }
.fp-portal :is(.flasher-card, .flasher-stat, .flasher-legacy > details, .flasher-legacy .filter-bar, .fp-auth) { border-color: var(--fd-line); border-radius: 14px; box-shadow: 0 8px 24px #00000012; }
.fp-portal :is(.flasher-workspace, .flasher-legacy) h2 { font-size: 20px; letter-spacing: -.02em; }
.fp-portal :is(.flasher-workspace, .flasher-legacy) p { font-size: 15px; }
.fp-portal main :is(.btn, button), .fp-sidebar-account button { background: var(--fd-raised); color: var(--fd-text); border-color: var(--fd-border); border-radius: 8px; transition: background-color .15s ease, border-color .15s ease; }
.fp-portal main :is(.btn, button):hover, .fp-sidebar-account button:hover { background: #33404d; }
.fp-portal main .btn-primary, .fp-portal .fp-auth button { background: var(--fd-primary); color: #07131b; border-color: var(--fd-primary); }
.fp-portal main .btn-primary:hover, .fp-portal .fp-auth button:hover { background: #7dd3fc; color: #07131b; border-color: #7dd3fc; }
.fp-portal main .btn-danger { background: #4a222d; border-color: #df8395; color: #fff1f4; }
.fp-portal main .btn-danger:hover { background: #763044; }
.fp-portal main button:disabled { color: var(--fd-muted); background: #252d36; border-color: var(--fd-border); cursor: not-allowed; }
.fp-main :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select, textarea) { background: var(--fd-input); border-color: var(--fd-border); transition: border-color .15s ease; }
.fp-main :is(input, select, textarea):focus { border-color: var(--fd-primary); }
.fp-main select option { background: var(--fd-input); }
.fp-main :is(code, pre, .flasher-data-item, .flasher-callout, .reference-summary > div) { background: var(--fd-input); border-color: var(--fd-line); }
.fp-main :is(.ersatz-detail-list dd, .ersatz-preview-grid dd, input[name="fin"], input[name="scn"], input[name="hardware"], input[name="application"], input[name="calibration"]) { font-family: Consolas, "Courier New", monospace; letter-spacing: .025em; }
.fp-main .flasher-table-scroll { border-color: var(--fd-line); border-radius: 10px; }
.fp-main table th { background: #252d36; color: #b6c5d3; font-size: 11px; padding: 13px 16px; }
.fp-main table :is(th, td) { border-bottom-color: var(--fd-line); }
.fp-main table tbody tr:nth-child(even) { background: #1e252d; }
.fp-main table tbody tr:hover { background: #28343f; }
.fp-main .flasher-tabs { border-color: var(--fd-line); gap: 4px; padding-bottom: 12px; }
.fp-main .flasher-tabs a { background: transparent; border-color: transparent; color: var(--fd-muted); border-radius: 6px; }
.fp-main .flasher-tabs a:hover { background: #252d36; color: var(--fd-text); }
.fp-main .flasher-tabs a[aria-current="page"] { background: #1c2b34; color: #bceaff; box-shadow: inset 0 -2px 0 var(--fd-primary); }
.fp-main .flasher-badge { border-radius: 20px; padding: 5px 10px; font-size: 12px; }
.fp-main .flasher-badge[data-state="pending"] { color: #f2d29a; background: #33291a; border-color: #9b7c45; }
.fp-main .flasher-callout { border-left-color: var(--fd-primary); }
.fp-main .flasher-callout-success { border-left-color: #34d399; }
.fp-icon-tile { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid #3c5867; border-radius: 12px; background: #1c2b34; color: var(--fd-primary); }
.fp-main .fp-form-note { margin: 16px 0 0; font-size: 13px; color: var(--fd-muted); }
.fp-command-center { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 30px; align-items: center; margin-bottom: 24px; padding: 34px; border: 1px solid #3c5867; border-radius: 16px; background: radial-gradient(ellipse at 95% 50%, #183744 0, transparent 60%), #1b2027; overflow: hidden; }
.fp-command-copy { min-width: 0; }
.fp-command-center .fp-command-copy h2 { font-size: clamp(25px, 2.7vw, 34px); line-height: 1.25; margin: 0 0 14px; max-width: 24ch; }
.fp-command-copy p { max-width: 66ch; }
.fp-inline-status { display: flex; flex-wrap: wrap; gap: 8px; }
.fp-ecu-visual { position: relative; display: grid; place-items: center; height: 230px; }
.fp-ecu-orbit { position: absolute; width: 215px; height: 215px; border: 1px solid #38bdf83b; border-radius: 50%; }
.fp-ecu-orbit::before { content: ''; position: absolute; inset: 22px; border: 1px dashed #38bdf830; border-radius: 50%; }
.fp-ecu-core { display: grid; place-items: center; gap: 8px; padding: 20px; width: 138px; height: 138px; border: 1px solid #487184; border-radius: 24px; background: linear-gradient(135deg, #243d49, #172129); color: var(--fd-primary); box-shadow: 0 16px 32px #00000030; }
.fp-ecu-core .fp-icon { width: 64px; height: 64px; }
.fp-ecu-core span, .fp-ecu-tag { font: 10px Consolas, monospace; letter-spacing: .16em; color: #a9d6e9; }
.fp-ecu-tag { position: absolute; bottom: 0; }
.fp-metric-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 22px 0; margin: 0 0 28px; border-top: 1px solid var(--fd-line); border-bottom: 1px solid var(--fd-line); }
.fp-metric-strip > div { display: flex; align-items: center; gap: 16px; padding: 0 22px; min-width: 0; border-right: 1px solid var(--fd-line); }
.fp-metric-strip > div:first-child { padding-left: 0; }
.fp-metric-strip > div:last-child { border: 0; }
.fp-metric-strip .fp-icon { color: var(--fd-primary); }
.fp-metric-strip span { display: block; color: var(--fd-muted); font-size: 12px; }
.fp-metric-strip strong { display: block; font-size: 23px; overflow-wrap: anywhere; }
.fp-workspace-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: 22px; }
.fp-next-step > .fp-icon-tile { margin-bottom: 18px; }
.fp-empty-state { padding: 22px 0; }
.fp-empty-state > .fp-icon { width: 38px; height: 38px; margin-bottom: 14px; color: var(--fd-muted); }
.fp-main .fp-empty-state h3 { font-size: 17px; margin-bottom: 6px; }
.fp-activity-list { list-style: none; padding: 0; margin: 0; }
.fp-activity-list li { display: flex; align-items: flex-start; gap: 14px; padding: 16px 0; border-bottom: 1px solid var(--fd-line); }
.fp-activity-list li:last-child { border: 0; }
.fp-activity-list li > div { min-width: 0; }
.fp-activity-list :is(strong, span.flasher-code, small) { display: block; }
.fp-activity-list small { font-size: 12px; }
.fp-invite-panel { margin: 0 0 24px !important; border: 1px solid #3c5867; border-radius: 12px; background: var(--fd-panel); }
.fp-main .fp-invite-panel > summary { display: flex; align-items: center; gap: 12px; padding: 16px 22px; margin: 0; color: #bceaff; text-decoration: none; list-style: none; }
.fp-invite-panel > summary::-webkit-details-marker { display: none; }
.fp-invite-panel > summary::after { content: '+'; margin-left: auto; font-size: 22px; line-height: 1; }
.fp-invite-panel[open] > summary::after { content: '-'; }
.fp-invite-hint { font-size: 12px; font-weight: 400; color: var(--fd-muted); }
.fp-invite-content { max-width: 820px; padding: 8px 22px 24px; }
.fp-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.fp-form-wide { grid-column: 1 / -1; }
.fp-optional { color: var(--fd-muted); font-weight: 400; font-size: 12px; }
.fp-list-search { max-width: 440px; }
.fp-account-id { display: block; font: 11px Consolas, monospace; color: var(--fd-muted); margin-top: 5px; }
.fp-main .fp-result-count { font-size: 12px; }
.fp-workflow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; list-style: none; padding: 0; margin: 0 0 26px; }
.fp-workflow li { display: flex; align-items: flex-start; gap: 12px; padding: 14px 0; min-width: 0; }
.fp-workflow li > span { font: 17px Consolas, monospace; color: var(--fd-primary); padding-top: 2px; }
.fp-workflow :is(strong, small) { display: block; }
.fp-workflow strong { font-size: 14px; }
.fp-workflow small { font-size: 12px; }
.fp-precision-draft > .flasher-card:has(fieldset) { max-width: 980px; }
.fp-precision-draft fieldset { border: 0; border-top: 1px solid var(--fd-line); border-radius: 0; padding: 18px 0 0; }
@media (max-width: 960px) {
    .fp-topbar { min-height: 60px; }
    .fp-main { padding-top: 24px; }
    .fp-command-center { grid-template-columns: minmax(0, 1fr) 170px; padding: 26px; gap: 16px; }
    .fp-ecu-orbit { width: 165px; height: 165px; }
    .fp-workspace-grid { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
    .fp-command-center { grid-template-columns: 1fr; padding: 22px; }
    .fp-ecu-visual { display: none; }
    .fp-metric-strip { grid-template-columns: 1fr; gap: 16px; padding: 18px 0; }
    .fp-metric-strip > div { border: 0; padding: 0; }
    .fp-form-grid, .fp-workflow { grid-template-columns: 1fr; }
    .fp-workflow { gap: 0; }
    .fp-workflow li { padding: 10px 0; }
    .fp-invite-hint { display: none; }
    .fp-invite-content { padding: 8px 18px 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .fp-portal *, .fp-portal *::before, .fp-portal *::after { transition: none !important; }
}
@media print {
    html.flasher-design body, :is(.flasher-workspace, .flasher-legacy) :is(table, tr, td, th, .flasher-card) { color: #111111; background: #ffffff; }
    .flasher-tabs, .flasher-actions, .flasher-legacy .filter-bar, .fp-sidebar, .fp-topbar, .fp-skip, .fp-footer, .fp-ecu-visual { display: none; }
    .fp-shell { display: block; }
    .fp-main { padding: 0; }
    .flasher-table-scroll { overflow: visible; }
}
.reference-search { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); gap: 8px 14px; align-items: end; }
.reference-search label { margin: 0; }
.reference-search input, .reference-search select { margin: 0 !important; }
.reference-search .flasher-actions { grid-column: 1 / -1; margin: 8px 0 0; }
.reference-results { display: grid; gap: 14px; }
.reference-record { min-width: 0; padding: 18px; border: 1px solid var(--fd-border); border-radius: 12px; background: var(--fd-panel); }
.reference-record-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 14px; }
.reference-summary { display: grid; flex: 1 1 600px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); gap: 10px; }
.reference-summary > div { min-width: 0; padding: 10px 12px; border: 1px solid #425570; border-radius: 8px; background: #101b2b; }
.reference-summary span:not(.flasher-badge) { display: block; color: var(--fd-muted); font-size: 12px; font-weight: 650; }
.reference-summary strong { display: block; margin-top: 3px; overflow-wrap: anywhere; }
.reference-record .flasher-actions { margin: 12px 0; }
.reference-record > details { border-top: 1px solid #425570; padding-top: 6px; }
.reference-record .flasher-data-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); margin-top: 8px; }
.reference-record .flasher-code-block { max-height: 22rem; overflow: auto; }
.reference-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 0 24px; }
.reference-pagination span { color: var(--fd-muted); font-weight: 600; }
.reference-expert { margin-top: 24px; }
.reference-expert > p { margin-top: 12px; }
.flasher-grid > .flasher-card { margin: 0; }
@media (max-width: 680px) {
    .reference-record { padding: 14px; }
    .reference-search .flasher-actions { align-items: stretch; }
    .reference-pagination { justify-content: center; }
}
