
@font-face {
  font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("/wp-content/uploads/fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko20yw.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("/wp-content/uploads/fonts/LDIoaomQNQcsA88c7O9yZ4KMCoOg4Ko40yyygA.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "JetBrains Mono"; font-style: normal; font-weight: 400 500; font-display: swap;
  src: url("/wp-content/uploads/fonts/tDbv2o-flEEny0FZhsfKu5WU4zr3E_BX0PnT8RD8yKwBNntkaToggR7BYRbKPxDcwg.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
  --bg: #ffffff;
  --surface: #ffffff;
  --soft: #f7f8f9;
  --soft-2: #f3f5f6;
  --text: #23282c;
  --muted: #424e58;
  --muted-2: #505b64;
  --border: #dce0e3;
  --brand: #a95008;          
  --brand-dark: #854007;
  --brand-2: #f5a623;        
  --btn: #f5a623;
  --btn-border: #e3951c;
  --btn-text: #231d12;
  --high: #c62828;
  --high-bg: #fdecea;
  --medium: #a95008;
  --medium-bg: #fff4e0;
  --low: #2e7d32;
  --low-bg: #e8f5e9;
  --na: #505b64;
  --na-bg: #f3f5f6;
  --radius: 12px;
  --shadow: 0 1px 2px rgba(35, 40, 44, 0.05), 0 6px 20px rgba(35, 40, 44, 0.05);
  --font: "Plus Jakarta Sans", "Segoe UI", sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font: 16px/1.55 var(--font);
}
.wrap { max-width: 1280px; margin: 0 auto; padding: 0 20px; }
h1, h2, h3 { line-height: 1.12; margin: 0 0 0.5em; font-weight: 600; color: var(--text); }
h1 { font-size: clamp(1.9rem, 3.4vw, 2.4rem); letter-spacing: -0.01em; }
h2 { font-size: clamp(1.3rem, 2vw, 1.6rem); }
a { color: var(--brand); }
a:hover { color: var(--brand-dark); }
code { font-family: var(--mono); font-size: 0.88em; }
.muted { color: var(--muted-2); }
.topbar { background: var(--surface); border-bottom: 1px solid var(--border); }
.topbar-inner { display: flex; align-items: center; justify-content: space-between; height: 68px; gap: 16px; }
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: inherit; }
.brand-logo { height: 30px; width: auto; display: block; }
.brand-sep { width: 1px; height: 26px; background: var(--border); }
.brand-name { font-weight: 600; font-size: 1.02rem; }
.topbar-tag { font-family: var(--mono); font-size: 12px; color: var(--muted-2); border: 1px solid var(--border); border-radius: 6px; padding: 4px 10px; white-space: nowrap; }
@media (max-width: 640px) { .brand-sep, .brand-name, .topbar-tag { display: none; } }
.hero { padding: 44px 0 20px; }
.eyebrow { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted-2); margin: 0 0 14px; }
.eyebrow::before { content: ""; width: 5px; height: 5px; background: var(--btn); border-radius: 1px; flex: none; }
.lead { color: var(--muted); max-width: 780px; font-size: 1.12rem; line-height: 1.6; margin: 0 0 18px; }
.badges { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.badge {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid var(--border); background: var(--surface); border-radius: 999px;
  padding: 4px 12px; font-family: var(--mono); font-size: 12.5px; color: var(--muted);
}
.badge::before { content: ""; width: 7px; height: 7px; border: 1.5px solid var(--muted-2); border-radius: 50%; flex: none; }
.badge-privacy { border-color: #b7dcc0; background: #f3faf5; color: #2e6b3a; }
.badge-privacy::before { border-color: #2e7d32; background: #2e7d32; }
.card {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 20px; margin: 16px 0;
}
.input-card { display: grid; grid-template-columns: 1.4fr 1fr; gap: 20px; }
@media (max-width: 800px) { .input-card { grid-template-columns: 1fr; } }
.dropzone {
  border: 2px dashed var(--border); border-radius: var(--radius); padding: 28px 16px;
  text-align: center; transition: border-color 0.15s, background 0.15s;
}
.dropzone.drag { border-color: var(--brand-2); background: color-mix(in srgb, var(--brand-2) 8%, transparent); }
.drop-title { font-weight: 600; font-size: 1.1rem; margin: 0; }
.drop-or { color: var(--muted); margin: 6px 0 12px; }
.drop-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.file-info { margin: 14px 0 0; color: var(--muted); font-size: 0.9em; word-break: break-word; }
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--text); background: var(--surface); color: var(--text);
  border-radius: 6px; padding: 10px 16px; font: inherit; font-size: 14px; font-weight: 600;
  cursor: pointer; text-decoration: none; min-height: 42px; transition: background 0.15s, border-color 0.15s;
}
.btn:hover { background: var(--soft); }
.btn-primary { background: var(--btn); border-color: var(--btn-border); color: var(--btn-text); }
.btn-primary:hover { background: #e9981b; }
.btn-link { border-color: transparent; color: var(--brand); background: transparent; }
.btn-link:hover { background: transparent; color: var(--brand-dark); text-decoration: underline; }
.input-side { display: flex; flex-direction: column; gap: 12px; }
.format summary, .issues summary { cursor: pointer; font-weight: 600; }
.format p { margin: 8px 0; font-size: 0.9em; color: var(--muted); }
.options { border: 1px solid var(--border); border-radius: 8px; padding: 10px 14px; margin: 0; }
.options legend { font-weight: 600; padding: 0 4px; }
.options label { display: block; font-size: 0.92em; margin: 4px 0; cursor: pointer; }
.opt-label { margin: 0 0 4px; font-size: 0.88em; color: var(--muted); }
.issues ul { margin: 10px 0 0; padding-left: 20px; font-size: 0.9em; max-height: 260px; overflow: auto; }
.issues li.error { color: var(--high); }
.issues li.warn { color: var(--medium); }
#results { margin-top: 24px; }
.summary { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
@media (max-width: 700px) { .summary { grid-template-columns: repeat(2, 1fr); } }
.stat {
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  padding: 12px 14px; display: flex; flex-direction: column;
}
.stat-n { font-size: 1.8rem; font-weight: 700; line-height: 1.1; }
.stat-l { color: var(--muted); font-size: 0.85em; }
.stat-high .stat-n { color: var(--high); }
.stat-medium .stat-n { color: var(--medium); }
.stat-low .stat-n { color: var(--low); }
.stat-na .stat-n { color: var(--na); }
.status-counts { color: var(--muted); font-size: 0.9em; margin: 10px 0 0; }
.toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 16px 0 10px; }
.toolbar select, .toolbar input {
  font: inherit; font-size: 0.92em; padding: 7px 10px; border-radius: 8px;
  border: 1px solid var(--border); background: var(--surface); color: var(--text); min-height: 38px;
}
.toolbar input { min-width: 200px; }
.spacer { flex: 1; }
.table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); }
table { border-collapse: collapse; width: 100%; }
.fleet { min-width: 1100px; font-size: 0.9em; }
.fleet th, .fleet td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--border); vertical-align: top; }
.fleet thead th { position: sticky; top: 0; background: var(--surface); font-size: 0.85em; color: var(--muted); font-weight: 600; white-space: nowrap; }
.fleet tbody tr.row { cursor: pointer; }
.fleet tbody tr.row:hover { background: color-mix(in srgb, var(--brand-2) 6%, transparent); }
.fleet tbody tr.row.open { background: color-mix(in srgb, var(--brand-2) 10%, transparent); }
.asset-name { font-weight: 600; white-space: nowrap; }
.asset-name::before { content: "▸ "; color: var(--muted); }
tr.open .asset-name::before { content: "▾ "; }
.why { color: var(--muted); max-width: 280px; }
.why span { display: block; }
.why .more { color: var(--brand); font-weight: 600; }
.action { max-width: 320px; }
.nowrap { white-space: nowrap; }
.pill {
  display: inline-block; padding: 2px 10px; border-radius: 999px; font-weight: 600;
  font-size: 0.85em; white-space: nowrap;
}
.p-high { background: var(--high-bg); color: var(--high); }
.p-medium { background: var(--medium-bg); color: var(--medium); }
.p-low { background: var(--low-bg); color: var(--low); }
.p-na { background: var(--na-bg); color: var(--na); }
.warn-dot { color: var(--medium); font-weight: 700; }
tr.detail > td { background: var(--bg); padding: 16px; }
.detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 16px; }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; min-width: 0; overflow-x: auto; }
.panel thead th { white-space: normal; vertical-align: bottom; }
.panel h3 { font-size: 0.95rem; margin: 0 0 8px; }
.panel table { font-size: 0.88em; }
.panel th, .panel td { padding: 4px 6px; border-bottom: 1px solid var(--border); text-align: right; white-space: nowrap; }
.panel th:first-child, .panel td:first-child { text-align: left; }
.panel thead th { color: var(--muted); font-weight: 600; }
.kv { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; font-size: 0.9em; margin: 0; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; }
.exceed { color: var(--high); font-weight: 700; }
.between { color: var(--medium); font-weight: 700; }
.note { font-size: 0.85em; color: var(--muted); margin: 8px 0 0; }
.flags { margin: 0; padding-left: 18px; font-size: 0.9em; }
.flags li.warn, .flags li.error { color: var(--medium); }
.panel-wide { grid-column: 1 / -1; }
.history-wrap { overflow-x: auto; }
.table-scroll { overflow-x: auto; }
.penta-plots { display: flex; flex-wrap: wrap; gap: 12px; }
.penta { margin: 0; flex: 1 1 180px; max-width: 240px; text-align: center; }
.penta svg { width: 100%; height: auto; display: block; }
.penta figcaption { font-size: 0.85em; color: var(--muted); }
.penta .z { stroke: var(--surface); stroke-width: 0.4; fill-opacity: 0.35; }
.penta .z-hit { fill-opacity: 0.8; stroke: var(--text); stroke-width: 0.7; }
.penta .z-PD { fill: #8e24aa; }
.penta .z-D1 { fill: #e53935; }
.penta .z-D2 { fill: #b71c1c; }
.penta .z-T3, .penta .z-T3-H { fill: #ef6c00; }
.penta .z-T2 { fill: #fb8c00; }
.penta .z-C { fill: #6d4c41; }
.penta .z-T1, .penta .z-O { fill: #fdd835; }
.penta .z-S { fill: #43a047; }
.penta .zl { font-size: 4px; text-anchor: middle; fill: var(--text); font-weight: 600; }
.penta .gl { font-size: 4.5px; text-anchor: middle; fill: var(--muted); }
.penta .pt { fill: var(--text); stroke: var(--surface); stroke-width: 0.8; }
.method { margin-top: 32px; }
.method p { color: var(--muted); font-size: 0.92em; max-width: none; }
.method strong { color: var(--text); }
.footer { border-top: 1px solid var(--border); margin-top: 32px; padding: 20px 0 32px; font-size: 0.88em; color: var(--muted); }
.footer .wrap { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; }
@media print {
  :root { --bg: #fff; --surface: #fff; --text: #000; --muted: #444; --border: #ccc; }
  body { font-size: 10pt; }
  .no-print, .topbar .lang, .toolbar { display: none !important; }
  .card, .table-wrap, .stat { box-shadow: none; }
  .fleet { min-width: 0; }
  .table-wrap { overflow: visible; border: 0; }
  .fleet thead th { position: static; }
  tr.row, tr.detail { break-inside: avoid; }
  .asset-name::before { content: ""; }
  .method { break-before: page; }
}
.penta .zsub { fill: none; stroke: var(--text); stroke-width: 0.35; stroke-dasharray: 1 0.8; opacity: 0.8; }
.note-sub { border-left: 3px solid var(--medium); padding-left: 8px; }
.penta .zoc { fill: #8b5cf6; fill-opacity: 0.25; stroke: #8b5cf6; stroke-width: 0.5; stroke-dasharray: 1.5 0.8; }
.history-status { margin: 8px 0; font-size: 0.9em; }
.history-status.unsaved { color: var(--medium); font-weight: 600; }
.history-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.file-info.msg-ok { color: var(--low); }
.file-info.msg-error { color: var(--high); font-weight: 600; }
.penta .z-DT { fill: #c2185b; }
.penta .z-ND { fill: #90a4ae; }
.penta-plots { justify-content: flex-start; }
.disclaimer-notice { margin: 12px 0 0; font-size: 0.85em; color: var(--muted); }
.disclaimer p { color: var(--muted); font-size: 0.9em; max-width: none; }
.disclaimer strong { color: var(--text); }
@media print { .disclaimer { break-inside: avoid; } }
.gate {
  position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center;
  padding: 16px; background: color-mix(in srgb, var(--bg) 85%, transparent); backdrop-filter: blur(3px);
}
.gate[hidden] { display: none; }
.gate-box {
  width: min(680px, 100%); max-height: calc(100vh - 32px); overflow: auto;
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25); padding: 24px;
}
.gate-brand { display: flex; align-items: center; gap: 8px; font-weight: 700; margin: 0 0 12px; }
.gate-text p { color: var(--muted); font-size: 0.92em; }
.gate-text strong { color: var(--text); }
.gate-version { font-size: 0.8em; }
.gate-check { display: flex; gap: 8px; align-items: center; margin: 16px 0; font-weight: 600; cursor: pointer; }
.gate-check input { width: 18px; height: 18px; }
@media print { .gate { display: none !important; } }
.brand-logo-wrap { display: inline-flex; align-items: flex-start; }
.brand-r { font-size: 11px; line-height: 1; margin-left: 2px; color: var(--text); font-weight: 600; }
.gate-brand .brand-logo { height: 24px; }
.topbar-nav { display: flex; align-items: center; gap: 14px; margin-left: auto; font-size: 13px; white-space: nowrap; }
.topbar-nav a { color: var(--muted); text-decoration: none; }
.topbar-nav a:hover, .topbar-nav a:focus-visible { color: var(--brand-dark); text-decoration: underline; }
@media (max-width: 640px) {
  .topbar-inner { flex-wrap: wrap; height: auto; min-height: 68px; padding-top: 10px; padding-bottom: 10px; row-gap: 4px; }
  .topbar-nav { margin-left: 0; width: 100%; }
}

/* Consent dialog: wait for translated text before revealing its box. */
#gate:has(#gateTitle:empty, .gate-text:empty) {
  background: var(--bg);
}
#gate:has(#gateTitle:empty, .gate-text:empty) .gate-box {
  visibility: hidden;
}
#gate:has(#gateTitle:empty, .gate-text:empty)::after {
  content: "Loading…";
  position: absolute;
  top: 50%; left: 50%; transform: translate(-50%, -50%);
  color: var(--text); font-size: 1rem; font-weight: 600;
  white-space: nowrap;
}
