/* Schema Visite — calendario e consultazione esiti, pensati anche per telefono. */
.hub-panel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px;}
.sv-app{color:var(--text);min-height:620px;}
.sv-head{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 20px;margin-bottom:14px;border-radius:16px;color:#fff;
  background:linear-gradient(135deg,#0f766e 0%,#0e7490 55%,#1d4ed8 100%);
  box-shadow:0 10px 28px rgba(15,118,110,.18);}
.sv-head-kicker{font-size:10.5px;text-transform:uppercase;letter-spacing:1.2px;font-weight:800;opacity:.8;}
.sv-head-title{font-size:20px;font-weight:850;line-height:1.2;margin-top:3px;}
.sv-head-sub{font-size:11.5px;line-height:1.45;margin-top:5px;opacity:.86;}
.sv-head-count{min-width:86px;text-align:center;padding:10px 12px;border-radius:12px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);}
.sv-head-count strong{display:block;font-size:24px;line-height:1;}.sv-head-count span{font-size:10px;opacity:.85;}
.sv-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.sv-toolbar .sv-spacer{flex:1;}.sv-toolbar .btn{min-height:38px;}
.sv-go-date{display:flex;align-items:center;gap:7px;padding:5px 8px 5px 11px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#334155;font-size:11px;font-weight:800;}
.sv-go-date input{border:0;background:transparent;color:#0f172a;font:inherit;min-height:28px;}
.sv-recalls{margin:0 0 14px;padding:13px;border:1px solid #f59e0b;border-radius:14px;background:#fffbeb;}
.sv-recalls.is-clear{display:flex;gap:10px;align-items:center;border-color:#a7f3d0;background:#ecfdf5;color:#065f46;}
.sv-recalls.is-clear span{font-size:11px;color:#047857;}
.sv-recalls-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:9px;color:#78350f;}
.sv-recalls-head strong{display:block;font-size:14px;}.sv-recalls-head span{display:block;margin-top:2px;font-size:11px;color:#92400e;}
.sv-recalls-head b{white-space:nowrap;padding:5px 9px;border-radius:999px;background:#f59e0b;color:#fff;font-size:11px;}
.sv-recall-list{display:grid;gap:7px;}.sv-recall{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border-radius:10px;background:#fff;border:1px solid #fde68a;}
.sv-recall.is-alert{animation:sv-recall-blink 1.4s ease-in-out infinite;box-shadow:0 0 0 2px rgba(245,158,11,.10);}
@keyframes sv-recall-blink{0%,100%{border-color:#fbbf24;background:#fff}50%{border-color:#dc2626;background:#fff7ed}}
.sv-recall-person strong{display:block;color:#78350f;font-size:12.5px;}.sv-recall-person span,.sv-recall-person small{display:block;margin-top:2px;color:#92400e;font-size:10.5px;}
.sv-recall-plan,.sv-recall-booked{display:flex;align-items:end;gap:7px;flex-shrink:0;}.sv-recall-plan label{font-size:9.5px;font-weight:800;color:#78350f;}.sv-recall-plan input{display:block;margin-top:3px;padding:6px;border:1px solid #d97706;border-radius:7px;background:#fff;}
.sv-recall-booked{align-items:center;color:#047857;font-size:10.5px;font-weight:800;}.sv-recall.is-scheduled{border-color:#a7f3d0;background:#f0fdf4;}
.sv-patient-facts{margin-top:8px;padding:7px 9px;border-radius:7px;background:#f1f5f9;color:#475569;font-size:10.5px;line-height:1.4;}.sv-patient-facts.is-warning{background:#fff7ed;color:#9a3412;font-weight:800;}
@media (prefers-reduced-motion:reduce){.sv-recall.is-alert{animation:none;border:2px solid #dc2626;background:#fff7ed;}}
.sv-back{border-color:#94a3b8 !important;color:var(--navy) !important;font-weight:800 !important;background:#fff !important;}
.sv-home{border-color:#0f766e !important;color:#065f46 !important;font-weight:850 !important;background:#ecfdf5 !important;}
.sv-month-nav{display:flex;align-items:center;gap:5px;background:#f8fafc;border:1px solid var(--border);
  padding:4px;border-radius:11px;}
.sv-month-nav button{border:0;background:#fff;border-radius:7px;min-width:36px;height:32px;cursor:pointer;
  color:var(--navy);font-size:15px;font-weight:800;box-shadow:0 1px 2px rgba(15,34,64,.06);}
.sv-month-label{min-width:155px;text-align:center;font-size:13px;font-weight:800;color:var(--navy);text-transform:capitalize;}
.sv-main{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px;align-items:start;}
.sv-calendar{border:1px solid var(--border);border-radius:15px;background:#fff;overflow:hidden;
  box-shadow:0 2px 8px rgba(15,34,64,.05);}
.sv-weekdays,.sv-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));}
.sv-weekday{padding:9px 4px;background:#f8fafc;border-bottom:1px solid var(--border);text-align:center;
  color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.7px;font-weight:800;}
.sv-day{position:relative;min-height:92px;padding:8px;border:0;border-right:1px solid #eef2f7;
  border-bottom:1px solid #eef2f7;background:#fff;text-align:left;cursor:pointer;font-family:inherit;
  color:var(--text);transition:background .12s,box-shadow .12s;overflow:hidden;}
.sv-day:nth-child(7n){border-right:0;}.sv-day:hover{background:#f0fdfa;}
.sv-day.is-empty{cursor:default;background:#fafafa;}.sv-day.is-today .sv-day-num{background:#1d4ed8;color:#fff;}
.sv-day.is-selected{background:#ecfeff;box-shadow:inset 0 0 0 2px #0891b2;z-index:1;}
.sv-day-num{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;font-size:11.5px;font-weight:800;}
.sv-day-total{position:absolute;right:7px;top:8px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;
  display:grid;place-items:center;background:#ccfbf1;color:#0f766e;font-size:10px;font-weight:850;}
.sv-day-workers{display:flex;flex-direction:column;gap:3px;margin-top:5px;}
.sv-day-worker{font-size:9.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#475569;}
.sv-day-more{font-size:9px;color:#0e7490;font-weight:800;margin-top:2px;}
.sv-agenda{border:1px solid var(--border);border-radius:15px;background:#f8fafc;overflow:hidden;}
.sv-agenda-head{padding:13px 14px;background:#fff;border-bottom:1px solid var(--border);display:flex;
  justify-content:space-between;align-items:center;gap:8px;}
.sv-agenda-date{font-size:14px;font-weight:850;color:var(--navy);text-transform:capitalize;}
.sv-agenda-list{padding:10px;display:flex;flex-direction:column;gap:9px;max-height:510px;overflow:auto;}
.sv-empty{padding:38px 18px;text-align:center;color:#64748b;font-size:12px;line-height:1.55;}
.sv-empty .ic{display:block;font-size:34px;margin-bottom:8px;}
.sv-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px;
  box-shadow:0 1px 3px rgba(15,34,64,.04);}
.sv-card-top{display:flex;align-items:flex-start;gap:9px;}.sv-time{flex:0 0 auto;padding:5px 7px;border-radius:7px;
  background:#e0f2fe;color:#075985;font-size:11px;font-weight:850;font-family:'IBM Plex Mono',monospace;}
.sv-person{min-width:0;flex:1;}.sv-person strong{display:block;font-size:13px;color:var(--navy);line-height:1.25;}
.sv-person span{display:block;font-size:10.5px;color:#64748b;margin-top:3px;line-height:1.35;}
.sv-status{font-size:9px;font-weight:800;padding:4px 6px;border-radius:8px;white-space:nowrap;}
.sv-status.planned{background:#fef3c7;color:#92400e}.sv-status.done{background:#dcfce7;color:#166534}
.sv-status.cancelled{background:#fee2e2;color:#991b1b}.sv-services{display:flex;gap:4px;flex-wrap:wrap;margin-top:9px;}
.sv-service{font-size:9px;font-weight:750;padding:3px 6px;border:1px solid #a5f3fc;background:#ecfeff;color:#155e75;border-radius:9px;}
.sv-card-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px;padding-top:9px;border-top:1px dashed #e2e8f0;}
.sv-mini{min-height:32px;border:1px solid var(--border);background:#fff;color:#334155;border-radius:8px;
  padding:5px 8px;font-family:inherit;font-size:10.5px;font-weight:750;cursor:pointer;}
.sv-mini.primary{background:#0f766e;border-color:#0f766e;color:#fff}.sv-mini.danger{color:#b91c1c;border-color:#fecaca;}
.sv-outcomes{display:flex;flex-direction:column;gap:5px;margin-top:9px;}
.sv-outcome{display:flex;align-items:center;gap:7px;padding:7px 8px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;}
.sv-outcome-name{min-width:0;flex:1;font-size:10.5px;color:#166534;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sv-outcome button{border:0;background:#15803d;color:#fff;border-radius:7px;min-height:29px;padding:4px 8px;font-size:10px;font-weight:800;cursor:pointer;}
.sv-unmatched{margin-top:14px;border:1px solid #fdba74;background:#fff7ed;border-radius:12px;padding:12px;}
.sv-unmatched h4{font-size:12px;color:#9a3412;margin:0 0 8px;}.sv-unmatched-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,1fr) auto;gap:6px;align-items:center;margin-top:6px;}
.sv-unmatched-name{font-size:10.5px;color:#7c2d12;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sv-linked-person{display:block;margin-top:3px;color:#15803d;font-size:9.5px;font-weight:800;overflow:hidden;text-overflow:ellipsis;}
.sv-unmatched select{min-width:0;padding:7px;border:1px solid #fdba74;border-radius:7px;background:#fff;font-size:10.5px;}
.sv-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;}
.sv-field{display:flex;flex-direction:column;gap:5px;}.sv-field.full{grid-column:1/-1;}
.sv-field label{font-size:10.5px;font-weight:750;color:#64748b;text-transform:uppercase;letter-spacing:.5px;}
.sv-field input,.sv-field select,.sv-field textarea{box-sizing:border-box;width:100%;min-height:42px;padding:9px 11px;
  border:1px solid var(--border);border-radius:9px;background:#fff;font:13px inherit;color:var(--text);}
.sv-field textarea{min-height:78px;resize:vertical;}.sv-checks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;}
.sv-check{display:flex;align-items:center;gap:7px;min-height:42px;padding:7px 9px;border:1px solid var(--border);border-radius:9px;background:#f8fafc;font-size:11px;font-weight:700;}
.sv-check input{width:18px;height:18px;}.sv-viewer{height:72vh;min-height:480px;background:#1e293b;border-radius:10px;overflow:hidden;display:grid;place-items:center;}
.sv-viewer iframe{border:0;width:100%;height:100%;background:#fff}.sv-viewer img{display:block;max-width:100%;max-height:100%;object-fit:contain;}
.sv-import-report{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;}
.sv-stat{padding:14px;border:1px solid var(--border);border-radius:11px;background:#f8fafc;text-align:center;}
.sv-stat strong{display:block;font-size:24px;color:var(--navy)}.sv-stat span{font-size:10.5px;color:#64748b;}
.sv-ready-import{border-color:#0f766e !important;background:#ecfdf5 !important;color:#065f46 !important;font-weight:800 !important;}
.sv-save-warning{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:13px 15px;border:1px solid #f59e0b;
  border-radius:11px;background:#fffbeb;color:#78350f;}
.sv-save-warning strong{font-size:13px;white-space:nowrap}.sv-save-warning span{font-size:11.5px;line-height:1.4;}
.sv-patient-box{padding:13px;border:1px solid #99f6e4;border-radius:13px;background:#f0fdfa;}
.sv-patient-note{font-size:10.5px;color:#0f766e;font-weight:750;}
.sv-acquire{margin-top:6px;padding-top:10px;border-top:1px dashed #5eead4;}
.sv-barcode-row{display:flex;gap:7px}.sv-barcode-row input{min-width:0;flex:1;font-family:'IBM Plex Mono',monospace;text-transform:uppercase;}
.sv-barcode-row button,.sv-acquire-actions button{min-height:42px;padding:8px 12px;border:1px solid #0f766e;border-radius:9px;background:#fff;color:#0f766e;font:750 11px inherit;cursor:pointer;}
.sv-barcode-row button{background:#0f766e;color:#fff}.sv-acquire-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px;}
.sv-visit-video{display:block;width:100%;max-height:310px;object-fit:cover;margin-top:9px;border-radius:11px;background:#0f172a;}
img.sv-visit-video{object-fit:contain;}
.sv-scan-status{margin-top:8px;min-height:18px;color:#0f766e;font-size:11px;line-height:1.4;font-weight:700;}.sv-scan-status.bad{color:#b91c1c;}

/* Importazione guidata: stessa interfaccia su computer e telefono. */
.sv-import-loading{min-height:320px;display:grid;place-items:center;align-content:center;gap:12px;color:#475569;text-align:center;}
.sv-import-loading span{font-size:46px}.sv-import-loading strong{font-size:14px;color:var(--navy)}
.sv-import-steps{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:5px;}
.sv-import-steps li{position:relative;display:flex;align-items:center;gap:7px;padding:9px 10px;border-radius:10px;background:#f1f5f9;color:#64748b;font-size:10.5px;min-width:0;}
.sv-import-steps li span{display:grid;place-items:center;flex:0 0 23px;width:23px;height:23px;border-radius:50%;background:#fff;border:1px solid #cbd5e1;font-weight:850;}
.sv-import-steps li b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sv-import-steps li.active{background:#e0f2fe;color:#075985;box-shadow:inset 0 0 0 1px #7dd3fc;}
.sv-import-steps li.active span{background:#0284c7;border-color:#0284c7;color:#fff}.sv-import-steps li.done{background:#ecfdf5;color:#047857}.sv-import-steps li.done span{background:#059669;border-color:#059669;color:#fff}
.sv-import-company{display:flex;flex-direction:column;gap:3px;padding:15px 17px;margin-bottom:13px;border-radius:13px;background:linear-gradient(135deg,#0f766e,#0e7490);color:#fff;box-shadow:0 7px 20px rgba(15,118,110,.16);}
.sv-import-company span{font-size:9px;font-weight:850;letter-spacing:1.1px;opacity:.78}.sv-import-company strong{font-size:17px;line-height:1.25}.sv-import-company small{font-size:10.5px;line-height:1.4;opacity:.9}.sv-import-company.compact{padding:12px 15px}
.sv-import-safety{display:flex;gap:12px;align-items:center;padding:12px 14px;margin-bottom:14px;border:1px solid #a7f3d0;border-radius:11px;background:#ecfdf5;color:#065f46;}
.sv-import-safety strong{white-space:nowrap;font-size:12px}.sv-import-safety span{font-size:11px;line-height:1.45}
.sv-import-file-input{position:fixed!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}
.sv-import-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:14px;align-items:start;}
.sv-import-source-main,.sv-import-other,.sv-import-history{border:1px solid var(--border);border-radius:14px;background:#fff;padding:15px;box-shadow:0 2px 8px rgba(15,34,64,.04);}
.sv-section-title{display:flex;gap:10px;align-items:flex-start;margin-bottom:13px}.sv-section-title>span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#ecfeff;font-size:20px;flex:0 0 auto;}
.sv-section-title div{display:flex;flex-direction:column;gap:3px}.sv-section-title strong{font-size:13px;color:var(--navy)}.sv-section-title small{font-size:10.5px;color:#64748b;line-height:1.4}.sv-section-title.compact{margin-bottom:10px}.sv-section-title.compact>span{width:32px;height:32px;font-size:16px}
.sv-device-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sv-device-source{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;min-height:86px;padding:13px;border:1px solid #bae6fd;border-radius:12px;background:#f8fafc;color:var(--text);text-align:left;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.sv-device-source>span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#e0f2fe;font-size:23px}.sv-device-source strong{font-size:13px;color:var(--navy)}.sv-device-source small{margin-top:2px;color:#64748b;font-size:9.5px;line-height:1.35}.sv-device-source:hover,.sv-device-source:focus-visible{border-color:#0ea5e9;background:#f0f9ff;box-shadow:0 5px 16px rgba(14,165,233,.12)}.sv-device-source.primary{border-color:#5eead4;background:linear-gradient(135deg,#ecfdf5,#ecfeff)}.sv-device-source.primary>span{background:#ccfbf1}.sv-device-source.primary:hover,.sv-device-source.primary:focus-visible{border-color:#0f766e}.sv-device-source:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}
.sv-device-limits{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:11px;padding:10px 12px;border-radius:10px;background:#f1f5f9;color:#475569}.sv-device-limits strong{font-size:10.5px;color:var(--navy)}.sv-device-limits span{font-size:10px}.sv-device-limits small{flex-basis:100%;overflow-wrap:anywhere;color:#64748b;font-size:8.8px;line-height:1.45}
.sv-server-lab{margin-top:14px;border-color:#c4b5fd;background:#faf5ff}.sv-server-lab .sv-section-title>span{background:#ede9fe}
.sv-import-label{display:block;margin-bottom:5px;font-size:10px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.sv-import-select{box-sizing:border-box;width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:#fff;font:13px inherit;color:var(--text);}
.sv-folder-browser{margin-top:11px;border:1px solid #bae6fd;border-radius:11px;overflow:hidden;background:#f8fafc}.sv-folder-loading{padding:35px 16px;text-align:center;color:#64748b;font-size:11px;}
.sv-folder-current{display:flex;align-items:center;gap:10px;padding:10px 11px;background:#e0f2fe;border-bottom:1px solid #bae6fd}.sv-folder-current button{width:42px;min-height:38px;border:1px solid #7dd3fc;border-radius:8px;background:#fff;color:#0369a1;font-weight:800;cursor:pointer}.sv-folder-current button:disabled{opacity:.38;cursor:default}
.sv-folder-current div{min-width:0;display:flex;flex-direction:column;gap:2px}.sv-folder-current small{font-size:8.5px;font-weight:850;letter-spacing:.7px;color:#0284c7}.sv-folder-current strong{font-size:11.5px;color:#0c4a6e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sv-folder-list{max-height:235px;overflow:auto;padding:6px}.sv-folder-row{width:100%;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:7px;min-height:42px;padding:7px 9px;border:0;border-bottom:1px solid #e2e8f0;background:transparent;text-align:left;color:#334155;cursor:pointer}.sv-folder-row:last-child{border-bottom:0}.sv-folder-row:hover,.sv-folder-row:focus-visible{background:#fff}.sv-folder-row span:first-child{font-size:17px}.sv-folder-row b{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sv-folder-row span:last-child{font-size:9.5px;color:#0284c7;font-weight:750}
.sv-folder-pager{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-top:1px solid #bae6fd;background:#f0f9ff}.sv-folder-pager .btn{flex:1;min-height:38px;margin:0}
.sv-scope-check{display:flex;align-items:flex-start;gap:9px;margin:10px;padding:10px;border:1px solid #fde68a;border-radius:9px;background:#fffbeb;color:#78350f;font-size:10.5px;line-height:1.45}.sv-scope-check input{width:18px;height:18px;flex:0 0 auto}.sv-import-start{margin:0 10px 10px;width:calc(100% - 20px);min-height:44px}
.sv-source-cards{display:grid;grid-template-columns:1fr;gap:8px}.sv-source-card{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;width:100%;padding:10px;border:1px solid var(--border);border-radius:10px;background:#f8fafc;text-align:left;cursor:pointer;color:var(--text)}
.sv-source-card:hover,.sv-source-card:focus-visible{border-color:#2dd4bf;background:#f0fdfa;box-shadow:0 3px 10px rgba(15,118,110,.08)}.sv-source-card>span{grid-row:1/3;align-self:center;font-size:22px}.sv-source-card strong{font-size:11.5px;color:var(--navy)}.sv-source-card small{font-size:9.5px;color:#64748b;margin-top:2px;line-height:1.3}
.sv-source-card.featured{border-color:#5eead4;background:linear-gradient(135deg,#ecfdf5,#ecfeff)}
.sv-device-summary{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(2,minmax(120px,.7fr));gap:9px;margin-bottom:14px}.sv-device-summary>div{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;align-items:center;min-width:0;padding:13px;border:1px solid var(--border);border-radius:11px;background:#f8fafc}.sv-device-summary>div>span{grid-row:1/3;font-size:23px}.sv-device-summary strong{overflow:hidden;color:var(--navy);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.sv-device-summary small{margin-top:2px;color:#64748b;font-size:9.5px}.sv-device-upload-start{display:flex!important;justify-content:center;width:100%;min-height:48px;margin-top:2px}.sv-device-upload-progress{min-height:285px;display:grid;place-items:center;align-content:center;gap:10px;padding:24px;text-align:center;color:#475569}.sv-device-upload-progress>.ic{font-size:46px;color:#0f766e}.sv-device-upload-progress>strong{font-size:31px;line-height:1;color:var(--navy)}.sv-device-upload-progress>span:not(.ic){font-size:11px;line-height:1.45}.sv-device-upload-progress>.sv-progress{width:min(760px,100%);margin:5px 0 0}.sv-device-upload-progress>small{font-size:10.5px;line-height:1.45;color:#64748b}
.sv-import-history{margin-top:14px}.sv-import-job-row{width:100%;display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border:0;border-top:1px solid #e2e8f0;background:#fff;text-align:left;cursor:pointer}.sv-import-job-row:hover{background:#f8fafc}.sv-import-job-row>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.sv-import-job-row strong{font-size:11.5px;color:var(--navy)}.sv-import-job-row small{font-size:9.5px;color:#64748b}.sv-import-job-row>b{font-size:10px;color:#0f766e}
.sv-job-dot{width:9px;height:9px;border-radius:50%;background:#94a3b8}.sv-job-dot.uploading{background:#dc2626;box-shadow:0 0 0 4px #fee2e2}.sv-job-dot.scanning,.sv-job-dot.committing{background:#0ea5e9;box-shadow:0 0 0 4px #e0f2fe}.sv-job-dot.ready{background:#f59e0b}.sv-job-dot.expired{background:#dc2626}.sv-job-dot.committed_verified,.sv-job-dot.committed_with_review{background:#10b981}
.sv-import-none{padding:20px;text-align:center;color:#64748b;font-size:10.5px}.sv-import-warning{display:flex;gap:10px;align-items:flex-start;margin-top:13px;padding:11px 13px;border:1px solid #fed7aa;border-radius:10px;background:#fff7ed;color:#9a3412}.sv-import-warning strong{font-size:11.5px;white-space:nowrap}.sv-import-warning span{font-size:10.5px;line-height:1.45}
.sv-job-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:15px 0 9px}.sv-job-head>div:first-child{min-width:0}.sv-job-head h3{font-size:17px;color:var(--navy);margin:7px 0 3px}.sv-job-head p{font-size:10.5px;color:#64748b;margin:0}.sv-job-head>div:last-child{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.sv-job-status{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e2e8f0;color:#475569;font-size:9.5px;font-weight:850}.sv-job-status.uploading{background:#fee2e2;color:#991b1b}.sv-job-status.scanning,.sv-job-status.committing,.sv-job-status.commit_queued{background:#e0f2fe;color:#0369a1}.sv-job-status.ready{background:#fef3c7;color:#92400e}.sv-job-status.committed_verified,.sv-job-status.committed_with_review{background:#dcfce7;color:#166534}.sv-job-status.failed,.sv-job-status.expired{background:#fee2e2;color:#991b1b}
.sv-progress{height:9px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-bottom:14px}.sv-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f766e,#0ea5e9);transition:width .25s}.sv-job-stats{grid-template-columns:repeat(4,1fr)}.sv-stat.warn{border-color:#fdba74;background:#fff7ed}.sv-stat.warn strong{color:#c2410c}
.sv-review-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px}.sv-import-result{display:flex;align-items:center;gap:12px;padding:17px;border:1px solid #86efac;border-radius:13px;background:#f0fdf4;color:#166534}.sv-import-result>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#16a34a;color:#fff;font-size:22px}.sv-import-result div{display:flex;flex-direction:column;gap:3px}.sv-import-result strong{font-size:14px}.sv-import-result small{font-size:10.5px;line-height:1.45}
.sv-review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;padding:12px 14px;border:1px solid var(--border);border-radius:11px;background:#f8fafc}.sv-review-head>div{display:flex;flex-direction:column;gap:3px}.sv-review-head span{font-size:9px;font-weight:850;letter-spacing:.8px;color:#0e7490}.sv-review-head strong{font-size:15px;color:var(--navy)}.sv-review-head small{font-size:10px;color:#64748b}
.sv-candidate-list{display:flex;flex-direction:column;gap:7px;max-height:58vh;overflow:auto;padding:2px}.sv-candidate{display:grid;grid-template-columns:37px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 11px;border:1px solid var(--border);border-left:4px solid #22c55e;border-radius:10px;background:#fff}.sv-candidate.review{border-left-color:#f59e0b;background:#fffbeb}.sv-candidate.blocked{border-left-color:#ef4444;background:#fef2f2}.sv-candidate-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:9px;background:#f1f5f9;font-size:18px}.sv-candidate-main{min-width:0;display:flex;flex-direction:column;gap:2px}.sv-candidate-main strong{font-size:11.5px;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sv-candidate-main small{font-size:9.5px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sv-candidate-main em{font-size:8.5px;font-style:normal;color:#0f766e;font-weight:750}.sv-candidate-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.sv-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}.sv-pagination span{font-size:10.5px;color:#64748b;font-weight:750}
.sv-subject-picker>label{display:block;margin-bottom:8px;font-size:12px;font-weight:750;color:var(--navy)}.sv-subject-picker>input{box-sizing:border-box;width:100%;min-height:48px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;font:16px inherit}.sv-subject-results{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:58vh;overflow:auto}.sv-subject-results button{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--border);border-radius:9px;background:#fff;text-align:left;cursor:pointer}.sv-subject-results button:hover{border-color:#2dd4bf;background:#f0fdfa}.sv-subject-results strong{font-size:11.5px;color:var(--navy)}.sv-subject-results small{font-size:9.5px;color:#64748b}
.sv-confirm-card{max-width:620px;margin:30px auto;padding:28px;border:1px solid #a7f3d0;border-radius:16px;background:#f0fdfa;text-align:center}.sv-confirm-card>span{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:#0f766e;color:#fff;font-size:26px}.sv-confirm-card h3{font-size:20px;color:var(--navy);margin:0 0 7px}.sv-confirm-card p{font-size:12px;line-height:1.55;color:#475569;margin:0 0 15px}.sv-confirm-card .sv-save-warning{text-align:left}.sv-confirm-card>.btn{min-height:46px;padding:10px 20px}

@media(max-width:900px){
  .sv-main{grid-template-columns:1fr}.sv-agenda-list{max-height:none}.sv-app{min-height:0}
  .sv-head{padding:15px}.sv-day{min-height:74px}.sv-day-workers{display:none}
}
@media(max-width:640px){
  .hub-panel-grid{grid-template-columns:1fr 1fr !important;gap:9px !important}.sv-head{border-radius:12px;margin:-8px -8px 12px;padding:14px}
  .sv-head-title{font-size:17px}.sv-head-sub{font-size:10.5px}.sv-head-count{min-width:64px;padding:8px}.sv-head-count strong{font-size:20px}
  .sv-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:7px}.sv-toolbar .sv-spacer{display:none}
  .sv-go-date{grid-column:1/-1;justify-content:space-between;min-height:42px}.sv-recalls-head,.sv-recall{align-items:stretch;flex-direction:column}.sv-recall-plan,.sv-recall-booked{align-items:stretch;display:grid;grid-template-columns:1fr auto}.sv-recall-plan input{box-sizing:border-box;width:100%;min-height:42px}.sv-recall-plan .sv-mini,.sv-recall-booked .sv-mini{min-height:42px}
  .sv-toolbar .sv-back,.sv-toolbar .sv-home{text-align:left;padding-left:14px}
  .sv-toolbar .btn{min-height:44px;margin:0;width:100%}.sv-month-nav{grid-column:1/-1;justify-content:space-between;min-height:44px}
  .sv-month-nav button{height:38px;min-width:42px}.sv-month-label{min-width:0;flex:1}.sv-weekday{font-size:9px;padding:7px 1px}
  .sv-day{min-height:52px;padding:5px}.sv-day-num{width:23px;height:23px;font-size:10.5px}.sv-day-total{right:3px;top:4px;min-width:17px;height:17px;padding:0 3px;font-size:8.5px}
  .sv-calendar{border-radius:11px}.sv-agenda{border-radius:11px}.sv-agenda-head{position:sticky;top:0;z-index:2}
  .sv-agenda-list{padding:8px}.sv-card{padding:11px}.sv-card-actions .sv-mini{min-height:40px;flex:1}
  .sv-outcome{padding:8px}.sv-outcome button{min-height:38px}.sv-form{grid-template-columns:1fr}.sv-field.full{grid-column:auto}
  .sv-checks{grid-template-columns:1fr 1fr}.sv-field input,.sv-field select,.sv-field textarea{font-size:16px;min-height:48px}
  .sv-barcode-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.sv-barcode-row button{min-height:48px}.sv-acquire-actions{display:grid;grid-template-columns:1fr 1fr}.sv-acquire-actions button{min-height:46px}.sv-acquire-actions button:last-child:nth-child(3){grid-column:1/-1}
  .sv-check{min-height:46px}.sv-unmatched-row{grid-template-columns:1fr auto}.sv-unmatched-row select{grid-column:1/-1;grid-row:2}
  .sv-viewer{height:calc(100dvh - 205px);min-height:360px;border-radius:0;margin:-12px}.sv-import-report{grid-template-columns:1fr 1fr}
  .sv-save-warning{align-items:flex-start;flex-direction:column;gap:4px}.sv-save-warning strong{white-space:normal}
  .sv-import-steps{gap:3px;margin:-2px -2px 12px}.sv-import-steps li{justify-content:center;padding:7px 2px}.sv-import-steps li span{width:25px;height:25px}.sv-import-steps li b{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .sv-import-company{padding:12px;margin:0 0 10px}.sv-import-company strong{font-size:15px}.sv-import-safety,.sv-import-warning{flex-direction:column;gap:4px}.sv-import-safety strong,.sv-import-warning strong{white-space:normal}
  .sv-import-grid{grid-template-columns:1fr}.sv-import-source-main,.sv-import-other,.sv-import-history{padding:12px;border-radius:11px}.sv-folder-list{max-height:32vh}.sv-device-source-grid{grid-template-columns:1fr}.sv-device-source{min-height:72px}.sv-device-summary{grid-template-columns:1fr 1fr}.sv-device-summary>div:first-child{grid-column:1/-1}.sv-device-upload-progress{min-height:235px;padding:14px 4px}
  .sv-folder-row{min-height:48px}.sv-scope-check{font-size:11px}.sv-import-start{min-height:50px;font-size:12px}.sv-source-card{min-height:58px}.sv-source-card strong{font-size:12px}
  .sv-import-job-row{min-height:52px}.sv-job-head{flex-direction:column}.sv-job-head>div:last-child{width:100%;justify-content:stretch}.sv-job-head>div:last-child .btn{flex:1;min-height:44px}
  .sv-job-stats{grid-template-columns:1fr 1fr}.sv-review-actions{display:grid;grid-template-columns:1fr}.sv-review-actions .btn{min-height:46px}.sv-import-result{align-items:flex-start}
  .sv-review-head{align-items:stretch;flex-direction:column}.sv-review-head .btn{min-height:44px}.sv-candidate-list{max-height:none;overflow:visible}.sv-candidate{grid-template-columns:37px minmax(0,1fr);align-items:start}.sv-candidate-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr}.sv-candidate-actions .btn{min-height:44px}
  .sv-subject-results{max-height:none}.sv-subject-results button{min-height:50px}.sv-confirm-card{margin:12px 0;padding:19px 14px}.sv-confirm-card h3{font-size:17px}
  .modal.modal-mega .modal-footer{flex-wrap:wrap;padding:10px;gap:7px}.modal.modal-mega .modal-footer .btn{flex:1 1 150px;min-height:44px;margin:0}
}
@media(max-width:390px){.modal.modal-mega .modal-footer{flex-direction:column}.modal.modal-mega .modal-footer .btn{width:100%;flex:0 0 auto;min-height:46px}}
@media(max-width:359px){.hub-panel-grid{grid-template-columns:1fr !important}.sv-day{padding:3px}.sv-day-total{top:auto;right:2px;bottom:2px;min-width:15px;height:15px;padding:0 2px;font-size:8px}.sv-day-num{width:22px;height:22px}}
@media(orientation:landscape) and (max-height:450px){.sv-viewer{height:calc(100dvh - 145px);min-height:0}}

/* 🩺 Il modulo della prima visita: sta nella barra dell'agenda, accanto a «Nuova visita»,
   e si distingue perché è un'altra cosa — non una riga in calendario, ma la richiesta
   completa che poi si fa firmare al datore di lavoro. */
.sv-toolbar .sv-prima-visita{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a;font-weight:600;}
.sv-toolbar .sv-prima-visita:hover{background:#dbeafe;border-color:#93c5fd;}

/* Area clienti: elenco operativo pensato per centinaia di dipendenti. */
.sv-area{min-height:62vh;color:#172033}.sv-area-tabs{display:flex;gap:5px;padding:10px 14px 0;border-bottom:1px solid #dbe3ec;background:#f8fafc}.sv-area-tabs button{border:0;background:transparent;padding:11px 17px;font-weight:750;color:#64748b;cursor:pointer;border-bottom:3px solid transparent}.sv-area-tabs button.active{color:#0f2260;border-color:#3159d6}.sv-area-tools{display:grid;grid-template-columns:minmax(230px,1fr) 170px auto auto auto;gap:8px;padding:13px 16px;border-bottom:1px solid #e2e8f0}.sv-area-tools input,.sv-area-tools select{min-width:0;border:1px solid #cbd5e1;border-radius:8px;padding:9px 11px;background:#fff;font:inherit}.sv-area-tools b{align-self:center;text-align:right;color:#475569;font-size:12px}.sv-area-actions{display:flex;gap:8px;padding:10px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.sv-area-head,.sv-area-row{display:grid;grid-template-columns:28px minmax(180px,1fr) 105px 170px minmax(150px,1fr) 165px;gap:10px;align-items:center}.sv-area-head{padding:8px 16px;background:#eef2f7;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}.sv-area-row{padding:10px 16px;border-top:1px solid #edf2f7;font-size:12px}.sv-area-row:hover{background:#f8fafc}.sv-area-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sv-area-row-actions{display:flex;justify-content:flex-end;gap:5px}.sv-area-row-actions button,.sv-area-detail button{border:1px solid #cbd5e1;background:#fff;border-radius:6px;padding:6px 8px;color:#0f2260;font-weight:700;cursor:pointer}.sv-area-detail{display:grid;grid-template-columns:1fr 1.35fr;gap:14px;padding:15px 16px 18px;background:#f8fafc;border-top:1px solid #dbe3ec}.sv-area-detail[hidden]{display:none}.sv-area-detail h4{margin:0 0 7px;color:#0f2260}.sv-area-detail table{width:100%;border-collapse:collapse;background:#fff;font-size:11px}.sv-area-detail th,.sv-area-detail td{border:1px solid #e2e8f0;padding:7px;text-align:left;vertical-align:top}.sv-area-pages{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;border-top:1px solid #dbe3ec;color:#64748b;font-size:12px}.sv-area-pages div{display:flex;align-items:center;gap:9px}.sv-area-pages button{border:1px solid #cbd5e1;background:#fff;border-radius:6px;padding:7px 10px;cursor:pointer}.sv-area-pages button:disabled{opacity:.35}.sv-area-head.access{grid-template-columns:180px 220px 1fr}.sv-area-access-row{display:grid;grid-template-columns:180px 220px 1fr;gap:10px;padding:10px 16px;border-top:1px solid #edf2f7;font-size:12px}
@media(max-width:760px){.sv-area-tools{grid-template-columns:1fr 1fr}.sv-area-tools input{grid-column:1/-1}.sv-area-actions{display:grid;grid-template-columns:1fr 1fr}.sv-area-head{display:none}.sv-area-row{grid-template-columns:26px 1fr auto}.sv-area-row>span:nth-of-type(1),.sv-area-row>span:nth-of-type(2),.sv-area-row>span:nth-of-type(3){grid-column:2}.sv-area-row-actions{grid-column:3;grid-row:1/5;flex-direction:column}.sv-area-detail{grid-template-columns:1fr}.sv-area-head.access{display:none}.sv-area-access-row{grid-template-columns:1fr;padding:11px 14px;gap:3px}.sv-area-pages{padding:10px}.sv-area-pages b{display:none}}

/* Registro Area clienti: filtro, raggruppamento, stampa e intestazioni ordinabili. */
.sv-access-tools{display:grid;grid-template-columns:minmax(240px,1fr) 220px auto auto;gap:8px;align-items:center;padding:13px 16px;border-bottom:1px solid #e2e8f0}.sv-access-tools input,.sv-access-tools select{min-width:0;border:1px solid #cbd5e1;border-radius:8px;padding:9px 11px;background:#fff;font:inherit}.sv-access-tools b{text-align:right;color:#475569;font-size:12px}.sv-area-head.access,.sv-area-access-row{grid-template-columns:160px 190px minmax(150px,1fr) minmax(160px,1fr) minmax(170px,1.2fr)}.sv-area-head.access button{border:0;background:transparent;padding:0;text-align:left;color:inherit;font:inherit;font-weight:800;text-transform:uppercase;letter-spacing:.45px;cursor:pointer}.sv-area-head.access button:hover{color:#0f2260}.sv-access-group{padding:8px 16px;background:#e0e7ff;color:#273a8a;font-size:11px;font-weight:850;border-top:1px solid #c7d2fe}
@media(max-width:760px){.sv-access-tools{grid-template-columns:1fr 1fr}.sv-access-tools input{grid-column:1/-1}.sv-area-head.access{display:none}.sv-area-access-row{grid-template-columns:1fr}}
