/* ── PQUniversal Forensics Scanner ── v5 ── */

.pdf-tool-page:has(#ufscan-drop) { max-width: min(94vw, 1320px); width: auto; }
body:has(#ufscan-drop) .pdf-header-tool .pdf-header-inner { max-width: min(94vw, 1320px); }
@media (max-width: 700px) {
    .pdf-tool-page:has(#ufscan-drop),
    body:has(#ufscan-drop) .pdf-header-tool .pdf-header-inner { max-width: 100%; }
}

/* ── About ───────────────────────────────────────────────────────────────── */
.ufs-about { margin-bottom: 2rem; }
.ufs-about-header {
    display: flex; align-items: flex-start; gap: 1.1rem;
    margin-bottom: 1.4rem; padding: 1.3rem 1.5rem;
    border-radius: 12px; background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.07);
}
.ufs-about-icon  { font-size: 2.2rem; flex-shrink: 0; margin-top: .1rem; }
.ufs-about-title { font-size: 1.15rem; font-weight: 700; color: var(--pdf-text); margin-bottom: .3rem; }
.ufs-about-sub   { font-size: .88rem; color: #c4c4d8; line-height: 1.55; }
.ufs-about-sub strong { color: var(--pdf-amber, #ff8c00); }

.ufs-about-stack-label {
    display: grid; grid-template-columns: 1fr auto;
    grid-template-rows: auto auto; column-gap: .75rem; row-gap: .2rem; margin-bottom: 1rem;
}
.ufs-about-stack-name {
    grid-column: 1; grid-row: 1; font-size: .78rem; font-weight: 700;
    letter-spacing: .1em; text-transform: uppercase; color: var(--pdf-amber, #ff8c00);
}
.ufs-about-stack-desc {
    grid-column: 1 / -1; grid-row: 2; font-size: .74rem; color: var(--pdf-text-muted, #9898b0);
}
.ufs-about-stack-count {
    grid-column: 2; grid-row: 1; font-size: .72rem; font-weight: 700;
    letter-spacing: .05em; color: rgba(255,140,0,.5); text-transform: uppercase; white-space: nowrap;
}

/* ── Engine accordion grid ───────────────────────────────────────────────── */
.ufs-engine-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 1.2rem;
}
@media (max-width: 900px) { .ufs-engine-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .ufs-engine-grid { grid-template-columns: 1fr; } }

.ufs-engine-cell { display: flex; flex-direction: column; }

.ufs-engine-card {
    display: flex; align-items: center; gap: 8px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.07); border-left: 3px solid rgba(255,255,255,0.10);
    border-radius: 8px; padding: 10px 12px; cursor: pointer;
    transition: border-color .2s, background .2s, opacity .2s; user-select: none;
}
.ufs-engine-card:hover { opacity: .88; }
.ufs-engine-card.ufs-card-open { border-radius: 8px; opacity: 1; }
.ufs-engine-num  { font-size: .82rem; font-weight: 700; flex-shrink: 0; }
.ufs-engine-name { font-size: .78rem; font-weight: 700; flex: 1; }
.ufs-engine-chev { font-size: .65rem; color: #6a6a80; flex-shrink: 0; }

/* Per-engine accent colours */
.ufs-c1  { border-left-color: #6366f1; background: rgba(99,102,241,.05); }
.ufs-c1  .ufs-engine-name, .ufs-c1  .ufs-engine-num { color: #818cf8; }
.ufs-c2  { border-left-color: #06b6d4; background: rgba(6,182,212,.05); }
.ufs-c2  .ufs-engine-name, .ufs-c2  .ufs-engine-num { color: #22d3ee; }
.ufs-c3  { border-left-color: #ec4899; background: rgba(236,72,153,.05); }
.ufs-c3  .ufs-engine-name, .ufs-c3  .ufs-engine-num { color: #f472b6; }
.ufs-c4  { border-left-color: #f97316; background: rgba(249,115,22,.05); }
.ufs-c4  .ufs-engine-name, .ufs-c4  .ufs-engine-num { color: #fb923c; }
.ufs-c5  { border-left-color: #3b82f6; background: rgba(59,130,246,.05); }
.ufs-c5  .ufs-engine-name, .ufs-c5  .ufs-engine-num { color: #60a5fa; }
.ufs-c6  { border-left-color: #f43f5e; background: rgba(244,63,94,.05); }
.ufs-c6  .ufs-engine-name, .ufs-c6  .ufs-engine-num { color: #fb7185; }
.ufs-c7  { border-left-color: #a78bfa; background: rgba(167,139,250,.05); }
.ufs-c7  .ufs-engine-name, .ufs-c7  .ufs-engine-num { color: #c4b5fd; }
.ufs-c8  { border-left-color: #34d399; background: rgba(52,211,153,.05); }
.ufs-c8  .ufs-engine-name, .ufs-c8  .ufs-engine-num { color: #6ee7b7; }
.ufs-c9  { border-left-color: #e879f9; background: rgba(232,121,249,.05); }
.ufs-c9  .ufs-engine-name, .ufs-c9  .ufs-engine-num { color: #f0abfc; }
.ufs-c10 { border-left-color: #fbbf24; background: rgba(251,191,36,.05); }
.ufs-c10 .ufs-engine-name, .ufs-c10 .ufs-engine-num { color: #fcd34d; }
.ufs-c11 { border-left-color: #22c55e; background: rgba(34,197,94,.05); }
.ufs-c11 .ufs-engine-name, .ufs-c11 .ufs-engine-num { color: #4ade80; }
.ufs-c12 { border-left-color: #fb923c; background: rgba(251,146,60,.05); }
.ufs-c12 .ufs-engine-name, .ufs-c12 .ufs-engine-num { color: #fdba74; }
.ufs-c13 { border-left-color: #ef4444; background: rgba(239,68,68,.05); }
.ufs-c13 .ufs-engine-name, .ufs-c13 .ufs-engine-num { color: #f87171; }
.ufs-c14 { border-left-color: #8b5cf6; background: rgba(139,92,246,.05); }
.ufs-c14 .ufs-engine-name, .ufs-c14 .ufs-engine-num { color: #a78bfa; }
.ufs-c15 { border-left-color: #2dd4bf; background: rgba(45,212,191,.05); }
.ufs-c15 .ufs-engine-name, .ufs-c15 .ufs-engine-num { color: #5eead4; }
.ufs-c16 { border-left-color: #38bdf8; background: rgba(56,189,248,.05); }
.ufs-c16 .ufs-engine-name, .ufs-c16 .ufs-engine-num { color: #7dd3fc; }
.ufs-c17 { border-left-color: #a3e635; background: rgba(163,230,53,.05); }
.ufs-c17 .ufs-engine-name, .ufs-c17 .ufs-engine-num { color: #bef264; }
.ufs-c18 { border-left-color: #f59e0b; background: rgba(245,158,11,.05); }
.ufs-c18 .ufs-engine-name, .ufs-c18 .ufs-engine-num { color: #fbbf24; }
.ufs-c19 { border-left-color: #e879f9; background: rgba(232,121,249,.05); }
.ufs-c19 .ufs-engine-name, .ufs-c19 .ufs-engine-num { color: #f0abfc; }
.ufs-c20 { border-left-color: #f59e0b; background: rgba(245,158,11,.05); }
.ufs-c20 .ufs-engine-name, .ufs-c20 .ufs-engine-num { color: #fcd34d; }
.ufs-c21 { border-left-color: #ef4444; background: rgba(239,68,68,.05); }
.ufs-c21 .ufs-engine-name, .ufs-c21 .ufs-engine-num { color: #fca5a5; }

/* Desc panel: hidden by default; shown when JS promotes to grid level */
.ufs-engine-desc-panel {
    display: none; font-size: .74rem; color: #c4c4d8; line-height: 1.55;
    padding: 10px 12px;
}
.ufs-engine-desc-panel code {
    font-family: 'SF Mono', 'Fira Code', Consolas, monospace;
    color: #ffb045; font-size: .72rem;
}

/* Wide expanded desc — JS moves to grid level spanning all columns */
.ufs-engine-desc-wide {
    display: block; grid-column: 1 / -1;
    padding: .9rem 1.2rem 1.05rem; background: #12152a;
    border: 1px solid rgba(255,255,255,0.14); border-radius: 8px;
    margin-bottom: .35rem;
    font-size: .82rem; color: #dde0f0; line-height: 1.7;
}
.ufs-engine-desc-wide code {
    font-family: 'SF Mono', 'Fira Code', Consolas, monospace;
    font-size: .78rem; padding: .1rem .35rem;
    border-radius: 3px; background: rgba(255,255,255,0.10); color: #ffb045;
}

/* ── File type categories (compact pill style) ───────────────────────────── */
.ufs-filetypes {
    display: flex; flex-direction: column; gap: 7px; margin-bottom: 1.4rem;
}
.ufs-ft-group {
    display: flex; flex-wrap: wrap; align-items: center; gap: 4px;
}
.ufs-ft-label {
    font-size: .7rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .08em; margin-right: 20px; flex-shrink: 0; width: 70px;
}
.ufs-ft-ext {
    font-size: .66rem; padding: 2px 7px; border-radius: 4px;
    border: 1px solid; opacity: .85; font-family: 'SF Mono', 'Fira Code', Consolas, monospace;
}

/* Category colors */
.ufs-cat-img { color: #ec4899; border-color: rgba(236,72,153,.35); background: rgba(236,72,153,.07); }
.ufs-cat-aud { color: #a78bfa; border-color: rgba(167,139,250,.35); background: rgba(167,139,250,.07); }
.ufs-cat-vid { color: #fb923c; border-color: rgba(251,146,60,.35);  background: rgba(251,146,60,.07); }
.ufs-cat-arc { color: #34d399; border-color: rgba(52,211,153,.35);  background: rgba(52,211,153,.07); }
.ufs-cat-exe { color: #f87171; border-color: rgba(248,113,113,.35); background: rgba(248,113,113,.07); }
.ufs-cat-scr { color: #fbbf24; border-color: rgba(251,191,36,.35);  background: rgba(251,191,36,.07); }
.ufs-cat-dat { color: #60a5fa; border-color: rgba(96,165,250,.35);  background: rgba(96,165,250,.07); }
.ufs-cat-net { color: #2dd4bf; border-color: rgba(45,212,191,.35);  background: rgba(45,212,191,.07); }

/* Labels are not bordered */
.ufs-ft-label { background: none; border: none; padding: 0; }

/* ── Drop zone ───────────────────────────────────────────────────────────── */
#ufscan-drop {
    border: 2px dashed rgba(255,255,255,0.14);
    border-radius: 14px; padding: 3rem 2rem; text-align: center;
    cursor: pointer; transition: border-color .2s, background .2s;
    position: relative; background: rgba(255,255,255,0.02);
    margin-bottom: 1.2rem;
}
#ufscan-drop:hover, #ufscan-drop.dragover {
    border-color: var(--pdf-amber, #ff8c00);
    background: rgba(255,140,0,0.04);
}
#ufscan-file-input {
    position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%;
}
.ufscan-drop-icon  { font-size: 2.8rem; margin-bottom: .8rem; opacity: .65; }
.ufscan-drop-title { font-size: 1.1rem; font-weight: 700; color: var(--pdf-text); margin-bottom: .4rem; }
.ufscan-drop-sub   { font-size: .81rem; color: #8a8aa0; line-height: 1.6; }

/* Selected file */
.ufscan-selected {
    display: none; background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.12); border-radius: 10px;
    padding: .9rem 1.1rem; margin-bottom: .9rem;
    align-items: center; gap: 1rem;
}
.ufscan-selected.visible { display: flex; }
.ufscan-sel-icon { font-size: 1.7rem; flex-shrink: 0; }
.ufscan-sel-info { flex: 1; min-width: 0; }
.ufscan-sel-name { font-weight: 600; font-size: .88rem; word-break: break-all; }
.ufscan-sel-size { font-size: .76rem; color: #8a8aa0; margin-top: .15rem; }
.ufscan-sel-clear {
    flex-shrink: 0; background: none; border: 1px solid rgba(255,255,255,.2);
    border-radius: 6px; padding: .3rem .7rem; font-size: .74rem;
    cursor: pointer; color: #8a8aa0; transition: all .15s;
}
.ufscan-sel-clear:hover { border-color: #ef4444; color: #ef4444; }

#ufscan-submit-wrap { display: none; margin-bottom: 1.4rem; }
#ufscan-submit-wrap.visible { display: block; }
#ufscan-submit-btn {
    width: 100%; padding: .85rem; font-size: 1rem; font-weight: 700;
    border: none; border-radius: 10px; cursor: pointer;
    background: linear-gradient(135deg, var(--pdf-amber, #ff8c00), #ff5500);
    color: #fff; transition: opacity .15s, transform .1s;
}
#ufscan-submit-btn:hover { opacity: .9; }
#ufscan-submit-btn:active { transform: scale(.99); }
#ufscan-submit-btn:disabled { opacity: .5; cursor: not-allowed; }

/* ── Progress ─────────────────────────────────────────────────────────────── */
#ufscan-progress { display: none; margin-bottom: 1.4rem; }
#ufscan-progress.visible { display: block; }
.ufscan-prog-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.ufscan-prog-file { font-size: .86rem; font-weight: 600; }
.ufscan-prog-pct  { font-size: .76rem; color: var(--pdf-amber, #ff8c00); }
.ufscan-prog-bar-wrap { background: rgba(255,255,255,.08); border-radius: 4px; height: 4px; overflow: hidden; margin-bottom: .9rem; }
.ufscan-prog-bar {
    height: 100%; background: linear-gradient(90deg, var(--pdf-amber,#ff8c00), #ff5500);
    width: 0%; transition: width .5s ease;
    animation: ufs-pulse 1.5s ease-in-out infinite;
}
@keyframes ufs-pulse { 0%,100% { opacity:1; } 50% { opacity:.6; } }

/* ── Engine strip ─────────────────────────────────────────────────────────── */
#ufscan-engine-strip {
    display: flex; flex-wrap: wrap; gap: .4rem;
    padding: .7rem .8rem; background: rgba(255,255,255,.025);
    border: 1px solid rgba(255,255,255,.07); border-radius: 8px;
}
.ufscan-eng-chip {
    display: flex; align-items: center; gap: .3rem;
    background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.09);
    border-radius: 5px; padding: .28rem .6rem; font-size: .7rem; transition: all .2s;
}
.ufscan-eng-chip.running { border-color: var(--pdf-amber,#ff8c00); color: var(--pdf-amber,#ff8c00); }
.ufscan-eng-chip.done    { border-color: #22c55e; color: #22c55e; }
.ufscan-eng-chip.error   { border-color: #ef4444; color: #ef4444; }
.ufscan-eng-dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.ufscan-eng-chip.running .ufscan-eng-dot { animation: ufs-blink 1s ease-in-out infinite; }
@keyframes ufs-blink { 0%,100% { opacity:1; } 50% { opacity:.15; } }

/* ── Console ──────────────────────────────────────────────────────────────── */
#ufscan-console { display: none; margin-bottom: 1.4rem; }
#ufscan-console.visible { display: block; }
.ufscan-console-header {
    display: flex; align-items: center; gap: .5rem; margin-bottom: .35rem;
}
.ufscan-console-title { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: #8a8aa0; }
.ufscan-console-toggle,
.ufscan-console-clear {
    background: none; border: 1px solid rgba(255,255,255,.1); border-radius: 4px;
    padding: .12rem .45rem; font-size: .64rem; color: #6a6a80; cursor: pointer;
}
.ufscan-console-toggle { margin-left: auto; }
.ufscan-console-body {
    background: #080d18; border: 1px solid rgba(255,255,255,.07);
    border-radius: 6px; padding: .65rem; max-height: 160px; overflow-y: auto;
    font-family: monospace; font-size: .73rem; color: #8a9ab8; line-height: 1.6;
}
.log-info   { color: #60a5fa; }
.log-warn   { color: #fbbf24; }
.log-error  { color: #f87171; }
.log-ok     { color: #34d399; }
.log-engine { color: #a78bfa; }

/* ── Error ────────────────────────────────────────────────────────────────── */
#ufscan-error {
    display: none; background: rgba(239,68,68,.08);
    border: 1px solid rgba(239,68,68,.35); border-radius: 8px;
    padding: .8rem 1rem; margin-bottom: 1rem; color: #f87171; font-size: .83rem;
}
#ufscan-error.visible { display: block; }

/* ── Results ──────────────────────────────────────────────────────────────── */
#ufscan-results { display: none; }
#ufscan-results.visible { display: block; }

/* Verdict banner */
.ufscan-verdict {
    border-radius: 12px; padding: 1.3rem 1.5rem; margin-bottom: 1.3rem;
    border: 1px solid; display: flex; align-items: center; gap: 1.1rem;
}
.ufscan-verdict-icon     { font-size: 2.3rem; flex-shrink: 0; }
.ufscan-verdict-level    { font-size: 1.6rem; font-weight: 900; letter-spacing: .1em; }
.ufscan-verdict-filename { font-size: .81rem; opacity: .8; margin-top: .2rem; word-break: break-all; }
.ufscan-verdict-category { font-size: .73rem; opacity: .6; margin-top: .25rem; }
.ufscan-verdict-rec      { font-size: .79rem; margin-top: .45rem; line-height: 1.5; }
.ufscan-verdict-score    { margin-left: auto; text-align: right; flex-shrink: 0; }
.ufscan-score-num        { font-size: 2.8rem; font-weight: 900; line-height: 1; }
.ufscan-score-label      { font-size: .63rem; text-transform: uppercase; letter-spacing: .08em; opacity: .65; }

/* Stats bar */
.ufscan-stats-bar {
    display: grid; grid-template-columns: repeat(5, 1fr); gap: .65rem; margin-bottom: 1.3rem;
}
.ufscan-stat {
    background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06);
    border-radius: 8px; padding: .8rem .9rem;
}
.ufscan-stat-num   { font-size: 1.8rem; font-weight: 900; line-height: 1; }
.ufscan-stat-label { font-size: .66rem; text-transform: uppercase; letter-spacing: .07em; color: #8a8aa0; margin-top: .25rem; }
.c-critical { color: #f87171; }
.c-high     { color: #fb923c; }
.c-medium   { color: #fbbf24; }
.c-low      { color: #60a5fa; }
.c-info     { color: #6b7280; }

/* Tabs */
.ufscan-tabs { display: flex; gap: .3rem; flex-wrap: wrap; margin-bottom: .9rem; }
.ufscan-tab {
    background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.09);
    border-radius: 6px; padding: .42rem .85rem; font-size: .77rem; cursor: pointer;
    color: #8a8aa0; transition: all .15s; font-family: inherit;
}
.ufscan-tab:hover { color: var(--pdf-text); border-color: rgba(255,255,255,.18); }
.ufscan-tab.active { background: rgba(255,140,0,.1); border-color: var(--pdf-amber,#ff8c00); color: var(--pdf-amber,#ff8c00); }

.ufscan-panel { display: none; }
.ufscan-panel.active { display: block; }

/* Cards */
.ufscan-card {
    background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07);
    border-radius: 10px; padding: 1.1rem; margin-bottom: .85rem;
}
.ufscan-card:last-child { margin-bottom: 0; }
.ufscan-card-title {
    font-size: .7rem; text-transform: uppercase; letter-spacing: .09em;
    color: #8a8aa0; margin-bottom: .85rem; font-weight: 600;
}
.ufscan-findings-count {
    display: inline-block; background: rgba(255,255,255,.07); border-radius: 4px;
    padding: .05rem .4rem; font-size: .68rem; margin-left: .4rem;
}
.ufscan-summary-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .85rem; margin-bottom: .85rem; }

/* Findings */
.ufscan-findings { display: flex; flex-direction: column; gap: .45rem; }
.ufscan-finding {
    background: rgba(255,255,255,.025); border-radius: 6px;
    padding: .65rem .9rem; border-left: 3px solid;
}
.ufscan-finding.critical { border-color: #f87171; }
.ufscan-finding.high     { border-color: #fb923c; }
.ufscan-finding.medium   { border-color: #fbbf24; }
.ufscan-finding.low      { border-color: #60a5fa; }
.ufscan-finding.info     { border-color: #3a3a50; }
.ufscan-find-meta   { display: flex; align-items: center; gap: .45rem; margin-bottom: .3rem; }
.ufscan-find-sev {
    font-size: .63rem; text-transform: uppercase; letter-spacing: .07em;
    padding: .12rem .42rem; border-radius: 3px; font-weight: 700; flex-shrink: 0;
}
.sev-pill-critical { background: rgba(248,113,113,.14); color: #f87171; }
.sev-pill-high     { background: rgba(251,146,60,.14);  color: #fb923c; }
.sev-pill-medium   { background: rgba(251,191,36,.14);  color: #fbbf24; }
.sev-pill-low      { background: rgba(96,165,250,.14);  color: #60a5fa; }
.sev-pill-info     { background: rgba(107,114,128,.1);  color: #8a8aa0; }
.ufscan-find-engine { font-size: .7rem; color: #6a6a80; }
.ufscan-find-text   { font-size: .83rem; color: var(--pdf-text); }
.ufscan-find-detail { font-size: .75rem; color: #8a8aa0; margin-top: .22rem; word-break: break-all; }

/* Engine result cards */
.ufscan-engine-results-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .55rem;
    margin-bottom: .85rem;
}
.ufscan-eng-card {
    background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.07);
    border-radius: 8px; padding: .8rem .95rem; cursor: pointer; transition: border-color .15s;
}
.ufscan-eng-card:hover { border-color: rgba(255,255,255,.18); }
.ufscan-eng-card.flagged { border-color: rgba(251,146,60,.35); }
.ufscan-eng-card-name { font-size: .77rem; font-weight: 600; margin-bottom: .35rem; display: flex; align-items: center; gap: .35rem; }
.ufscan-eng-num  { font-size: .7rem; color: #6a6a80; }
.ufscan-eng-dot  { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
.ufscan-eng-score { font-size: 1.35rem; font-weight: 800; line-height: 1; }
.ufscan-eng-meta  { font-size: .67rem; color: #6a6a80; margin-top: .28rem; }

/* Engine detail */
.ufscan-eng-detail {
    display: none; background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.09); border-radius: 10px;
    padding: 1.1rem; margin-top: .65rem;
}
.ufscan-eng-detail.visible { display: block; }
.ufscan-eng-detail-title { font-size: .88rem; font-weight: 700; margin-bottom: .85rem; }

/* IOC */
.ufscan-ioc-section { margin-bottom: 1.1rem; }
.ufscan-ioc-title { font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: #8a8aa0; margin-bottom: .45rem; font-weight: 600; }
.ufscan-ioc-items { display: flex; flex-direction: column; gap: .28rem; }
.ufscan-ioc-item {
    background: rgba(255,255,255,.03); border-radius: 4px;
    padding: .35rem .65rem; font-size: .77rem; word-break: break-all;
    font-family: 'SF Mono', 'Fira Code', Consolas, monospace;
}

/* Hash rows */
.ufscan-hash-row { display: flex; gap: .9rem; align-items: baseline; padding: .45rem 0; border-bottom: 1px solid rgba(255,255,255,.05); }
.ufscan-hash-row:last-child { border-bottom: none; }
.ufscan-hash-lbl { font-size: .69rem; color: #6a6a80; width: 52px; flex-shrink: 0; font-weight: 600; }
.ufscan-hash-val { font-size: .73rem; word-break: break-all; font-family: 'SF Mono', 'Fira Code', Consolas, monospace; }

/* AI panel */
.ufscan-ai-card { text-align: center; padding: 1.5rem; }
.ufscan-ai-pill {
    display: inline-block; font-size: 1.35rem; font-weight: 900;
    letter-spacing: .12em; padding: .45rem 1.4rem; border-radius: 8px; margin-bottom: .7rem;
}
.ufscan-ai-meta { font-size: .77rem; color: #8a8aa0; margin-bottom: .7rem; }
.ufscan-ai-summary { font-size: .87rem; line-height: 1.7; max-width: 720px; margin: 0 auto .9rem; }
.ufscan-ai-section-title {
    font-size: .7rem; text-transform: uppercase; letter-spacing: .08em;
    color: #8a8aa0; margin: .9rem 0 .5rem; font-weight: 600;
}
.ufscan-ai-findings {
    text-align: left; max-width: 700px; margin: 0 auto;
}
.ufscan-ai-finding {
    padding: .4rem 0; border-bottom: 1px solid rgba(255,255,255,.05); font-size: .81rem;
}
.ufscan-ai-finding:last-child { border-bottom: none; }
.ufscan-ai-actions {
    list-style: none; text-align: left; max-width: 700px; margin: 0 auto;
    display: flex; flex-direction: column; gap: .35rem;
}
.ufscan-ai-action { font-size: .81rem; }
.mitre-grid { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .5rem; justify-content: center; }
.mitre-pill {
    background: rgba(124,58,237,.1); border: 1px solid rgba(124,58,237,.28);
    border-radius: 6px; padding: .4rem .85rem; text-align: left;
}
.mitre-id   { font-size: .74rem; color: #a78bfa; font-weight: 700; }
.mitre-name { font-size: .65rem; color: #8a8aa0; margin-top: .12rem; }

/* Raw JSON */
.ufscan-raw-json {
    background: #080d18; border: 1px solid rgba(255,255,255,.07);
    border-radius: 8px; padding: .9rem; overflow: auto;
    font-family: 'SF Mono', 'Fira Code', Consolas, monospace; font-size: .73rem;
    color: #8a9ab8; white-space: pre-wrap; word-break: break-all; max-height: 580px;
}
.ufscan-dl-btn {
    display: inline-flex; align-items: center; gap: .4rem;
    background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.13);
    border-radius: 7px; padding: .48rem 1rem; font-size: .78rem;
    color: var(--pdf-text); cursor: pointer; text-decoration: none;
    margin-bottom: .9rem; transition: border-color .15s;
}
.ufscan-dl-btn:hover { border-color: var(--pdf-amber,#ff8c00); color: var(--pdf-amber,#ff8c00); }
.ufscan-empty { text-align: center; padding: 2rem; color: #6a6a80; font-size: .83rem; }

/* ── Watermark panel ──────────────────────────────────────────────────────── */
.ufscan-wm-vendor-row {
    display: flex; align-items: flex-start; gap: .75rem;
    padding: .6rem 0; border-bottom: 1px solid rgba(255,255,255,.06);
}
.ufscan-wm-vendor-row:last-child { border-bottom: none; }
.ufscan-wm-vendor-pill {
    flex-shrink: 0; font-size: .7rem; font-weight: 700; letter-spacing: .05em;
    padding: .25rem .7rem; border-radius: 20px;
    background: rgba(245,158,11,.15); color: #fcd34d;
    border: 1px solid rgba(245,158,11,.3);
}
.ufscan-wm-vendor-detail { min-width: 0; }
.ufscan-wm-indicator {
    padding: .55rem .8rem; margin-bottom: .5rem;
    background: rgba(245,158,11,.07); border-left: 3px solid #f59e0b;
    border-radius: 0 6px 6px 0; font-size: .82rem; color: #e2e8f0; line-height: 1.6;
}
.ufscan-wm-indicator:last-child { margin-bottom: 0; }
.ufscan-wm-kv-grid { display: flex; flex-direction: column; gap: 0; }
.ufscan-wm-kv-row {
    display: grid; grid-template-columns: 180px 1fr; gap: .6rem;
    padding: .45rem .2rem; border-bottom: 1px solid rgba(255,255,255,.05);
    align-items: baseline;
}
.ufscan-wm-kv-row:last-child { border-bottom: none; }
.ufscan-wm-kv-key {
    font-size: .72rem; font-weight: 700; color: #8a8aa8;
    text-transform: uppercase; letter-spacing: .04em; word-break: break-all;
}
.ufscan-wm-kv-val { font-size: .82rem; color: #d4d8f0; word-break: break-word; }
.ufscan-wm-code {
    font-family: 'SF Mono', 'Fira Code', Consolas, monospace;
    color: #fcd34d; font-size: .78rem;
}
.ufscan-wm-kv-ctx { font-size: .72rem; color: #6a6a80; grid-column: 1 / -1; padding-top: .15rem; }
.ufscan-wm-ocr-note {
    font-size: .75rem; color: #8a8aa8; margin: 0 0 .7rem; font-style: italic;
}
.ufscan-wm-ocr-line {
    padding: .45rem .75rem; margin-bottom: .35rem;
    background: rgba(245,158,11,.07); border-left: 3px solid #f59e0b;
    border-radius: 0 6px 6px 0; font-size: .88rem; color: #fcd34d;
    font-family: 'SF Mono', 'Fira Code', Consolas, monospace;
    word-break: break-word;
}
.ufscan-wm-ocr-line:last-child { margin-bottom: 0; }
.ufscan-wm-alpha-thumb-wrap {
    margin-top: 1rem; padding-top: .9rem;
    border-top: 1px solid rgba(255,255,255,.07);
}
.ufscan-wm-alpha-thumb {
    display: block; max-width: 100%; border-radius: 6px;
    border: 1px solid rgba(245,158,11,.25);
    background: #0a0a12;
}
@media (max-width: 580px) {
    .ufscan-wm-kv-row { grid-template-columns: 1fr; }
    .ufscan-wm-kv-ctx { grid-column: 1; }
}

/* ── Sandbox panel ────────────────────────────────────────────────────────── */
.ufscan-sb-meta {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .6rem;
    margin-bottom: 1rem;
}
.ufscan-sb-meta-cell {
    background: rgba(239,68,68,.06); border: 1px solid rgba(239,68,68,.15);
    border-radius: 8px; padding: .55rem .7rem; text-align: center;
}
.ufscan-sb-meta-val {
    font-size: 1.05rem; font-weight: 700; color: #fca5a5; display: block;
}
.ufscan-sb-meta-lbl {
    font-size: .68rem; color: #8a8aa8; text-transform: uppercase;
    letter-spacing: .06em; display: block; margin-top: .15rem;
}
.ufscan-sb-critical {
    background: rgba(239,68,68,.12); border-left: 3px solid #ef4444;
    border-radius: 0 6px 6px 0; padding: .5rem .75rem;
    font-size: .82rem; color: #fca5a5; margin-bottom: .4rem; word-break: break-all;
}
.ufscan-sb-clean {
    background: rgba(34,197,94,.06); border-left: 3px solid #22c55e;
    border-radius: 0 6px 6px 0; padding: .5rem .75rem;
    font-size: .82rem; color: #86efac;
}
.ufscan-sb-preview-img {
    display: block; max-width: 100%; border-radius: 8px;
    border: 1px solid rgba(239,68,68,.2); background: #0a0a12;
}
.ufscan-sb-syscall-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(160px,1fr)); gap: .4rem;
}
.ufscan-sb-syscall-row {
    display: flex; justify-content: space-between; align-items: center;
    background: rgba(255,255,255,.03); border-radius: 4px;
    padding: .3rem .55rem; font-size: .78rem;
}
.ufscan-sb-syscall-name { color: #a0a0c0; font-family: 'SF Mono','Fira Code',Consolas,monospace; }
.ufscan-sb-syscall-count { color: #fca5a5; font-weight: 700; font-size: .72rem; }

@media (max-width: 640px) {
    .ufscan-stats-bar  { grid-template-columns: repeat(3, 1fr); }
    .ufscan-summary-grid { grid-template-columns: 1fr; }
    .ufscan-verdict    { flex-wrap: wrap; }
    .ufscan-verdict-score { margin-left: 0; }
}
