:root{font-family:system-ui,sans-serif;color:#172c35;background:#f3f6f7;font-size:18px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}header{padding:1rem;background:#123e4a;color:white}
header a{color:white}header>a{font-size:1.2rem;font-weight:700}nav{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;margin-top:.7rem}
main{max-width:48rem;margin:1rem auto;padding:1.25rem;background:white;border-radius:.5rem}
h1{font-size:1.6rem}h2{font-size:1.2rem}a{color:#145f73}button,.button,.btn{display:inline-block;padding:.7rem 1rem;border:0;border-radius:.3rem;background:#145f73;color:white;cursor:pointer;text-decoration:none;min-height:44px}
input:not([type=checkbox]):not([type=radio]),select{display:block;max-width:100%;width:100%;padding:.65rem;border:1px solid #677e87;border-radius:.25rem;font:inherit}
label{display:block;font-weight:600}form{margin:0}li,p{overflow-wrap:anywhere}.errorlist{color:#a01818}img{max-width:100%;height:auto}table{width:100%}th,td{text-align:left}
:focus-visible{outline:3px solid #d97706;outline-offset:3px}.helptext{font-size:.9rem}
@media(min-width:700px){header{display:flex;justify-content:space-between;align-items:center}nav{margin-top:0}main{margin:2rem auto}}

.card{border:1px solid #cad7dc;border-radius:.4rem;padding:1rem;margin:1rem 0}.quiet{font-size:.85rem;color:#4e646c}.tree ul{padding-left:1.2rem}.tree li{margin:.7rem 0}dt{font-weight:700}dd{margin:0 0 1rem}.labels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4mm}.label{border:1px dashed #777;padding:4mm;break-inside:avoid;text-align:center}.label h2{margin:0}.label p{margin:2mm 0;font-size:.85rem}.label-url{overflow-wrap:anywhere}.label img{display:block;margin:auto}
@page{size:A4 portrait;margin:10mm}@media print{header,.no-print{display:none!important}body{background:white;color:black;font-size:10pt}main{max-width:none;margin:0;padding:0;border:0}.labels{gap:4mm;grid-template-columns:repeat(2,93mm)}.label{min-height:86mm;height:auto}.label h2{font-size:12pt}.label p{font-size:8pt;line-height:1.2}.label img{width:32mm;height:32mm}.label-url a{color:black;text-decoration:none}}
.photo-grid { display:flex; flex-wrap:wrap; gap:1rem; }
.photo-grid figure { margin:0; max-width:100%; }
.photo-grid img, #photo-preview, #scan-video { max-width:100%; height:auto; border-radius:.5rem; }
#scan-video { width:100%; max-height:55vh; }
#photo-input { display:block; margin:1rem 0; }
button, .button { min-height:44px; }
[hidden] { display:none !important; }
