:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#17212b;background:#edf2f6;--navy:#0b2945;--blue:#145b8f;--green:#12633f;--red:#a51d2d;--line:#c9d4df}
*{box-sizing:border-box}body{margin:0;min-height:100vh;padding-bottom:env(safe-area-inset-bottom)}
header{background:linear-gradient(135deg,var(--navy),#164f79);color:#fff;padding:calc(1rem + env(safe-area-inset-top)) 1rem 1rem;display:flex;justify-content:space-between;align-items:center}
h1{font-size:1.45rem;margin:.1rem 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;opacity:.78}
main{width:min(620px,100%);margin:auto;padding:1rem}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1rem;margin-bottom:1rem;box-shadow:0 5px 18px rgba(11,41,69,.07)}h2{font-size:1.15rem;margin-top:0}
label{font-weight:700;display:block;margin:.75rem 0 .35rem}input,select{width:100%;min-height:52px;border:2px solid var(--line);border-radius:10px;padding:.7rem;font:inherit;background:#fff}#targa,#token{text-transform:uppercase}input:focus,select:focus{outline:3px solid #9bd3f5;border-color:var(--blue)}
.button,.ghost,.tab{min-height:48px;border:0;border-radius:10px;padding:.7rem 1rem;font:inherit;font-weight:750;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.button{width:100%;margin-top:.75rem}.primary{background:var(--blue);color:#fff}.secondary{background:var(--navy);color:#fff}.ghost{background:transparent;border:1px solid currentColor;color:inherit}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}.tab{background:#dce8f1;color:var(--navy)}.tab.active{background:var(--navy);color:#fff}
.camera{position:relative;background:#07131e;aspect-ratio:4/3;border-radius:12px;overflow:hidden}.camera video{width:100%;height:100%;object-fit:cover}.cornice{position:absolute;inset:20%;border:3px solid #fff;border-radius:14px;box-shadow:0 0 0 999px rgba(0,0,0,.35)}
.actions{display:flex;gap:.5rem}.actions .button{width:auto;flex:1}.result.valid{border-left:7px solid var(--green)}.result.invalid,.result.error{border-left:7px solid var(--red)}.result h2{font-size:1.4rem}
.details{display:grid;grid-template-columns:auto 1fr;gap:.45rem .8rem}.details dt{font-weight:700}.details dd{margin:0}.hint,.privacy,footer{font-size:.86rem;color:#52606d}.logout{display:block;width:100%;border:0;background:transparent;text-align:center;padding:1rem;color:var(--red);font:inherit;font-weight:700;cursor:pointer}
.stato-sessione{display:flex;align-items:center;gap:.6rem}.spinner{width:18px;height:18px;border:2px solid #adc2d2;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}
.compact{padding:.75rem 1rem}.check{display:flex;align-items:center;gap:.6rem;margin:0}.check input{width:24px;min-height:24px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.section-head h2{margin:0}.history-item{border-top:1px solid var(--line);padding:.75rem 0}.history-item summary{cursor:pointer}.history-item p{margin:.45rem 0}.error-text{color:var(--red);font-weight:700}
@keyframes spin{to{transform:rotate(360deg)}}footer{text-align:center;padding:1rem}@media(min-width:600px){header{padding-inline:calc((100% - 588px)/2)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
