body{font-family:Arial,sans-serif;margin:0;background:#f3f4f6;color:#111827}.header{background:#1f2937;color:#fff;padding:16px 22px;font-size:22px;font-weight:bold}.container{max-width:960px;margin:24px auto;padding:0 16px}.card{background:#fff;border-radius:14px;box-shadow:0 8px 22px rgba(0,0,0,.08);padding:20px;margin-bottom:18px}.reader-box{max-width:520px;margin:0 auto}.hidden{display:none}.employee{display:flex;gap:18px;align-items:center}.employee img{width:110px;height:110px;object-fit:cover;border-radius:14px;background:#e5e7eb}.name{font-size:28px;font-weight:bold}.muted{color:#6b7280}.orario{margin-top:12px;font-size:18px}.btn{border:0;border-radius:12px;padding:16px 22px;font-size:20px;font-weight:bold;cursor:pointer;margin:8px}.btn-primary{background:#2563eb;color:#fff}.btn-success{background:#16a34a;color:#fff}.btn-danger{background:#dc2626;color:#fff}.btn-secondary{background:#e5e7eb;color:#111827}.btn-big{min-width:220px}.proposto{outline:5px solid #111827}.actions{text-align:center;margin-top:18px}.ok{background:#dcfce7;border:1px solid #86efac;padding:14px;border-radius:10px}.err{background:#fee2e2;border:1px solid #fca5a5;padding:14px;border-radius:10px}.pin-box{margin-top:18px;padding-top:16px;border-top:1px solid #e5e7eb;text-align:center}.pin-box input{font-size:28px;letter-spacing:7px;text-align:center;width:190px;padding:10px;border:1px solid #d1d5db;border-radius:8px}@media(max-width:640px){.employee{flex-direction:column;text-align:center}.btn-big{width:100%}}
.header{display:flex;justify-content:space-between;align-items:center;gap:15px}.header-links{font-size:15px;font-weight:normal}.header-links a{color:#fff;text-decoration:none;margin-left:14px}.wide{max-width:1400px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filters input{min-width:280px}.small{font-size:14px;padding:9px 12px;margin:2px}.form-row{margin-bottom:14px}.form-row label{display:block;font-weight:bold;margin-bottom:6px}.form-row input:not([type=checkbox]),.form-row select,.form-row textarea,.filters input,.filters select{box-sizing:border-box;padding:10px;border:1px solid #d1d5db;border-radius:8px;font-size:16px;background:#fff}.form-row input:not([type=checkbox]),.form-row select,.form-row textarea{width:100%}.form-row small{display:block;color:#6b7280;margin-top:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:10px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}.admin-table th{background:#f9fafb}.table-wrap{overflow-x:auto}.thumb{width:52px;height:52px;object-fit:cover;border-radius:9px;background:#e5e7eb}.badge{display:inline-block;border-radius:999px;background:#e5e7eb;padding:4px 8px;font-size:12px;font-weight:bold}.badge.good{background:#dcfce7;color:#166534}.badge.bad{background:#fee2e2;color:#991b1b}.tiny{font-size:12px}.nowrap{white-space:nowrap}.login-card{max-width:430px;margin:70px auto}.profile-head{display:flex;align-items:center;gap:20px;margin-bottom:24px}.profile-photo{width:120px;height:120px;object-fit:cover;border-radius:14px;background:#e5e7eb}.qr-card{text-align:center;max-width:520px;margin:0 auto}.qr-photo{width:90px;height:90px;object-fit:cover;border-radius:50%;background:#e5e7eb}.qrcode{display:flex;justify-content:center;margin:22px auto}.qrcode img,.qrcode canvas{margin:auto}.qr-code-text{font-family:monospace;font-size:16px;margin:10px}.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.qr-label{background:#fff;border:1px solid #d1d5db;border-radius:10px;text-align:center;padding:12px;break-inside:avoid}.smallqr{margin:5px auto 10px}.smallqr img,.smallqr canvas{max-width:150px!important;max-height:150px!important}.no-print{}
@media(max-width:760px){.form-grid{grid-template-columns:1fr}.header{align-items:flex-start;flex-direction:column}.filters input{min-width:0;width:100%}.toolbar{display:block}.profile-head{align-items:flex-start}}
@media print{body{background:#fff}.no-print,.header{display:none!important}.container,.wide{max-width:none;margin:0;padding:0}.card{box-shadow:none}.qr-grid{grid-template-columns:repeat(3,1fr);gap:8mm}.qr-label{border:1px solid #aaa}.qr-card{max-width:none}.qrcode{margin:10mm auto}}

.scanner-status{text-align:center;margin:10px 0 0;color:#4b5563;font-size:14px}.qrcode>img,.qrcode>canvas{background:#fff;padding:20px;box-sizing:content-box}.smallqr>img,.smallqr>canvas{background:#fff;padding:12px;box-sizing:content-box;max-width:190px!important;max-height:190px!important}.qr-label{overflow:visible}

/* Scanner più compatto */
.reader-box{max-width:440px;margin:0 auto}
#reader video{max-height:250px!important;object-fit:cover}
.scanner-status{margin-top:6px;font-size:13px;color:#6b7280;text-align:center}

/* Tablet portrait: area fotocamera realmente compatta */
.reader-box{max-width:360px!important;margin:0 auto}
#reader{max-width:360px!important;margin:0 auto;overflow:hidden}
#reader video{
    width:100%!important;
    height:210px!important;
    max-height:210px!important;
    object-fit:cover!important;
}
@media (orientation:portrait){
    .reader-box,#reader{max-width:330px!important}
    #reader video{height:190px!important;max-height:190px!important}
}

/* v7 - portrait più basso, area QR più ampia */
.reader-box{max-width:360px!important;margin:0 auto}
#reader{max-width:360px!important;margin:0 auto;overflow:hidden}
#reader video{
    width:100%!important;
    height:170px!important;
    max-height:170px!important;
    object-fit:cover!important;
}
@media (orientation:portrait){
    .reader-box,#reader{max-width:340px!important}
    #reader video{
        height:155px!important;
        max-height:155px!important;
    }
}

/* v9 - anteprima fotocamera quadrata */
.reader-box{
    width:100%!important;
    max-width:340px!important;
    margin:0 auto!important;
}
#reader{
    width:100%!important;
    max-width:340px!important;
    margin:0 auto!important;
}
#reader video{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    aspect-ratio:1 / 1!important;
    object-fit:cover!important;
}
@media (orientation:portrait){
    .reader-box,#reader{
        width:300px!important;
        max-width:calc(100vw - 40px)!important;
    }
    #reader video{
        width:100%!important;
        height:auto!important;
        max-height:none!important;
        aspect-ratio:1 / 1!important;
        object-fit:cover!important;
    }
}

/* v10 - anteprima quadrata larga al 150% rispetto alla v9 */
.reader-box,
#reader{
    width:510px!important;
    max-width:calc(100vw - 32px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
}
#reader video{
    width:100%!important;
    height:auto!important;
    max-height:none!important;
    aspect-ratio:1 / 1!important;
    object-fit:cover!important;
}
@media (orientation:portrait){
    .reader-box,
    #reader{
        width:450px!important;
        max-width:calc(100vw - 24px)!important;
    }
}
