.vtvcc{max-width:720px;margin:20px auto;padding:10px}
.vtvcc-card{padding:16px;border:1px solid #ddd;border-radius:14px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.vtvcc-sub{color:#555;margin-top:-6px}
.vtvcc-camera{position:relative}
.vtvcc-camera video{width:100%;border-radius:12px;background:#111;min-height:240px}
.vtvcc-overlay{
  position:absolute;top:50%;left:50%;
  width:70%;height:25%;
  transform:translate(-50%,-50%);
  border:3px dashed #00ff88;border-radius:10px;
  box-shadow:0 0 0 9999px rgba(0,0,0,.18) inset;
  pointer-events:none;
}
.vtvcc-hidden{display:none}
.vtvcc-row{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}
.vtvcc-btn{padding:10px 14px;border-radius:10px;border:1px solid #ccc;background:#f7f7f7;cursor:pointer}
.vtvcc-btn:disabled{opacity:.55;cursor:not-allowed}
.vtvcc-primary{background:#111;color:#fff;border-color:#111}
.vtvcc label{display:block;font-weight:600;margin-top:10px;margin-bottom:6px}
.vtvcc input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid #ddd;font-size:16px}
.vtvcc-status{margin-top:12px;padding:10px 12px;border-radius:10px;border:1px solid #eee;background:#fafafa}
.vtvcc-ok{background:#e8fff2;border-color:#c9f5d3}
.vtvcc-warn{background:#fff4cc;border-color:#ffe2a8}
.vtvcc-err{background:#ffe8e8;border-color:#ffc9c9}
.vtvcc-info{background:#eef6ff;border-color:#cfe5ff}
.vtvcc-debug{margin-top:12px;color:#555}
.vtvcc-debug summary{cursor:pointer;font-weight:600}
