:root{
  --bg:#f3f5f7;
  --panel:#ffffff;
  --panel-soft:#f8fafc;
  --ink:#19324a;
  --muted:#6e7a86;
  --line:#dbe3eb;
  --brand-blue:#1567d1;
  --brand-blue-dark:#0d3b66;
  --brand-blue-soft:#eaf3ff;
  --brand-green:#00a63c;
  --brand-green-dark:#007a2b;
  --brand-green-soft:#e8f8ee;
  --warn:#f59e0b;
  --warn-soft:#fff5df;
  --danger:#d64545;
  --danger-soft:#fdecec;
  --shadow:0 10px 30px rgba(13,59,102,.08);
  --radius:18px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:linear-gradient(180deg,#edf3f8 0,#f3f5f7 220px,#f3f5f7 100%);color:var(--ink)}
a{color:inherit}
img{max-width:100%;display:block}

.appheader{position:sticky;top:0;z-index:20;background:rgba(13,59,102,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 10px 24px rgba(9,29,48,.18)}
.headerinner{max-width:1420px;margin:0 auto;min-height:78px;padding:0 22px;display:flex;align-items:center;gap:22px}
.brandlink{text-decoration:none;color:#fff;display:flex;align-items:center;gap:14px;min-width:max-content}
.brandmark{width:46px;height:46px;border-radius:14px;background:#fff;object-fit:cover;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.brandtext{display:flex;flex-direction:column;line-height:1}
.brandtext strong{font-size:28px;font-weight:900;letter-spacing:-.03em}
.brandtext span{margin-top:3px;font-size:12px;color:rgba(255,255,255,.72);letter-spacing:.04em;text-transform:uppercase}
.topnav{display:flex;flex-wrap:wrap;gap:8px;flex:1}
.topnav a{text-decoration:none;color:#d7e7ff;padding:10px 14px;border-radius:12px;font-size:14px;font-weight:700;transition:.18s background,.18s color,.18s transform}
.topnav a:hover{background:rgba(255,255,255,.08);color:#fff}
.topnav a.active{background:linear-gradient(135deg,var(--brand-blue),#0f58b6);color:#fff;box-shadow:0 8px 18px rgba(21,103,209,.28)}
.userchip{display:flex;flex-direction:column;align-items:flex-end;padding:10px 14px;border-radius:14px;background:rgba(255,255,255,.08);line-height:1.2;min-width:150px}
.userchip-name{font-size:14px;font-weight:800;color:#fff}
.userchip-role{font-size:12px;color:#b8d1ef;text-transform:capitalize}

.appmain{max-width:1420px;margin:0 auto;padding:28px 24px 40px}

.pagehead,.sectionhead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px}
.pagehead h1,.sectionhead h1{margin:4px 0 6px;font-size:40px;line-height:1.05;letter-spacing:-.03em;color:var(--brand-blue-dark)}
.pagehead p,.sectionhead p{margin:0;color:var(--muted);max-width:760px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-blue)}
.eyebrow::before{content:"";width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,var(--brand-green),var(--brand-blue))}
.backbar{margin-bottom:12px}
.textlink{color:var(--brand-blue-dark);text-decoration:none;font-weight:700}
.textlink:hover{text-decoration:underline}
.separator{border:0;border-top:1px solid var(--line);margin:24px 0}

.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.card,.money>div,.panel,.summarypill,.filterpanel,.workpanel,.otherwork,.login,.vehiclehero,.vehiclecard,.tablewrap,.progressline,.upload,.search,.confirm,.note{background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}
.card,.money>div,.panel,.summarypill,.filterpanel,.workpanel,.otherwork,.vehiclehero,.vehiclecard,.upload,.search,.confirm,.note,.tablewrap,.progressline{border-radius:var(--radius)}
.card,.money>div{padding:20px}
.card b{font-size:34px;display:block;color:var(--brand-blue-dark)}
.card span,.money span{color:var(--muted);font-size:13px;font-weight:600}
.card.ok{border-left:6px solid var(--brand-green)}
.card.active{border-left:6px solid var(--brand-blue)}
.card.warn{border-left:6px solid var(--warn)}
.progressline{padding:16px 18px;margin:16px 0;font-weight:700}
.money{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.money b{display:block;font-size:28px;margin-top:8px;color:var(--brand-blue-dark)}

.tablewrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:12px;text-transform:uppercase;color:var(--muted);background:#f8fafc;letter-spacing:.05em}
tr:last-child td{border-bottom:0}

.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12.5px;color:#4e6a83}
.status{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;background:#edf2f7;color:#556270;white-space:nowrap}
.status.terminato,.status.completed{background:var(--brand-green-soft);color:var(--brand-green-dark)}
.status.in_lavorazione,.status.started{background:var(--brand-blue-soft);color:var(--brand-blue-dark)}
.status.da_assegnare,.status.pending{background:var(--warn-soft);color:#9a6700}
.status.da_iniziare{background:#edf2f7;color:#64748b}

.taskrow{display:flex;gap:10px;justify-content:space-between;align-items:center;margin:4px 0}
.taskrow form{margin:0}
.taskrow select{max-width:180px}

button,.btnlink{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--brand-blue),#0e58b5);color:#fff;border:0;border-radius:12px;padding:11px 16px;font-weight:800;cursor:pointer;text-decoration:none;transition:.18s transform,.18s opacity,.18s box-shadow;box-shadow:0 10px 20px rgba(21,103,209,.18)}
button:hover,.btnlink:hover{transform:translateY(-1px)}
button.secondary,.btnlink.secondary,.secondary{background:#eef3f8;color:var(--brand-blue-dark);box-shadow:none}
button.secondary:hover,.btnlink.secondary:hover,.secondary:hover{background:#e3ebf4}
.primarybtn{background:linear-gradient(135deg,var(--brand-green),#0c8d38);box-shadow:0 12px 22px rgba(0,166,60,.16)}

input,select{border:1px solid #cad5e1;border-radius:12px;padding:11px 12px;background:#fff;min-height:44px;font:inherit;color:var(--ink)}
input:focus,select:focus{outline:none;border-color:var(--brand-blue);box-shadow:0 0 0 4px rgba(21,103,209,.12)}
label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700;color:var(--ink)}
label span{font-size:13px;color:var(--muted);font-weight:700}
.upload,.search,.confirm,.filterpanel{display:flex;gap:12px;align-items:end;padding:18px;margin-bottom:18px}
.filterpanel.compact{padding:14px 16px}

.notice,.note{padding:16px 18px}
.note{background:linear-gradient(180deg,#fffdfa 0,#fff8e8 100%);border-color:#f2e2ad}
.notice.ok{background:#effaf3;color:#12693b;border:1px solid #bee4ca;border-radius:14px;padding:14px 16px;margin-bottom:16px}
.notice.warn,.warntext{background:#fff5e5;color:#8b5f00;border:1px solid #f1d99c;border-radius:14px;padding:14px 16px;margin-bottom:16px}
.alert{background:var(--danger-soft);color:#9f2424;border:1px solid #f2c5c5;padding:12px 14px;border-radius:12px}
.empty{color:var(--muted);padding:26px}.empty.panel{border-radius:18px}

.loginbody{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left, rgba(0,166,60,.08), transparent 28%),radial-gradient(circle at top right, rgba(21,103,209,.12), transparent 30%),#eef3f7}
.loginwrap{width:min(1080px,100%);display:grid;place-items:center}
.login{width:min(470px,94vw);padding:28px;border-radius:28px}
.loginbrand{display:flex;align-items:center;gap:18px;margin-bottom:18px}
.loginlogo{width:114px;height:auto;border-radius:18px}
.login h1{margin:0;font-size:40px;line-height:1;letter-spacing:-.04em;color:var(--brand-blue-dark)}
.login p{margin:6px 0 0;color:var(--muted)}
.loginintro{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-radius:18px;background:linear-gradient(180deg,#f8fbff 0,#f0f7ff 100%);border:1px solid #dbe8f5;margin:8px 0 18px}
.login label{margin:14px 0}
.login button{width:100%;margin-top:8px}
.login small{display:block;margin-top:14px;color:var(--muted)}

.summarybar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.summarypill{padding:16px 18px;min-width:180px}
.summarypill span{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.summarypill strong{display:block;font-size:24px;margin-top:6px;color:var(--brand-blue-dark)}
.summarypill.ok strong{color:var(--brand-green-dark)}
.summarypill.warn{background:linear-gradient(180deg,#fffdfa 0,#fff5df 100%)}

.vehiclegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.vehiclecard{padding:20px 20px 18px;text-decoration:none;color:inherit;transition:.18s transform,.18s box-shadow,.18s border-color}
.vehiclecard:hover{transform:translateY(-2px);box-shadow:0 18px 34px rgba(13,59,102,.12);border-color:#bfd3e8}
.vehiclecard.overdue{border-color:#f0d69a;background:linear-gradient(180deg,#fffef9 0,#fffaf0 100%)}
.vehiclecardtop{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}
.vehiclecard h2{margin:0 0 8px;font-size:28px;line-height:1.05;letter-spacing:-.03em;color:var(--brand-blue-dark)}
.vehicledate{margin-top:8px;font-size:13px;color:#8a6a14;font-weight:700}
.vehicleprogress{height:10px;border-radius:999px;background:#e9eef5;overflow:hidden}
.vehicleprogress span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand-green),var(--brand-blue))}
.vehiclemetarow{display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-size:14px;color:var(--muted);font-weight:700}
.vehiclefooter{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:var(--brand-blue-dark)}
.vehiclefooter b{font-size:15px}

.vehiclehero{padding:22px 24px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}
.vehiclehero h1{margin:6px 0 8px;font-size:40px;line-height:1.02;letter-spacing:-.04em;color:var(--brand-blue-dark)}
.vehiclehero-date{margin-top:10px;color:var(--muted);font-weight:700}
.vehicle-summary{margin-bottom:18px}

.workpanel{padding:22px}
.workpanelhead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:18px}
.workpanelhead h2{margin:0 0 6px;font-size:28px;color:var(--brand-blue-dark)}
.workpanelhead p{margin:0;color:var(--muted)}
.workcount{min-width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,var(--brand-blue),#0d5ab7);color:#fff;display:grid;place-items:center;font-size:22px;font-weight:900;box-shadow:0 16px 28px rgba(21,103,209,.2)}
.worklist{display:flex;flex-direction:column;gap:14px}
.workitem{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:center;border:1px solid var(--line);border-radius:20px;padding:16px 18px;background:linear-gradient(180deg,#ffffff 0,#fbfdff 100%)}
.workitem.completed{border-color:#bfe8cb;background:linear-gradient(180deg,#fbfffc 0,#f1fbf5 100%)}
.workitem.started{border-color:#cfe3f8;background:linear-gradient(180deg,#ffffff 0,#f6fbff 100%)}
.workcheck{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;font-size:20px;font-weight:900;background:#edf2f7;color:#5b6b7e}
.workitem.completed .workcheck{background:var(--brand-green);color:#fff}
.workitem.started .workcheck{background:var(--brand-blue);color:#fff}
.worktitle{font-size:22px;font-weight:900;color:var(--brand-blue-dark);line-height:1.1}
.workcode{margin-top:4px;font-size:12px;color:var(--muted);font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.workmeta{margin-top:8px;color:var(--muted);font-size:13px;font-weight:700}
.inline-note{margin-top:10px;padding:10px 12px;border-radius:12px;box-shadow:none;font-size:14px}
.workactions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.workactions form{margin:0}

.otherwork{padding:22px;margin-top:18px}
.otherwork h3{margin:0 0 8px;font-size:24px;color:var(--brand-blue-dark)}
.otherwork p{margin:0 0 16px;color:var(--muted)}
.otherlist{display:flex;flex-direction:column;gap:10px}
.otherrow{display:grid;grid-template-columns:1.4fr 1fr auto;gap:12px;align-items:center;padding:14px 16px;border-radius:16px;background:var(--panel-soft);border:1px solid var(--line)}

.jobgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.job{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.jobtop{display:flex;justify-content:space-between;gap:12px}.job h2{margin:0 0 5px}.job h3{font-size:20px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.actions form{margin:0}

.gridform{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}
.gridform .check{justify-content:center}

@media (max-width:1100px){
  .pagehead h1,.sectionhead h1,.vehiclehero h1{font-size:32px}
  .cards{grid-template-columns:repeat(3,1fr)}
  .vehiclegrid{grid-template-columns:1fr}
  .workitem{grid-template-columns:54px 1fr;align-items:flex-start}
  .workactions{grid-column:2;justify-content:flex-start}
  .otherrow{grid-template-columns:1fr}
}

@media (max-width:850px){
  .headerinner{align-items:flex-start;flex-wrap:wrap;padding:14px 16px;gap:12px;min-height:auto}
  .topnav{order:3;width:100%;overflow:auto;padding-bottom:2px}
  .userchip{margin-left:auto}
  .appmain{padding:18px 16px 34px}
  .pagehead,.sectionhead,.vehiclehero,.workpanelhead{flex-direction:column;align-items:flex-start}
  .cards{grid-template-columns:repeat(2,1fr)}
  .money{grid-template-columns:1fr}
  .gridform{grid-template-columns:1fr}
  .workcount{width:72px}
}

@media (max-width:560px){
  .brandmark{width:38px;height:38px;border-radius:12px}
  .brandtext strong{font-size:24px}
  .brandtext span{font-size:10px}
  .pagehead h1,.sectionhead h1,.vehiclehero h1{font-size:28px}
  .cards{grid-template-columns:1fr}
  .summarypill{width:100%}
  .vehiclecard h2,.worktitle{font-size:22px}
  .workitem{padding:14px}
  .workcheck{width:42px;height:42px;border-radius:14px}
  .login{padding:22px}
  .loginbrand{align-items:flex-start;flex-direction:column}
}

.cards.cards-four{grid-template-columns:repeat(4,1fr)}
@media(max-width:850px){.cards.cards-four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.cards.cards-four{grid-template-columns:1fr}}


/* Assegnazione veicolo */
.assignmentbox{min-width:260px;display:flex;flex-direction:column;gap:10px}
.assign-main{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.assign-main select{min-width:180px;flex:1}
.assign-main button{white-space:nowrap}
.assignhint{font-size:12px;color:var(--muted);line-height:1.35}
.splitassign{border-top:1px solid var(--line);padding-top:9px}
.splitassign summary{cursor:pointer;list-style:none;color:var(--brand-blue);font-size:13px;font-weight:800;display:inline-flex;align-items:center;gap:6px}
.splitassign summary::-webkit-details-marker{display:none}
.splitassign summary::before{content:"＋";width:20px;height:20px;border-radius:7px;display:inline-grid;place-items:center;background:var(--brand-blue-soft);color:var(--brand-blue);font-size:14px}
.splitassign[open] summary::before{content:"−"}
.splitlist{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding:10px;border-radius:14px;background:var(--panel-soft);border:1px solid var(--line)}
.splitrow{display:grid;grid-template-columns:minmax(130px,1fr) minmax(150px,190px);gap:10px;align-items:center}
.splitrow .taskname{font-size:13px;font-weight:800;color:var(--ink)}
.splitrow .taskcode{display:block;font-size:11px;color:var(--muted);font-weight:700;margin-top:2px}
.operator-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:2px}
.operator-tag{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#eef3f8;color:var(--brand-blue-dark);font-size:12px;font-weight:800}
.operator-tag.unassigned{background:var(--warn-soft);color:#8a6200}
@media(max-width:850px){.assignmentbox{min-width:220px}.splitrow{grid-template-columns:1fr}.splitrow select{width:100%}}

/* Importazioni - anteprima leggibile */
.import-preview-head{margin-bottom:18px}
.import-mailbox{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,2.25fr);gap:16px;padding:18px 20px;margin-bottom:18px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.import-mail-meta{display:flex;flex-direction:column;gap:12px}
.import-mail-meta .meta-label,.import-body-title{display:block;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.import-mail-meta strong{display:block;color:var(--brand-blue-dark);font-size:14px;overflow-wrap:anywhere}
.import-body{min-width:0}
.import-body-text{max-height:150px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.48;font-size:13px;color:#40576c;background:#f8fafc;border:1px solid #e5ebf1;border-radius:14px;padding:12px 14px}
.import-form{display:block;margin:0}
.import-table-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:18px}
.import-table-title{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line);background:#fbfcfe}
.import-table-title h2{margin:0;font-size:19px;color:var(--brand-blue-dark)}
.import-table-title span{font-size:13px;color:var(--muted);font-weight:700}
.import-table-scroll{width:100%;overflow-x:auto}
.import-table{width:100%;min-width:980px;table-layout:fixed}
.import-table th,.import-table td{padding:13px 14px;vertical-align:top}
.import-table th:nth-child(1){width:10%}
.import-table th:nth-child(2){width:16%}
.import-table th:nth-child(3){width:20%}
.import-table th:nth-child(4){width:28%}
.import-table th:nth-child(5){width:26%}
.import-table td{font-size:13px;line-height:1.42}
.import-table .mono{font-size:11.5px;overflow-wrap:anywhere;word-break:break-word}
.taskchips{display:flex;flex-wrap:wrap;gap:5px}
.taskchip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:var(--brand-blue-soft);color:var(--brand-blue-dark);font-size:11px;font-weight:800;white-space:nowrap}
.import-ok{display:inline-flex;align-items:center;gap:6px;color:var(--brand-green-dark);font-weight:800}
.import-ok::before{content:'✓';display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--brand-green-soft)}
.import-warning{padding:10px 12px;border:1px solid #f1d38e;background:var(--warn-soft);border-radius:12px;color:#805a00}
.import-warning strong{display:block;margin-bottom:7px}
.import-choice{display:flex;flex-direction:column;gap:7px;margin-top:8px}
.import-choice label{display:flex;flex-direction:row;align-items:flex-start;gap:8px;font-size:12.5px;font-weight:700;color:#5b4a20;cursor:pointer}
.import-choice input{min-height:auto;margin-top:2px}
.import-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;padding:18px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px}
.import-footer .datebox{min-width:220px}
.import-footer button{min-height:46px;padding-left:20px;padding-right:20px}
.import-info{box-shadow:none;margin-bottom:18px}
.attachment-panel{padding:18px 20px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.attachment-panel h3{margin:0 0 12px;color:var(--brand-blue-dark)}
.attachment-panel ul{margin:0;padding-left:20px}
.attachment-panel a{color:var(--brand-blue);font-weight:700}
@media(max-width:900px){
  .import-mailbox{grid-template-columns:1fr}
  .import-footer{align-items:stretch;flex-direction:column}
  .import-footer .datebox{width:100%}
  .import-footer input,.import-footer button{width:100%}
}

/* Importazione - scelta valori sospetti */
.suspect-card{min-width:360px;max-width:520px;padding:16px;border:1px solid #f0d99d;border-radius:16px;background:linear-gradient(180deg,#fffdf7 0,#fff8e9 100%)}
.suspect-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.suspect-icon{width:34px;height:34px;flex:0 0 34px;border-radius:12px;display:grid;place-items:center;background:#fff0c2;color:#8a5a00;font-weight:900;font-size:18px;border:1px solid #efd58a}
.suspect-kicker{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#8f6a20;font-weight:800;margin-bottom:2px}
.suspect-head strong{font-size:18px;color:#213a50;word-break:break-word}
.suspect-help{margin:8px 0 12px;color:#65717c;font-size:13px;line-height:1.45}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice-card{position:relative;display:flex!important;flex-direction:row!important;align-items:center;gap:12px;min-height:82px;padding:13px 14px;border:2px solid #d7e0e8;border-radius:14px;background:#fff;cursor:pointer;transition:.16s border-color,.16s background,.16s box-shadow,.16s transform}
.choice-card:hover{border-color:#9bb9d7;background:#f8fbff;transform:translateY(-1px)}
.choice-card input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.choice-indicator{width:24px;height:24px;flex:0 0 24px;border-radius:999px;border:2px solid #9eabb7;background:#fff;box-shadow:inset 0 0 0 4px #fff}
.choice-text{display:flex;flex-direction:column;gap:4px}
.choice-text strong{font-size:14px;color:#213a50}
.choice-text small{font-size:12px;color:#6d7884;line-height:1.35;font-weight:600}
.choice-card:has(input:checked){border-color:var(--brand-blue);background:var(--brand-blue-soft);box-shadow:0 0 0 3px rgba(21,103,209,.10)}
.choice-card:has(input:checked) .choice-indicator{border-color:var(--brand-blue);background:var(--brand-blue);box-shadow:inset 0 0 0 5px #fff}
.choice-card:has(input[value="position"]:checked) .choice-text strong{color:var(--brand-blue-dark)}
.choice-card:has(input[value="task"]:checked){border-color:var(--brand-green);background:var(--brand-green-soft);box-shadow:0 0 0 3px rgba(0,166,60,.10)}
.choice-card:has(input[value="task"]:checked) .choice-indicator{border-color:var(--brand-green);background:var(--brand-green);box-shadow:inset 0 0 0 5px #fff}
.import-table td:last-child{min-width:410px}
@media(max-width:900px){.choice-grid{grid-template-columns:1fr}.suspect-card{min-width:310px}.import-table td:last-child{min-width:340px}}


/* Assegnazione multipla veicoli */
.vehicle-operator-select{width:100%;min-width:210px}
.bulk-assign-footer{position:sticky;bottom:14px;z-index:12;margin-top:18px;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;border-radius:18px;background:rgba(13,59,102,.96);color:#fff;box-shadow:0 18px 36px rgba(13,59,102,.24);backdrop-filter:blur(10px)}
.bulk-assign-footer strong{display:block;font-size:16px}
.bulk-assign-footer span{display:block;margin-top:3px;color:#cfe2f7;font-size:13px}
.bulk-assign-button{min-width:150px;white-space:nowrap}
.allocation-summary{margin:18px 0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}
.allocation-summary-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:14px}
.allocation-summary-head h2{margin:4px 0 0;font-size:22px;color:var(--brand-blue-dark)}
.allocation-note{max-width:480px;text-align:right;color:var(--muted);font-size:12px;line-height:1.4}
.allocation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.allocation-card{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:13px 14px;border:1px solid #d7e4f0;border-radius:14px;background:linear-gradient(180deg,#fbfdff 0,#f3f8fd 100%)}
.allocation-card span{grid-column:1;grid-row:1 / span 2;font-weight:800;color:var(--brand-blue-dark);line-height:1.2}
.allocation-card strong{grid-column:2;grid-row:1;font-size:24px;color:var(--brand-blue)}
.allocation-card small{grid-column:2;grid-row:2;color:var(--muted);font-size:11px;text-align:right}
.allocation-card.emptycount{background:#fafbfc;border-color:var(--line);opacity:.72}
.allocation-card.emptycount strong{color:#8795a3}
@media(max-width:850px){.bulk-assign-footer{position:static;flex-direction:column;align-items:stretch}.bulk-assign-button{width:100%}.allocation-summary-head{flex-direction:column;align-items:flex-start}.allocation-note{text-align:left}.allocation-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.allocation-grid{grid-template-columns:1fr}}


/* === Patch UX 2026-10: avanzamento veicoli + header mobile compatto === */
/* Barra: rossa finché il veicolo non è terminato, verde al 100% */
.vehicleprogress{height:12px;border-radius:999px;overflow:hidden;border:1px solid transparent;box-shadow:inset 0 1px 2px rgba(13,59,102,.08)}
.vehicleprogress.is-open{background:#f8d7da;border-color:#efb7bd}
.vehicleprogress.is-open span{display:block;height:100%;border-radius:999px;background:#d64545;transition:width .25s ease}
.vehicleprogress.is-complete{background:#dff5e7;border-color:#b9e3c7}
.vehicleprogress.is-complete span{display:block;height:100%;border-radius:999px;background:#00a63c;transition:width .25s ease}

/* Su smartphone l'header diventa compatto: prima riga marchio + utente,
   seconda riga menu orizzontale scorrevole. */
@media (max-width:850px){
  .appheader{position:sticky;top:0;height:auto;min-height:0;max-height:none;overflow:visible}
  .headerinner{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "brand user"
      "nav nav";
    align-items:center;
    width:100%;
    min-height:0;
    padding:10px 12px 8px;
    gap:8px 10px;
  }
  .brandlink{grid-area:brand;min-width:0;gap:10px;align-items:center}
  .brandmark{width:38px;height:38px;flex:0 0 38px;border-radius:11px}
  .brandtext{min-width:0}
  .brandtext strong{font-size:23px;line-height:1}
  .brandtext span{font-size:9px;margin-top:3px;white-space:nowrap}
  .userchip{
    grid-area:user;
    margin:0;
    min-width:0;
    max-width:190px;
    padding:7px 10px;
    align-items:flex-end;
    border-radius:12px;
  }
  .userchip-name{max-width:170px;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .userchip-role{font-size:10.5px}
  .topnav{
    grid-area:nav;
    order:initial;
    flex:none;
    flex-wrap:nowrap;
    width:100%;
    min-width:0;
    min-height:38px;
    max-height:44px;
    gap:5px;
    padding:2px 0 0;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .topnav::-webkit-scrollbar{display:none}
  .topnav a{
    flex:0 0 auto;
    white-space:nowrap;
    padding:8px 10px;
    border-radius:10px;
    font-size:12.5px;
    line-height:1.15;
  }
  .appmain{padding-top:16px}
}

@media (max-width:480px){
  .headerinner{padding-left:10px;padding-right:10px}
  .brandmark{width:34px;height:34px;flex-basis:34px}
  .brandtext strong{font-size:21px}
  .brandtext span{display:none}
  .userchip{max-width:155px;padding:6px 8px}
  .userchip-name{max-width:138px;font-size:11.5px}
  .topnav a{font-size:12px;padding:7px 9px}
}
