:root {
  --ink: #15211b;
  --muted: #5f6f66;
  --line: #e1e8e3;
  --bg: #f3f6f4;
  --card: #fff;
  --brand: #0f6b45;
  --brand-2: #10a36b;
  --brand-soft: #e5f4ec;
  --red: #c62828;
  --red-soft: #fdecec;
  --yellow: #c77700;
  --yellow-soft: #fff4dc;
  --green: #1f8a4c;
  --green-soft: #e8f6ee;
  --grey: #8b979f;
  --grey-soft: #f0f2f3;
  --radius: 14px;
  --shadow: 0 1px 2px rgba(16, 40, 28, .06), 0 8px 24px rgba(16, 40, 28, .06);
  --sans: Inter, "Segoe UI", system-ui, -apple-system, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; font: 15px/1.5 var(--sans); color: var(--ink); background: var(--bg); }
[hidden] { display: none !important; }
button { font: inherit; cursor: pointer; }

/* Top bar */
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 2rem;
  background: linear-gradient(100deg, #0b4f34, var(--brand) 55%, #138a5a); color: #fff; }
.brand { display: flex; align-items: center; gap: .75rem; }
.brand b { display: block; font-size: 1.05rem; letter-spacing: .01em; }
.brand span { font-size: .8rem; opacity: .8; }
.logo { width: 34px; height: 34px; color: #7ee2b0; }
.tag { font-size: .78rem; padding: .3rem .7rem; border-radius: 999px; background: rgba(255,255,255,.14); white-space: nowrap; }

main { max-width: 1280px; margin: 0 auto; padding: 1.5rem 2rem 2rem; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 1.4rem 1.6rem; margin-bottom: 1.2rem; }
.card-head { display: flex; gap: 1rem; align-items: flex-start; }
.card-head > div:nth-child(2) { flex: 1; }
.step { flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center;
  background: var(--brand-soft); color: var(--brand); font-weight: 700; }
h1, h2 { margin: .1rem 0 .3rem; font-size: 1.35rem; letter-spacing: -.01em; }
h3 { margin: 0; font-size: 1rem; }
.sub { margin: 0; color: var(--muted); }
.hint { color: var(--muted); font-size: .85rem; margin: .4rem 0 .8rem; }
.fineprint { color: var(--muted); font-size: .8rem; margin: .8rem 0 0; }
.dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin: 0 2px 0 4px; vertical-align: 1px; }
.dot.red { background: var(--red); } .dot.yellow { background: var(--yellow); }
.dot.green { background: var(--green); } .dot.grey { background: var(--grey); }

/* Upload */
.drops { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.3rem 0 1rem; }
.drop { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .3rem;
  padding: 1.6rem 1rem; border: 2px dashed #c8d6cd; border-radius: var(--radius); background: #fafcfb; cursor: pointer;
  transition: border-color .15s, background .15s, transform .15s; }
.drop:hover, .drop.over { border-color: var(--brand-2); background: var(--brand-soft); }
.drop.has { border-style: solid; border-color: var(--brand-2); background: var(--brand-soft); }
.drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.drop svg { width: 34px; height: 34px; fill: none; stroke: var(--brand); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.drop b { font-size: 1rem; }
.drop .how { font-size: .8rem; color: var(--muted); }
.drop .file { margin-top: .4rem; font-size: .85rem; font-weight: 600; color: var(--brand); word-break: break-all; }
.actions { display: flex; gap: .8rem; }
.actions input { flex: 1; padding: .7rem .9rem; border: 1px solid var(--line); border-radius: 10px; font: inherit; }
.actions input:focus { outline: 2px solid var(--brand-2); border-color: transparent; }
.primary { background: var(--brand); color: #fff; border: 0; border-radius: 10px; padding: .7rem 1.5rem; font-weight: 600;
  box-shadow: 0 2px 8px rgba(15, 107, 69, .25); }
.primary:hover { background: #0c5a3a; }
.primary:disabled { background: #a9bdb2; box-shadow: none; cursor: not-allowed; }
.ghost { background: #fff; color: var(--ink); border: 1px solid var(--line); border-radius: 10px; padding: .55rem 1rem; font-weight: 500; }
.ghost:hover { border-color: var(--brand-2); color: var(--brand); }
.ghost.small { padding: .3rem .7rem; font-size: .82rem; }

/* Progress */
.timer { font-variant-numeric: tabular-nums; color: var(--muted); font-weight: 600; }
.bar { height: 8px; border-radius: 99px; background: var(--grey-soft); overflow: hidden; margin: 1.1rem 0; }
.bar div { height: 100%; width: 0; border-radius: 99px; transition: width .6s ease;
  background: linear-gradient(90deg, var(--brand), var(--brand-2)); }
.tracker { display: flex; list-style: none; padding: 0; margin: 0; gap: .4rem; }
.tracker li { flex: 1; font-size: .8rem; color: var(--muted); padding-top: .6rem; border-top: 3px solid var(--line); }
.tracker li.on { color: var(--brand); font-weight: 600; border-color: var(--brand-2); }
.tracker li.done { color: var(--ink); border-color: var(--brand); }
.tracker li.done::before { content: "✓ "; color: var(--brand); }
.alert { margin-top: 1rem; padding: .75rem 1rem; border-radius: 10px; font-size: .88rem; }
.alert.warn { background: var(--yellow-soft); color: #7a4a00; border: 1px solid #f3d9a4; }
.alert.err { background: var(--red-soft); color: #8e1c1c; border: 1px solid #f3c2c2; }

/* Results header */
.head-actions { display: flex; gap: .5rem; }
.kpis { display: grid; grid-template-columns: 1.3fr repeat(4, 1fr); gap: .8rem; margin: 1.2rem 0 1rem; }
.kpi { border: 1px solid var(--line); border-radius: 12px; padding: .8rem 1rem; display: flex; align-items: center; gap: .8rem; }
.kpi .n { font-size: 1.6rem; font-weight: 700; line-height: 1; }
.kpi .l { font-size: .8rem; color: var(--muted); }
.kpi.red { background: var(--red-soft); border-color: #f4cccc; } .kpi.red .n { color: var(--red); }
.kpi.yellow { background: var(--yellow-soft); border-color: #f3dfb3; } .kpi.yellow .n { color: var(--yellow); }
.kpi.green { background: var(--green-soft); border-color: #cbe8d6; } .kpi.green .n { color: var(--green); }
.kpi.grey { background: var(--grey-soft); } .kpi.grey .n { color: var(--grey); }
button.kpi { font: inherit; color: inherit; text-align: left; cursor: pointer; transition: transform .12s, box-shadow .12s; }
button.kpi:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(16, 40, 30, .1); }
button.kpi:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; }
button.kpi.on { box-shadow: 0 0 0 2px currentColor inset; }
button.kpi.red.on { color: var(--red); } button.kpi.yellow.on { color: var(--yellow); }
button.kpi.green.on { color: var(--green); } button.kpi.grey.on { color: var(--grey); }
button.kpi.on .l { color: inherit; }
.kpi .open { font-size: .72rem; margin-top: .35rem; opacity: 0; transition: opacity .12s; }
button.kpi:hover .open, button.kpi.on .open { opacity: .75; }
.pt.fld .dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.pt.fld p { margin: .35rem 0 0; }
.fld-note { font-size: .82rem; color: var(--muted); }
.pt .agreed { color: var(--green); font-size: .78rem; margin: .3rem 0 0; }
.fb { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin-top: .55rem; font-size: .76rem; color: var(--muted); }
.fb span { margin-right: .15rem; }
.fb button { font: inherit; border: 1px solid var(--line); background: #fff; border-radius: 99px; padding: .15rem .55rem; cursor: pointer; color: inherit; }
.fb button:hover { border-color: var(--green); }
.fb button.on { background: var(--green); border-color: var(--green); color: #fff; }
.fb button.on[data-a="not_issue"], .fb button.on[data-a="missed"] { background: var(--red); border-color: var(--red); }
.fb button.on[data-a="unsure"] { background: var(--grey); border-color: var(--grey); }
.fb.saved::after { content: "Saved"; color: var(--green); margin-left: .3rem; }
.switch.twice { display: flex; gap: .5rem; align-items: flex-start; margin: .7rem 0 0; font-size: .85rem; color: var(--muted); }
.switch.twice b { color: var(--ink, #1b2a24); }
#country { border: 1px solid var(--line); border-radius: 10px; padding: .55rem .6rem; font: inherit; background: #fff; }
.pt .unverified { background: var(--yellow-soft); color: #7a4a00; border-radius: 6px; padding: .3rem .5rem; font-size: .8rem; }
.ring { --p: 0; width: 64px; height: 64px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: conic-gradient(var(--green) calc(var(--p) * 1%), #e6ece8 0); }
.ring span { width: 48px; height: 48px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-weight: 700; font-size: .95rem; }
.tabs { display: flex; gap: .3rem; align-items: center; border-bottom: 1px solid var(--line); margin: 0 -1.6rem -1.4rem; padding: 0 1.6rem; }
.tabs [role=tab] { background: none; border: 0; padding: .75rem 1rem; color: var(--muted); font-weight: 600; border-bottom: 3px solid transparent; }
.tabs [role=tab].on { color: var(--brand); border-color: var(--brand); }
.langs { margin-left: auto; display: flex; gap: .3rem; }
.langs button { border: 1px solid var(--line); background: #fff; border-radius: 99px; padding: .2rem .75rem; font-size: .8rem; font-weight: 600; text-transform: uppercase; }
.langs button.on { background: var(--brand); border-color: var(--brand); color: #fff; }

/* Marked preview */
.split { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 1.2rem; align-items: start; }
.toolbar { display: flex; align-items: center; gap: .6rem; margin-bottom: .8rem; flex-wrap: wrap; }
.toolbar .grow { flex: 1; }
.switch { display: flex; align-items: center; gap: .4rem; font-size: .85rem; color: var(--muted); margin-right: auto; }
.phone { background: #eef1ef; border: 1px solid var(--line); border-radius: 22px; padding: 1rem; box-shadow: var(--shadow); }
.ag-block { background: #fff; border-radius: 12px; margin-bottom: .6rem; border: 1px solid #e3e8e4; overflow: hidden; }
.ag-block > summary { display: flex; align-items: center; gap: .6rem; padding: .85rem 1rem; cursor: pointer; list-style: none; font-weight: 600; color: #0f4530; }
.ag-block > summary::-webkit-details-marker { display: none; }
.ag-block > summary::after { content: "+"; margin-left: .3rem; color: var(--brand); font-weight: 400; font-size: 1.2rem; }
.ag-block[open] > summary::after { content: "–"; }
.ag-title { flex: 1; }
.ag-missing { border-color: #f3c2c2; }
.ag-body { padding: .2rem 1rem 1rem; border-top: 1px solid #eef2ef; }
.ag-trade { font-weight: 700; font-size: 1.05rem; margin: .7rem 0 .5rem; }
.ag-body h4 { margin: 1rem 0 .4rem; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.kv { display: grid; grid-template-columns: 38% 1fr; gap: .8rem; padding: .45rem .55rem; border-bottom: 1px solid #f1f4f2; }
.kv .k { color: var(--muted); font-size: .85rem; }
.kv .v, .para { font-size: .9rem; }
.para { padding: .45rem .55rem; }
.crop { border: 1px solid #e6ebe8; border-radius: 10px; margin: .5rem 0; }
.crop > summary { padding: .6rem .8rem; cursor: pointer; font-weight: 600; font-size: .92rem; display: flex; align-items: center; gap: .5rem; }
.crop-body { padding: 0 .5rem .5rem; }
.ag-body table { width: 100%; border-collapse: collapse; font-size: .82rem; margin: .4rem 0; }
.ag-body th, .ag-body td { border-bottom: 1px solid #eef2ef; padding: .35rem .4rem; text-align: left; vertical-align: top; }
.ghs-row { display: flex; gap: .4rem; flex-wrap: wrap; padding: .45rem .55rem; }
.ghs { border: 2px solid #d32f2f; border-radius: 6px; padding: .15rem .5rem; font-size: .8rem; font-weight: 700; color: #b71c1c; }
.ghs::before { content: "◆ "; }
.blank { color: var(--muted); font-style: italic; }

.mp { border-left: 4px solid transparent; border-radius: 6px; transition: opacity .2s, box-shadow .3s; }
.mp-red { border-left-color: var(--red); background: var(--red-soft); }
.mp-yellow { border-left-color: var(--yellow); background: var(--yellow-soft); }
.mp-green { border-left-color: #9fd6b5; }
.mp-grey { border-left-color: #d4dade; }
.dim-ok .mp-green, .dim-ok .mp-grey { opacity: .45; }
.dim-ok .mp-green:hover, .dim-ok .mp-grey:hover { opacity: 1; }
tr.mp-red td { background: var(--red-soft); } tr.mp-yellow td { background: var(--yellow-soft); }
tr.mp-red td:first-child { box-shadow: inset 4px 0 var(--red); } tr.mp-yellow td:first-child { box-shadow: inset 4px 0 var(--yellow); }
.mp-noterow td { border-bottom: 0; padding-top: 0; }
.mp-note { margin-top: .35rem; font-size: .8rem; color: #5b3b00; display: flex; gap: .4rem; align-items: baseline; }
.mp-red .mp-note, .mp-red + .mp-noterow .mp-note { color: #8e1c1c; }
.mp-num { flex: none; text-decoration: none; font-weight: 700; font-size: .75rem; color: #fff; background: var(--ink);
  border-radius: 99px; padding: .05rem .45rem; }
.mp-chips { display: flex; gap: .25rem; }
.mp-chip { min-width: 22px; padding: .05rem .4rem; border-radius: 99px; font-size: .75rem; font-weight: 700; text-align: center; color: #fff; }
.mp-chip.mp-red { background: var(--red); } .mp-chip.mp-yellow { background: var(--yellow); } .mp-chip.mp-green { background: var(--green); }
.mp-chip { border: 0; }
.mp-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; border: 0; }
.mp-dot.mp-red { background: var(--red); } .mp-dot.mp-yellow { background: var(--yellow); }
.mp-missing { margin: .7rem 0; padding: .6rem .8rem; border: 1px dashed currentColor; }
.mp-missing.mp-red { color: var(--red); } .mp-missing.mp-yellow { color: var(--yellow); }
.mp-missing .v { color: var(--ink); font-size: .9rem; margin: .3rem 0; }
.mp-missing-h { font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; display: flex; gap: .4rem; align-items: center; }
.flash { animation: flash 1.6s ease; }
@keyframes flash { 0%, 40% { box-shadow: 0 0 0 4px rgba(16, 163, 107, .55); } 100% { box-shadow: 0 0 0 0 transparent; } }

/* Points list */
.points { position: sticky; top: 1rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 1rem; max-height: calc(100vh - 2rem); overflow: auto; }
.points-head { display: flex; justify-content: space-between; align-items: center; gap: .5rem; }
.filters { display: flex; gap: .25rem; }
.filters button { border: 1px solid var(--line); background: #fff; border-radius: 99px; padding: .15rem .65rem; font-size: .78rem; font-weight: 600; }
.filters button.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.pt { border: 1px solid var(--line); border-radius: 12px; padding: .7rem .8rem; margin-bottom: .6rem; cursor: pointer;
  transition: border-color .15s, box-shadow .15s; }
.pt:hover, .pt.sel { border-color: var(--brand-2); box-shadow: 0 2px 10px rgba(16, 163, 107, .15); }
.pt-top { display: flex; align-items: center; gap: .4rem; margin-bottom: .3rem; }
.pt-top .blk { font-size: .78rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pill { font-size: .7rem; font-weight: 700; padding: .1rem .5rem; border-radius: 99px; color: #fff; white-space: nowrap; }
.pill.fail { background: var(--red); } .pill.warn { background: var(--yellow); } .pill.needs_human { background: var(--grey); }
.pt p { margin: 0; font-size: .87rem; }
.pt dl { display: none; margin: .5rem 0 0; font-size: .8rem; }
.pt.sel dl { display: block; }
.pt dt { color: var(--muted); font-weight: 600; margin-top: .35rem; }
.pt dd { margin: .1rem 0 0; padding: .35rem .5rem; background: var(--bg); border-radius: 6px; }
.empty { text-align: center; color: var(--muted); padding: 1.5rem .5rem; }

#report { width: 100%; height: 78vh; border: 1px solid var(--line); border-radius: 10px; }
.foot { max-width: 1280px; margin: 0 auto; padding: 0 2rem 2rem; color: var(--muted); font-size: .8rem; }

@media (max-width: 960px) {
  .split, .drops { grid-template-columns: 1fr; }
  .kpis { grid-template-columns: 1fr 1fr; }
  .points { position: static; max-height: none; }
  main { padding: 1rem; }
}
