:root{
  --paper:#EDEAE1;
  --ink:#201D18;
  --flash:#C6386B;
  --flash-dark:#8F2650;
  --line:#D2CDBF;
  --panel:#FFFFFF;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  display:flex;
  justify-content:center;
  padding:32px 16px 64px;
}
.booth{
  width:100%;
  max-width:440px;
}
.header{
  text-align:center;
  margin-bottom:20px;
}
.header h1{
  font-family:"Courier New",Courier,monospace;
  font-weight:700;
  font-size:28px;
  letter-spacing:1px;
  margin:0 0 6px;
}
.header p{
  font-size:14px;
  color:#5B564B;
  margin:0;
  line-height:1.5;
}
.panel{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:4px;
  padding:16px;
  margin-bottom:16px;
}
.viewfinder{
  position:relative;
  width:100%;
  aspect-ratio:3/4;
  background:#111;
  border-radius:2px;
  overflow:hidden;
}
.viewfinder video, .viewfinder canvas, .viewfinder img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.viewfinder .placeholder{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#9A9488;
  font-family:"Courier New",Courier,monospace;
  font-size:13px;
  text-align:center;
  padding:20px;
}
.flash-overlay{
  position:absolute;
  inset:0;
  background:#fff;
  opacity:0;
  pointer-events:none;
}
.flash-overlay.go{
  animation:flash 220ms ease-out;
}
@keyframes flash{
  0%{opacity:.9;}
  100%{opacity:0;}
}
.btnrow{
  display:flex;
  gap:8px;
  margin-top:12px;
}
button{
  flex:1;
  font-family:"Courier New",Courier,monospace;
  font-size:13px;
  letter-spacing:0.5px;
  padding:12px 10px;
  border-radius:2px;
  border:1px solid var(--ink);
  background:transparent;
  color:var(--ink);
  cursor:pointer;
}
button.primary{
  background:var(--flash);
  border-color:var(--flash-dark);
  color:#fff;
}
button:disabled{
  opacity:0.4;
  cursor:not-allowed;
}
.label{
  font-family:"Courier New",Courier,monospace;
  font-size:11px;
  letter-spacing:1px;
  color:#8A8477;
  margin-bottom:6px;
}
.data-row{
  font-family:"Courier New",Courier,monospace;
  font-size:13px;
  padding:6px 0;
  display:flex;
  justify-content:space-between;
  gap:8px;
}
.data-row a{color:var(--flash-dark);text-decoration:none;}
.data-row a:hover{text-decoration:underline;}
textarea, input[type=text]{
  width:100%;
  font-family:inherit;
  font-size:14px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:2px;
  background:#FBFAF7;
  color:var(--ink);
}
textarea{resize:vertical;min-height:70px;}
.field{margin-bottom:12px;}
.field:last-child{margin-bottom:0;}
.status{
  font-size:12px;
  color:#8A8477;
  margin-top:8px;
  min-height:16px;
  line-height:1.5;
}
.status.err{color:var(--flash-dark);}
