
:root{--navy:#083b5c;--blue:#0d79aa;--ink:#18232b;--muted:#657683;--bg:#f4f7f9;--line:#d8e2e8;--good:#18794e;--warn:#916500;--bad:#b42318}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}
header{background:var(--navy);color:#fff;padding:15px 16px;position:sticky;top:0;z-index:20;box-shadow:0 2px 10px #0002}.head{max-width:1180px;margin:auto;display:flex;justify-content:space-between;gap:12px;align-items:center}.brand{font-size:18px;font-weight:800}.sub{font-size:11px;opacity:.82}.badge{font-size:11px;padding:6px 9px;border:1px solid #ffffff55;border-radius:999px;background:#ffffff18}
main{max-width:1180px;margin:16px auto 50px;padding:0 14px}.layout{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}@media(max-width:900px){.layout{grid-template-columns:1fr}}
.card,.engine,.notice,.free-banner{background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:0 3px 14px #1b374a0d;margin-bottom:14px;overflow:hidden}.card h2{font-size:16px;margin:0;padding:14px 16px;background:#edf3f6;border-bottom:1px solid var(--line)}.card h3{font-size:13px;color:var(--navy);margin:18px 0 9px;padding-bottom:5px;border-bottom:1px solid #e7eef2}.body{padding:15px}
.free-banner{padding:12px 14px;background:#ecf9f0;border-color:#a8ddb9;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.free-banner strong{color:var(--good);font-size:12px}.free-banner span{font-size:12px;color:#43555f}.notice{background:#eef8fd;border-color:#b9ddea;padding:12px 14px;font-size:13px;line-height:1.45}
.engine{padding:12px 14px;display:flex;gap:10px;align-items:center}.dot{width:12px;height:12px;border-radius:50%;background:#c28b00;box-shadow:0 0 0 5px #c28b0018;flex:none}.engine-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.engine-copy strong{font-size:13px}.engine-copy span{font-size:11px;color:var(--muted)}.engine-ready{border-color:#a9dbb9;background:#f0faf3}.engine-ready .dot{background:var(--good);box-shadow:0 0 0 5px #18794e18}.engine-error{border-color:#ffc7c2;background:#fff3f1}.engine-error .dot{background:var(--bad);box-shadow:0 0 0 5px #b4231818}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}@media(max-width:650px){.two,.three{grid-template-columns:1fr}}label{display:block;font-size:12px;font-weight:800;color:#455560;margin-bottom:5px}input,select,textarea{width:100%;font:inherit;border:1px solid #becbd3;border-radius:9px;padding:10px;background:#fff;color:var(--ink)}textarea{min-height:78px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid #b7deef;border-color:var(--blue)}
.mt{margin-top:12px}.hidden{display:none!important}.seg{display:flex;gap:8px;flex-wrap:wrap}.seg button,.primary,.secondary,.dark,.danger{border:0;border-radius:9px;padding:10px 13px;font-weight:800;cursor:pointer}.seg button{background:#edf2f4;border:1px solid #d4dfe4;color:#33444e}.seg button.active{background:var(--navy);color:#fff;border-color:var(--navy)}.primary{background:var(--blue);color:#fff}.dark{background:var(--navy);color:#fff}.secondary{background:#edf2f4;color:#2c3d47;border:1px solid #d3dde3}.danger{background:#fff1ef;color:var(--bad);border:1px solid #ffc9c5}.compact{padding:7px 10px;font-size:11px}.primary:disabled{opacity:.45;cursor:not-allowed}
.hint{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 10px}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(max-width:620px){.photo-grid{grid-template-columns:1fr}}.photo-box{padding:10px;border:1px dashed #9fb5c1;border-radius:12px;background:#fbfdfe}.photo-box.emphasized{border:2px solid #86c6e2}.photo-box strong{display:block;font-size:13px}.photo-box>span{display:block;font-size:11px;color:var(--muted);margin:3px 0 8px}.photo-box input{padding:7px}.preview{display:none;width:100%;max-height:285px;object-fit:contain;background:#eef2f4;border-radius:8px;margin-top:8px}.status{font-size:11px;color:var(--muted);margin-top:7px;line-height:1.45}.progress{height:7px;background:#e7edef;border-radius:999px;overflow:hidden;margin-top:8px}.progress div{height:100%;width:0;background:var(--blue);transition:width .25s}
.field{position:relative}.field>span{display:none;position:absolute;right:6px;top:27px;border-radius:999px;font-weight:800;font-size:9px;padding:3px 6px;background:#e8f6ed;color:var(--good)}.field>span.mid{background:#fff5d6;color:#805e00}.field>span.low{background:#fff0ef;color:var(--bad)}
.recovery{margin-top:10px;background:#f0faf3;border:1px solid #b6ddc2;border-radius:10px;padding:10px;font-size:12px;line-height:1.5}.recovery.warn{background:#fff9e7;border-color:#ead386}.quality{border-radius:11px;padding:11px;font-size:13px;font-weight:800;margin-bottom:10px}.quality.pass{background:#eaf7ee;color:var(--good);border:1px solid #b6ddc2}.quality.retake{background:#fff0ef;color:var(--bad);border:1px solid #ffc7c2}.quality-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media(max-width:700px){.quality-grid{grid-template-columns:repeat(2,1fr)}}.quality-grid div{background:#f3f7f9;border-radius:9px;padding:8px;text-align:center}.quality-grid span{font-size:9px;color:var(--muted);display:block}.quality-grid b{font-size:12px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;min-height:190px}.details-box{padding-top:10px}.data-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:10px}.data-table th,.data-table td{border-bottom:1px solid #e8eef1;text-align:left;padding:6px;vertical-align:top}.data-table th{color:#50636e}.conf-high{color:var(--good);font-weight:800}.conf-mid{color:var(--warn);font-weight:800}.conf-low{color:var(--bad);font-weight:800}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:11px}.metrics div{background:#f2f6f8;border-radius:10px;padding:9px;text-align:center}.metrics b{display:block;font-size:19px;color:var(--navy)}.metrics span{font-size:10px;color:var(--muted)}.qa,.kv{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #edf1f3;padding:8px 2px;font-size:12px}.qa b,.kv b{color:var(--navy);text-align:right}.asset-card{border:1px solid var(--line);border-radius:11px;padding:10px;margin:8px 0;background:#fff}.asset-title{font-size:13px;font-weight:800}.asset-meta{font-size:11px;color:var(--muted);margin-top:3px}.pill{display:inline-block;border-radius:999px;background:#e8f1f6;color:#315a70;padding:3px 7px;font-size:9px;font-weight:800;margin:5px 4px 0 0}.pill.parent{background:#e6f2ff;color:#075985}.pill.child{background:#f3e8ff;color:#6b21a8}.child-indent{margin-left:18px;border-left:3px solid #ddc7f2;padding-left:8px}code{background:#edf2f4;padding:1px 4px;border-radius:4px}

.startup-meter{min-width:280px;max-width:430px;flex:1;padding:0 6px}.startup-track{height:9px;background:#dfe8ec;border-radius:999px;overflow:hidden}.startup-track>div{height:100%;width:0%;background:#0d79aa;transition:width .35s ease}.startup-stats{margin-top:5px;display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#61727c;white-space:nowrap}.startup-stats b{color:#24343d}@media(max-width:760px){.engine{flex-wrap:wrap}.startup-meter{order:3;min-width:100%;max-width:none;padding:2px 0 0}.startup-stats{font-size:9px;flex-wrap:wrap;white-space:normal}}

.evidence-preserve{border:1px solid #c5dce7;border-radius:12px;background:#f8fcfe;padding:12px}.evidence-preserve-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.viz-count{font-size:10px;font-weight:800;color:#315a70;background:#e7f1f6;border-radius:999px;padding:4px 8px;white-space:nowrap}.unmapped-list{margin-top:8px}.unmapped-row{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #e6eef2;padding:7px 2px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.unmapped-row:first-child{border-top:0}.unmapped-row b.good{color:#18794e}.unmapped-row b.mid{color:#916500}.unmapped-row b.low{color:#b42318}.missing-list{display:flex;gap:6px;flex-wrap:wrap}.missing-chip,.complete-chip{display:inline-block;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800}.missing-chip{background:#fff0ef;color:#b42318;border:1px solid #ffc7c2}.complete-chip{background:#eaf7ee;color:#18794e;border:1px solid #b6ddc2}
