.bthttdc-wrap,.bthttdc-public-shell{--bth-bg:#f6f7f9;--bth-card:#fff;--bth-border:#dcdcde;--bth-text:#1d2327;--bth-red:#b32d2e;--bth-amber:#996800;--bth-green:#008a20;color:var(--bth-text)}
#bthttdc-app{margin-top:16px}.bth-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.bth-card{background:var(--bth-card);border:1px solid var(--bth-border);border-radius:10px;padding:18px;margin:0 0 16px;box-shadow:0 1px 2px rgba(0,0,0,.04)}.bth-card h2{margin-top:0}.bth-kpis{display:flex;gap:24px;flex-wrap:wrap}.bth-kpi{min-width:120px}.bth-kpi strong{font-size:30px;display:block}.bth-kpi span{color:#646970}.bth-toolbar,.bth-upload-box{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 16px}.bth-upload-box input,.bth-upload-box select{min-height:38px}.bth-table td,.bth-table th{vertical-align:middle}.bth-badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:600}.bth-green,.bth-pass{background:#edfaef;color:#006b1b}.bth-amber,.bth-warn,.bth-blocked{background:#fff5d8;color:#6a4b00}.bth-red,.bth-fail{background:#fceded;color:#8a2424}.bth-ocr-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.bth-ocr-pane{display:flex;flex-direction:column;gap:10px;min-width:0}.bth-ocr-canvas{max-width:100%;height:auto;border:1px solid var(--bth-border);background:#eee}.bth-ocr-pane textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.bthttdc-denied{padding:16px;border:1px solid #d63638;background:#fff}
@media(max-width:900px){.bth-ocr-layout{grid-template-columns:1fr}}
.bth-stack{display:flex;flex-direction:column;gap:10px}.bth-stack textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.bth-actions{display:flex;gap:6px;flex-wrap:wrap}.bth-result,.bth-ocr-source{white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto;background:#f6f7f7;border:1px solid var(--bth-border);padding:10px}.bth-review-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}.bth-review-item{border:1px solid var(--bth-border);border-radius:8px;padding:12px;display:grid;gap:8px}.bth-review-meta{font-size:12px;color:#646970}.bth-review-item input,.bth-review-item textarea,.bth-review-item select{width:100%;max-width:100%}.bth-info{padding:10px 12px;border-left:4px solid #2271b1;background:#f0f6fc}.bth-danger{padding:10px 12px;border-left:4px solid #d63638;background:#fcf0f1}
