@import url('/portal.css');
@import url('/login.css');
@font-face{font-family:Nom;src:url('/fonts/DejaVuSans.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Nom;src:url('/fonts/DejaVuSans-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--bg:#f4f7f6;--surface:#fff;--ink:#192e31;--muted:#586d70;--line:#dce6e3;--green:#087f68;--green-dark:#046650;--green-bg:#e5f3ed;--tint:#e5f3ed;--nav:#102e30;--red:#b6323e;--red-bg:#ffedf0;--amber:#8c5700;--amber-bg:#fff3d9;--blue:#245da3;--blue-bg:#eaf2ff;--violet:#6247b3;--violet-bg:#efebfa;--shadow:0 8px 32px #18332b0a;--radius:16px;--ease:180ms ease;--font:Nom,system-ui,sans-serif;color-scheme:light}
[data-theme=dark]{--bg:#122326;--surface:#1c3033;--ink:#f1f8f5;--muted:#b0c6c2;--line:#36504e;--green:#69d7b2;--green-dark:#87e8c7;--green-bg:#254b42;--tint:#254b42;--nav:#091b1e;--red:#ffadb5;--red-bg:#512b32;--amber:#ffd48a;--amber-bg:#463d27;--blue:#aed0ff;--blue-bg:#293e5b;--violet:#c9b8ff;--violet-bg:#3a3160;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;font-family:var(--font);font-size:14px;line-height:1.6;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #38b993;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.3;letter-spacing:-1.1px;margin-bottom:8px}h2{font-size:20px;line-height:1.4;letter-spacing:-.5px}h3{font-size:15px}small{font-size:12px}.muted{color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:1.8px;font-size:11px;font-weight:700;color:var(--green)}.icon{width:20px;height:20px;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.skip{position:fixed;left:12px;top:-100px;z-index:9999;background:var(--surface);padding:12px}.skip:focus{top:12px}.boot{min-height:100vh;display:grid;place-content:center;text-align:center}.loader{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:spin .7s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(360deg)}}
.shell{display:grid;grid-template-columns:236px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#e7f5ee;padding:30px 18px 0;position:fixed;inset:0 auto 0 0;width:236px;display:flex;flex-direction:column;z-index:30;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.sidebar::-webkit-scrollbar{display:none}.brand{display:flex;gap:11px;align-items:center;margin:0 12px 34px}.brand-mark{background:#2baf8a;color:#fff;width:38px;height:38px;display:grid;place-content:center;border-radius:12px;flex-shrink:0}.brand strong{font-size:16px;letter-spacing:-.5px}.brand small{display:block;color:#b3cbc7;font-size:10px;letter-spacing:1px;text-transform:uppercase}.nav-label{padding:0 14px;color:#a2bcb6;font-size:10px;letter-spacing:1.6px;margin:14px 0}.nav-item{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;color:#bad0cb;border-radius:10px;text-align:left;padding:13px 14px;min-height:48px;margin:4px 0;font-weight:700;font-size:12px;transition:var(--ease)}.nav-item:hover{background:#ffffff0b;color:white}.nav-item.active{background:#244a45;color:#9dedce;box-shadow:inset 3px 0 #65d7ad}.nav-count{margin-left:auto;font-size:10px;background:#ffffff12;padding:1px 7px;border-radius:5px}.sidebar-bottom{margin-top:auto;position:sticky;bottom:0;z-index:1;padding-block:6px 26px;background:var(--nav);border-top:1px solid #ffffff14}.test-note{border:1px solid #466661;border-radius:10px;padding:12px;font-size:11px;color:#bad0cb;margin:20px 8px}.test-note strong{color:#9dedce;display:block}.workspace{grid-column:2;min-width:0}.topbar{height:86px;background:var(--surface);border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;gap:18px;justify-content:space-between}.topbar-left,.topbar-right{display:flex;align-items:center;gap:14px}.breadcrumb{font-size:12px;color:var(--muted)}.company{border:1px solid var(--line);background:var(--bg);padding:9px 12px;border-radius:9px;color:var(--ink);max-width:225px;font-size:12px;min-height:44px}.avatar{width:36px;height:36px;background:var(--tint);color:var(--green);border-radius:50%;display:grid;place-content:center;font-size:12px;font-weight:700}.user-info{font-size:11px;line-height:1.6}.user-info strong{display:block;font-size:12px}.topbar .divider{height:30px;border-left:1px solid var(--line)}.content{padding:30px 34px 48px;max-width:1660px;margin:auto;animation:appear .2s ease}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}.page-head p{color:var(--muted);font-size:13px;margin:0}.page-head .eyebrow{margin-bottom:8px}.head-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:9px;padding:10px 15px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:700;min-height:44px;transition:background var(--ease),box-shadow var(--ease),transform var(--ease);white-space:normal;text-align:center}.btn:hover{background:var(--bg);box-shadow:0 2px 5px #0000000b;text-decoration:none}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--green);border-color:var(--green);color:var(--surface)}[data-theme=dark] .btn.primary{color:#0a2820}.btn.primary:hover{background:var(--green-dark)}.btn.danger{color:var(--red);background:var(--red-bg);border-color:transparent}.btn.small{padding:6px 10px;font-size:11px;min-height:40px}.btn.icon-btn{width:44px;padding:0;flex-shrink:0}.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}.text-button{background:none;border:0;color:var(--green);font-size:12px;font-weight:700;min-height:44px;padding:5px 8px;display:inline-flex;align-items:center;gap:6px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);position:relative}.stat-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px;margin-bottom:15px}.stat-icon{color:var(--green);background:var(--tint);padding:8px;border-radius:10px;display:flex}.stat-value{font-size:32px;font-weight:700;letter-spacing:-1px;line-height:1.2;font-variant-numeric:tabular-nums}.stat-foot{font-size:10px;color:var(--muted);margin-top:8px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:22px;overflow:hidden}.panel-head{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.panel-head h2{font-size:15px;margin:0}.panel-body{padding:24px}.grid-two{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:22px}.banner{display:flex;gap:13px;padding:17px 20px;border:1px solid #ecd5a9;background:var(--amber-bg);color:var(--amber);border-radius:12px;font-size:12px;margin-bottom:20px}.banner.info{background:var(--tint);color:var(--green);border-color:var(--line)}.banner p{margin:0}.banner strong{display:block}.badge{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:700;padding:5px 9px;border-radius:6px;white-space:nowrap;background:var(--bg);color:var(--muted)}.badge::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.badge.green{color:var(--green);background:var(--tint)}.badge.amber{color:var(--amber);background:var(--amber-bg)}.badge.red{color:var(--red);background:var(--red-bg)}.badge.blue{color:var(--blue);background:var(--blue-bg)}.badges{display:flex;gap:5px;flex-wrap:wrap}.tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);padding:0 24px;overflow:auto}.tab{background:none;border:0;border-bottom:2px solid transparent;padding:15px 0;color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap;min-height:48px}.tab.active{border-color:var(--green);color:var(--green)}.tab span{font-size:10px;background:var(--bg);padding:2px 6px;border-radius:4px;margin-left:6px}.filters{display:flex;gap:12px;padding:18px 24px;flex-wrap:wrap;align-items:end}.search{position:relative;flex:1;min-width:180px}.search>.icon{position:absolute;left:12px;bottom:13px;color:var(--muted)}.search input{padding-left:40px}.filters label{font-size:10px;color:var(--muted);display:block}.filters select,.filters input{min-height:44px;font-size:12px}.filter-control{width:145px}input,select,textarea{border:1px solid var(--line);border-radius:8px;padding:11px 12px;width:100%;background:var(--surface);color:var(--ink);min-height:44px}textarea{resize:vertical;min-height:94px}input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--green)}input[readonly]{background:var(--bg);color:var(--muted)}label.field{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;margin-bottom:16px}label.field small{font-weight:400;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.span-two{grid-column:span 2}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;text-align:left}.data-table th{font-size:10px;text-transform:uppercase;letter-spacing:.7px;font-weight:700;color:var(--muted);background:var(--bg);padding:12px 17px;border-block:1px solid var(--line);white-space:nowrap}.data-table td{padding:16px 17px;border-bottom:1px solid var(--line);font-size:12px;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:color-mix(in srgb,var(--tint) 35%,var(--surface))}.data-table strong{font-size:12px;display:block}.data-table .sub{font-size:10px;color:var(--muted);display:block;margin-top:4px}.data-table .number{text-align:right;font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.data-table th.number{font-size:10px}.data-table th.check,.data-table td.check{width:46px;padding-right:0}.check label{display:grid;place-items:center;min-width:44px;min-height:44px}.pagination{padding:12px 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--muted);font-size:11px}.selection-bar{background:var(--nav);color:white;position:sticky;bottom:18px;margin:0 auto;max-width:680px;padding:12px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-radius:12px;box-shadow:0 10px 25px #0003;z-index:20}.selection-bar .btn.primary{background:#9dedce;color:#102e30}.empty{padding:50px 24px;text-align:center;color:var(--muted)}.empty .icon{width:32px;height:32px;margin-bottom:10px}.empty strong{display:block;color:var(--ink);font-size:15px;margin-bottom:8px}.empty p{font-size:12px;max-width:430px;margin:0 auto 15px}.list-row{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border:0}.list-row .grow{flex:1;min-width:0}.list-row p{margin:0;font-size:12px}.list-row small{color:var(--muted)}.step-number{width:34px;height:34px;display:grid;place-content:center;border-radius:9px;background:var(--tint);color:var(--green);font-weight:700;flex-shrink:0}.progress-track{height:6px;background:var(--line);border-radius:5px;overflow:hidden}.progress-track span{height:100%;display:block;background:var(--green);transition:width .2s}.mono{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums}.status-block{display:flex;justify-content:space-between;font-size:12px;margin:14px 0 8px}.timeline{padding:0;list-style:none}.timeline li{padding:0 0 20px 24px;position:relative;border-left:1px solid var(--line);margin-left:6px;font-size:12px}.timeline li:before{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:var(--green);left:-4px;top:7px}.timeline small{display:block;color:var(--muted);margin:4px 0}.timeline p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.detail-item small{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.detail-item span{font-size:13px;white-space:pre-wrap}.document{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:12px;margin:8px 0}.document .grow{flex:1}.document small{display:block;color:var(--muted)}.document.old{opacity:.65}.trip-card{padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;flex-direction:column;gap:16px}.trip-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.trip-card h2{font-size:18px;margin:5px 0}.trip-card p{margin:0;color:var(--muted);font-size:12px}.stop-card{border:1px solid var(--line);border-radius:12px;padding:18px;margin:12px 0;background:var(--surface)}.stop-top{display:flex;gap:13px;align-items:flex-start}.stop-top .grow{flex:1}.stop-top h3{margin:0 0 4px}.stop-top p{margin:0;font-size:12px;color:var(--muted)}.stop-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.stop-card .notes{font-size:12px;background:var(--bg);border-radius:8px;padding:10px;margin:14px 0 0;white-space:pre-wrap}.depot{padding:16px 18px;background:var(--tint);border-radius:12px;display:flex;gap:12px;align-items:center;color:var(--green);font-size:12px;font-weight:700}.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.help-card{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:14px}.help-card p{font-size:12px;color:var(--muted)}details{border:1px solid var(--line);border-radius:10px;margin:10px 0;padding:14px 18px}summary{cursor:pointer;font-size:13px;font-weight:700;min-height:30px}details p,details li{font-size:12px;color:var(--muted)}.two-col-actions{display:flex;gap:8px;flex-wrap:wrap}
.dashboard-welcome{position:relative;align-items:center;padding:4px 0 2px}.dashboard-welcome-copy{position:relative;padding-left:18px}.dashboard-welcome-copy:before{content:'';position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:4px;background:linear-gradient(180deg,var(--green),color-mix(in srgb,var(--green) 25%,transparent))}.dashboard-welcome h1{font-size:34px;letter-spacing:-1.25px;margin-bottom:7px}.dashboard-welcome h1 span{font-weight:500}.dashboard-welcome p{max-width:650px}.dashboard-motto{margin-top:8px;color:var(--green);font-size:11px;font-weight:700;letter-spacing:.2px}
dialog{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:0;width:min(580px,calc(100% - 24px));max-height:90dvh;box-shadow:0 25px 100px #0004}dialog::backdrop{background:#102e307d;backdrop-filter:blur(4px)}dialog[open]{animation:appear .18s ease}.modal-header{padding:22px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.modal-header h2{margin:0;font-size:20px}.modal-content{padding:24px}.modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.form-error{padding:12px;border-radius:8px;background:var(--red-bg);color:var(--red);font-size:12px;margin-bottom:15px}.form-error:empty{display:none}#notifications{position:fixed;right:24px;bottom:24px;z-index:200;max-width:380px}.toast{background:var(--nav);color:#fff;padding:16px 20px;border-radius:12px;margin-top:10px;box-shadow:0 8px 25px #0002;font-size:12px;animation:appear .2s ease}.toast.error{background:#932f3b}.login{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.login-story{background:var(--nav);color:#f3fff9;padding:64px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-story:after{content:'';position:absolute;width:420px;height:420px;border:1px solid #5dbd9a35;border-radius:50%;right:-200px;bottom:-100px;box-shadow:0 0 0 70px #5dbd9a10,0 0 0 140px #5dbd9a08;pointer-events:none}.login-story .brand{margin:0}.login-story h1{font-size:48px;line-height:1.25;max-width:470px;letter-spacing:-2px}.login-story h1 span{color:#88dbba}.login-story p{color:#b3cbc7;font-size:15px;max-width:430px}.login-features{display:flex;gap:20px;flex-wrap:wrap;color:#9dedce;font-size:11px}.login-form{padding:40px;display:flex;align-items:center;justify-content:center}.login-inner{width:100%;max-width:390px}.login-inner h1{font-size:28px}.test-accounts{margin-top:26px;border-top:1px solid var(--line);padding-top:20px}.test-accounts .roles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tour-mask{position:fixed;inset:0;background:#0c2228c9;backdrop-filter:blur(3px);z-index:90}.tour-card{position:fixed;z-index:100;background:var(--surface);padding:28px;border:1px solid var(--line);border-radius:18px;width:min(430px,calc(100% - 32px));left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 30px 120px #0004;animation:tourIn .25s ease}.tour-card h2{font-size:23px;margin:14px 0}.tour-card p{font-size:13px;color:var(--muted)}.tour-spotlight{position:relative;z-index:95!important;outline:4px solid #60cba6;outline-offset:5px;border-radius:12px;pointer-events:none}.tour-card.spot{left:auto;right:30px;bottom:30px;top:auto;transform:none}.tour-dots{display:flex;gap:6px;margin:22px 0}.tour-dots span{height:5px;flex:1;border-radius:5px;background:var(--line)}.tour-dots span.on{background:var(--green)}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes tourIn{from{opacity:0;margin-top:12px}to{opacity:1;margin-top:0}}.mobile-menu{display:none}.map-placeholder{background:var(--bg);padding:24px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:12px}.crew{max-width:760px;margin:auto;padding:24px 20px 70px}.crew-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.crew h1{font-size:28px}.crew .panel-body{padding:20px}.crew-status{position:sticky;top:0;z-index:20;background:var(--bg);padding:10px 0}.crew .btn{min-height:48px;font-size:13px}.live{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--green)}.live:before{content:'';width:6px;height:6px;background:currentColor;border-radius:50%}.crew .offline{color:var(--red)}.spacer{flex:1}.page-back{margin-bottom:15px}.danger-zone{padding-top:20px;margin-top:20px;border-top:1px solid var(--line)}
@media(min-width:1600px){.content{padding-top:40px}.data-table td{padding-block:20px}.stats{gap:22px}}
@media(max-width:1150px){.shell{grid-template-columns:200px minmax(0,1fr)}.sidebar{width:200px;padding-inline:12px}.brand{margin-inline:6px}.brand strong{font-size:13px}.content{padding:24px}.topbar{padding-inline:24px}.breadcrumb{display:none}.grid-two{grid-template-columns:1fr}.stat{padding:15px}.stat-value{font-size:28px}.user-info{display:none}.data-table td,.data-table th{padding-inline:12px}.filter-control{width:130px}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){body{font-size:16px}.shell{display:block}.sidebar{transform:translateX(-100%);transition:transform .2s;width:236px}.sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vw #0008}.workspace{width:100%}.mobile-menu{display:inline-flex}.topbar{height:74px;padding:0 16px;gap:8px}.topbar-right{gap:7px}.topbar .divider,.topbar .theme-btn{display:none}.company{max-width:190px;font-size:11px}.content{padding:22px 16px 35px}h1{font-size:25px}.page-head{flex-direction:column;gap:17px;margin-bottom:20px}.head-actions{width:100%}.dashboard-welcome{align-items:flex-start;padding-top:2px}.dashboard-welcome-copy{padding-left:14px}.dashboard-welcome h1{font-size:28px;line-height:1.22;letter-spacing:-.9px}.dashboard-welcome p{font-size:12px;line-height:1.55}.dashboard-motto{margin-top:7px;font-size:10px}.dashboard-welcome .head-actions .btn{width:auto}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat{padding:14px}.stat-top{font-size:10px;gap:7px}.stat-icon{padding:6px}.stat-icon .icon{width:17px;height:17px}.stat-value{font-size:26px}.stat-foot{font-size:9px}.panel-head,.panel-body{padding:18px}.filters{padding:15px;gap:10px}.search{flex-basis:100%}.filter-control{flex:1;min-width:120px}.filters select,.filters input,input,select,textarea{font-size:16px}.tabs{gap:18px;padding-inline:16px}.data-table.responsive,.data-table.responsive tbody{display:block;width:100%}.data-table.responsive thead{display:none}.data-table.responsive tr{display:grid;grid-template-columns:1fr 1fr;padding:14px 16px;gap:8px;border-bottom:1px solid var(--line);position:relative}.data-table.responsive td{display:block;padding:4px 0;border:0;font-size:12px}.data-table.responsive td:before{content:attr(data-label);display:block;font-size:9px;color:var(--muted);margin-bottom:4px}.data-table.responsive td.check{position:absolute;right:12px;top:12px}.data-table.responsive td.main-cell{grid-column:span 2;padding-right:45px}.data-table.responsive td.actions-cell{grid-column:span 2;display:flex;justify-content:flex-end}.data-table.responsive td.number{text-align:left;font-size:16px}.pagination{padding:12px 15px;flex-wrap:wrap}.selection-bar{bottom:8px;font-size:11px;padding:12px}.selection-bar .btn{font-size:11px}.form-grid,.detail-grid{grid-template-columns:1fr}.span-two{grid-column:auto}.login{display:block}.login-story{padding:30px 25px}.login-story h1{font-size:30px;margin:25px 0 15px}.login-story p,.login-features{display:none}.login-form{padding:32px 24px}.tour-card.spot{left:16px;right:16px;bottom:16px;width:auto}.tour-card{padding:22px}.tour-spotlight{z-index:91!important}.badge{font-size:10px}.panel .btn.small{min-height:44px}.topbar .avatar{width:30px;height:30px}.modal-header,.modal-content{padding:20px}.modal-footer{flex-wrap:wrap}#notifications{left:16px;right:16px;bottom:18px;max-width:none}.crew{padding:20px 16px}.crew .stop-actions .btn{flex:1}.crew .stop-actions .btn:first-child{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.training-card{width:min(900px,calc(100% - 32px));max-height:92dvh;overflow:auto}.training-stage{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:20px}.training-label{display:flex;align-items:center;gap:8px;color:var(--green);font-size:10px;font-weight:700;letter-spacing:.5px;margin-bottom:18px}.training-document{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:10px}.training-document>strong{display:block}.training-metrics{display:flex;gap:24px;margin:18px 0}.training-metrics span{font-size:12px}.training-metrics strong{display:block;font-size:24px}.training-feedback{padding:12px;background:var(--tint);color:var(--green);font-size:12px;border-radius:8px;margin-top:16px;min-height:45px}.training-checks{padding-left:22px;font-size:13px}.training-checks li{padding:6px}.service-choice.selected{outline:3px solid var(--green)}.training-stage .service-choice{color:var(--ink);text-align:left}.training-stage .field{font-size:12px}.training-stage .form-grid{gap:0 16px}.training-card .tour-dots{margin:16px 0}@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.training-card{padding:18px}.training-stage{padding:12px}.training-stage .form-grid{grid-template-columns:1fr 1fr}.training-stage .field{font-size:10px}.training-card h2{font-size:20px}}
[hidden]{display:none!important}
.account-button{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);min-height:58px;max-width:285px;text-align:left;transition:background .18s,box-shadow .18s}
.account-button:hover{background:var(--tint);box-shadow:0 3px 12px #12383010}.account-avatar{display:inline-grid;place-items:center;position:relative;flex-shrink:0;width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#123c36,#257764);color:white;font-size:13px;font-weight:700;box-shadow:inset 0 0 0 1px #ffffff20}.account-presence{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;background:#40c896;border:2px solid var(--surface)}.account-copy{min-width:0}.account-copy strong{display:block;max-width:176px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.account-copy small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.account-button>.icon{width:14px}.account-profile{text-align:center;padding:18px 0}.account-avatar.large{width:64px;height:64px;font-size:20px;margin-bottom:12px}
.account-sheet{display:grid;gap:18px}.account-sheet-identity{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,var(--tint),var(--surface))}.account-sheet-identity .account-avatar.large{margin:0}.account-sheet-who{min-width:0}.account-sheet-who strong{display:block;font-size:16px;letter-spacing:-.3px}.account-sheet-who small{display:block;margin:3px 0 8px;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.account-sheet-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(152px,1fr));gap:12px;margin:0}.account-sheet-facts>div{min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}.account-sheet-facts dt{font-size:9px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}.account-sheet-facts dd{margin:4px 0 0;font-size:12px;font-weight:700;overflow-wrap:anywhere}.account-sheet-actions{display:grid;gap:8px;padding-top:16px;border-top:1px solid var(--line)}.account-sheet-actions .btn{justify-content:flex-start;min-height:48px}
.product-photo{object-fit:contain;display:block;width:76px;height:76px;flex-shrink:0;background:white;border:1px solid #e3ece8;border-radius:12px;padding:7px}.catalog-product{display:flex;gap:14px;align-items:center;min-width:190px}.catalog-product strong{line-height:1.5}.field-hint{font-size:11px;color:var(--muted);margin:0 0 8px}.field input:disabled,.field select:disabled{opacity:1;color:var(--muted);background:var(--bg);cursor:not-allowed}.service-choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:24px 0}.service-choice{position:relative;display:flex;flex-direction:column;gap:14px;border:2px solid var(--line);padding:24px 20px;border-radius:16px;cursor:pointer;transition:border-color .2s,background .2s}.service-choice:has(:checked){background:var(--tint);border-color:var(--green)}.service-choice input{position:absolute;right:16px;top:16px;width:20px;height:20px;accent-color:var(--green)}.service-choice>span:last-child{font-size:13px;line-height:1.6;color:var(--muted)}.service-choice strong{font-size:18px}.service-choice:focus-within{outline:3px solid var(--green);outline-offset:3px}
.catalog-modal{width:min(1240px,96vw)!important;max-width:1240px!important}.catalog-modal .modal-content{padding-top:16px}.catalog-intro{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:12px}.catalog-intro p{max-width:700px;color:var(--muted);font-size:13px}.catalog-scroll{max-height:56vh;overflow:auto;border:1px solid var(--line);border-radius:12px}.catalog-table th{position:sticky;top:0;z-index:1;background:var(--bg)}.catalog-table td{padding:16px 12px}.catalog-table .main-cell{max-width:350px}.catalog-quantity{display:flex;gap:8px;align-items:center}.catalog-quantity input{width:66px;min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);padding:8px;font-size:16px}.catalog-table .btn{white-space:nowrap}.catalog-table .sub{font-size:11px}.catalog-modal .modal-footer{margin-top:18px}
.op-stock-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:0 24px 24px}.stock-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;display:grid;grid-template-columns:130px minmax(0,1fr);background:var(--surface)}.stock-photo{display:grid;place-items:center;background:#fff;padding:16px}.stock-photo .product-photo{width:106px;height:140px;border:0;padding:0}.stock-content{padding:22px 18px;border-left:1px solid var(--line)}.stock-content h2{font-size:15px;line-height:1.55;margin:14px 0}.stock-codes{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 18px}.stock-codes dt{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.stock-codes dd{font-size:11px;font-family:monospace;margin:6px 0}.stock-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stock-numbers small{display:block;font-size:10px;color:var(--muted)}.stock-numbers strong{display:block;font-size:18px;margin-top:4px;font-variant-numeric:tabular-nums}.document-shortcuts{display:flex;gap:7px}.doc-shortcut{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;min-width:47px;min-height:52px;padding:6px;border:1px solid var(--line);border-radius:9px;color:var(--green);background:var(--tint)}.doc-shortcut small{font-size:8px;letter-spacing:.1px}.doc-shortcut.unavailable{background:var(--bg);color:var(--muted);opacity:.5}.doc-shortcut.signed{border-color:var(--green)}.document-actions{width:170px}.actions-cell>.btn+.btn{margin-left:6px}.document{flex-wrap:wrap}.document .grow{min-width:110px}.content:focus,.content:focus-visible,.portal-main:focus,.portal-main:focus-visible,#main:focus,#main:focus-visible{outline:none}.list-row .grow>small{display:block;margin-top:6px}
@media(max-width:1100px){.op-stock-grid{grid-template-columns:1fr}.account-copy strong{max-width:130px}.stock-card{grid-template-columns:130px minmax(0,1fr)}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.account-button{padding:4px;border:0;background:none;min-height:44px}.account-copy,.account-button>.icon{display:none}.account-avatar{width:36px;height:36px;border-radius:11px}.service-choices{grid-template-columns:1fr}.service-choice{padding:18px}.catalog-modal{width:96vw!important}.catalog-modal .modal-content{padding:16px}.catalog-intro{display:block}.catalog-scroll{max-height:52vh}.catalog-product{min-width:0}.catalog-table .main-cell{max-width:none}.catalog-table .product-photo{width:64px;height:64px}.catalog-table td.actions-cell{justify-content:space-between}.catalog-quantity{width:100%;justify-content:flex-end}.op-stock-grid{padding:0 16px 16px;gap:14px}.stock-card{grid-template-columns:90px minmax(0,1fr)}.stock-photo{padding:8px}.stock-photo .product-photo{width:75px;height:120px}.stock-content{min-width:0;padding:16px 12px}.stock-codes>*{min-width:0}.stock-codes dd{overflow-wrap:anywhere}.stock-numbers{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.stock-numbers>*{min-width:0}.stock-numbers small{font-size:9px;overflow-wrap:anywhere}.document-actions{width:auto;grid-column:span 2}.document-shortcuts{gap:10px}.doc-shortcut{min-width:58px;min-height:54px}.doc-shortcut small{font-size:10px}.catalog-intro .live{display:block;margin-bottom:14px}}

/* Administrative workflow: persistent bulk action and inventory-grade serial picker. */
.selection-bar{position:fixed;left:calc(236px + (100vw - 236px)/2);transform:translateX(-50%);bottom:22px;width:min(720px,calc(100vw - 284px));max-width:none;margin:0;border:1px solid #ffffff24;border-radius:14px;box-shadow:0 16px 45px #061c1d55;z-index:70;animation:appear .2s ease}
.serial-catalog-modal{width:min(820px,calc(100% - 24px));max-width:820px}.serial-family{display:grid;grid-template-columns:132px 1fr;gap:22px;align-items:center;padding:18px;border-radius:16px;background:linear-gradient(135deg,var(--tint),var(--surface));border:1px solid var(--line);margin-bottom:20px}.serial-family-photo{height:120px;display:grid;place-items:center;background:#fff;border-radius:12px}.serial-family-photo .product-photo{width:112px;height:112px;border:0}.serial-family h3{font-size:20px;line-height:1.35;margin:7px 0}.serial-family p{margin:0;color:var(--muted);font-size:12px}.serial-search{margin-bottom:10px!important}.serial-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-height:300px;overflow:auto;padding:2px;margin-bottom:20px}.serial-card{position:relative;display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s}.serial-card:hover{border-color:var(--green);background:var(--tint)}.serial-card:has(input:checked){border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 20%,transparent)}.serial-card input{position:absolute;opacity:0;pointer-events:none}.serial-radio{width:19px;height:19px;border:2px solid var(--line);border-radius:50%;flex:0 0 auto;background:var(--surface)}.serial-card:has(input:checked) .serial-radio{border:6px solid var(--green)}.serial-data{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.serial-data strong{font-size:13px}.serial-data small{font-size:11px;color:var(--muted)}.serial-empty,.serial-blocked{display:flex;gap:14px;align-items:flex-start;padding:20px;border:1px solid #efc7cd;background:var(--red-bg);color:var(--red);border-radius:13px}.serial-empty{grid-column:1/-1;flex-direction:column;align-items:center;text-align:center}.serial-empty p,.serial-blocked p{margin:5px 0 0;color:var(--ink);font-size:12px;line-height:1.6}.serial-notice{display:flex;gap:12px;padding:14px;background:var(--tint);border-radius:12px;color:var(--green)}.serial-notice p{margin:0;font-size:11px;line-height:1.55}.serial-notice strong{display:block}.date-control input{font-variant-numeric:tabular-nums;letter-spacing:.2px}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.selection-bar{left:12px;right:12px;bottom:10px;width:auto;transform:none;flex-wrap:wrap}.selection-bar>span{width:100%}.selection-bar .two-col-actions{width:100%}.selection-bar .btn{flex:1}.serial-family{grid-template-columns:86px 1fr;padding:13px;gap:14px}.serial-family-photo{height:86px}.serial-family-photo .product-photo{width:78px;height:78px}.serial-family h3{font-size:16px}.serial-list{grid-template-columns:1fr;max-height:38vh}}
@keyframes selectionIn{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
.selection-bar{animation:selectionIn .24s cubic-bezier(.2,.75,.25,1) both}.brand-mark{background:#fff;padding:5px;overflow:hidden}.brand-mark img{width:100%;height:100%;object-fit:contain}.iso-certifications{display:grid;grid-template-columns:1fr 1.22fr;gap:7px;margin:-20px 9px 25px}.iso-seal{min-width:0;padding:8px 7px;border:1px solid #72a59666;border-radius:10px;background:linear-gradient(145deg,#ffffff0b,#69d8b70d);box-shadow:inset 0 1px #ffffff0b}.iso-seal span,.iso-seal small{display:block;color:#a9c9c0;font-size:7px;letter-spacing:.65px;text-transform:uppercase}.iso-seal strong{display:block;color:#dff9ee;font-size:12px;letter-spacing:.4px;margin:2px 0}.iso-seal.security{border-color:#8bcaaf99;background:linear-gradient(145deg,#9dedce14,#ffffff08)}.iso-seal.security strong{color:#9dedce}.iso-seal small{font-size:6px;letter-spacing:.2px;line-height:1.3}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.selection-bar{animation:selectionInMobile .24s cubic-bezier(.2,.75,.25,1) both}}@keyframes selectionInMobile{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.selection-bar,.serial-card{animation:none;transition:none}}
.brand-fallback{width:100%;height:100%;display:grid;place-items:center;border-radius:8px;background:linear-gradient(145deg,#087f68,#0a5f51);color:#fff;font-size:11px;font-weight:700;letter-spacing:.7px}
.family-hero{display:grid;grid-template-columns:210px minmax(0,1fr) auto;gap:28px;align-items:center;margin-bottom:24px;padding:24px;background:linear-gradient(135deg,color-mix(in srgb,var(--tint) 75%,var(--surface)),var(--surface) 72%);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;position:relative}.family-hero:after{content:'';position:absolute;right:-75px;bottom:-105px;width:250px;height:250px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--green) 11%,transparent),transparent 68%);pointer-events:none}.family-hero-photo{height:170px;display:grid;place-items:center;border-radius:16px;background:#fff;border:1px solid #dfeae6;box-shadow:0 10px 28px #153b3212}.family-hero-photo .product-photo{width:180px;height:150px;border:0;padding:8px}.family-hero-copy{min-width:0;position:relative;z-index:1}.family-hero-copy h1{font-size:30px;line-height:1.18;margin:7px 0 16px;max-width:850px}.family-hero-copy>p{color:var(--muted);font-size:12px;margin:15px 0 0}.family-identifiers{display:flex;gap:10px;flex-wrap:wrap;margin:0}.family-identifiers>div{min-width:170px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--surface) 82%,transparent)}.family-identifiers dt{font-size:9px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700}.family-identifiers dd{margin:4px 0 0;font:700 12px ui-monospace,monospace;color:var(--ink)}.family-hero-action{align-self:start;position:relative;z-index:1}
@media(max-width:950px){.family-hero{grid-template-columns:150px minmax(0,1fr)}.family-hero-photo{height:140px}.family-hero-photo .product-photo{width:135px;height:125px}.family-hero-action{grid-column:2}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.warehouse-families{border:0;background:transparent;box-shadow:none;overflow:visible}.warehouse-families>.panel-head{border:1px solid var(--line);border-radius:16px;background:var(--surface);margin-bottom:12px;align-items:flex-start}.warehouse-families>.panel-head .two-col-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.warehouse-families>.panel-head .btn{width:100%}.warehouse-families>.table-wrap{overflow:visible}.warehouse-family-table tbody{display:grid!important;gap:12px}.warehouse-family-table tr{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;padding:14px!important;border:1px solid var(--line)!important;border-radius:17px;background:var(--surface);box-shadow:0 8px 28px #18332b0a}.warehouse-family-table td{min-width:0}.warehouse-family-table td.main-cell{padding:0 0 7px!important}.warehouse-family-table .catalog-product{display:grid;grid-template-columns:82px minmax(0,1fr);gap:13px;align-items:center}.warehouse-family-table .catalog-product .product-photo{width:82px;height:82px;border-radius:13px}.warehouse-family-table .catalog-product strong{font-size:13px;line-height:1.4}.warehouse-family-table .catalog-product .sub{font-size:9px;line-height:1.45;overflow-wrap:anywhere}.warehouse-family-table td.number{padding:10px 11px!important;border:1px solid var(--line)!important;border-radius:11px;background:var(--bg);font-size:19px!important;font-weight:700}.warehouse-family-table td.number:before{margin-bottom:3px!important;font-weight:700;letter-spacing:.45px}.warehouse-family-table td:nth-child(6){color:var(--green);background:var(--tint);border-color:color-mix(in srgb,var(--green) 22%,var(--line))!important}.warehouse-family-table td.actions-cell{padding:4px 0 0!important}.warehouse-family-table td.actions-cell .btn{width:100%;min-height:47px;background:var(--green);border-color:var(--green);color:#fff}.warehouse-family-table td.actions-cell .btn .icon{order:2}.family-hero{grid-template-columns:98px minmax(0,1fr);gap:16px;padding:16px}.family-hero-photo{height:108px}.family-hero-photo .product-photo{width:90px;height:90px}.family-hero-copy h1{font-size:21px}.family-identifiers{display:grid;grid-template-columns:1fr 1fr}.family-identifiers>div{min-width:0;padding:8px 9px}.family-hero-copy>p{font-size:11px}.family-hero-action{grid-column:1/-1;width:100%}.family-hero-action .btn{width:100%}}
@media(max-width:420px){.warehouse-families>.panel-head{display:grid}.family-hero{grid-template-columns:82px minmax(0,1fr);gap:13px}.family-hero-photo{height:90px}.family-hero-photo .product-photo{width:76px;height:76px}.family-identifiers{grid-template-columns:1fr}.family-hero-copy h1{font-size:19px}.family-hero-copy>p{grid-column:1/-1}.warehouse-family-table .catalog-product{grid-template-columns:72px minmax(0,1fr)}.warehouse-family-table .catalog-product .product-photo{width:72px;height:72px}}
.serial-match-count{margin-left:auto;color:var(--green);font-size:10px;font-weight:700;white-space:nowrap}.serials-filter-empty{border-top:1px solid var(--line)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.family-page{padding-inline:0}.family-page>.page-back,.family-page>.family-hero{margin-inline:16px}.family-page .serials-panel{overflow:visible;border-inline:0;border-radius:0}.family-page .serials-search-deck{position:sticky;top:var(--workspace-header-height,86px);z-index:24;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 16px;border-block:1px solid var(--line);background:var(--surface);box-shadow:0 4px 12px #18332b0a}.family-page .serials-search-deck .search{min-width:0;margin:0}.family-page .serials-search-deck .search>.icon{bottom:14px}.family-page .serials-table-wrap{overflow:visible;padding:8px 10px 14px}.family-page .serials-table.responsive{border-collapse:separate;border-spacing:0 10px}.family-page .serials-table.responsive tr{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 18px #18332b0a}.family-page .serials-filter-empty{border-top:0}.serial-match-count{font-size:9px}}
@media(max-width:380px){.family-page .serials-search-deck{grid-template-columns:1fr}.serial-match-count{margin:0 0 0 2px}}
.sidebar-scrim{display:none}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.sidebar{z-index:81}.sidebar.open{box-shadow:8px 0 28px #061c1d3d}.sidebar-scrim{display:block;position:fixed;inset:0;z-index:80;border:0;padding:0;background:#081d1e99;backdrop-filter:blur(2px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.sidebar.open+.sidebar-scrim{opacity:1;visibility:visible;pointer-events:auto}}
@media(prefers-reduced-motion:reduce){.sidebar-scrim{transition:none}}
.warehouse-search{display:flex;align-items:center;gap:18px;padding:16px 20px;background:color-mix(in srgb,var(--bg) 62%,var(--surface));border-bottom:1px solid var(--line)}.warehouse-search .search{max-width:720px}.warehouse-search .search>.icon{bottom:14px}.warehouse-match-count{margin-left:auto;color:var(--muted);font-size:11px;font-weight:700;white-space:nowrap}.warehouse-filter-empty{border-top:1px solid var(--line)}.warehouse-family-table th:nth-child(n+2):nth-child(-n+6),.warehouse-family-table td.number{text-align:center}.warehouse-family-table td.number:before{text-align:center}.settings-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.8fr);gap:22px;align-items:start}.depot-settings-card{overflow:visible}.depot-settings-card .panel-head{background:linear-gradient(135deg,color-mix(in srgb,var(--tint) 72%,var(--surface)),var(--surface))}.depot-settings-card .panel-head .eyebrow{margin-bottom:6px}.depot-visual{display:flex;align-items:flex-start;gap:15px;padding:17px 18px;margin-bottom:20px;border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));border-radius:13px;background:var(--tint);color:var(--green)}.depot-visual>.icon{width:25px;height:25px;flex:0 0 auto}.depot-visual strong{display:block;font-size:13px}.depot-visual p{margin:4px 0 0;color:var(--ink);font-size:11px;line-height:1.55}.field-hint{display:block;color:var(--muted);font-size:10px;line-height:1.55;margin:-7px 0 20px}.settings-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:18px}.settings-note{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(150deg,var(--surface),color-mix(in srgb,var(--tint) 58%,var(--surface)));box-shadow:var(--shadow)}.settings-note h2{font-size:17px;margin:16px 0 9px}.settings-note p,.settings-note li{color:var(--muted);font-size:11px;line-height:1.65}.settings-note ul{padding-left:18px;margin-bottom:0}
@media(max-width:950px){.settings-layout{grid-template-columns:1fr}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.warehouse-search{display:grid;grid-template-columns:1fr;padding:13px 0;margin-bottom:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}.warehouse-search .search{margin:0 13px;max-width:none}.warehouse-match-count{margin:0;padding:0 15px;color:var(--green)}.warehouse-family-table td.number,.warehouse-family-table td.number:before{text-align:center!important}.settings-footer{align-items:stretch;flex-direction:column}.settings-footer .btn{width:100%}.settings-note{padding:20px}}
/* The mobile workspace identity and company context remain reachable while content scrolls. */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.warehouse-family-table tr[hidden]{display:none!important}.topbar{position:sticky;top:0;z-index:70;height:calc(86px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);padding-inline:16px;justify-content:flex-start;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 3px 10px #18332b0a;isolation:isolate}.topbar-left{position:relative;z-index:2}.topbar-right{margin-left:auto}.topbar .company{position:absolute;left:50%;top:env(safe-area-inset-top);bottom:0;height:44px;margin-block:auto;transform:translateX(-50%);width:min(190px,calc(100vw - 154px));max-width:none;text-align:center;text-align-last:center}.topbar .account-button{margin-right:3px;padding:4px 3px 4px 4px}.topbar .account-avatar{width:40px;height:40px;border-radius:12px;font-size:12px;letter-spacing:.2px}.topbar .account-presence{right:-1px;bottom:-1px}}

/* OP warehouse cards: calm, information-first hierarchy on desktop. */
.stock-photo-inline{display:none}
.stock-photo-caption{display:none}.stock-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.stock-card-header h2{min-height:48px;margin:13px 0 15px}.stock-primary-metric{flex:0 0 116px;min-height:116px;padding:15px 12px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:14px;background:linear-gradient(150deg,var(--tint),color-mix(in srgb,var(--surface) 82%,var(--tint)));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.stock-primary-metric small{font-size:9px;font-weight:700;letter-spacing:.45px;text-transform:uppercase;color:var(--green)}.stock-primary-metric strong{font-size:34px;line-height:1.05;margin:7px 0 2px;color:var(--green);font-variant-numeric:tabular-nums}.stock-primary-metric span{font-size:9px;color:var(--muted)}.stock-divider{height:1px;background:var(--line);margin:2px 0 15px}.stock-metric{padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--bg) 68%,var(--surface));text-align:center}.stock-card.is-unavailable .stock-primary-metric{border-color:color-mix(in srgb,var(--red) 25%,var(--line));background:var(--red-bg)}.stock-card.is-unavailable .stock-primary-metric small,.stock-card.is-unavailable .stock-primary-metric strong{color:var(--red)}
.stock-card-side{display:grid;flex:0 0 116px;align-content:start;gap:8px}.stock-card-side .stock-primary-metric{width:100%;min-width:0}.stock-serials-action{width:100%;min-height:38px;justify-content:space-between;padding-inline:11px;color:var(--green);background:var(--surface)}.stock-serials-action .icon{order:2;width:15px;height:15px}
@media(min-width:801px) and (min-height:521px),(min-width:1025px){.op-stock-grid{gap:14px}.stock-card{grid-template-columns:124px minmax(0,1fr);min-height:244px;border-radius:16px;box-shadow:0 8px 24px #18332b0a;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.stock-card:hover{border-color:color-mix(in srgb,var(--green) 28%,var(--line));box-shadow:0 14px 32px #18332b12;transform:translateY(-1px)}.stock-photo{padding:14px 10px;background:linear-gradient(165deg,#fff,color-mix(in srgb,var(--tint) 45%,#fff));border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;gap:10px}.stock-photo .product-photo{width:100px;height:124px}.stock-photo-caption{display:block;color:#758a87;font-size:8px;text-transform:uppercase;letter-spacing:.6px;text-align:center}.stock-content{padding:16px 18px;border-left:0}.stock-card-header{gap:12px}.stock-card-header h2{min-height:36px;margin:9px 0 10px;line-height:1.35}.stock-primary-metric{flex-basis:88px;min-height:88px;padding:10px 8px}.stock-primary-metric strong{font-size:28px;margin:4px 0 1px}.stock-codes{margin-bottom:0;gap:8px}.stock-codes>div{min-width:105px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.stock-divider{margin:9px 0}.stock-numbers{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.stock-metric{padding:8px}.stock-numbers strong{font-size:17px}.stock-numbers small{font-size:8px;text-transform:uppercase;letter-spacing:.3px;font-weight:700}}
@media(min-width:1700px){.warehouse-page .op-stock-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:2800px){.warehouse-page .op-stock-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Guided return entry: one physical aid, one auditable row. */
.return-builder{margin:22px 0;padding:20px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--tint) 55%,var(--surface)),var(--surface))}.return-builder-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.return-builder-head h3{font-size:17px;margin:4px 0 0}.return-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.return-entry .field{margin:0}.return-entry .btn{min-width:145px}.return-help{margin:9px 0 17px;color:var(--muted);font-size:11px}.return-list{display:grid;gap:9px}.return-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.return-index{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--tint);color:var(--green);font-weight:700;font-variant-numeric:tabular-nums}.return-copy{min-width:0}.return-copy small{display:block;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.65px}.return-copy strong{display:block;margin-top:2px;font-size:12px;overflow-wrap:anywhere}.return-empty{display:flex;align-items:center;justify-content:center;gap:12px;min-height:88px;padding:16px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:left}.return-empty strong,.return-empty small{display:block}.return-empty small{font-size:10px;margin-top:3px}.draft-row .two-col-actions{flex-shrink:0}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.stock-card{grid-template-columns:1fr}.stock-card>.stock-photo{display:none}.stock-photo-inline{display:grid;place-items:center;margin:12px 0 4px}.stock-photo-inline .product-photo{width:96px;height:112px;border:0;padding:0}.stock-content{border-left:0;padding:16px}.stock-card-header .grow{text-align:center}.stock-card-header h2{min-height:0;margin:10px 0 12px}.stock-card-header .badges{justify-content:center}.stock-codes{justify-content:center}.stock-card-header{display:block}.stock-card-side{display:grid;grid-template-columns:1fr;gap:8px;width:100%;margin-top:12px}.stock-primary-metric{min-height:78px;margin:0;flex-basis:auto}.stock-primary-metric strong{font-size:28px}.stock-serials-action{min-height:44px}.stock-divider{margin:13px 0}.stock-metric{padding:9px}.return-builder{padding:15px;margin-inline:-2px}.return-entry{grid-template-columns:1fr}.return-entry .btn{width:100%}.return-row{grid-template-columns:36px minmax(0,1fr) auto;padding:9px}.return-row .btn{min-width:44px;font-size:0;padding-inline:10px}.return-builder-head{align-items:center}.draft-row{align-items:flex-start}.draft-row .two-col-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.draft-row .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.stock-card{transition:none}.stock-card:hover{transform:none}}

/* OP request composer: calm, finite and accessible progressive guidance. */
.draft-assist-status{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px;padding:11px 13px;border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--tint) 58%,var(--surface));color:var(--green)}.draft-assist-status>.icon{flex:0 0 18px;width:18px;height:18px;margin-top:1px}.draft-assist-status strong,.draft-assist-status small{display:block}.draft-assist-status strong{font-size:10px}.draft-assist-status small{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.4}.draft-guided-target{position:relative;z-index:2}.field.draft-guided-target>input,.field.draft-guided-target>textarea,.btn.draft-guided-target{border-color:var(--green);outline:3px solid color-mix(in srgb,var(--green) 13%,transparent);animation:draft-guide-pulse 1.25s cubic-bezier(.2,.75,.3,1) 2}.btn.draft-guided-target{box-shadow:0 8px 22px color-mix(in srgb,var(--green) 18%,transparent)}@keyframes draft-guide-pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--green) 0%,transparent)}45%{box-shadow:0 0 0 7px color-mix(in srgb,var(--green) 14%,transparent)}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.draft-assist-status{margin-bottom:16px}.field.draft-guided-target>input,.field.draft-guided-target>textarea,.btn.draft-guided-target{outline-width:2px}}
@media(prefers-reduced-motion:reduce){.field.draft-guided-target>input,.field.draft-guided-target>textarea,.btn.draft-guided-target{animation:none}}

/* Orders: compact operational list with progressive disclosure on mobile. */
.orders-table-wrap{padding:0;background:var(--surface)}.orders-table{border-collapse:collapse}.orders-table th{padding:11px 14px;background:color-mix(in srgb,var(--bg) 72%,var(--surface))}.orders-table td{padding:13px 14px;background:var(--surface);border-bottom:1px solid var(--line)}.orders-table tbody tr{transition:background var(--ease)}.orders-table tbody tr:hover td{background:color-mix(in srgb,var(--tint) 24%,var(--surface))}.order-practice{min-width:235px}.order-reference{display:inline-grid;place-items:center;vertical-align:middle;height:28px;min-width:42px;padding:0 8px;margin-right:10px;border-radius:999px;background:var(--tint);color:var(--green);font-size:10px;font-weight:700;font-variant-numeric:tabular-nums}.order-person{display:inline-block;vertical-align:middle;max-width:calc(100% - 58px)}.order-person>strong{font-size:13px;line-height:1.35}.order-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px}.order-meta>span:not(.badge){display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:9px}.order-meta .badge{padding:3px 7px;font-size:9px}.order-meta .icon,.order-destination .icon{width:13px;height:13px}.order-destination{min-width:170px}.order-author{min-width:150px}.order-author-inner{display:flex;align-items:center;gap:9px;min-width:0}.order-author-avatar{flex:0 0 auto;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--tint);color:var(--green)}.order-author-avatar .icon{display:block;width:14px;height:14px;margin:0}.order-author-inner>strong{min-width:0;font-size:12px;line-height:1.3;overflow-wrap:anywhere}.order-destination>strong{font-size:12px;line-height:1.3}.order-destination>span{display:flex;align-items:flex-start;gap:5px;margin-top:4px;color:var(--muted);font-size:9px;line-height:1.4}.order-destination .icon{margin-top:1px;color:var(--green)}.order-workflow{min-width:225px}.order-workflow-inner{display:grid;grid-template-columns:minmax(92px,.85fr) minmax(110px,1.15fr);align-items:center}.order-workflow-inner>div{min-width:0}.order-workflow-inner>div+div{margin:0 0 0 14px;padding-left:14px;border-left:1px solid var(--line)}.order-workflow small{display:block;margin-bottom:4px;color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.55px}.order-workflow .badge{padding:4px 8px}.order-workflow .btn.ghost{min-height:28px;padding:2px 0;color:var(--green);justify-content:flex-start}.order-workflow .btn.ghost .icon{width:15px;height:15px}.orders-table .document-actions{width:126px}.orders-table .document-shortcuts{justify-content:flex-start;gap:5px}.orders-table .doc-shortcut{width:44px;min-width:44px;height:44px;min-height:44px;padding:4px}.orders-table .doc-shortcut .icon{width:16px;height:16px}.orders-table .doc-shortcut small{font-size:7px}.orders-table .actions-cell{width:166px;padding-left:8px}.order-actions{display:grid;grid-template-columns:72px 86px;justify-content:end;gap:6px}.order-actions .btn{width:100%;min-height:36px;padding:6px 10px;font-size:10px}.order-actions .btn.primary .icon{order:2;width:16px;height:16px}.order-actions .btn.danger .icon{width:15px;height:15px}.order-action-placeholder{display:block;width:100%}.orders-table td.check{width:58px}.orders-table td.check label{margin:auto}.orders-table td.check input:disabled{cursor:not-allowed}
@media(max-width:1100px) and (min-width:801px){.orders-table td,.orders-table th{padding-inline:9px}.order-practice{min-width:205px}.order-workflow{min-width:195px}.orders-table .document-actions{width:104px}.orders-table .actions-cell{width:148px}.order-actions .btn{padding-inline:8px}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.orders-table-wrap{padding:8px 10px 14px;overflow:visible;background:color-mix(in srgb,var(--bg) 58%,var(--surface))}.orders-table.responsive{border-collapse:separate;border-spacing:0 10px}.orders-table.responsive tr{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"practice practice" "destination destination" "author author" "workflow workflow" "documents actions";gap:0!important;padding:14px!important;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 7px 20px #18332b0b}.orders-table.responsive td{display:block;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;min-width:0;width:auto}.orders-table.responsive td:before{display:none!important}.orders-table.responsive td.order-practice{grid-area:practice}.orders-table.responsive td.order-destination{grid-area:destination}.orders-table.responsive td.order-workflow{grid-area:workflow}.orders-table.responsive td.order-author{grid-area:author;padding:9px 0!important;border-bottom:1px solid var(--line)!important}.orders-table.responsive td.document-actions{grid-area:documents}.orders-table.responsive td.actions-cell{grid-area:actions}.orders-table.responsive td.check{position:absolute!important;right:10px;top:10px;padding:0!important}.orders-table.responsive td.check+td.order-practice{padding-right:44px!important}.order-practice{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:9px}.order-reference{height:26px;min-width:40px;margin:1px 0 0;padding-inline:7px}.order-person{display:block;max-width:none}.order-person>strong{font-size:15px;line-height:1.35}.order-meta{margin-top:5px}.order-meta>span:not(.badge){font-size:10px}.order-destination{display:grid!important;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;margin-top:11px;padding:10px 0!important;border-block:1px solid var(--line)!important}.order-destination>strong{font-size:12px}.order-destination>span{margin:0;font-size:10px}.order-workflow{display:block!important;margin:0;padding:10px 0!important;border-bottom:1px solid var(--line)!important}.order-workflow-inner{display:grid!important;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:0}.order-workflow-inner>div+div{margin:0 0 0 12px;padding-left:12px}.order-workflow small{font-size:8px}.order-workflow .badge{font-size:9px}.orders-table.responsive td.document-actions,.orders-table.responsive td.actions-cell{padding-top:10px!important}.orders-table .document-shortcuts{display:flex;gap:6px}.orders-table .doc-shortcut{width:44px;min-width:44px;height:44px;min-height:44px}.orders-table .doc-shortcut small{display:none}.order-actions{display:flex;justify-content:flex-end;gap:6px}.order-action-placeholder{display:none}.order-actions .btn{min-height:44px;padding:7px 10px;font-size:10px}.order-actions .btn.primary{min-width:72px}.order-actions .btn.danger{min-width:82px}}
@media(max-width:380px){.orders-table.responsive tr{padding:12px!important}.order-actions .btn{padding-inline:8px}.order-actions .btn.primary{min-width:66px}.order-actions .btn.danger{min-width:76px}.orders-table .document-shortcuts{gap:4px}}
@media(prefers-reduced-motion:reduce){.orders-table tbody tr{transition:none}}

/* MA return intake: guided, auditable and usable with one hand on mobile. */
.return-classification-modal{width:min(920px,calc(100% - 24px));max-width:920px}.return-classification-modal .modal-content{padding-top:20px}.return-context{display:grid;grid-template-columns:74px minmax(0,1fr);gap:15px;align-items:center;padding:13px 15px;margin-bottom:20px;border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));border-radius:14px;background:linear-gradient(135deg,var(--tint),var(--surface))}.return-context .product-photo{width:70px;height:70px;border:0}.return-context .eyebrow{margin-bottom:5px}.return-context strong{display:block;font-size:14px}.return-context small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.return-mode,.return-condition{border:0;padding:0;margin:0 0 20px}.return-mode legend,.return-condition legend{padding:0;margin-bottom:9px;font-size:11px;font-weight:700}.return-mode{display:grid;grid-template-columns:1fr 1fr;gap:10px}.return-mode legend{grid-column:1/-1}.return-mode>label,.return-condition>label{position:relative;cursor:pointer}.return-mode input,.return-condition input,.return-family-card>input{position:absolute;opacity:0;pointer-events:none}.return-mode>label>span{display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;column-gap:11px;min-height:78px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.return-mode>label>span>.icon{grid-row:1/3;width:24px;height:24px;margin-top:2px;color:var(--green)}.return-mode strong{font-size:12px}.return-mode small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.45}.return-mode label:has(input:checked)>span{border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 14%,transparent)}.return-mode label:focus-within>span,.return-condition label:focus-within,.return-family-card:focus-within{outline:3px solid color-mix(in srgb,var(--green) 35%,transparent);outline-offset:2px}.return-mode-panel{padding:17px;margin-bottom:20px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--bg) 58%,var(--surface))}.return-mode-panel[hidden]{display:none}.return-lookup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.return-lookup input{font:700 14px ui-monospace,monospace;letter-spacing:.35px}.return-result-empty,.return-result-error{display:flex;align-items:center;justify-content:center;gap:12px;min-height:84px;padding:15px;border:1px dashed var(--line);border-radius:11px;color:var(--muted);text-align:left}.return-result-empty .icon,.return-result-error .icon{width:22px;height:22px;flex:0 0 auto}.return-result-empty strong,.return-result-empty small,.return-result-error strong,.return-result-error small{display:block}.return-result-empty strong,.return-result-error strong{font-size:11px;color:var(--ink)}.return-result-empty small,.return-result-error small{margin-top:3px;font-size:9px;line-height:1.45}.return-result-error{border-style:solid;border-color:color-mix(in srgb,var(--red) 28%,var(--line));background:var(--red-bg);color:var(--red)}.return-product-card{display:grid;grid-template-columns:112px minmax(0,1fr);gap:17px;align-items:center;padding:14px;border:1px solid color-mix(in srgb,var(--green) 28%,var(--line));border-radius:13px;background:var(--surface)}.return-product-card>.product-photo{width:108px;height:108px}.return-product-copy h3{margin:10px 0;font-size:16px}.return-product-copy dl{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:0}.return-product-copy dl>div{min-width:0;padding:8px 10px;border-radius:9px;background:var(--bg)}.return-product-copy dt{font-size:8px;font-weight:700;letter-spacing:.45px;text-transform:uppercase;color:var(--muted)}.return-product-copy dd{margin:4px 0 0;font:700 10px ui-monospace,monospace;overflow-wrap:anywhere}.return-family-list{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-height:285px;overflow:auto;padding:2px}.return-family-card{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) 22px;gap:11px;align-items:center;min-height:86px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .16s ease,background .16s ease}.return-family-card:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}.return-family-card:has(input:checked){border-color:var(--green);background:var(--tint)}.return-family-card[hidden]{display:none}.return-family-photo{width:62px;height:62px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:#fff}.return-family-photo .product-photo{width:58px;height:58px;border:0}.return-family-copy{min-width:0}.return-family-copy strong{display:block;margin-bottom:6px;font-size:11px;line-height:1.35}.return-family-copy small{display:block;margin-top:3px;color:var(--muted);font-size:7px;letter-spacing:.3px}.return-family-copy b{font:700 8px ui-monospace,monospace;color:var(--ink)}.return-family-check{width:20px;height:20px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;color:transparent}.return-family-check .icon{width:13px;height:13px}.return-family-card:has(input:checked) .return-family-check{border-color:var(--green);background:var(--green);color:#fff}.return-family-empty{padding:20px;text-align:center;color:var(--muted);font-size:10px}.return-condition{display:grid;grid-template-columns:1fr 1fr;gap:10px}.return-condition legend{grid-column:1/-1}.return-condition>label{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;align-items:center;min-height:72px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.return-condition>label:has(input:checked){border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 12%,transparent)}.condition-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:var(--tint);color:var(--green)}.condition-icon.warning{background:var(--red-bg);color:var(--red)}.return-condition strong,.return-condition small{display:block}.return-condition strong{font-size:11px}.return-condition small{margin-top:3px;color:var(--muted);font-size:9px}.return-audit-note{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:10px;background:var(--tint);color:var(--green)}.return-audit-note>.icon{flex:0 0 auto}.return-audit-note strong,.return-audit-note span{display:block}.return-audit-note strong{font-size:10px}.return-audit-note span{font-size:9px;line-height:1.5}.workflow-checks{display:grid;gap:8px;margin-bottom:16px}.workflow-checks>div{display:flex;align-items:center;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--bg);color:var(--muted)}.workflow-checks>div.done{border-color:color-mix(in srgb,var(--green) 22%,var(--line));background:var(--tint);color:var(--green)}.workflow-checks .icon{flex:0 0 auto}.workflow-checks strong,.workflow-checks span{display:block}.workflow-checks strong{font-size:10px;color:var(--ink)}.workflow-checks span{font-size:9px}.outcome-confirmed{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding:10px 12px;border-radius:10px;background:var(--tint);color:var(--green)}.outcome-confirmed>.icon{flex:0 0 auto}.outcome-confirmed strong,.outcome-confirmed span{display:block}.outcome-confirmed strong{font-size:10px}.outcome-confirmed span{font-size:9px;line-height:1.45}.stop-card.outcome-locked .stop-actions button:disabled{opacity:.48;background:var(--bg);color:var(--muted)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.return-classification-modal{width:calc(100% - 16px);max-height:96dvh;border-radius:17px}.return-classification-modal .modal-header{padding:16px}.return-classification-modal .modal-content{padding:15px}.return-context{grid-template-columns:60px minmax(0,1fr);padding:11px}.return-context .product-photo{width:58px;height:58px}.return-mode{grid-template-columns:1fr}.return-mode>label>span{min-height:70px}.return-mode-panel{padding:13px}.return-lookup{grid-template-columns:1fr}.return-lookup .btn{width:100%}.return-product-card{grid-template-columns:82px minmax(0,1fr);gap:12px;padding:11px}.return-product-card>.product-photo{width:80px;height:80px}.return-product-copy h3{font-size:13px}.return-product-copy dl{grid-template-columns:1fr}.return-family-list{grid-template-columns:1fr;max-height:38dvh}.return-condition{grid-template-columns:1fr}.return-classification-modal .modal-footer{position:sticky;bottom:-15px;margin:18px -15px -15px;padding:12px 15px;background:color-mix(in srgb,var(--surface) 94%,transparent);border-top:1px solid var(--line);backdrop-filter:blur(8px)}.return-classification-modal .modal-footer .btn{flex:1;min-height:48px}.keeper-workflow .two-col-actions{display:grid;grid-template-columns:1fr}.keeper-workflow .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.return-mode>label>span,.return-family-card{transition:none}}

/* Order filters update the list immediately; this is status, not a submit action. */
.filter-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.filter-auto-status{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid color-mix(in srgb,var(--green) 20%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--tint) 58%,var(--surface));color:var(--green);font-size:10px;font-weight:700;white-space:nowrap}.filter-auto-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 10%,transparent)}.filter-auto-status.loading .filter-auto-dot{animation:filter-pulse .8s ease-in-out infinite alternate}@keyframes filter-pulse{to{opacity:.35;transform:scale(.78)}}
.order-filters .date-control{width:162px}.date-entry{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:6px}.native-date-trigger{position:relative;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--green);cursor:pointer;transition:background var(--ease),border-color var(--ease),box-shadow var(--ease)}.native-date-trigger:hover{border-color:color-mix(in srgb,var(--green) 42%,var(--line));background:var(--tint)}.native-date-trigger:focus-within{outline:3px solid #38b993;outline-offset:3px}.native-date-trigger .icon{width:18px;height:18px;pointer-events:none}.native-date-trigger input[type=date]{position:absolute;inset:0;width:100%;height:100%;min-height:44px;margin:0;padding:0;border:0;opacity:0;cursor:pointer}.native-date-trigger input[type=date]::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;cursor:pointer}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.order-filters .date-entry>input[type=text]{padding-inline:8px;letter-spacing:-.2px}.order-filters .filter-actions{width:100%;margin-left:0}.order-filters .filter-auto-status{flex:1;justify-content:center;white-space:normal;text-align:center}.order-filters .filter-actions>.btn{flex:0 0 auto}}
@media(prefers-reduced-motion:reduce){.filter-auto-status.loading .filter-auto-dot{animation:none}}

/* Long operational grids: opaque sticky surfaces avoid expensive backdrop repaints while scrolling. */
.orders-mobile-headings{display:none}.content.orders-page,.content.warehouse-page,.content.family-page,.content.trips-page{animation:none}
@media(min-width:1280px){
 .content.orders-page,.content.warehouse-page,.content.trips-page{--workspace-page-gutter:clamp(28px,2.2vw,58px);width:100%;max-width:none;margin:0;padding-inline:var(--workspace-page-gutter)}
 .content.orders-page{--orders-page-gutter:var(--workspace-page-gutter)}
 .orders-page .orders-workspace{margin-inline:calc(-1 * var(--orders-page-gutter));border-inline:0;border-radius:0;overflow:visible;box-shadow:0 12px 34px #18332b0d}
 .orders-page .orders-control-deck{position:sticky;top:0;z-index:24;isolation:isolate;background:var(--surface);box-shadow:0 1px 0 var(--line),0 4px 10px #18332b08}
 .orders-page .orders-control-deck .tabs,.orders-page .orders-control-deck .order-filters,.orders-page .pagination{padding-inline:var(--orders-page-gutter)}
 .orders-page .orders-table-wrap{overflow:visible}
 .orders-page .orders-table{border-collapse:separate;border-spacing:0}
 .orders-page .orders-table th{position:sticky;top:var(--orders-control-height,130px);z-index:22;background:var(--bg);box-shadow:inset 0 -1px var(--line)}
 .warehouse-page .page-head,.trips-page .page-head{margin-inline:0}
 .warehouse-page .warehouse-control-deck,.warehouse-page .warehouse-families{margin-inline:calc(-1 * var(--workspace-page-gutter))}
 .warehouse-page .warehouse-control-deck{position:sticky;top:0;z-index:24;padding:12px var(--workspace-page-gutter) 0;background:var(--bg);box-shadow:0 1px 0 var(--line),0 4px 10px #18332b08}
 .warehouse-page .warehouse-control-deck .stats{margin-bottom:12px}
 .warehouse-page .warehouse-grid-controls{overflow:hidden;border:1px solid var(--line);border-bottom:0;border-radius:14px 14px 0 0;background:var(--surface)}
 .warehouse-page .warehouse-families{overflow:visible;border-inline:0;border-radius:0;box-shadow:none}
 .warehouse-page .warehouse-table-wrap{overflow:visible}
 .warehouse-page .warehouse-family-table{border-collapse:separate;border-spacing:0}
 .warehouse-page .warehouse-family-table th{position:sticky;top:var(--warehouse-control-height,250px);z-index:22;background:var(--bg);box-shadow:inset 0 -1px var(--line)}
 .warehouse-page .warehouse-balance-note{padding-inline:var(--workspace-page-gutter)}
 .trips-page .trip-cards{grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:20px}
}

/* Gestione giacenze — profilo quantitativo del modulo Dispositivi. La pagina conserva la stessa
   grammatica Premium approvata, ma usa densita' da registro: una riga deve raccontare articolo,
   disponibilita' e ultimo evento senza costringere ad aprire una scheda. */
.company-device-features,.permission-subgroup{display:grid;gap:8px;margin:0 0 0 28px;padding:10px 0 2px 16px;border-left:2px solid color-mix(in srgb,var(--green) 25%,var(--line))}
.permission-subgroup-title{font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--green);text-transform:uppercase;padding:2px 4px}
.inventory-page{min-width:0}
.inventory-deck .devices-deck-row.primaria{grid-template-columns:1.45fr .8fr 1fr}
.inventory-deck .devices-deck-row.secondaria{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(118px,max-content)}
.inventory-deck-summary{display:flex;align-items:center;gap:8px}.inventory-mobile-filter-toggle{display:none}
.inventory-movement-deck .devices-deck-row.primaria{grid-template-columns:minmax(240px,1.4fr) 190px minmax(390px,1.25fr) minmax(118px,max-content)}
.inventory-table-panel{overflow:visible;border-top-left-radius:0;border-top-right-radius:0}
.inventory-table-panel>.table-wrap{overflow:visible}
.inventory-table{table-layout:fixed;width:100%;min-width:0}
.inventory-table>thead>tr>th:nth-child(1){width:52px}.inventory-table>thead>tr>th:nth-child(2){width:58px}.inventory-table>thead>tr>th:nth-child(3){width:112px}
.inventory-table>thead>tr>th:nth-child(4){width:17%}.inventory-table>thead>tr>th:nth-child(5){width:9%}.inventory-table>thead>tr>th:nth-child(6){width:10%}
.inventory-table>thead>tr>th:nth-child(7){width:18%}.inventory-table>thead>tr>th:nth-child(8){width:90px}.inventory-table>thead>tr>th:nth-child(9),.inventory-table>thead>tr>th:nth-child(10){width:64px}.inventory-table>thead>tr>th:nth-child(11){width:172px}
.inventory-table>tbody>tr>td{overflow-wrap:anywhere}
.inventory-table>thead,.inventory-movements-table>thead{position:sticky;top:calc(var(--workspace-header-height,0px) + var(--devices-deck-height,0px));z-index:13;background:var(--surface)}
.inventory-table>thead>tr>th,.inventory-table>tbody>tr>td{padding:12px 9px;vertical-align:middle}
.inventory-table>thead>tr>th:first-child,.inventory-table>tbody>tr>td:first-child{width:48px;text-align:center}
.inventory-tree-cell{padding-left:12px!important}
.inventory-expand{width:44px;height:44px;display:inline-grid;place-items:center;border:1px solid color-mix(in srgb,var(--green) 25%,var(--line));border-radius:11px;background:var(--tint);color:var(--green);cursor:pointer}
.inventory-expand:hover{background:color-mix(in srgb,var(--green) 13%,var(--surface))}
.inventory-expand:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:2px}
.inventory-expand .icon{width:16px;height:16px}
.inventory-photo{box-sizing:border-box;width:48px;height:48px;min-width:48px;min-height:48px;display:grid;place-items:center;padding:3px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(145deg,var(--surface),var(--tint));overflow:hidden}
.inventory-photo img{display:block;max-width:42px;max-height:42px;width:auto;height:auto;object-fit:contain}
.inventory-photo .icon,.inventory-photo>span .icon{width:21px;height:21px;color:var(--muted)}
.inventory-photo-placeholder{padding:0;background:color-mix(in srgb,var(--green) 5%,var(--surface));border-style:dashed;color:var(--muted)}
.inventory-serial strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}
.inventory-table>.inventory-table-body>tr>td>small,.inventory-table>tbody>.inventory-article-row>td>small,.inventory-last small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.inventory-last{display:grid;gap:2px;min-width:155px}
.inventory-last small{display:flex;align-items:center;gap:7px;margin:0}
.inventory-quantity{font-variant-numeric:tabular-nums;white-space:nowrap}.inventory-quantity.positive{color:var(--green)}.inventory-quantity.negative{color:var(--danger)}
.inventory-stock{font-size:18px;color:var(--green);font-variant-numeric:tabular-nums}
.inventory-article-inactive{background:color-mix(in srgb,var(--muted) 5%,var(--surface))}.inventory-article-inactive .inventory-stock{color:var(--muted)}.inventory-article-inactive>td:not(.actions-cell){color:color-mix(in srgb,var(--ink) 72%,var(--muted))}.inventory-article-state-badge{display:flex;width:max-content;align-items:center;gap:5px;margin-top:5px;padding:3px 7px;border:1px solid transparent;border-radius:7px;font-size:9px;font-weight:800;line-height:1.1;letter-spacing:.035em;text-transform:uppercase;box-shadow:inset 0 1px 0 color-mix(in srgb,white 50%,transparent)}.inventory-article-state-badge.active{border-color:color-mix(in srgb,var(--green) 24%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--green) 15%,var(--surface)),color-mix(in srgb,var(--green) 7%,var(--surface)));color:var(--green)}.inventory-article-state-badge.inactive{border-color:color-mix(in srgb,var(--danger) 22%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--danger) 14%,var(--surface)),color-mix(in srgb,var(--danger) 7%,var(--surface)));color:var(--danger)}.inventory-article-state-badge i{width:4px;height:4px;border-radius:50%;background:currentColor}.inventory-state-action{color:var(--muted);padding-inline:9px}.inventory-state-action .icon{width:15px;height:15px}.inventory-article-inactive .inventory-state-action{color:var(--green)}.inventory-table .actions-cell{gap:4px;white-space:nowrap}.inventory-state-form{display:grid;gap:18px}.inventory-state-form>.devices-form-hero{margin-bottom:0}.inventory-state-form>.field{display:grid;gap:8px}.inventory-state-form>.field>span{font-weight:800}.inventory-state-form>.field>small{color:var(--muted)}
.inventory-history-host>td{padding:0 14px 16px 66px!important;background:color-mix(in srgb,var(--green) 4%,var(--bg))}
.inventory-history-card{border:1px solid color-mix(in srgb,var(--green) 20%,var(--line));border-radius:16px;background:var(--surface);box-shadow:0 16px 40px #17342b12;overflow:hidden}
.inventory-history-title{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,color-mix(in srgb,var(--green) 8%,var(--surface)),var(--surface))}
.inventory-history-title>div{display:grid;gap:3px}.inventory-history-title small{font-size:9px;font-weight:800;letter-spacing:.12em;color:var(--green)}.inventory-history-title>span{font-size:11px;color:var(--muted)}
.inventory-history-card .table-wrap{overflow:visible}.inventory-history-desktop{position:relative}.inventory-history-columns{position:relative;z-index:2;display:grid;grid-template-columns:150px 190px 130px 130px minmax(0,1fr) 125px;min-height:48px;align-items:center;background:var(--bg);box-shadow:inset 0 -1px 0 var(--line)}.inventory-history-columns.is-fixed{position:fixed;top:var(--history-fixed-top);left:var(--history-fixed-left);width:var(--history-fixed-width);z-index:24;box-shadow:inset 0 -1px 0 var(--line),0 9px 18px -14px #0006}.inventory-history-columns.is-pinned-bottom{position:absolute;top:auto;bottom:0;left:0;width:100%}.inventory-history-columns>span,.data-table .inventory-history-columns>span.number{min-width:0;padding:13px 12px;font-size:10px;font-weight:800;line-height:1.2;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.data-table .inventory-history-columns>span.number{text-align:right}.inventory-history-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}.inventory-history-table col:nth-child(1){width:150px}.inventory-history-table col:nth-child(2){width:190px}.inventory-history-table col:nth-child(3){width:130px}.inventory-history-table col:nth-child(4){width:130px}.inventory-history-table col:nth-child(6){width:125px}.inventory-history-table td{padding:13px 12px;vertical-align:middle;overflow-wrap:anywhere}.inventory-history-mobile{display:none}
.inventory-history-desktop.has-fixed-history-head{padding-top:48px}
.inventory-history-open{padding:0;min-height:44px;white-space:nowrap}.inventory-history-open strong{display:inline}.inventory-history-open .icon{width:15px;height:15px}
.inventory-history-document{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:44px;min-height:44px;border:1px solid transparent;border-radius:10px;color:var(--green);font-size:10px;font-weight:800;text-decoration:none}.inventory-history-document:hover{border-color:color-mix(in srgb,var(--green) 24%,var(--line));background:var(--tint)}.inventory-history-document:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 42%,transparent);outline-offset:2px}.inventory-history-document .icon{width:18px;height:18px}
.inventory-cancelled{opacity:.58}.inventory-cancelled td{text-decoration-color:var(--danger)}
.inventory-movement-hero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;padding:0;overflow:hidden;margin-bottom:20px}
.inventory-movement-hero>div{display:grid;gap:6px;padding:20px 22px;border-right:1px solid var(--line)}.inventory-movement-hero>div:last-child{border:0}.inventory-movement-hero small{font-size:9px;font-weight:800;letter-spacing:.12em;color:var(--muted)}
.inventory-movement-modal .modal-card{width:min(1120px,calc(100vw - 32px))}
.inventory-movement-form>.devices-form-hero{margin-bottom:22px}.inventory-movement-fields{row-gap:22px;column-gap:18px}.inventory-movement-fields>.field{gap:8px;align-content:start}.inventory-movement-fields>.field>span:first-child{font-weight:800;line-height:1.25}.inventory-notes-field{margin-top:2px}
.inventory-upload-field{min-width:0}.inventory-upload{position:relative}.inventory-upload>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.inventory-upload>label{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:13px;align-items:center;min-height:72px;padding:11px 12px;border:1px dashed color-mix(in srgb,var(--green) 42%,var(--line));border-radius:15px;background:linear-gradient(120deg,color-mix(in srgb,var(--green) 8%,var(--surface)),var(--surface));cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s}.inventory-upload>label:hover{border-color:var(--green);background:var(--tint);box-shadow:0 10px 24px #17342b10}.inventory-upload>input:focus-visible+label{outline:3px solid color-mix(in srgb,var(--green) 42%,transparent);outline-offset:2px}.inventory-upload-icon{width:48px;height:48px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:13px;background:var(--surface);color:var(--green)}.inventory-upload-icon .icon{width:21px;height:21px}.inventory-upload-copy{display:grid;gap:4px;min-width:0}.inventory-upload-copy strong{font-size:12px;line-height:1.3}.inventory-upload-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.inventory-upload-action{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--green);font-size:10px;font-weight:800}.inventory-upload.has-file>label{border-style:solid;border-color:var(--green);background:color-mix(in srgb,var(--green) 9%,var(--surface))}.inventory-upload.has-file .inventory-upload-icon{background:var(--green);color:white}.inventory-upload.invalid>label{border-style:solid;border-color:var(--danger);background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.inventory-upload.invalid .inventory-upload-icon,.inventory-upload.invalid .inventory-upload-copy small{color:var(--danger)}.inventory-upload-field>small{margin-top:2px;font-size:10px;color:var(--muted)}
.inventory-picker{margin-top:18px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--bg)}
.inventory-picker-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,440px);gap:16px;align-items:center;padding:16px 18px;background:var(--surface);border-bottom:1px solid var(--line)}
.inventory-picker-head>div:first-child{display:grid;gap:3px}.inventory-picker-head small{color:var(--muted);font-size:11px}.inventory-picker-head .search{min-height:44px}
.inventory-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;max-height:268px;overflow:auto}
.inventory-candidate{display:grid;grid-template-columns:48px minmax(0,1fr) auto 24px;gap:12px;align-items:center;min-height:70px;padding:10px;text-align:left;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:14px;cursor:pointer}
.inventory-candidate:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line));box-shadow:0 8px 22px #17342b0d}.inventory-candidate:disabled{opacity:.5;cursor:default}.inventory-candidate>span:nth-child(2){display:grid;gap:3px;min-width:0}.inventory-candidate>span:nth-child(2) strong,.inventory-candidate>span:nth-child(2) small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inventory-candidate-stock{display:grid;text-align:right;font-weight:800;color:var(--green)}.inventory-candidate-stock small{font-weight:500;font-size:9px;color:var(--muted)}
.inventory-basket{padding:0 14px 14px}.inventory-basket .table-wrap{border:1px solid var(--line);border-radius:14px;background:var(--surface)}.inventory-basket-table th:first-child{width:70px}.inventory-basket-table td{vertical-align:middle}.inventory-basket-photo .inventory-photo{width:44px;height:44px;min-width:44px;min-height:44px}.inventory-basket-photo .inventory-photo img{max-width:38px;max-height:38px}.inventory-quantity-cell{display:grid;justify-items:end;gap:5px}.inventory-quantity-cell small{max-width:145px;color:var(--muted);font-size:9px;line-height:1.25;text-align:right}.inventory-line-quantity{width:132px;min-height:44px;text-align:right;font-weight:800}.inventory-line-quantity.invalid{border-color:var(--danger);background:color-mix(in srgb,var(--danger) 5%,var(--surface))}
.inventory-pack input{font-size:17px;font-weight:800}
.inventory-export-period{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}.inventory-export-period legend{padding:0 8px;font-weight:800}.inventory-export-date{display:grid;gap:8px}.inventory-export-date>span{font-weight:800}.inventory-export-date .date-entry{min-height:48px}.inventory-export-period .field-error{margin:10px 0 0;color:var(--danger);font-weight:700}.inventory-export-form .report-export-note{margin-top:16px}

@media(max-width:1024px){
 .inventory-deck .devices-deck-row.primaria,.inventory-deck .devices-deck-row.secondaria{grid-template-columns:repeat(2,minmax(0,1fr))}
 .inventory-deck .devices-field-reset{grid-column:2}
 .inventory-movement-deck .devices-deck-row.primaria{grid-template-columns:repeat(2,minmax(0,1fr))}
 .inventory-movement-deck .devices-field:first-child{grid-column:1/-1}
 .devices-table-page.inventory-page #devices-results .inventory-table-panel>.table-wrap{overflow-x:auto;max-width:100%}.inventory-table-panel{min-width:0}.inventory-table{min-width:1120px;table-layout:auto}.inventory-table>thead,.inventory-movements-table>thead{position:static}
 .inventory-history-columns.is-fixed{top:var(--history-fixed-top)}
}
@media(max-width:599px){
 .company-device-features,.permission-subgroup{margin-left:8px;padding-left:10px}
 .inventory-deck .devices-deck-head{align-items:center}.inventory-deck-summary{margin-left:auto}.inventory-deck-summary .devices-count-pill{display:none}.inventory-mobile-filter-toggle{display:inline-flex;min-height:44px}
 .inventory-deck .devices-deck-row.primaria,.inventory-deck .devices-deck-row.secondaria,.inventory-movement-deck .devices-deck-row.primaria{grid-template-columns:1fr 1fr;gap:8px}
 .inventory-deck .devices-field:first-child,.inventory-movement-deck .devices-field:first-child{grid-column:1/-1}
 .inventory-deck .devices-deck-row.primaria .devices-field:not(:first-child),.inventory-deck .devices-deck-row.secondaria{display:none}
 .inventory-deck.mobile-filters-open .devices-deck-row.primaria .devices-field:not(:first-child){display:flex}.inventory-deck.mobile-filters-open .devices-deck-row.secondaria{display:grid}
 .inventory-table{min-width:0}.inventory-table>thead{display:none}.inventory-table,.inventory-table>tbody{display:block;width:100%}
 .inventory-article-row{display:grid;grid-template-columns:40px 50px minmax(0,1fr) auto;grid-template-areas:"tree photo serial stock" "tree photo description stock" "last last last action";gap:3px 10px;padding:14px;border-bottom:1px solid var(--line)}
 .inventory-article-row td{display:none;padding:0;border:0}.inventory-article-row .inventory-tree-cell{display:block;grid-area:tree;padding:6px 0!important}.inventory-article-row td:nth-child(2){display:block;grid-area:photo}.inventory-article-row .inventory-serial{display:block;grid-area:serial}.inventory-article-row td:nth-child(4){display:block;grid-area:description;color:var(--muted);font-size:11px}.inventory-article-row td:nth-child(7){display:block;grid-area:last;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.inventory-article-row td:nth-child(8){display:block;grid-area:stock;text-align:right}.inventory-article-row .actions-cell{display:flex;grid-area:action;justify-self:end;margin-top:8px}.inventory-stock{font-size:20px}.inventory-article-row td:nth-child(8)::before{content:'GIACENZA';display:block;font-size:8px;letter-spacing:.1em;color:var(--muted)}
 .inventory-history-host{display:block}.inventory-history-host>td{display:block;width:100%!important;padding:0 10px 14px!important;text-align:left!important}.inventory-history-card{width:100%;border-radius:14px;box-shadow:0 10px 26px #17342b0d}.inventory-history-title{align-items:flex-start;padding:14px}.inventory-history-title>span{display:none}.inventory-history-desktop{display:none}.inventory-history-mobile{display:grid;padding:10px;gap:9px}.inventory-history-mobile-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"top quantity" "meta meta" "notes notes" "open open";gap:10px;width:100%;min-width:0;padding:14px;text-align:left;color:var(--ink);border:1px solid var(--line);border-radius:13px;background:var(--surface);cursor:pointer;box-shadow:0 4px 14px #17342b08}.inventory-history-mobile-card:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 42%,transparent);outline-offset:2px}.inventory-history-mobile-top{grid-area:top;display:grid;align-content:start;justify-items:start;gap:7px}.inventory-history-mobile-top>strong{font-size:13px}.inventory-history-mobile-quantity{grid-area:quantity;align-self:start;text-align:right;font-size:17px}.inventory-history-mobile-meta{grid-area:meta;display:grid;grid-template-columns:minmax(0,1fr) minmax(92px,.6fr);gap:10px;padding-top:10px;border-top:1px solid var(--line)}.inventory-history-mobile-meta>span{display:grid;gap:3px;min-width:0}.inventory-history-mobile-meta small{font-size:8px;font-weight:800;letter-spacing:.1em;color:var(--muted)}.inventory-history-mobile-meta strong{font-size:11px;overflow-wrap:anywhere}.inventory-history-mobile-meta .icon{width:14px;height:14px;vertical-align:middle}.inventory-history-mobile-notes{grid-area:notes;padding:9px 10px;border-radius:9px;background:var(--bg);font-size:11px;line-height:1.45;overflow-wrap:anywhere}.inventory-history-mobile-open{grid-area:open;display:flex;align-items:center;justify-content:flex-end;gap:7px;color:var(--green);font-size:10px;font-weight:800}.inventory-history-mobile-open .icon{width:14px;height:14px}
 .inventory-movement-hero{grid-template-columns:1fr}.inventory-movement-hero>div{border-right:0;border-bottom:1px solid var(--line)}
 .inventory-picker-head{grid-template-columns:1fr}.inventory-candidates{grid-template-columns:1fr}.inventory-movement-modal .modal-card{width:100vw;max-width:none}.inventory-upload>label{grid-template-columns:42px minmax(0,1fr)}.inventory-upload-action{display:none}.inventory-basket-table .inventory-basket-photo{grid-column:1;grid-row:1/3;padding-right:8px}.inventory-basket-table .main-cell{grid-column:2;padding-right:44px}.inventory-basket-table tr{grid-template-columns:52px minmax(0,1fr);align-items:center}.inventory-basket-table td:nth-child(3),.inventory-basket-table td:nth-child(4),.inventory-basket-table td:nth-child(5),.inventory-basket-table .actions-cell{grid-column:1/-1}.inventory-basket-table td:before{margin-bottom:3px}
}

/* ODL / Smaltimento sacche — interfaccia tablet-first, con struttura sempre raggiungibile. */
.odl-title-compact{display:none}.odl-head .head-actions{align-items:center}.odl-kpis>article>span:first-child{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:color-mix(in srgb,var(--green) 12%,var(--surface));color:var(--green)}.odl-kpis>article>span.amber{background:#fff1cf;color:#925d00}.odl-kpis>article>div{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:1px 10px}.odl-kpis>article p{margin:0;color:var(--muted);font-size:11px}.odl-deck .odl-essential{grid-template-columns:minmax(180px,.58fr) minmax(320px,1.42fr)}.odl-deck .task-advanced{grid-template-columns:minmax(300px,1.25fr) minmax(180px,.72fr) minmax(210px,.82fr) minmax(210px,.82fr) minmax(120px,max-content)}.odl-period{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:8px;align-items:center}.odl-period input{min-width:0}.odl-table th:nth-child(1){width:25%}.odl-table th:nth-child(2){width:165px}.odl-table th:nth-child(3){width:21%}.odl-table th:nth-child(5){width:135px}.odl-table th:nth-child(6){width:150px}.odl-table .actions-cell{white-space:nowrap}.odl-list>.pagination{border-top:1px solid var(--line)}
#modal.odl-new-modal,#modal.odl-edit-modal,#modal.odl-disposal-modal,#modal.odl-reports-modal{width:min(1040px,calc(100vw - 32px))}.odl-form,.odl-fields,.odl-disposal-fields{display:grid;gap:18px}.task-intro{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:center;padding:15px 17px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:17px;background:linear-gradient(125deg,color-mix(in srgb,var(--green) 9%,var(--surface)),var(--surface))}.task-intro>.icon{width:46px;height:46px;padding:12px;border-radius:13px;background:var(--surface);color:var(--green);box-shadow:inset 0 0 0 1px var(--line)}.task-intro>span{display:grid;gap:3px}.task-intro small{color:var(--muted);font-size:11px}.task-lookup-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;margin-top:8px}.task-lookup-row input{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;letter-spacing:.04em}.odl-fields{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.odl-fields>.task-signature{grid-column:1/-1}.odl-check{display:grid;min-height:74px}.odl-check>input{position:absolute;opacity:0;pointer-events:none}.odl-check>span{display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;gap:3px 10px;align-content:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer}.odl-check .icon{grid-row:1/3;width:24px;height:24px;align-self:center;color:var(--muted)}.odl-check small{color:var(--muted);font-size:10px}.odl-check>input:checked+span{border-color:var(--green);background:color-mix(in srgb,var(--green) 9%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 10%,transparent)}.odl-check>input:checked+span .icon{color:var(--green)}.odl-check>input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--green) 40%,transparent);outline-offset:2px}.task-signature>div{display:flex;justify-content:space-between;align-items:center;gap:12px}.task-signature>canvas{grid-column:1/-1;display:block;width:100%;height:170px;border:1px dashed color-mix(in srgb,var(--green) 40%,var(--line));border-radius:14px;background:linear-gradient(#fff,#fbfdfc);cursor:crosshair;touch-action:none}.task-signature>small{grid-column:1/-1;color:var(--muted)}.task-found>div{min-width:0}.task-found>div>small{font-size:9px;font-weight:800;letter-spacing:.11em;color:var(--green)}.task-found>div h3{margin:4px 0 2px;font:800 22px ui-monospace,SFMono-Regular,Menlo,monospace}.task-found>div p{margin:0 0 9px;color:var(--muted)}.task-found>div>span{display:flex;align-items:center;gap:6px;font-size:12px}.task-found>div>span .icon{width:16px;color:var(--green)}
.task-report-items{display:grid;max-height:230px;overflow:auto;border:1px solid var(--line);border-radius:15px;background:var(--bg)}.task-report-items>label{display:block;padding:11px 14px;border-bottom:1px solid var(--line)}.task-report-items>label:last-child{border:0}.task-report-items label>span{display:flex;justify-content:space-between;gap:12px}.task-report-items label small{color:var(--muted)}.odl-disposal-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.odl-disposal-fields>.field:first-child,.odl-disposal-fields>#devices-scan,.odl-disposal-fields>.task-device-result{grid-column:1/-1}.odl-shredder-ok{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid color-mix(in srgb,var(--green) 28%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--green) 8%,var(--surface));color:var(--green)}.odl-shredder-ok>span{display:grid;gap:3px}.odl-shredder-ok small{color:var(--muted)}.odl-disposal-fields>.task-upload{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:74px;padding:12px 14px;border:1px dashed color-mix(in srgb,var(--green) 40%,var(--line));border-radius:14px;background:linear-gradient(125deg,color-mix(in srgb,var(--green) 7%,var(--surface)),var(--surface));cursor:pointer}.odl-disposal-fields>.task-upload>input{position:absolute;width:1px;height:1px;opacity:0}.odl-disposal-fields>.task-upload>.icon{width:42px;height:42px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--green)}.odl-disposal-fields>.task-upload>span{display:grid;gap:3px;min-width:0}.odl-disposal-fields>.task-upload small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.odl-disposal-fields>.task-upload b{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--green);font-size:10px}.odl-disposal-fields>.task-upload.has-file{border-style:solid;border-color:var(--green);background:color-mix(in srgb,var(--green) 9%,var(--surface))}
.odl-report-filters{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(170px,.7fr) minmax(250px,1.2fr) auto;gap:14px;align-items:end;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--bg)}.odl-report-filters .field{display:grid;grid-template-rows:auto 48px auto;gap:7px}.odl-report-filters .btn{min-height:48px}.odl-report-list{display:grid;gap:9px;margin-top:16px}.odl-report-list>article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.odl-report-list>article>span{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:var(--tint);color:var(--green)}.odl-report-list article>div{display:grid;gap:3px}.odl-report-list small{color:var(--muted)}
@media(max-width:1366px){.odl-deck .odl-essential{grid-template-columns:minmax(150px,.55fr) minmax(280px,1.45fr)}.odl-deck .task-advanced{grid-template-columns:repeat(2,minmax(0,1fr))}.odl-deck .devices-field-reset{grid-column:1/-1}.odl-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.odl-report-filters{grid-template-columns:1fr 1fr}.odl-report-filters .field:nth-child(3){grid-column:1/-1}.odl-report-filters .btn{justify-self:end}}
@media(max-width:760px){.odl-head .head-actions{display:grid;grid-template-columns:1fr 1fr}.odl-deck .odl-essential{grid-template-columns:1fr}.odl-period{grid-template-columns:1fr}.odl-period>span{display:none}.odl-fields,.odl-disposal-fields{grid-template-columns:1fr}.odl-disposal-fields>*{grid-column:1!important}.task-lookup-row{grid-template-columns:minmax(0,1fr) 48px 48px}.task-lookup-row .btn{padding:0;font-size:0}.task-lookup-row .btn .icon{width:20px;height:20px}.odl-cards{grid-template-columns:1fr}.odl-report-filters{grid-template-columns:1fr;padding:12px}.odl-report-filters .field:nth-child(3){grid-column:auto}.odl-report-filters .btn{width:100%;justify-self:stretch}.odl-report-list>article{grid-template-columns:40px minmax(0,1fr)}.odl-report-list .btn{grid-column:1/-1;justify-content:center}#modal.odl-new-modal,#modal.odl-edit-modal,#modal.odl-disposal-modal,#modal.odl-reports-modal{width:100vw;max-width:none}.task-signature>canvas{height:150px}}

/* La griglia desktop non deve lasciare larghezze di colonna residue alle card articolo su telefono. */
@media(max-width:599px){
 .inventory-table{table-layout:fixed}
 .inventory-article-row{box-sizing:border-box;width:100%;min-width:0;grid-template-columns:44px 50px minmax(0,1fr) minmax(72px,auto);grid-template-areas:"tree photo serial stock" "tree photo description stock" "last last last last" "action action action action";grid-template-rows:auto auto auto auto;gap:4px 10px}
 .inventory-article-row>td{box-sizing:border-box;width:auto!important;min-width:0!important;max-width:none!important;padding:0!important;overflow-wrap:normal}
 .inventory-article-row .inventory-tree-cell{grid-area:tree;padding-top:2px!important}
 .inventory-article-row td:nth-child(2){grid-area:photo}
 .inventory-article-row .inventory-serial{grid-area:serial;align-self:end;padding-top:2px!important}
 .inventory-article-row .inventory-serial strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
 .inventory-article-row td:nth-child(4){grid-area:description;align-self:start;padding-bottom:1px!important}
 .inventory-article-row td:nth-child(4)>strong,.inventory-article-row td:nth-child(4)>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .inventory-article-row td:nth-child(4)>strong{color:var(--ink);font-size:12px}
 .inventory-article-row td:nth-child(7){grid-area:last;padding-top:10px!important}
 .inventory-article-row td:nth-child(8){grid-area:stock}
 .inventory-article-row .actions-cell{grid-area:action;justify-self:stretch;justify-content:flex-end;flex-wrap:wrap;margin-top:5px;padding-top:9px!important;border-top:1px solid var(--line)}
 .inventory-stock{font-size:17px}
 .inventory-history-mobile-card{box-sizing:border-box;cursor:default}
 .inventory-history-mobile-card:focus-within{border-color:color-mix(in srgb,var(--green) 30%,var(--line))}
 .inventory-history-mobile-open{min-height:44px;padding:0;border:0;background:transparent;cursor:pointer}
 .inventory-history-mobile-open:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 42%,transparent);outline-offset:2px}
}

/* Task / Sanificazione — coda operativa, raccolta mobile sul posto e verbalizzazione. */
.task-page{min-width:0}.task-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}.task-kpis>article{display:flex;align-items:center;gap:14px;padding:17px 18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--green) 3%,var(--surface)));box-shadow:0 12px 30px #17342b0b}.task-kpi-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px}.task-kpi-icon .icon{width:21px;height:21px}.task-kpi-icon.pending{color:#925d00;background:#fff1cf}.task-kpi-icon.done{color:var(--green);background:color-mix(in srgb,var(--green) 12%,var(--surface))}.task-kpi-icon.cancelled{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.task-kpis>article>div{display:grid;grid-template-columns:auto 1fr;align-items:end;gap:1px 10px}.task-kpis small{grid-column:1/-1;font-size:9px;font-weight:800;letter-spacing:.11em;color:var(--muted)}.task-kpis strong{font-size:24px;line-height:1;color:var(--ink)}.task-kpis span:last-child{font-size:11px;color:var(--muted)}
.task-deck .devices-deck-head>div:first-child p{margin:3px 0 0;color:var(--muted);font-size:11px}.task-deck-actions{display:flex;align-items:center;gap:10px}.task-deck .task-essential{grid-template-columns:minmax(190px,.66fr) minmax(270px,1fr) minmax(270px,1fr)}.task-deck .task-advanced{grid-template-columns:minmax(360px,1.45fr) minmax(180px,.65fr) minmax(230px,.8fr) minmax(120px,max-content)}.task-essential-select{min-width:0}.task-select-shell{position:relative;display:flex;align-items:center;min-width:0;height:48px;border:1px solid color-mix(in srgb,var(--green) 23%,var(--line));border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--green) 7%,var(--surface)),var(--surface));box-shadow:0 8px 20px #17342b0a,inset 0 1px rgba(255,255,255,.75);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.task-select-shell>.icon{position:absolute;left:14px;z-index:1;width:18px;height:18px;color:var(--green);pointer-events:none}.task-select-shell select{width:100%;height:100%;min-width:0;padding-left:44px;border:0;border-radius:inherit;background:transparent;box-shadow:none;font-weight:750;color:var(--ink);cursor:pointer}.task-select-shell:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 22%,transparent),0 10px 24px #17342b12}.task-select-shell:has(select:disabled){opacity:.64;background:var(--bg);box-shadow:none}.task-select-shell select:disabled{cursor:not-allowed}.task-table-panel{overflow:visible}.task-table-panel>.table-wrap{overflow:visible}.task-table{table-layout:fixed;width:100%}.task-table>thead{position:sticky;top:calc(var(--workspace-header-height,0px) + var(--devices-deck-height,0px));z-index:13;background:var(--surface)}.task-table th:nth-child(1){width:25%}.task-table th:nth-child(2){width:140px}.task-table th:nth-child(3){width:21%}.task-table th:nth-child(5){width:140px}.task-table th:nth-child(6){width:150px}.task-table td{vertical-align:middle}.task-table td>small,.task-device-cell small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.task-device-cell{display:flex;align-items:center;gap:11px}.task-device-cell>span:last-child{min-width:0}.task-device-cell strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.task-device-photo{box-sizing:border-box;width:50px;height:50px;min-width:50px;display:grid;place-items:center;padding:3px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,var(--surface),var(--tint));overflow:hidden}.task-device-photo.large{width:92px;height:92px;min-width:92px;border-radius:20px}.task-device-photo img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.task-device-photo .icon{width:22px;height:22px;color:var(--muted)}.task-photo-empty{border-style:dashed;background:color-mix(in srgb,var(--green) 5%,var(--surface))}.task-mobile-list{display:none}.task-row.task-annullato{opacity:.64}.task-empty{margin-top:18px}
.task-title-compact{display:none}.task-mobile-filter-toggle{display:none}.task-filter-count{display:grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--green);color:var(--surface);font-size:10px;font-variant-numeric:tabular-nums}.task-table tbody tr{box-shadow:inset 0 -1px var(--line)}.task-table tbody tr:last-child{box-shadow:none}.task-card{display:grid;gap:13px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 16px #17342b08}.task-card-top{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:10px;align-items:center}.task-card-top>div{display:grid;gap:2px;min-width:0}.task-card-top>div small{font-size:8px;letter-spacing:.1em;color:var(--green)}.task-card-top>div strong{font:800 13px ui-monospace,SFMono-Regular,Menlo,monospace}.task-card-top>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.task-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.task-card dl>div{display:grid;gap:3px}.task-card dl>.wide{grid-column:1/-1;padding-top:10px;border-top:1px solid var(--line)}.task-card dt{font-size:8px;font-weight:800;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.task-card dd{margin:0;font-size:11px;font-weight:700}.task-card dd small{display:block;margin-top:2px;color:var(--muted)}.task-card-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}
#modal.task-new-modal,#modal.task-report-modal,#modal.task-reports-modal{width:min(1040px,calc(100vw - 32px))}.task-form,.task-edit-form,.task-report-form,.task-reports-form{display:grid;gap:18px}.task-form-hero{margin-bottom:0}.task-lookup .field{display:grid;gap:8px}.task-lookup-control{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px}.task-lookup-control input{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;letter-spacing:.04em}.task-scanner{border-radius:18px;overflow:hidden}.task-scanner video{min-height:320px}.task-device-result>.empty{min-height:190px}.task-lookup-progress,.task-lookup-error{display:flex;align-items:center;justify-content:center;gap:12px;min-height:150px;padding:22px;border:1px dashed var(--line);border-radius:17px;background:var(--bg);color:var(--muted)}.task-lookup-error{justify-content:flex-start;min-height:88px;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 25%,var(--line));background:color-mix(in srgb,var(--danger) 5%,var(--surface))}.task-lookup-error>span{display:grid;gap:4px}.task-lookup-error small{color:var(--muted)}.task-found{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px;border:1px solid color-mix(in srgb,var(--green) 28%,var(--line));border-radius:19px;background:linear-gradient(120deg,color-mix(in srgb,var(--green) 10%,var(--surface)),var(--surface));box-shadow:0 14px 30px #17342b0c}.task-found-copy{min-width:0}.task-found-copy h3{margin:4px 0 2px;font:800 22px ui-monospace,SFMono-Regular,Menlo,monospace}.task-found-copy p{margin:0 0 10px;color:var(--muted)}.task-found-copy>span{display:flex;align-items:center;gap:6px;font-size:12px}.task-found-copy>span .icon{width:16px;height:16px;color:var(--green)}.task-work-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.task-system-field{display:grid;gap:5px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}.task-system-field small{font-size:9px;font-weight:800;letter-spacing:.11em;color:var(--muted)}.task-system-field strong{font-size:15px}.task-photo-field{display:grid;gap:8px}.task-photo-field>span{font-weight:800}.task-upload{position:relative}.task-upload>input{position:absolute;width:1px;height:1px;opacity:0}.task-upload>label{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:13px;align-items:center;min-height:72px;padding:11px 13px;border:1px dashed color-mix(in srgb,var(--green) 40%,var(--line));border-radius:15px;background:linear-gradient(120deg,color-mix(in srgb,var(--green) 7%,var(--surface)),var(--surface));cursor:pointer}.task-upload>input:focus-visible+label{outline:3px solid color-mix(in srgb,var(--green) 42%,transparent);outline-offset:2px}.task-upload label>span{width:46px;height:46px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));border-radius:13px;background:var(--surface);color:var(--green)}.task-upload label>div{display:grid;gap:4px;min-width:0}.task-upload label small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.task-upload label em{padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--green);font-size:10px;font-weight:800;font-style:normal}.task-upload.has-file>label{border-style:solid;border-color:var(--green);background:color-mix(in srgb,var(--green) 10%,var(--surface))}.task-upload.has-file label>span{color:white;background:var(--green)}
.task-edit-context{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--bg)}.task-edit-context>span:first-child{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;background:var(--tint);color:var(--green)}.task-edit-context>div{display:grid;gap:3px}.task-edit-context small{font-size:9px;letter-spacing:.11em;color:var(--muted)}.task-edit-context p{margin:0;color:var(--muted);font-size:11px}.task-remove-photo{display:flex;align-items:center;gap:9px;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:12px}.task-remove-photo input{width:20px;height:20px}.task-remove-photo span{display:flex;align-items:center;gap:7px;font-weight:700;color:var(--danger)}.task-cancel-form{display:grid;gap:18px}
.task-report-summary{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:15px;align-items:center;padding:17px;border:1px solid color-mix(in srgb,var(--green) 25%,var(--line));border-radius:17px;background:linear-gradient(120deg,color-mix(in srgb,var(--green) 10%,var(--surface)),var(--surface))}.task-report-summary>span:first-child{width:52px;height:52px;display:grid;place-items:center;border-radius:14px;background:var(--green);color:white}.task-report-summary>div{display:grid;gap:3px}.task-report-summary small{font-size:9px;font-weight:800;letter-spacing:.11em;color:var(--green)}.task-report-summary p{margin:0;color:var(--muted);font-size:11px}.task-report-list{display:grid;max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:15px;background:var(--bg)}.task-report-list>article{display:grid;grid-template-columns:40px minmax(0,1fr) 24px;gap:10px;align-items:center;padding:11px 14px;border-bottom:1px solid var(--line)}.task-report-list>article:last-child{border:0}.task-report-list>article>span{font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--green)}.task-report-list article>div{display:grid;gap:3px}.task-report-list small{color:var(--muted);font-size:10px}.task-report-list .icon{color:var(--green)}.task-report-fields{gap:16px}.task-signature{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 14px;padding:16px;border:1px solid var(--line);border-radius:16px}.task-signature legend{padding:0 7px;font-weight:800}.task-signature-pad{position:relative;grid-column:1/-1;height:170px;border:1px dashed color-mix(in srgb,var(--green) 40%,var(--line));border-radius:14px;background:linear-gradient(#fff,#fbfdfc);overflow:hidden;touch-action:none}.task-signature-pad canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none}.task-signature-pad>span{position:absolute;left:0;right:0;bottom:14px;text-align:center;color:#768b84;font-size:10px;pointer-events:none}.task-signature>.btn{justify-self:end}
.task-report-query{padding:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--green) 5%,var(--surface)),var(--surface));box-shadow:0 10px 28px #17342b09}.task-report-query-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding-bottom:15px;border-bottom:1px solid var(--line)}.task-report-query-head>div{display:grid;gap:3px}.task-report-query-head small{font-size:9px;font-weight:800;letter-spacing:.11em;color:var(--green)}.task-report-query-head strong{font-size:16px}.task-report-query-head p{margin:0;color:var(--muted);font-size:11px}.task-report-query-head>.btn{flex:0 0 auto}.task-report-filters{display:grid;grid-template-columns:minmax(390px,1.55fr) minmax(210px,1fr) minmax(210px,1fr);gap:16px;align-items:start}.task-report-filters .devices-field,.task-report-filters .field{display:grid;grid-template-rows:auto 48px auto;gap:7px;align-items:start}.task-report-filters .devices-period{min-height:48px}.task-report-filters input,.task-report-filters select{min-height:48px}.task-report-results{min-height:220px}.task-report-results-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--muted);font-size:11px}.task-report-results-head strong{color:var(--ink);font-size:13px}.task-report-grid{display:grid;gap:9px}.task-report-grid>article{display:grid;grid-template-columns:90px minmax(0,1fr) 70px auto;gap:14px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.task-report-id{font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--green)}.task-report-grid article>div{display:grid;gap:3px}.task-report-grid article small{color:var(--muted);font-size:10px}.task-report-count{display:grid;text-align:center;font-size:17px;font-weight:800}.task-report-count small{font-size:8px;text-transform:uppercase;letter-spacing:.1em}
@media(max-width:1024px){.task-page,.task-page>*,.task-deck,.task-table-panel{box-sizing:border-box;width:100%;max-width:100%;min-width:0}.task-deck .devices-deck-head,.task-deck-actions{min-width:0}.task-deck .task-essential{grid-template-columns:minmax(150px,.62fr) repeat(2,minmax(210px,1fr))}.task-deck .task-advanced{grid-template-columns:repeat(2,minmax(0,1fr))}.task-table-panel>.table-wrap{display:none}.task-mobile-list{display:grid;gap:10px;padding:10px}.task-card{display:grid;gap:13px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 16px #17342b08}.task-card-top{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:10px;align-items:center}.task-card-top>div{display:grid;gap:2px;min-width:0}.task-card-top>div small{font-size:8px;letter-spacing:.1em;color:var(--green)}.task-card-top>div strong{font:800 13px ui-monospace,SFMono-Regular,Menlo,monospace}.task-card-top>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.task-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.task-card dl>div{display:grid;gap:3px}.task-card dl>.wide{grid-column:1/-1;padding-top:10px;border-top:1px solid var(--line)}.task-card dt{font-size:8px;font-weight:800;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.task-card dd{margin:0;font-size:11px;font-weight:700}.task-card dd small{display:block;margin-top:2px;color:var(--muted)}.task-card-actions{display:flex;justify-content:flex-end;gap:7px}.task-report-filters{grid-template-columns:1fr 1fr}.task-report-filters>.devices-field-period{grid-column:1/-1}}
@media(max-width:599px){.task-page .page-head .head-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.task-page .page-head .head-actions .btn{justify-content:center}.task-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.task-kpis>article{display:grid;justify-items:center;gap:7px;padding:11px 5px;text-align:center}.task-kpi-icon{width:38px;height:38px}.task-kpis>article>div{display:grid;justify-items:center;gap:2px}.task-kpis span:last-child{display:none}.task-kpis small{font-size:7px}.task-kpis strong{font-size:19px}.task-deck .devices-deck-head{align-items:flex-start}.task-deck .devices-deck-head>div:first-child p{display:none}.task-deck-actions .devices-count-pill{display:none}.task-deck .task-primary,.task-deck .task-secondary{grid-template-columns:1fr 1fr;gap:8px}.task-deck .task-search,.task-deck .devices-field-period,.task-deck .devices-field-reset{grid-column:1/-1}.task-table-panel>.table-wrap{display:none}.task-mobile-list{display:grid;gap:10px;padding:10px}.task-card{display:grid;gap:13px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 16px #17342b08}.task-card-top{display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:10px;align-items:center}.task-card-top>div{display:grid;gap:2px;min-width:0}.task-card-top>div small{font-size:8px;letter-spacing:.1em;color:var(--green)}.task-card-top>div strong{font:800 13px ui-monospace,SFMono-Regular,Menlo,monospace}.task-card-top>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.task-card dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.task-card dl>div{display:grid;gap:3px}.task-card dl>.wide{grid-column:1/-1;padding-top:10px;border-top:1px solid var(--line)}.task-card dt{font-size:8px;font-weight:800;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.task-card dd{margin:0;font-size:11px;font-weight:700}.task-card dd small{display:block;margin-top:2px;color:var(--muted)}.task-card-actions{display:flex;justify-content:flex-end;gap:7px}#modal.task-new-modal,#modal.task-report-modal,#modal.task-reports-modal{width:100vw;max-width:none}.task-lookup-control{grid-template-columns:1fr 48px 48px}.task-lookup-control .btn{padding:0;font-size:0}.task-lookup-control .btn .icon{width:20px;height:20px}.task-found{grid-template-columns:66px minmax(0,1fr);gap:12px;padding:13px}.task-found>.badge{grid-column:1/-1;justify-self:start}.task-device-photo.large{width:64px;height:64px;min-width:64px}.task-found-copy h3{font-size:17px}.task-found-copy p{font-size:10px}.task-found-copy>span{display:block;font-size:10px}.task-work-fields{grid-template-columns:1fr}.task-work-fields .span-two{grid-column:auto}.task-upload>label{grid-template-columns:42px minmax(0,1fr)}.task-upload label em{display:none}.task-report-summary{grid-template-columns:46px minmax(0,1fr);padding:13px}.task-report-summary>span:first-child{width:44px;height:44px}.task-report-summary>.badge{grid-column:1/-1;justify-self:start}.task-report-list{max-height:200px}.task-report-fields{grid-template-columns:1fr}.task-signature-pad{height:150px}.task-report-filters{grid-template-columns:1fr;padding:12px}.task-report-filters>.devices-field-period{grid-column:auto}.task-report-grid>article{grid-template-columns:1fr auto;gap:8px}.task-report-id{grid-column:1}.task-report-grid article>div{grid-column:1}.task-report-count{grid-column:2;grid-row:1/3}.task-report-grid .btn{grid-column:1/-1;justify-content:center}}

/* Task: adattamento operativo definitivo per telefono e tablet. */
@media(max-width:1366px){
 .task-page,.task-page>*,.task-deck,.task-table-panel{box-sizing:border-box;width:100%;max-width:100%;min-width:0}
 .task-deck .devices-deck-head,.task-deck-actions{min-width:0}
 .task-deck .task-essential{grid-template-columns:minmax(150px,.62fr) repeat(2,minmax(210px,1fr))}.task-deck .task-advanced{grid-template-columns:repeat(2,minmax(0,1fr))}
 .task-table-panel>.table-wrap{display:none}.task-mobile-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px}
 .task-card{min-width:0}.task-card-top>div strong,.task-card-top>div span{overflow-wrap:anywhere}
 .task-report-filters{grid-template-columns:1fr 1fr}.task-report-filters>.devices-field-period{grid-column:1/-1}
}
@media(max-width:760px){.task-mobile-list{grid-template-columns:1fr}}
@media(max-width:1366px){
 .task-deck{padding:12px 14px;margin-bottom:12px}
 .task-deck .devices-deck-head{grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:8px;align-items:center}
 .task-deck .devices-deck-head>div:first-child p{display:none}
 .task-deck-actions{gap:6px}.task-deck-actions>.btn{padding-inline:10px}.task-mobile-filter-toggle{display:inline-flex}
 .task-deck .devices-deck-controls{gap:8px}.task-deck .task-essential{display:grid;grid-template-columns:minmax(145px,.58fr) repeat(2,minmax(190px,1fr));gap:10px}.task-deck .task-advanced{grid-template-columns:repeat(2,minmax(0,1fr))}
 .task-deck:not(.mobile-filters-open) .task-advanced{display:none}
 .task-deck.mobile-filters-open .task-advanced{display:grid}
 .task-deck.mobile-filters-open .devices-field-period{grid-column:1/-1}
 .task-deck .task-search>small{display:none}.task-deck .devices-field label,.task-deck .devices-field>span{font-size:9px}
}
@media(max-width:599px){
 .task-title-full{display:none}.task-title-compact{display:inline}
 .task-deck-actions .devices-count-pill{display:none}
 .task-deck .task-essential{grid-template-columns:1fr 1fr}.task-deck .task-search{grid-column:1/-1}.task-deck .task-advanced{grid-template-columns:1fr}
 /* Sul telefono Matricola, Struttura e Reparto restano sempre raggiungibili, ma la fascia non consuma
    il primo schermo: le label rimangono nomi accessibili e vengono soltanto nascoste visivamente. */
 .task-deck .task-essential .devices-field{grid-template-rows:44px;row-gap:0}
 .task-deck .task-essential .task-essential-select{grid-template-rows:48px}
 .task-deck .task-essential .devices-field>label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
 .task-deck .task-essential .devices-field>small{display:none}
 .odl-title-full{display:none}.odl-title-compact{display:inline}
 .task-deck.odl-deck .odl-essential{grid-template-columns:minmax(0,1fr)}
 .task-report-query{padding:13px}.task-report-query-head{align-items:flex-start;margin-bottom:14px;padding-bottom:13px}.task-report-query-head p{display:none}.task-report-query-head>.btn{padding-inline:11px}
 .task-report-filters{grid-template-columns:1fr;padding:0;gap:13px}.task-report-filters>.devices-field-period{grid-column:auto}.task-report-filters .devices-period{grid-template-columns:1fr;gap:7px}.task-report-filters .devices-period-sep{height:0;overflow:hidden}
 .task-report-filters .devices-field,.task-report-filters .field{grid-template-rows:auto auto auto}.task-report-results{min-height:160px}
}

/* Warehouse continuity: column meaning remains visible while long grids are read. */
@media(min-width:801px) and (min-height:521px),(min-width:1025px){
 .warehouse-family-table th,.serials-table th{position:sticky;top:0;z-index:12;background:var(--bg);box-shadow:inset 0 -1px var(--line)}
}
@media(min-width:1151px){.warehouse-families,.serials-panel,.warehouse-table-wrap,.serials-table-wrap{overflow:visible}}
@media(min-width:801px) and (min-height:521px),(min-width:1025px) and (max-width:1150px){.warehouse-table-wrap,.serials-table-wrap{max-height:calc(100dvh - 170px);overflow:auto;overscroll-behavior:contain}}

/* Orders mobile: fixed context, compact fixed filters and a fixed column legend above the cards. */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .orders-page{padding-inline:0}
 .orders-page>.page-head,.orders-page>.selection-bar,.orders-page>#selection{margin-inline:16px}
 .orders-page .orders-workspace{overflow:visible;border-inline:0;border-radius:0}
 .orders-page .orders-control-deck{position:sticky;top:var(--workspace-header-height,86px);z-index:24;background:var(--surface);box-shadow:0 1px 0 var(--line),0 3px 9px #18332b08}
 .orders-page .orders-control-deck .tabs{scrollbar-width:none}
 .orders-page .orders-control-deck .tabs::-webkit-scrollbar{display:none}
 .orders-page .orders-control-deck .order-filters{padding-block:10px}
 .orders-page .orders-control-deck .order-filters label{font-size:9px}
 .orders-page .orders-control-deck .filter-auto-status{min-height:38px;padding-block:5px}
 .orders-page .orders-control-deck .filter-actions>.btn{min-height:38px}
 .orders-page .orders-mobile-headings{position:sticky;top:calc(var(--workspace-header-height,86px) + var(--orders-control-height,250px));z-index:23;display:grid;grid-template-columns:1.05fr 1fr .8fr .85fr .55fr;gap:5px;padding:9px 12px;border-block:1px solid var(--line);background:var(--bg);box-shadow:0 2px 6px #18332b08;color:var(--muted);font-size:7px;font-weight:700;letter-spacing:.45px;text-transform:uppercase}
 .orders-page .orders-mobile-headings span:nth-child(n+3){text-align:center}
 .orders-page .orders-table-wrap{padding-top:0}
 .orders-table.responsive tbody>tr{box-shadow:0 2px 8px #18332b08}
}

/* Premium, auditable history for a single serial number. */
.product-history-modal{width:min(850px,calc(100% - 24px));max-width:850px}.product-history-modal .modal-header{background:linear-gradient(135deg,var(--surface),var(--tint))}.product-history-modal .modal-content{padding:0}.product-history-modal .form-error{margin:20px 24px 0}.product-history-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:25px 28px;background:linear-gradient(145deg,var(--nav),#12504b);color:#fff}.product-history-hero .eyebrow{color:#8ee2c1}.product-history-hero h3{margin:5px 0 0;font:700 clamp(22px,3vw,30px) ui-monospace,monospace;letter-spacing:-.7px}.product-history-hero p{margin:3px 0 0;color:#bad5cf;font-size:10px}.product-history-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line);background:var(--surface)}.product-history-metrics>div{padding:17px 21px;border-right:1px solid var(--line)}.product-history-metrics>div:last-child{border:0}.product-history-metrics small,.product-history-metrics strong{display:block}.product-history-metrics small{color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.7px}.product-history-metrics strong{margin-top:5px;font-size:16px;font-variant-numeric:tabular-nums}.product-history-section{padding:25px 28px}.product-history-section.audit{padding-top:0}.product-history-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.product-history-heading h3{margin:4px 0 0;font-size:17px}.product-history-heading>p{max-width:300px;margin:0;color:var(--muted);font-size:10px;text-align:right}.movement-history-list{position:relative;display:grid;gap:12px;margin:0;padding:0;list-style:none}.movement-history-list::before{content:"";position:absolute;left:18px;top:24px;bottom:24px;width:1px;background:var(--line)}.movement-history-item{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:13px}.movement-history-marker{z-index:1;width:38px;height:38px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--green) 30%,var(--line));border-radius:12px;background:var(--surface);color:var(--green);box-shadow:0 5px 14px #18332b0c}.movement-history-marker .icon{width:17px}.movement-history-item.blue .movement-history-marker{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 28%,var(--line))}.movement-history-item.red .movement-history-marker{color:var(--red);border-color:color-mix(in srgb,var(--red) 28%,var(--line))}.movement-history-item>article{padding:15px 17px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--bg) 50%,var(--surface))}.movement-history-item article>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.movement-history-item header small{display:block;color:var(--green);font-size:7px;font-weight:700;letter-spacing:.7px}.movement-history-item header h4{margin:3px 0 0;font-size:12px}.movement-history-item time{color:var(--muted);font-size:9px;white-space:nowrap}.movement-practice{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.movement-practice span{min-width:0}.movement-practice small,.movement-practice strong{display:block}.movement-practice small{color:var(--muted);font-size:7px;letter-spacing:.6px}.movement-practice strong{margin-top:2px;font-size:10px;overflow-wrap:anywhere}.movement-origin{display:flex;align-items:center;gap:7px;margin:12px 0 0;padding-top:11px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.movement-origin .icon{width:15px}.history-empty{display:flex;align-items:center;justify-content:center;gap:13px;min-height:125px;padding:20px;border:1px dashed var(--line);border-radius:13px;color:var(--muted);text-align:left}.history-empty .icon{width:26px}.history-empty strong{display:block;color:var(--ink);font-size:12px}.history-empty p{margin:3px 0 0;font-size:10px}.product-history-section.audit .timeline{margin-bottom:0}.product-history-modal .modal-footer{position:sticky;bottom:0;margin:0;padding:15px 28px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(10px)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.product-history-modal{width:calc(100% - 16px);max-height:96dvh;border-radius:17px}.product-history-modal .modal-header{padding:16px}.product-history-hero{padding:20px 17px}.product-history-metrics>div{padding:13px 10px}.product-history-metrics small{font-size:7px}.product-history-metrics strong{font-size:13px}.product-history-section{padding:20px 16px}.product-history-section.audit{padding-top:0}.product-history-heading{display:block}.product-history-heading>p{margin-top:6px;text-align:left}.movement-history-item{grid-template-columns:34px minmax(0,1fr);gap:9px}.movement-history-list::before{left:16px}.movement-history-marker{width:34px;height:34px}.movement-history-item>article{padding:13px}.movement-history-item article>header{display:block}.movement-history-item time{display:block;margin-top:5px}.movement-practice{grid-template-columns:86px minmax(0,1fr)}.product-history-modal .modal-footer{padding:12px 16px}.product-history-modal .modal-footer .btn{width:100%;min-height:48px}}

/* Mobile operational controls: progressive disclosure keeps long lists readable. */
.order-mobile-primary,.order-advanced-filters{display:contents}.order-filter-trigger{display:none;position:relative}.order-filter-count{position:absolute;right:-5px;top:-6px;min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;border:2px solid var(--surface);border-radius:999px;background:var(--red);color:#fff;font-size:9px;font-weight:800;line-height:1}.order-filter-count[hidden]{display:none}
.order-filter-modal{width:min(640px,calc(100% - 24px));max-width:640px}.order-filter-modal .modal-header{background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--tint) 72%,var(--surface)))}.order-filter-sheet-intro{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:start;padding:17px;border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));border-radius:14px;background:linear-gradient(145deg,var(--tint),var(--surface))}.order-filter-sheet-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:var(--green);color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--green) 24%,transparent)}.order-filter-sheet-icon .icon{width:22px;height:22px}.order-filter-sheet-intro h3{margin:4px 0 5px;font-size:18px}.order-filter-sheet-intro p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.order-filter-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.order-filter-sheet-grid .filter-control,.order-filter-sheet-grid .date-control{width:auto}.order-filter-sheet-grid label{display:block;margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:700}.order-filter-sheet-summary{display:flex;align-items:center;gap:10px;margin-top:20px}.order-filter-sheet-summary .filter-auto-status{flex:1;justify-content:center}.order-filter-modal .modal-footer{position:sticky;bottom:-24px;margin:22px -24px -24px;padding:15px 24px;border-top:1px solid var(--line);background:var(--surface)}
.warehouse-control-deck>.warehouse-search{overflow:hidden;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px}.op-warehouse-search{padding:18px 24px 0;background:var(--surface)}.op-warehouse-search .field{margin-bottom:0}.op-warehouse-intro{padding-top:14px}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .orders-page .orders-control-deck .order-filters{display:block;padding:9px 12px 11px}
 .orders-page .orders-control-deck .tabs{gap:19px;scroll-snap-type:x proximity;overscroll-behavior-x:contain}
 .orders-page .orders-control-deck .tab{scroll-snap-align:start}
 .order-mobile-primary{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:9px;align-items:end}
 .order-mobile-primary .search{min-width:0}
 .order-mobile-primary .search label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .order-mobile-primary .search>.icon{bottom:14px}
 .order-filter-trigger{display:inline-flex;width:48px;height:48px;min-height:48px;border-radius:12px;box-shadow:0 7px 18px color-mix(in srgb,var(--green) 19%,transparent)}
 .order-filter-trigger .icon{width:21px;height:21px}
 .orders-page .order-advanced-filters,.orders-page .order-filters>.filter-actions{display:none}
 .orders-page .orders-mobile-headings{display:none}
 .orders-page .orders-table-wrap{padding-top:4px}
 .order-filter-modal{position:fixed;inset:auto 0 0!important;width:100%;max-width:none;max-height:88dvh;margin:0 auto!important;border-radius:24px 24px 0 0;border-bottom:0}
 .order-filter-modal[open]{animation:order-sheet-in .2s cubic-bezier(.22,.8,.3,1)}
 .order-filter-modal .modal-header{position:sticky;top:0;z-index:3;padding:17px 18px;background:var(--surface)}
 .order-filter-modal .modal-header h2{font-size:18px}
 .order-filter-modal .modal-content{max-height:calc(88dvh - 72px);overflow:auto;padding:16px 18px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain}
 .order-filter-sheet-intro{grid-template-columns:42px minmax(0,1fr);gap:11px;padding:14px}
 .order-filter-sheet-icon{width:42px;height:42px;border-radius:12px}
 .order-filter-sheet-intro h3{font-size:16px}
 .order-filter-sheet-grid{grid-template-columns:1fr;gap:13px;margin-top:16px}
 .order-filter-sheet-grid input,.order-filter-sheet-grid select{font-size:16px}
 .order-filter-sheet-summary{align-items:stretch;flex-direction:column}
 .order-filter-sheet-summary .filter-auto-status{width:100%;min-height:42px;white-space:normal;text-align:center}
 .order-filter-sheet-summary .order-filter-reset{width:100%}
 .order-filter-modal .modal-footer{bottom:calc(-16px - env(safe-area-inset-bottom));margin:18px -18px calc(-16px - env(safe-area-inset-bottom));padding:12px 18px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -10px 25px #18332b0d}
 .order-filter-modal .modal-footer .btn{flex:1;min-height:48px}
 .warehouse-page .warehouse-control-deck{display:contents}
 .warehouse-page .warehouse-grid-controls{margin-bottom:0}
 .warehouse-page .warehouse-control-deck>.warehouse-search{border-radius:0;border-inline:0}
 .warehouse-mobile-search-deck{position:sticky;top:var(--workspace-header-height,74px);z-index:23;margin-inline:-16px;padding:10px 16px;background:var(--surface);border-block:1px solid var(--line);box-shadow:0 4px 12px #18332b0a}
 .warehouse-mobile-search-deck.warehouse-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:14px}
 .warehouse-mobile-search-deck.warehouse-search .search{margin:0;min-width:0}
 .warehouse-mobile-search-deck .warehouse-match-count{margin:0;padding:0;color:var(--green);font-size:9px}
 .op-warehouse-panel{overflow:visible}
 .op-warehouse-search.warehouse-mobile-search-deck{margin:0 -1px;padding:10px 16px}
 .op-warehouse-search .field{gap:5px;font-size:9px}
 .op-warehouse-intro{padding-top:14px}
}
@keyframes order-sheet-in{from{opacity:.35}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.order-filter-modal[open]{animation:none}.order-filter-trigger{transition:none}}

/* Rettifica del corpo ritiro: editing chiaro, reversibile nel modal e auditabile al salvataggio. */
.return-lines-panel-head{align-items:center}.return-lines-head-actions{display:flex;align-items:center;gap:12px}.return-lines-editor-modal{width:min(860px,calc(100% - 24px));max-width:860px}.return-lines-editor-modal .modal-header{position:sticky;top:0;z-index:4;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--tint) 72%,var(--surface)));box-shadow:0 1px 0 var(--line)}.return-lines-editor-modal .modal-content{padding:24px 26px}.return-lines-editor-intro{display:grid;grid-template-columns:52px minmax(0,1fr);gap:15px;padding:18px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:16px;background:linear-gradient(145deg,var(--tint),var(--surface))}.return-lines-editor-intro>.icon{width:52px;height:52px;padding:14px;border-radius:14px;background:var(--green);color:#fff;box-shadow:0 9px 24px color-mix(in srgb,var(--green) 25%,transparent)}.return-lines-editor-intro h3{margin:4px 0 5px;font-size:19px}.return-lines-editor-intro p{max-width:670px;margin:0;color:var(--muted);font-size:11px;line-height:1.55}.return-lines-editor{display:grid;gap:10px;margin-top:18px}.return-line-edit-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:11px;align-items:end;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .16s ease,background .16s ease,opacity .16s ease}.return-line-edit-row:focus-within{border-color:color-mix(in srgb,var(--green) 52%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 11%,transparent)}.return-line-edit-row.removed{border-style:dashed;background:color-mix(in srgb,var(--red-bg) 35%,var(--surface));opacity:.76}.return-line-edit-row.locked{background:color-mix(in srgb,var(--tint) 45%,var(--surface))}.return-line-edit-index{align-self:center;width:32px;height:32px;display:grid;place-items:center;border-radius:10px;background:var(--tint);color:var(--green);font-size:11px;font-weight:800;font-variant-numeric:tabular-nums}.return-line-edit-row label{min-width:0;color:var(--muted);font-size:9px;font-weight:700}.return-line-edit-row input{width:100%;margin-top:6px;min-height:44px}.return-line-edit-row.removed input{text-decoration:line-through}.return-line-edit-state{align-self:center}.return-line-edit-row>.btn{min-height:44px;min-width:108px}.return-line-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:11px;align-items:end;margin-top:18px;padding:15px;border:1px dashed color-mix(in srgb,var(--green) 38%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--tint) 35%,var(--surface))}.return-line-add .field{margin:0}.return-line-add>.btn{min-height:48px}.return-lines-reason{margin-top:19px}.return-lines-reason textarea{min-height:90px}.return-lines-editor-modal .return-audit-note{margin-top:15px}.return-lines-editor-modal .modal-footer{position:sticky;bottom:-24px;z-index:3;margin:22px -26px -24px;padding:15px 26px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(10px)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.return-lines-panel-head{align-items:flex-start}.return-lines-head-actions{align-items:flex-end;flex-direction:column;gap:7px}.return-lines-head-actions .btn{min-height:44px}.return-lines-editor-modal{position:fixed;inset:auto 0 0!important;width:100%;max-width:none;max-height:94dvh;margin:0!important;border-radius:24px 24px 0 0;border-bottom:0}.return-lines-editor-modal .modal-header{padding:17px 18px}.return-lines-editor-modal .modal-content{max-height:calc(94dvh - 72px);overflow:auto;padding:16px 16px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain}.return-lines-editor-intro{grid-template-columns:44px minmax(0,1fr);gap:11px;padding:14px}.return-lines-editor-intro>.icon{width:44px;height:44px;padding:12px}.return-lines-editor-intro h3{font-size:16px}.return-line-edit-row{grid-template-columns:32px minmax(0,1fr);align-items:center;padding:12px}.return-line-edit-index{grid-row:1 / span 2}.return-line-edit-state{grid-column:2}.return-line-edit-row>.btn{grid-column:1 / -1;width:100%;min-height:46px}.return-line-add{grid-template-columns:1fr;padding:13px}.return-line-add>.btn{width:100%}.return-lines-editor-modal .modal-footer{bottom:calc(-16px - env(safe-area-inset-bottom));margin:18px -16px calc(-16px - env(safe-area-inset-bottom));padding:12px 16px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -10px 25px #18332b0d}.return-lines-editor-modal .modal-footer .btn{flex:1;min-height:48px}}
@media(prefers-reduced-motion:reduce){.return-line-edit-row{transition:none}}

/* Registrazione contatto AM: esiti rapidi, significato operativo esplicito e anteprima audit. */
.contact-register-modal{width:min(760px,calc(100% - 24px));max-width:760px}.contact-register-modal .modal-header{position:sticky;top:0;z-index:4;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--tint) 72%,var(--surface)));box-shadow:0 1px 0 var(--line)}.contact-register-modal .modal-content{padding:24px 26px}.contact-register-intro{display:grid;grid-template-columns:54px minmax(0,1fr);gap:15px;align-items:center;padding:17px 19px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:16px;background:linear-gradient(145deg,var(--tint),var(--surface))}.contact-register-intro>.icon{width:54px;height:54px;padding:15px;border-radius:15px;background:linear-gradient(145deg,var(--green),#07655d);color:#fff;box-shadow:0 10px 26px color-mix(in srgb,var(--green) 25%,transparent)}.contact-register-intro h3{margin:3px 0 6px;font-size:19px}.contact-register-intro p{display:flex;align-items:center;gap:7px;margin:0;color:var(--muted);font-size:11px}.contact-register-intro p .icon{width:15px;height:15px;color:var(--green)}.contact-quick-options{display:grid;gap:10px;margin:20px 0 0;padding:0;border:0}.contact-quick-options legend{margin-bottom:10px;font-size:11px;font-weight:800;color:var(--ink)}.contact-quick-options>label{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 24px;gap:13px;align-items:center;min-height:76px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.contact-quick-options>label:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line));transform:translateY(-1px)}.contact-quick-options input{position:absolute;opacity:0;pointer-events:none}.contact-quick-options label:has(input:checked){border-color:var(--green);background:linear-gradient(135deg,var(--tint),var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 11%,transparent)}.contact-quick-options label:focus-within{outline:3px solid color-mix(in srgb,var(--green) 34%,transparent);outline-offset:2px}.contact-option-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--tint);color:var(--green)}.contact-option-icon.pending{background:#fff7e7;color:#a46600}.contact-option-icon.warning{background:var(--red-bg);color:var(--red)}.contact-option-icon.delivery{background:#edf7f6;color:#0b756c}.contact-quick-options strong,.contact-quick-options small{display:block}.contact-quick-options strong{font-size:12px}.contact-quick-options small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.45}.contact-choice{width:22px;height:22px;display:grid;place-items:center;border:2px solid var(--line);border-radius:50%;color:transparent}.contact-choice .icon{width:13px;height:13px}.contact-quick-options label:has(input:checked) .contact-choice{border-color:var(--green);background:var(--green);color:#fff}.contact-register-fields{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(0,1.2fr);gap:14px;margin-top:18px}.contact-register-fields .field{margin:0}.contact-register-fields input,.contact-register-fields textarea{margin-top:7px}.contact-register-fields textarea{min-height:82px;resize:vertical}.contact-date-field[hidden]{display:none}.contact-register-fields:has(.contact-date-field[hidden]){grid-template-columns:1fr}.contact-preview{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;align-items:start;margin-top:18px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:13px;background:var(--tint);color:var(--green)}.contact-preview.pending{border-color:#efd9a9;background:#fff9ec;color:#946000}.contact-preview.delivery-attempt{border-color:color-mix(in srgb,var(--green) 32%,var(--line));background:linear-gradient(135deg,#edf7f6,var(--surface));color:#0b756c}.contact-preview-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,currentColor 11%,transparent)}.contact-preview-icon .icon{width:19px;height:19px}.contact-preview small,.contact-preview strong,.contact-preview span{display:block}.contact-preview small{font-size:8px;font-weight:800;letter-spacing:.65px}.contact-preview strong{margin-top:4px;color:var(--ink);font-size:11px;line-height:1.5}.contact-preview div>span{margin-top:5px;font-size:9px;font-weight:700}.contact-register-modal .modal-footer{position:sticky;bottom:-24px;z-index:3;margin:22px -26px -24px;padding:15px 26px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 95%,transparent);backdrop-filter:blur(10px)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.contact-register-modal{position:fixed;inset:auto 0 0!important;width:100%;max-width:none;max-height:94dvh;margin:0!important;border-radius:24px 24px 0 0;border-bottom:0}.contact-register-modal .modal-header{padding:17px 18px}.contact-register-modal .modal-content{max-height:calc(94dvh - 72px);overflow:auto;padding:15px 16px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain}.contact-register-intro{grid-template-columns:45px minmax(0,1fr);padding:14px}.contact-register-intro>.icon{width:45px;height:45px;padding:12px}.contact-register-intro h3{font-size:16px}.contact-quick-options>label{grid-template-columns:38px minmax(0,1fr) 22px;gap:10px;min-height:72px;padding:12px}.contact-option-icon{width:38px;height:38px}.contact-register-fields{grid-template-columns:1fr}.contact-register-fields input,.contact-register-fields textarea{font-size:16px}.contact-preview{padding:13px}.contact-register-modal .modal-footer{bottom:calc(-15px - env(safe-area-inset-bottom));margin:18px -16px calc(-15px - env(safe-area-inset-bottom));padding:12px 16px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -10px 25px #18332b0d}.contact-register-modal .modal-footer .btn{flex:1;min-height:48px}}
@media(prefers-reduced-motion:reduce){.contact-quick-options>label{transition:none}}

/* Dati assistito: azioni contestuali e motivazione intelligente delle modifiche. */
.assistant-data-head{align-items:center}.assistant-data-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.request-edit-modal{width:min(780px,calc(100% - 24px));max-width:780px}.request-edit-modal .modal-header{position:sticky;top:0;z-index:4;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--tint) 72%,var(--surface)));box-shadow:0 1px 0 var(--line)}.request-edit-modal .modal-content{padding:24px 26px}.request-edit-intro{display:grid;grid-template-columns:52px minmax(0,1fr);gap:15px;align-items:center;padding:17px 18px;margin-bottom:20px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:16px;background:linear-gradient(145deg,var(--tint),var(--surface))}.request-edit-intro>.icon{width:52px;height:52px;padding:14px;border-radius:14px;background:var(--green);color:#fff;box-shadow:0 9px 24px color-mix(in srgb,var(--green) 24%,transparent)}.request-edit-intro h3{margin:4px 0 5px;font-size:18px}.request-edit-intro p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.request-edit-grid{gap:14px}.request-edit-modal>.modal-content>.field{margin-top:16px}.request-edit-reason textarea{min-height:82px}.request-edit-rule{display:flex;align-items:flex-start;gap:11px;margin-top:14px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--muted)}.request-edit-rule.required{border-color:#efd09a;background:#fff8e9;color:#9a6200}.request-edit-rule.notes-only{border-color:color-mix(in srgb,var(--green) 24%,var(--line));background:var(--tint);color:var(--green)}.request-edit-rule>.icon{width:20px;height:20px;flex:0 0 auto}.request-edit-rule strong,.request-edit-rule small{display:block}.request-edit-rule strong{color:var(--ink);font-size:10px}.request-edit-rule small{margin-top:3px;font-size:9px;line-height:1.45}.request-edit-document-note{display:flex;align-items:flex-start;gap:9px;margin:14px 0 0;padding:12px;color:var(--muted);font-size:9px;line-height:1.5}.request-edit-document-note .icon{width:17px;height:17px;flex:0 0 auto;color:var(--green)}.request-edit-modal .modal-footer{position:sticky;bottom:-24px;z-index:3;margin:22px -26px -24px;padding:15px 26px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 95%,transparent);backdrop-filter:blur(10px)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.assistant-data-head{align-items:flex-start}.assistant-data-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.assistant-data-actions .btn{width:100%;min-height:44px}.request-edit-modal{position:fixed;inset:auto 0 0!important;width:100%;max-width:none;max-height:94dvh;margin:0!important;border-radius:24px 24px 0 0;border-bottom:0}.request-edit-modal .modal-header{padding:17px 18px}.request-edit-modal .modal-content{max-height:calc(94dvh - 72px);overflow:auto;padding:15px 16px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain}.request-edit-intro{grid-template-columns:44px minmax(0,1fr);gap:11px;padding:14px}.request-edit-intro>.icon{width:44px;height:44px;padding:12px}.request-edit-intro h3{font-size:15px}.request-edit-grid{grid-template-columns:1fr}.request-edit-modal input,.request-edit-modal textarea{font-size:16px}.request-edit-modal .modal-footer{bottom:calc(-15px - env(safe-area-inset-bottom));margin:18px -16px calc(-15px - env(safe-area-inset-bottom));padding:12px 16px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -10px 25px #18332b0d}.request-edit-modal .modal-footer .btn{flex:1;min-height:48px}}

/* Fogli di carico: archivio documentale AM, senza pianificazione o telemetria attiva. */
.loadsheet-scope{align-items:flex-start;padding:20px 22px;border-color:color-mix(in srgb,var(--green) 28%,var(--line));background:linear-gradient(135deg,var(--tint),color-mix(in srgb,var(--surface) 84%,var(--tint)))}.loadsheet-scope>.icon{flex:0 0 auto;width:22px;height:22px}.load-sheet-cards{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.load-sheet-card{position:relative;overflow:hidden;min-height:278px;padding:24px;background:linear-gradient(155deg,var(--surface) 68%,color-mix(in srgb,var(--tint) 62%,var(--surface)));box-shadow:0 12px 34px #173d340d;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.load-sheet-card::after{content:"";position:absolute;right:-48px;bottom:-58px;width:150px;height:150px;border:1px solid color-mix(in srgb,var(--green) 16%,transparent);border-radius:50%;pointer-events:none}.load-sheet-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--green) 38%,var(--line));box-shadow:0 18px 42px #173d3414}.load-sheet-card>.btn{position:relative;z-index:1;margin-top:auto}.loadsheet-detail{align-items:start}.loadsheet-detail>.panel:first-child{min-height:100%}.load-sheet-request-list{padding-block:8px}.load-sheet-request-list .list-row{gap:13px}.load-sheet-index{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;background:var(--tint);color:var(--green);font-size:10px;font-weight:800;font-variant-numeric:tabular-nums}.load-sheet-documents{margin-top:18px}.loadsheet-create-modal{width:min(670px,calc(100% - 24px));max-width:670px}.loadsheet-create-modal .modal-header{background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--tint) 72%,var(--surface)))}.loadsheet-create-intro{display:grid;grid-template-columns:54px minmax(0,1fr);gap:15px;align-items:center;padding:18px;border:1px solid color-mix(in srgb,var(--green) 25%,var(--line));border-radius:16px;background:linear-gradient(145deg,var(--tint),var(--surface))}.loadsheet-create-intro>.icon{width:54px;height:54px;padding:15px;border-radius:15px;background:linear-gradient(145deg,var(--green),#07655d);color:#fff;box-shadow:0 10px 26px color-mix(in srgb,var(--green) 24%,transparent)}.loadsheet-create-intro h3{margin:4px 0 5px;font-size:19px}.loadsheet-create-intro p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.loadsheet-create-fields{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(190px,.65fr);gap:15px;margin-top:20px}.loadsheet-create-fields .field{margin:0}.loadsheet-create-modal .modal-footer{position:sticky;bottom:-24px;margin:22px -24px -24px;padding:15px 24px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 95%,transparent);backdrop-filter:blur(10px)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.trips-page{padding-inline:16px}.loadsheet-scope{padding:16px}.load-sheet-cards{grid-template-columns:1fr}.load-sheet-card{min-height:248px;padding:20px}.loadsheet-detail{grid-template-columns:1fr}.load-sheet-request-list .list-row{align-items:flex-start}.loadsheet-detail>.panel:first-child{min-height:0}.load-sheet-request-list .list-row{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px 12px;margin:10px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 2px 8px #18332b08}.load-sheet-request-list .list-row:last-child{border-bottom:1px solid var(--line)}.load-sheet-request-list .list-row .grow{min-width:0}.load-sheet-request-list .list-row strong{display:block;font-size:14px;line-height:1.35;overflow-wrap:anywhere}.load-sheet-request-list .list-row p{margin:3px 0 0;font-size:11px;line-height:1.45;overflow-wrap:anywhere}.load-sheet-request-list .btn{width:100%;min-height:44px;grid-column:1/-1;justify-content:center}.load-sheet-documents .document{display:grid;grid-template-columns:22px minmax(0,1fr) 48px;align-items:center;gap:10px 12px;padding:14px;border-radius:14px}.load-sheet-documents .document.old{opacity:1;background:color-mix(in srgb,var(--bg) 55%,var(--surface))}.load-sheet-documents .document>.icon{grid-column:1}.load-sheet-documents .document .grow{grid-column:2/4;min-width:0}.load-sheet-documents .document>a.btn{position:relative;z-index:1;min-height:44px;touch-action:manipulation;justify-content:center}.load-sheet-documents .document>a.btn:not(.icon-btn){grid-column:1/3;width:100%}.load-sheet-documents .document>a.icon-btn{grid-column:3;width:48px;min-width:48px}.loadsheet-create-modal{position:fixed;inset:auto 0 0!important;width:100%;max-width:none;max-height:92dvh;margin:0!important;border-radius:24px 24px 0 0;border-bottom:0}.loadsheet-create-modal .modal-header{position:sticky;top:0;z-index:4;padding:17px 18px;background:var(--surface)}.loadsheet-create-modal .modal-content{max-height:calc(92dvh - 72px);overflow:auto;padding:16px 18px calc(16px + env(safe-area-inset-bottom));overscroll-behavior:contain}.loadsheet-create-intro{grid-template-columns:44px minmax(0,1fr);gap:11px;padding:14px}.loadsheet-create-intro>.icon{width:44px;height:44px;padding:12px}.loadsheet-create-intro h3{font-size:16px}.loadsheet-create-fields{grid-template-columns:1fr;gap:14px}.loadsheet-create-fields input{font-size:16px}.loadsheet-create-modal .modal-footer{bottom:calc(-16px - env(safe-area-inset-bottom));margin:18px -18px calc(-16px - env(safe-area-inset-bottom));padding:12px 18px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -10px 25px #18332b0d}.loadsheet-create-modal .modal-footer .btn{flex:1;min-height:48px}}

/* Sicurezza sessione, continuità operativa e governance utenti. */
.connectivity-status{position:fixed;z-index:1200;left:50%;top:14px;display:flex;align-items:center;gap:10px;width:min(620px,calc(100% - 28px));padding:12px 16px;border:1px solid #e4c377;border-radius:13px;background:#fff8e7;color:#845600;box-shadow:0 18px 50px #172f2940;transform:translateX(-50%)}.connectivity-status>.icon{width:22px;height:22px;flex:0 0 auto}.connectivity-status strong,.connectivity-status span{display:block}.connectivity-status strong{color:#4f3500;font-size:11px}.connectivity-status span{font-size:9px;line-height:1.45}
.session-warning{position:fixed;z-index:1500;inset:0;display:grid;place-items:center;padding:20px;background:#092a27a8;backdrop-filter:blur(8px)}.session-warning>section{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;width:min(560px,100%);padding:25px;border:1px solid color-mix(in srgb,var(--green) 30%,var(--line));border-radius:22px;background:var(--surface);box-shadow:0 28px 90px #071e1a55}.session-warning>section>.icon{width:56px;height:56px;padding:15px;border-radius:16px;background:var(--tint);color:var(--green)}.session-warning small{font-size:9px;font-weight:800;letter-spacing:1px;color:var(--green)}.session-warning h2{margin:4px 0 7px;font-size:21px}.session-warning p{margin:0;color:var(--muted);font-size:11px;line-height:1.55}.session-warning .btn{grid-column:2;justify-self:start;min-height:46px}
.module-access{margin-top:18px}.permission-switch{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;align-items:start;margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface);cursor:pointer}.permission-switch:has(input:checked){border-color:color-mix(in srgb,var(--green) 38%,var(--line));background:linear-gradient(135deg,var(--tint),var(--surface))}.permission-switch input{width:20px;height:20px;margin:1px 0;accent-color:var(--green)}.permission-switch strong,.permission-switch small{display:block}.permission-switch strong{font-size:11px}.permission-switch small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.45}.permission-switch:has(input:disabled){opacity:.52;cursor:not-allowed}.permission-switch[hidden]{display:none}
.credential-reset-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--bg)}.credential-reset-card>.icon{width:38px;height:38px;padding:9px;border-radius:11px;background:var(--tint);color:var(--green)}.credential-reset-card strong,.credential-reset-card small{display:block}.credential-reset-card strong{font-size:10px}.credential-reset-card small{margin-top:3px;color:var(--muted);font-size:8px;line-height:1.4}.credential-reset-intro,.credential-reveal{display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;padding:17px;border:1px solid color-mix(in srgb,var(--green) 25%,var(--line));border-radius:15px;background:linear-gradient(145deg,var(--tint),var(--surface))}.credential-reset-intro>.icon,.credential-reveal>.icon{width:46px;height:46px;padding:12px;border-radius:13px;background:var(--green);color:#fff}.credential-reset-intro strong,.credential-reveal small,.credential-reveal code{display:block}.credential-reset-intro p,.credential-reveal p{margin:5px 0 0;color:var(--muted);font-size:10px;line-height:1.5}.credential-reveal code{margin:7px 0;padding:12px;border:1px dashed var(--green);border-radius:10px;background:var(--surface);font-size:18px;font-weight:800;letter-spacing:.8px;word-break:break-all;user-select:all}.readonly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}.readonly-grid>div{padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--bg)}.readonly-grid dt{font-size:8px;font-weight:800;letter-spacing:.6px;color:var(--muted);text-transform:uppercase}.readonly-grid dd{margin:5px 0 0;font-size:11px;font-weight:700}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.session-warning>section{grid-template-columns:44px minmax(0,1fr);padding:19px}.session-warning>section>.icon{width:44px;height:44px;padding:11px}.session-warning .btn{grid-column:1/-1;width:100%}.credential-reset-card{grid-template-columns:36px minmax(0,1fr)}.credential-reset-card .btn{grid-column:1/-1;width:100%;min-height:44px}.readonly-grid{grid-template-columns:1fr}.permission-switch{min-height:64px}.credential-reveal code{font-size:15px}}
@media(prefers-reduced-motion:reduce){.load-sheet-card{transition:none}.load-sheet-card:hover{transform:none}}

/* Sistema modal Premium SaaS: stato sempre pulito, gerarchia coerente e contenuti stabili. */
.app-modal{overflow:hidden;border-color:color-mix(in srgb,var(--green) 20%,var(--line));box-shadow:0 34px 110px #071f2242}.app-modal[open]{display:flex;flex-direction:column}.app-modal .modal-header{position:relative;z-index:5;flex:0 0 auto;padding:19px 22px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 95%,var(--tint)),var(--tint));box-shadow:0 1px 0 var(--line)}.app-modal .modal-header h2{font-size:18px;letter-spacing:-.35px}.app-modal .modal-header .icon-btn{border:1px solid color-mix(in srgb,var(--green) 35%,var(--line));background:color-mix(in srgb,var(--surface) 90%,var(--tint));color:var(--green)}.app-modal .modal-content{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px;scrollbar-gutter:stable}.app-modal .modal-footer{position:sticky;z-index:4;bottom:-22px;margin:22px -22px -22px;padding:14px 22px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:0 -10px 28px #18332b0a;backdrop-filter:blur(12px)}.app-modal .modal-footer .btn{min-width:118px}.app-modal .modal-footer .primary{box-shadow:0 9px 22px color-mix(in srgb,var(--green) 20%,transparent)}
.service-choice-modal{width:min(760px,calc(100% - 24px));max-width:760px}.service-choice-intro,.report-export-intro,.upload-document-intro{display:grid;grid-template-columns:52px minmax(0,1fr);gap:15px;align-items:center;padding:17px 18px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:16px;background:linear-gradient(145deg,var(--tint),var(--surface))}.service-choice-intro>.icon,.report-export-intro>.icon,.upload-document-intro>.icon{width:52px;height:52px;padding:14px;border-radius:14px;background:linear-gradient(145deg,var(--green),#07655d);color:#fff;box-shadow:0 10px 26px color-mix(in srgb,var(--green) 24%,transparent)}.service-choice-intro h3,.report-export-intro h3,.upload-document-intro h3{margin:3px 0 4px;font-size:18px}.service-choice-intro p,.report-export-intro p,.upload-document-intro p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.service-choice-modal .service-choices{padding:0;border:0}.service-choice-modal .service-choice{display:grid;grid-template-columns:50px minmax(0,1fr) 25px;align-items:center;gap:14px;min-height:128px;padding:18px;border:1px solid var(--line);background:var(--surface);box-shadow:0 7px 22px #18332b08}.service-choice-modal .service-choice:hover{border-color:color-mix(in srgb,var(--green) 48%,var(--line));background:linear-gradient(145deg,var(--surface),var(--tint));transform:translateY(-1px)}.service-choice-modal .service-choice:has(input:checked){border-color:var(--green);background:linear-gradient(145deg,var(--tint),var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 11%,transparent),0 12px 30px #18332b10}.service-choice-modal .service-choice input{position:absolute;opacity:0;pointer-events:none}.service-choice-icon{width:50px;height:50px;display:grid;place-items:center;border-radius:14px;background:var(--tint);color:var(--green)}.service-choice-icon .icon{width:24px;height:24px}.service-choice-copy>small,.service-choice-copy>strong,.service-choice-copy>span{display:block}.service-choice-copy>small{color:var(--green);font-size:8px;font-weight:800;letter-spacing:.8px}.service-choice-copy>strong{margin:4px 0;font-size:17px}.service-choice-copy>span{color:var(--muted);font-size:10px;line-height:1.5}.service-choice-check{width:24px;height:24px;display:grid;place-items:center;border:2px solid var(--line);border-radius:50%;color:transparent}.service-choice-check .icon{width:14px;height:14px}.service-choice:has(input:checked) .service-choice-check{border-color:var(--green);background:var(--green);color:#fff}.service-choice-assurance,.report-export-note,.upload-document-assurance{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;background:var(--tint);color:var(--green)}.service-choice-assurance .icon,.report-export-note .icon,.upload-document-assurance .icon{width:19px;height:19px;flex:0 0 auto}.service-choice-assurance strong,.service-choice-assurance small,.report-export-note strong,.report-export-note small,.upload-document-assurance strong,.upload-document-assurance small{display:block}.service-choice-assurance strong,.report-export-note strong,.upload-document-assurance strong{font-size:10px}.service-choice-assurance small,.report-export-note small,.upload-document-assurance small{margin-top:2px;color:var(--muted);font-size:9px;line-height:1.45}
.document-upload-modal{width:min(680px,calc(100% - 24px));max-width:680px}.document-dropzone{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:center;min-height:112px;margin:18px 0;padding:18px;border:1.5px dashed color-mix(in srgb,var(--green) 48%,var(--line));border-radius:15px;background:color-mix(in srgb,var(--tint) 62%,var(--surface));cursor:pointer}.document-dropzone:hover,.document-dropzone.has-file{border-style:solid;border-color:var(--green);background:var(--tint)}.document-dropzone input{position:absolute;inset:0;opacity:0;cursor:pointer}.document-dropzone-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:13px;background:var(--surface);color:var(--green);box-shadow:0 8px 20px #18332b0d}.document-dropzone strong,.document-dropzone small{display:block}.document-dropzone strong{overflow:hidden;text-overflow:ellipsis;font-size:12px}.document-dropzone small{margin-top:4px;color:var(--muted);font-size:9px}
.report-export-modal{width:min(720px,calc(100% - 24px));max-width:720px}.report-export-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0;padding:0;border:0}.report-export-options legend{grid-column:1/-1;margin-bottom:1px;font-size:11px;font-weight:800}.report-export-options label{position:relative;cursor:pointer}.report-export-options input{position:absolute;opacity:0}.report-export-options label>span{display:grid;grid-template-columns:36px minmax(0,1fr);gap:10px;min-height:118px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.report-export-options label>span>.icon{width:36px;height:36px;padding:8px;border-radius:10px;background:var(--tint);color:var(--green)}.report-export-options strong,.report-export-options small{display:block;grid-column:2}.report-export-options strong{font-size:11px}.report-export-options small{margin-top:-18px;color:var(--muted);font-size:9px;line-height:1.45}.report-export-options label:has(input:checked)>span{border-color:var(--green);background:linear-gradient(145deg,var(--tint),var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 10%,transparent)}
.warehouse-export-modal{width:min(720px,calc(100% - 24px));max-width:720px}.warehouse-export-intro{display:grid;grid-template-columns:52px minmax(0,1fr);gap:15px;align-items:center;padding:17px 18px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:16px;background:linear-gradient(145deg,var(--tint),var(--surface))}.warehouse-export-intro>.icon{width:52px;height:52px;padding:14px;border-radius:14px;background:linear-gradient(145deg,var(--green),#07655d);color:#fff;box-shadow:0 10px 26px color-mix(in srgb,var(--green) 24%,transparent)}.warehouse-export-intro h3{margin:3px 0 4px;font-size:18px}.warehouse-export-intro p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.warehouse-export-sheets{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.warehouse-export-sheets>div{display:grid;grid-template-columns:38px minmax(0,1fr);gap:11px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.warehouse-export-sheets>div>.icon{width:38px;height:38px;padding:9px;border-radius:11px;background:var(--tint);color:var(--green)}.warehouse-export-sheets small,.warehouse-export-sheets strong,.warehouse-export-sheets p{display:block}.warehouse-export-sheets small{font-size:8px;font-weight:800;letter-spacing:.7px;color:var(--green)}.warehouse-export-sheets strong{margin:3px 0;font-size:11px}.warehouse-export-sheets p{margin:0;color:var(--muted);font-size:9px;line-height:1.45}.warehouse-export-period{padding:14px 16px;border:1px solid var(--line);border-radius:14px}.warehouse-export-period legend{padding:0 7px;font-size:11px;font-weight:800}.warehouse-export-period .form-grid{margin:0}.warehouse-export-period .field{margin:0}.warehouse-create-permission:has(input:checked){box-shadow:inset 3px 0 0 var(--green)}
@media(min-width:801px) and (min-height:521px),(min-width:1025px){.warehouse-page .op-warehouse-panel{margin-inline:calc(-1 * var(--workspace-page-gutter));border-inline:0;border-radius:0;overflow:visible}.warehouse-page .op-stock-grid{padding-inline:var(--workspace-page-gutter)}.warehouse-page .op-warehouse-panel>.panel-head,.warehouse-page .op-warehouse-panel>.op-warehouse-intro{margin-inline:var(--workspace-page-gutter)}.warehouse-page .op-warehouse-panel>.panel-head{padding-inline:0}.warehouse-page .op-warehouse-panel>.op-warehouse-search{position:sticky;top:0;z-index:24;margin:0;padding:11px var(--workspace-page-gutter);border-block:1px solid var(--line);box-shadow:0 1px 0 var(--line);background:var(--surface)}}

.return-label-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-top:1px solid var(--line);background:linear-gradient(135deg,var(--tint),var(--surface))}.return-label-actions>div{display:flex;align-items:center;gap:11px;min-width:0}.return-label-actions>div>.icon{width:22px;height:22px;color:var(--green)}.return-label-actions span{display:grid;gap:2px}.return-label-actions small{color:var(--muted)}.return-label-modal{width:min(760px,94vw)}.label-print-intro{display:flex;gap:14px;align-items:flex-start;padding:16px;border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));border-radius:14px;background:linear-gradient(145deg,var(--tint),var(--surface))}.label-print-intro>.icon{flex:0 0 34px;width:34px;height:34px;padding:7px;border-radius:10px;color:var(--green);background:var(--surface)}.label-print-intro h3{margin:2px 0 4px}.label-print-intro p{margin:0;color:var(--muted)}.label-print-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0;padding:0;border:0}.label-print-list legend{grid-column:1/-1;margin-bottom:2px;font-weight:800}.label-print-card{position:relative;display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer}.label-print-card:has(input:checked){border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 12%,transparent)}.label-print-card input{position:absolute;opacity:0}.label-print-check{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border:1px solid var(--line);border-radius:9px;color:transparent;background:var(--bg)}.label-print-card:has(input:checked) .label-print-check{color:#fff;background:var(--green);border-color:var(--green)}.label-print-card>span:last-child{display:grid;gap:2px;min-width:0}.label-print-card small{font-size:9px;color:var(--green);font-weight:800;letter-spacing:.5px}.label-print-card strong{font-family:monospace;font-size:15px}.label-print-card em{font-style:normal;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.label-print-assurance{display:flex;align-items:center;gap:10px;padding:12px;border-radius:11px;background:var(--bg);color:var(--muted)}.label-print-assurance>.icon{color:var(--green)}.label-print-assurance span{display:grid;gap:2px}.label-print-assurance strong{color:var(--text)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.return-label-actions{align-items:stretch;flex-direction:column}.return-label-actions .btn{width:100%}.label-print-list{grid-template-columns:1fr}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.app-modal{width:calc(100% - 12px);max-height:calc(100dvh - 12px);border-radius:18px}.app-modal .modal-header{padding:14px 15px}.app-modal .modal-content{padding:15px;scrollbar-gutter:auto}.app-modal .modal-footer{bottom:-15px;margin:18px -15px -15px;padding:12px 15px calc(12px + env(safe-area-inset-bottom))}.app-modal .modal-footer .btn{flex:1;min-width:0;min-height:48px}.service-choice-intro,.report-export-intro,.upload-document-intro,.warehouse-export-intro{grid-template-columns:44px minmax(0,1fr);padding:14px;gap:11px}.service-choice-intro>.icon,.report-export-intro>.icon,.upload-document-intro>.icon,.warehouse-export-intro>.icon{width:44px;height:44px;padding:12px}.service-choice-modal .service-choices,.report-export-options,.warehouse-export-sheets{grid-template-columns:1fr;gap:10px;margin-block:14px}.service-choice-modal .service-choice{grid-template-columns:42px minmax(0,1fr) 24px;min-height:94px;padding:14px}.service-choice-icon{width:42px;height:42px}.report-export-options legend{grid-column:auto}.report-export-options label>span{min-height:98px}.warehouse-export-period .form-grid{grid-template-columns:1fr 1fr}.document-dropzone{min-height:100px;padding:15px}.warehouse-page .op-warehouse-panel{margin-inline:-16px;border-inline:0;border-radius:0}}
@media(prefers-reduced-motion:reduce){.service-choice-modal .service-choice{transition:none}.service-choice-modal .service-choice:hover{transform:none}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){html,body{max-width:100%;overflow-x:clip}}

/* Workspace Flotta Aziendale: ambito globale dichiarato, nessun selettore azienda, ritorno esplicito alla Dashboard. */
.fleet-shell .nav-separator{height:1px;margin:12px 14px;background:#ffffff1f}
.fleet-dashboard-mobile{display:none}
.fleet-head{margin-bottom:22px}
.fleet-head h1{margin:6px 0 10px;font-size:28px;letter-spacing:-.8px}
.fleet-scope{display:inline-flex;align-items:center;gap:8px;margin:0;padding:7px 13px;border:1px solid var(--line);border-radius:999px;background:var(--tint);color:var(--green);font-size:12px;font-weight:700}
.fleet-scope .icon{width:16px;height:16px}
.fleet-empty{max-width:560px}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .fleet-topbar .fleet-dashboard-mobile{display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:44px;padding:0 14px;white-space:nowrap}
 .fleet-dashboard-desktop{display:none}
 .fleet-topbar .breadcrumb{display:none}
 .fleet-head h1{font-size:24px}
}

/* Nel modulo aziendale il contesto non puo' sparire quando il breadcrumb viene compattato. */
.devices-dashboard-mobile,.devices-company-context{display:none}
.devices-company-context{align-items:center;gap:8px;min-width:0;max-width:250px;min-height:44px;padding:6px 10px;
 border:1px solid var(--line);border-radius:11px;background:var(--bg);color:var(--ink)}
.devices-company-context>.icon{width:16px;height:16px;color:var(--green);flex:0 0 auto}
.devices-company-context>span{display:flex;flex-direction:column;min-width:0;line-height:1.15}
.devices-company-context small{font-size:8px;letter-spacing:.8px;color:var(--muted)}
.devices-company-context strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
@media(max-width:1150px){
 .devices-topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto}
 .devices-company-context{display:inline-flex;justify-self:center;width:min(250px,100%)}
}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .devices-topbar .devices-dashboard-mobile{display:inline-flex;width:44px;min-width:44px;height:44px;padding:0}
 .devices-topbar .devices-dashboard-mobile span{display:none}
 .devices-dashboard-desktop{display:none}
 .devices-topbar .breadcrumb{display:none}
 .devices-company-context{width:min(156px,100%);max-width:100%;background:var(--surface)}
}

/* Archivio Fogli di carico: fascia filtri Premium, compatta su desktop e sticky sotto la testata su mobile. */
.loadsheet-filter-deck{display:grid;max-width:100%;min-width:0;gap:14px;padding:18px clamp(18px,2vw,24px);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 55%,var(--surface))}
.loadsheet-filter-head{display:flex;align-items:center;gap:14px}
.loadsheet-filter-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;border:1px solid color-mix(in srgb,var(--green) 18%,var(--line));border-radius:13px;background:var(--surface);color:var(--green);box-shadow:0 4px 12px #18332b0f}
.loadsheet-filter-icon .icon{width:20px;height:20px}
.loadsheet-filter-copy{min-width:0}
.loadsheet-filter-copy .eyebrow{margin-bottom:3px;font-size:9px;letter-spacing:1.4px}
.loadsheet-filter-copy h2{margin:0;font-size:17px;letter-spacing:-.4px}
.loadsheet-count{display:inline-flex;align-items:center;gap:9px;min-height:40px;margin:0 0 0 auto;padding:0 15px;border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:13px;background:var(--tint);color:var(--green-dark);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.loadsheet-count:before{content:'';width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 18%,transparent)}
.loadsheet-count.loading{border-color:color-mix(in srgb,var(--amber) 34%,var(--line));background:var(--amber-bg);color:var(--amber)}
.loadsheet-count.loading:before{background:var(--amber);box-shadow:0 0 0 4px color-mix(in srgb,var(--amber) 18%,transparent)}
.loadsheet-filter-fields{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;min-width:0;max-width:100%}
.loadsheet-filter-deck label{display:block;margin-bottom:7px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.2px}
.loadsheet-search{flex:1 1 320px;min-width:0;max-width:420px;width:auto}
.loadsheet-search-control{display:grid;grid-template-columns:42px minmax(0,1fr) 44px;align-items:center;min-height:46px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:border-color var(--ease),box-shadow var(--ease)}
.loadsheet-search-control>.icon{width:18px;height:18px;margin-left:13px;color:var(--green)}
.loadsheet-search-control input{min-width:0;min-height:44px;padding:0 4px;border:0;background:transparent;color:var(--ink);font-family:inherit;font-size:14px;font-weight:600}
.loadsheet-search-control input::placeholder{color:var(--muted);font-weight:500}
.loadsheet-search-control input:focus{outline:none}
.loadsheet-search-control input::-webkit-search-cancel-button{display:none}
.loadsheet-search-control:focus-within{border-color:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 12%,transparent)}
.loadsheet-search-control .btn{min-width:44px;min-height:44px;border:0;border-radius:10px;background:transparent;box-shadow:none;color:var(--muted)}
.loadsheet-search-control .btn:hover{background:var(--tint);color:var(--green)}
.loadsheet-date{flex:0 0 auto;width:196px}
.loadsheet-date .date-entry>input[type=text]{min-height:46px;border-radius:12px;font-size:14px;font-weight:600}
.loadsheet-date .native-date-trigger{height:46px;border-radius:12px}
.loadsheet-filter-actions{margin-left:auto}
.loadsheet-reset{min-height:46px;border-radius:12px}
.loadsheet-date-error{display:flex;align-items:center;gap:9px;margin:0;padding:10px 13px;border:1px solid color-mix(in srgb,var(--red) 45%,var(--line));border-radius:12px;background:var(--red-bg);color:var(--red);font-size:12px;font-weight:600}
.loadsheet-date-error .icon{width:17px;height:17px;flex:0 0 auto}
.loadsheet-results{padding:0}
.loadsheet-results:focus{outline:none}
.loadsheet-results:focus-visible{outline:none}
.loadsheet-empty-filtered{border-top:0}
.loadsheet-pagination{font-size:12px}
@media(min-width:801px) and (min-height:521px),(min-width:1025px){.loadsheet-archive .trip-cards{padding:20px clamp(18px,2vw,24px)}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .loadsheet-archive{overflow:clip}
 .loadsheet-filter-deck{position:sticky;top:var(--workspace-header-height,74px);z-index:24;gap:8px;padding:10px 16px;box-shadow:0 8px 18px -12px #18332b75}
 .loadsheet-filter-head{gap:10px}
 .loadsheet-filter-icon{display:none}
 .loadsheet-filter-copy .eyebrow{display:none}
 .loadsheet-filter-copy h2{font-size:15px;letter-spacing:-.25px}
 .loadsheet-count{min-height:32px;padding:0 11px;font-size:13px;white-space:normal;text-align:right;line-height:1.3}
 .loadsheet-count:before{display:none}
 .loadsheet-filter-deck label{margin-bottom:4px;font-size:11px}
 .loadsheet-filter-fields{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 10px;align-items:end}
 .loadsheet-search-control{min-height:44px}
 .loadsheet-search-control input{min-height:42px}
 .loadsheet-date .date-entry>input[type=text]{min-height:44px}
 .loadsheet-date .native-date-trigger{height:44px}
 .loadsheet-reset{min-height:44px}
 .loadsheet-search{grid-column:1/-1;flex:none;max-width:none;width:auto}
 .loadsheet-date{grid-column:1;width:auto}
 .loadsheet-filter-actions{grid-column:2;margin:0}
 .loadsheet-search-control input,.loadsheet-date .date-entry>input[type=text]{font-size:16px}
 .loadsheet-archive .trip-cards{padding:16px}
 .loadsheet-pagination{padding-inline:16px}
 .loadsheet-filter-head{flex-wrap:wrap;min-width:0}
 .loadsheet-count{min-width:0;max-width:100%}
 .loadsheet-search,.loadsheet-date{min-width:0;max-width:100%}
 .loadsheet-date .date-entry{gap:8px}
}
/* Telefono in orizzontale: guscio mobile, ma i campi tornano su una riga per non consumare l'altezza utile. */
@media(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .loadsheet-filter-deck{gap:8px;padding:10px 16px}
 .loadsheet-filter-fields{display:flex;flex-wrap:nowrap;align-items:flex-end;gap:10px}
 .loadsheet-search{flex:1 1 200px;max-width:none;width:auto;grid-column:auto}
 .loadsheet-date{flex:0 0 auto;width:168px;grid-column:auto}
 .loadsheet-filter-actions{grid-column:auto;margin-left:0}
 .loadsheet-search-control,.loadsheet-date .date-entry>input[type=text],.loadsheet-reset{min-height:42px}
 .loadsheet-date .native-date-trigger{height:42px}
}
[data-theme=dark] .loadsheet-filter-deck{background:color-mix(in srgb,var(--surface) 76%,var(--nav))}
[data-theme=dark] .loadsheet-filter-icon,[data-theme=dark] .loadsheet-search-control{background:color-mix(in srgb,var(--surface) 84%,var(--nav))}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){[data-theme=dark] .loadsheet-filter-deck{box-shadow:0 10px 22px -12px #000000a6}}
@media(prefers-reduced-motion:reduce){.loadsheet-search-control{transition:none}}

/* Azzera resta leggibile anche da disabilitato: nessun filtro da azzerare, nessuna richiesta inutile. */
.loadsheet-reset:disabled{opacity:1;border-color:var(--line);background:color-mix(in srgb,var(--surface) 88%,var(--bg));color:var(--muted);cursor:default}
.loadsheet-reset:disabled .icon{color:var(--muted)}
[data-theme=dark] .loadsheet-reset:disabled{background:color-mix(in srgb,var(--surface) 86%,var(--nav))}
/* Primo caricamento fallito: superficie esplicita e recuperabile, mai confusa con l'archivio vuoto. */
.loadsheet-empty-error>.icon{color:var(--red)}
.loadsheet-empty-error strong{color:var(--ink)}

/* ===== Flotta Aziendale S1 — anagrafica mezzi.
   Riusa token, raggi, ombre e ritmo 4/8 px del prodotto. Nessun colore o font estraneo,
   nessun blur sulle aree sticky, nessuna ombra diffusa, nessuna animazione decorativa. ===== */
.fleet-head{align-items:flex-end}.fleet-head-copy{position:relative;padding-left:18px}
.fleet-head-copy:before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:4px;background:linear-gradient(180deg,var(--green),color-mix(in srgb,var(--green) 25%,transparent))}
.fleet-head h1{font-size:32px;letter-spacing:-1.15px;margin-bottom:6px}
.fleet-scope{display:inline-flex;align-items:center;gap:7px;margin:0;color:var(--green);font-size:12px;font-weight:700}
.fleet-scope .icon{width:16px;height:16px}
.fleet-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px}
.fleet-metric{display:flex;flex-direction:column;gap:10px;align-items:flex-start;justify-content:space-between;text-align:left;padding:15px 17px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);color:var(--ink);transition:border-color var(--ease),box-shadow var(--ease),transform var(--ease);min-height:92px}
.fleet-metric:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.fleet-metric:active{transform:translateY(1px)}
.fleet-metric.on{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green),var(--shadow)}
.fleet-metric-top{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.2px}
.fleet-metric-top .icon{width:17px;height:17px;color:var(--green)}
.fleet-metric-value{margin-top:auto;font-size:27px;letter-spacing:-.9px;line-height:1;font-variant-numeric:tabular-nums}
.fleet-anomaly-summary{grid-column:span 2;display:flex;flex-direction:column;gap:7px;padding:15px 17px;background:var(--tint);border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));border-radius:14px}
.fleet-anomaly-top{display:flex;align-items:center;gap:8px;color:var(--green);font-size:11px;font-weight:700}
.fleet-anomaly-top .icon{width:17px;height:17px}
.fleet-anomaly-summary p{margin:0;font-size:12px;color:var(--ink)}
.fleet-anomaly-summary strong{font-size:16px;font-variant-numeric:tabular-nums}
.fleet-anomaly-actions{display:flex;gap:10px;flex-wrap:wrap}
.fleet-anomaly-actions .text-button{min-height:36px;padding:2px 0}
/* La fascia resta fissa durante lo scorrimento anche su desktop, come la fascia degli Ordini:
   si aggancia al bordo superiore quando la testata del workspace e' gia' scorsa via. */
.fleet-deck{margin-bottom:20px;overflow:visible;position:sticky;top:0;z-index:24;isolation:isolate;
 box-shadow:var(--shadow),0 10px 18px -14px #18332b66}
.fleet-deck-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px 0}
.fleet-deck-head h2{font-size:14px;margin:0}
.fleet-count-pill{display:inline-flex;align-items:center;min-height:32px;padding:5px 13px;border-radius:999px;background:var(--tint);color:var(--green);font-size:11px;font-weight:700;white-space:nowrap}
/* Griglia esplicita a tre righe condivise — etichetta, controllo, aiuto — cosi' ogni etichetta cade sulla
   stessa baseline e il testo di supporto della ricerca non sposta gli altri controlli. */
.fleet-deck-controls{display:grid;grid-template-columns:minmax(280px,2fr) minmax(150px,1fr) minmax(190px,1.15fr) minmax(150px,1fr) auto;
 grid-template-rows:auto auto auto;gap:12px;align-items:center;padding:14px 22px 18px;min-width:0}
.fleet-field{display:contents}
.fleet-field>label{grid-row:1;align-self:end;font-size:10px;color:var(--muted);font-weight:700;letter-spacing:.3px;text-transform:uppercase;min-width:0}
.fleet-field>.search,.fleet-field>select,.fleet-field>.btn{grid-row:2;min-width:0;align-self:center}
.fleet-field>small{grid-row:3;align-self:start;font-size:10px;color:var(--muted);min-width:0}
.fleet-field-search>*{grid-column:1}
.fleet-field-state>*{grid-column:2}
.fleet-field-company>*{grid-column:3}
.fleet-field-sort>*{grid-column:4}
.fleet-field-reset>*{grid-column:5}
/* Altezza unica per input, select e azione: la riga dei controlli e' otticamente una sola. */
.fleet-deck-controls .search,.fleet-deck-controls input,.fleet-deck-controls select,.fleet-deck-controls .btn{height:44px;min-height:44px}
.fleet-deck-controls select{font-size:12px;width:100%}
.fleet-deck-controls .search{position:relative;display:block}
.fleet-deck-controls .search>.icon{top:50%;bottom:auto;transform:translateY(-50%)}
.fleet-field-search .search input{padding-right:42px;width:100%}
.fleet-clear-search{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;min-height:36px!important;display:grid;place-items:center;border:0;background:none;color:var(--muted);border-radius:8px}
.fleet-clear-search:hover{color:var(--ink);background:var(--bg)}
/* Azzera appartiene alla riga: nessun margine automatico che lo faccia galleggiare a destra. */
.fleet-field-reset>.btn{white-space:nowrap;padding-inline:14px}
.fleet-field-reset .btn[disabled]{opacity:1;color:color-mix(in srgb,var(--muted) 70%,transparent);border-color:transparent;background:transparent}
.fleet-field-sheet{display:none}
.fleet-results:focus,.fleet-results:focus-visible{outline:none}
.fleet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fleet-card{display:flex;flex-direction:column;gap:11px;align-items:stretch;text-align:left;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--ink);position:relative;overflow:hidden;transition:border-color var(--ease),box-shadow var(--ease),transform var(--ease)}
.fleet-card:before{content:'';position:absolute;inset:0 auto 0 0;width:3px;background:var(--green);opacity:0;transition:opacity var(--ease)}
.fleet-card:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line));box-shadow:0 10px 30px #18332b12}
.fleet-card:hover:before,.fleet-card:focus-visible:before{opacity:1}
.fleet-card:active{transform:translateY(1px)}
.fleet-card-returned{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green),var(--shadow)}
.fleet-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
/* Porta targa: il supporto e' un'immagine, la targa resta testo reale posato nel campo chiaro.
   Le percentuali vengono dalle misure del file: campo dal 15,14% all'85,58% in larghezza. */
.fleet-plate{position:relative;display:block;width:100%;max-width:196px;aspect-ratio:416/108;flex-shrink:0;
 background:url('/targa.png') center/100% 100% no-repeat;container-type:inline-size}
/* La dimensione vive sul testo, non sul contenitore: un elemento non e' contenitore di query per se stesso. */
.fleet-plate-text{position:absolute;left:15.14%;right:14.42%;top:8%;bottom:8%;display:flex;align-items:center;justify-content:center;
 font-family:ui-monospace,monospace;font-weight:700;letter-spacing:.04em;line-height:1;color:#141a1e;white-space:nowrap;overflow:hidden;
 font-size:15cqw}
.fleet-plate.plate-l .fleet-plate-text{font-size:13cqw}
.fleet-plate.plate-xl .fleet-plate-text{font-size:10.5cqw}
.fleet-plate-empty{background:none;aspect-ratio:auto;max-width:none;container-type:normal;font-size:13px;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;min-height:34px}
@supports not (font-size:1cqw){
 .fleet-plate-text{font-size:29px}
 .fleet-plate.plate-l .fleet-plate-text{font-size:25px}
 .fleet-plate.plate-xl .fleet-plate-text{font-size:20px}
 .vehicle-plate .fleet-plate-text{font-size:45px}
 .vehicle-plate .fleet-plate.plate-l .fleet-plate-text{font-size:38px}
 .vehicle-plate .fleet-plate.plate-xl .fleet-plate-text{font-size:31px}
}
.fleet-state{flex-shrink:0}.fleet-state .icon{width:13px;height:13px}
.fleet-state::before{display:none}
.fleet-name{font-size:13px;font-weight:700;color:var(--ink);overflow-wrap:anywhere}
.fleet-company{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink)}
.fleet-company .icon{width:15px;height:15px;color:var(--green);flex-shrink:0}
.fleet-company.quiet{color:var(--muted)}.fleet-company.quiet .icon{color:var(--muted)}
.fleet-card-foot{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--muted);padding-top:9px;margin-top:auto;border-top:1px solid var(--line)}
.fleet-card-foot>span{display:inline-flex;align-items:center;gap:6px}
.fleet-card-foot .icon{width:14px;height:14px}
.fleet-warranty{color:var(--green)}
/* Ultimo utilizzo: la data dell'ultimo log, sotto l'azienda. Riga propria, perche' accanto alle date del piede andrebbe a capo. */
.fleet-usage{display:flex;align-items:center;gap:7px;min-width:0;font-size:12px;color:var(--muted);line-height:1.35}
.fleet-usage .icon{width:14px;height:14px;flex:0 0 auto;color:var(--green)}
.fleet-usage>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fleet-usage strong{color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums}
.fleet-usage em{font-style:normal}
.fleet-usage.none .icon{color:var(--muted)}
/* Data di apertura della richiesta: campo compatto, la data non ha bisogno di tutta la riga. */
.devices-request-date .date-entry{max-width:240px}
.devices-request-date small{display:block;margin-top:6px;font-size:12px;color:var(--muted)}
.fleet-marks{display:flex;flex-wrap:wrap;gap:6px}
.fleet-mark{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;color:var(--amber);background:var(--amber-bg);padding:4px 8px;border-radius:6px}
.fleet-mark .icon{width:13px;height:13px}
.fleet-skeleton{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.fleet-skeleton-card{height:156px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface)}
.fleet-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px}
.fleet-perimeter{display:flex;gap:9px;align-items:flex-start;margin:20px 0 0;font-size:11px;color:var(--muted)}
.fleet-perimeter .icon{width:15px;height:15px;flex-shrink:0;color:var(--green)}
.fleet-empty-actions{justify-content:center}
.fleet-error{display:flex;gap:14px;align-items:center;padding:22px 24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);flex-wrap:wrap}
.fleet-error .icon{width:24px;height:24px;color:var(--amber);flex-shrink:0}
.fleet-error strong{display:block;font-size:15px}.fleet-error p{margin:4px 0 0;font-size:12px;color:var(--muted)}
.fleet-error .btn{margin-left:auto}
/* Scheda mezzo */
.vehicle-head{align-items:flex-start}
.vehicle-plate{margin-bottom:10px;line-height:0}
.vehicle-plate .fleet-plate{max-width:300px}
.vehicle-plate .fleet-plate-empty{font-size:26px;line-height:1.3;min-height:0}
.vehicle-name{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--muted)}
.vehicle-badges .badge::before{display:none}.vehicle-badges .badge .icon{width:13px;height:13px}
.badge.quiet{color:var(--muted);background:var(--bg)}
.vehicle-anomalies{align-items:flex-start}
.vehicle-anomalies ul{margin:6px 0 0;padding-left:18px}
.vehicle-anomalies li{margin-bottom:5px}
.vehicle-anomalies li:last-child{margin-bottom:0}
.vehicle-side{display:flex;flex-direction:column;gap:22px}
.vehicle-side .panel{margin:0}
.vehicle-state-block{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.vehicle-state-block .badge::before{display:none}
.vehicle-state-block .badge .icon{width:13px;height:13px}
.vehicle-reason{margin:12px 0 0;font-size:12px;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}
.vehicle-dismissed{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.vehicle-dismissed small{display:block;font-size:10px;letter-spacing:.5px;color:var(--muted)}
.vehicle-dismissed span{font-size:14px;font-weight:700}
.vehicle-dismissed p{margin:6px 0 0;font-size:12px;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}
.vehicle-reserved .panel-head h2{color:var(--ink)}
.vehicle-reserved .panel-body p{font-size:11px;margin-bottom:12px}
.vehicle-km-note{display:flex;gap:9px;align-items:flex-start;margin:18px 0 0;font-size:11px;color:var(--muted)}
.vehicle-km-note .icon{width:15px;height:15px;flex-shrink:0}
.vehicle-timeline{margin-bottom:16px}
.vehicle-history-count{font-size:11px;margin:10px 0 0}
/* Superfici di scrittura */
.fleet-form{display:flex;flex-direction:column;gap:20px}
.fleet-form-section{display:flex;flex-direction:column;gap:12px}
.fleet-form-section h3{margin:0;font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--green)}
.fleet-form .form-grid{gap:0 18px}
.fleet-form .field{margin-bottom:14px}
.fleet-form-note{display:flex;gap:9px;align-items:flex-start;margin:0;font-size:11px;color:var(--muted)}
.fleet-form-note .icon{width:15px;height:15px;flex-shrink:0;color:var(--green)}
.fleet-progressive{margin-bottom:0}
.fleet-current-state{padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.fleet-current-state small{display:block;font-size:10px;letter-spacing:.6px;color:var(--muted)}
.fleet-current-state span{font-size:14px;font-weight:700}
.fleet-state-choice{display:grid;gap:10px}
.fleet-state-option{display:flex;gap:12px;align-items:flex-start;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;min-height:56px;transition:border-color var(--ease),background var(--ease)}
.fleet-state-option:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.fleet-state-option input{margin-top:2px;width:18px;height:18px;min-height:0;accent-color:var(--green);flex-shrink:0}
.fleet-state-option:has(input:checked){border-color:var(--green);background:var(--tint)}
.fleet-state-option-body strong{display:block;font-size:13px}
.fleet-state-option-body small{color:var(--muted)}
.fleet-check{flex-direction:row!important;align-items:center;gap:10px;min-height:44px}
.fleet-check input{flex-shrink:0}
.date-field .date-entry{display:flex;gap:8px;align-items:center}
.date-field .date-entry input[type=text]{flex:1;min-width:0}
.field-error{display:flex;gap:6px;align-items:center;font-size:11px;color:var(--red);font-weight:700;margin-top:2px}
.fleet-form input[aria-invalid=true],.fleet-form select[aria-invalid=true],.fleet-form textarea[aria-invalid=true]{border-color:var(--red);background:color-mix(in srgb,var(--red-bg) 55%,var(--surface))}
.fleet-danger{border-color:color-mix(in srgb,var(--red) 35%,var(--line));background:var(--red-bg);color:var(--red)}
.fleet-danger .icon{color:var(--red)}
.fleet-next-toast{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.fleet-next-toast .text-button{color:#9dedce;min-height:32px;padding:0}
.fleet-sheet-intro{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px}
.fleet-sheet-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--tint);color:var(--green);flex-shrink:0}
.fleet-sheet-intro h3{margin:6px 0 4px;font-size:17px}
.fleet-sheet-intro p{margin:0;font-size:12px;color:var(--muted)}
.fleet-sheet-grid{display:grid;gap:0 16px}
.fleet-sheet-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid var(--line);font-size:12px;font-weight:700;color:var(--green)}
@media(min-width:1600px){.fleet-grid,.fleet-skeleton{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1150px){.fleet-grid,.fleet-skeleton{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Desktop compatto e tablet: due righe ordinate e bilanciate, senza colonne vuote né troncamenti. */
@media(min-width:801px) and (max-width:1180px){
 .fleet-deck-controls{grid-template-columns:minmax(150px,1fr) minmax(190px,1.15fr) minmax(150px,1fr) auto;grid-template-rows:auto auto auto auto auto}
 .fleet-field-search>label{grid-row:1;grid-column:1/-1}
 .fleet-field-search>.search{grid-row:2;grid-column:1/-1}
 .fleet-field-search>small{grid-row:3;grid-column:1/-1}
 .fleet-field-state>label{grid-row:4;grid-column:1}
 .fleet-field-state>select{grid-row:5;grid-column:1}
 .fleet-field-company>label{grid-row:4;grid-column:2}
 .fleet-field-company>select{grid-row:5;grid-column:2}
 .fleet-field-sort>label{grid-row:4;grid-column:3}
 .fleet-field-sort>select{grid-row:5;grid-column:3}
 .fleet-field-reset>.btn{grid-row:5;grid-column:4}
}
/* Mobile della Flotta. La condizione landscape richiede anche una larghezza reale da telefono ruotato:
   la tastiera software accorcia il viewport verticale e non deve mai attivare il layout orizzontale. */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 /* La testata fissa mobile e' gia' quella approvata in S0: qui non va ridefinita, solo rispettata. */
 .fleet-head{align-items:flex-start}
 .fleet-head h1{font-size:26px}
 .fleet-head-copy{padding-left:14px}
 .fleet-head .head-actions .btn{width:100%}
 .fleet-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:14px}
 .fleet-metric{padding:12px 13px;min-height:78px;gap:7px}
 .fleet-metric-value{font-size:23px}
 .fleet-anomaly-summary{grid-column:span 2;padding:13px}
 /* overflow:clip ritaglia decoro e raggi senza creare uno scrollport: lo sticky resta ancorato alla pagina. */
 .fleet-shell .content{overflow:clip}
 .fleet-deck{position:sticky;top:var(--workspace-header-height,74px);z-index:28;margin-bottom:18px;border-radius:12px;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 6px 14px #18332b14;backdrop-filter:none}
 .fleet-deck-head{padding:12px 14px 0;gap:8px}
 .fleet-deck-head h2{font-size:12px}
 .fleet-count-pill{min-height:30px;font-size:10px;padding:4px 10px}
 /* Mobile: ricerca a tutto lo spazio residuo e comando Filtri accanto, su una sola riga.
    Il dimensionamento e' intrinseco: nessuna misura dipendente dall'altezza del viewport. */
 .fleet-deck-controls{padding:10px 14px 12px;gap:8px;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;align-items:center}
 .fleet-field-search>label{grid-row:1;grid-column:1/-1}
 .fleet-field-search>.search{grid-row:2;grid-column:1}
 .fleet-field-search>small{grid-row:3;grid-column:1/-1}
 .fleet-field-search .search input{font-size:16px}
 .fleet-deck-controls .fleet-field-state,.fleet-deck-controls .fleet-field-company,
 .fleet-deck-controls .fleet-field-sort,.fleet-deck-controls .fleet-field-reset{display:none}
 .fleet-field-sheet{display:contents}
 .fleet-field-sheet>.btn{grid-row:2;grid-column:2}
 .fleet-filter-trigger{position:relative;min-width:44px;min-height:44px;padding-inline:12px;gap:7px}
 .fleet-filter-count{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;border-radius:999px;background:var(--green);color:var(--surface);font-size:10px;font-weight:700}
 [data-theme=dark] .fleet-filter-count{color:#0a2820}
 .fleet-grid,.fleet-skeleton{grid-template-columns:1fr;gap:12px}
 .fleet-card{padding:16px}
 .fleet-plate{font-size:20px}
 .fleet-pagination{flex-direction:column;align-items:stretch;gap:9px}
 .fleet-pagination .btn{width:100%}
 .vehicle-plate{font-size:27px}
 /* Su telefono la targa e' il centro visivo della scheda: il blocco identita' si centra come un'unica tessera. */
 .vehicle-head>div:first-child{width:100%;text-align:center}
 .vehicle-plate .fleet-plate{margin-inline:auto}
 .vehicle-badges{justify-content:center}
 .vehicle-head .head-actions{width:100%}
 .vehicle-head .head-actions .btn,.vehicle-reserved .two-col-actions .btn{width:100%}
 .vehicle-side{gap:16px}
 /* Superficie a tutta pagina con footer persistente: l'utente non perde mai le azioni. */
 /* Il vincolo «[open]» non e' decorativo: senza di esso questa regola vince sulla regola del browser
    «dialog:not([open]){display:none}», il dialog chiuso resta renderizzato e — non essendo nel top layer —
    ricade nel flusso, comparendo in coda alla pagina. Ancorato al viewport con un ordine di sovrapposizione
    esplicito, il foglio resta una superficie piena sopra il contenuto e si apre soltanto dal proprio comando. */
 .fleet-modal[open],.fleet-filter-modal[open]{position:fixed;inset:0;z-index:200;width:100%;max-width:none;
  max-height:100dvh;height:100dvh;border-radius:0;border:0;margin:0;display:flex;flex-direction:column;background:var(--surface)}
 .fleet-modal .modal-header,.fleet-filter-modal .modal-header{flex:0 0 auto}
 .fleet-modal .modal-content,.fleet-filter-modal .modal-content{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column;padding-bottom:0}
 .fleet-modal .modal-footer,.fleet-filter-modal .modal-footer{position:sticky;bottom:0;margin:auto 0 0;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);flex-wrap:nowrap}
 .fleet-modal .modal-footer .btn,.fleet-filter-modal .modal-footer .btn{flex:1;min-height:48px}
 .fleet-form .form-grid{grid-template-columns:1fr}
 .fleet-form input,.fleet-form select,.fleet-form textarea{font-size:16px}
 .fleet-state-option{min-height:60px}
}
@media(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .fleet-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
 .fleet-anomaly-summary{grid-column:span 4}
 .fleet-grid,.fleet-skeleton{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(prefers-reduced-motion:reduce){
 .fleet-card,.fleet-metric,.fleet-state-option{transition:none}
 .fleet-card:active,.fleet-metric:active{transform:none}
}
.fleet-boot{display:flex;align-items:center;justify-content:center;gap:10px;padding:60px 24px;color:var(--muted);font-size:12px}
.fleet-boot .icon{width:20px;height:20px}

/* ---- Flotta S2: sezioni della scheda, registro e documenti ---------------------------------------- */
/* Le quattro sezioni sono riconoscibili per colore E per indicatore di posizione, mai per il solo colore. */
.vehicle-tabs{display:flex;gap:4px;margin:0 0 18px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.vehicle-tabs::-webkit-scrollbar{display:none}
.vehicle-tab{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:0;background:none;cursor:pointer;
 color:var(--muted);font:inherit;font-weight:600;font-size:13px;white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-1px}
.vehicle-tab .icon{width:17px;height:17px}
.vehicle-tab:hover{color:var(--text)}
.vehicle-tab.on{color:var(--green);border-bottom-color:var(--green)}
.vehicle-tab:focus-visible{outline:2px solid var(--green);outline-offset:-2px;border-radius:6px}
.vehicle-panel:focus,.vehicle-panel:focus-visible{outline:none}
.vehicle-km-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-top:16px}
.vehicle-km-block{background:var(--tint);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0}
.vehicle-km-block small{display:block;font-size:10px;font-weight:700;letter-spacing:.4px;color:var(--muted);margin-bottom:6px}
.vehicle-km-block strong{display:block;font-size:22px;letter-spacing:-.4px}
.vehicle-km-block p{margin:6px 0 0;font-size:11px}

/* Registro: stessa costruzione della fascia S1.2, con la griglia esplicita e le righe condivise. */
.log-head-actions{display:flex;justify-content:flex-end;margin-bottom:14px}
.log-deck-controls{grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(220px,1.6fr) auto}
.log-field-from>*{grid-column:1}
.log-field-to>*{grid-column:2}
.log-field-search>*{grid-column:3}
.log-field-reset>*{grid-column:4}
.log-field-from>input,.log-field-to>input{grid-row:2;height:44px;min-width:0;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--surface);color:var(--text);font:inherit}
.log-field-from>small,.log-field-to>small{grid-row:3}
.log-field-sheet{display:none}
.log-totals{display:flex;flex-wrap:wrap;gap:10px 22px;padding:12px 18px;margin-bottom:16px;background:var(--tint);
 border:1px solid var(--line);border-radius:12px;font-size:12px;color:var(--muted)}
.log-totals span{display:inline-flex;align-items:center;gap:7px;min-width:0}
.log-totals strong{color:var(--text);font-size:14px}
.log-totals .icon{width:16px;height:16px}
.log-results{display:flex;flex-direction:column;gap:10px}
.log-row{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;background:var(--surface);
 border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow);min-width:0}
.log-row-main{min-width:0;flex:1}
.log-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px}
.log-date{font-weight:700;font-size:15px;letter-spacing:-.2px}
.log-badges{display:inline-flex;flex-wrap:wrap;gap:6px}
.log-comment{margin:0 0 8px;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.log-figures{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px;color:var(--muted)}
.log-figures span{display:inline-flex;align-items:center;gap:6px}
.log-figures .icon{width:15px;height:15px}
.log-km em{font-style:normal;opacity:.75}
.log-row-actions{flex-shrink:0}
.log-row-anomala{border-left:3px solid var(--amber,#c07d12)}
.log-quality{display:flex;align-items:flex-start;gap:8px;margin:10px 0 0;font-size:11px;color:var(--muted);line-height:1.45}
.log-quality .icon{width:15px;height:15px;flex-shrink:0;margin-top:1px}
.log-km-help{display:block}
.log-modal .field-error{display:block}

/* Documenti: stessa costruzione della griglia mezzi, con la categoria come pastiglia. */
.doc-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.doc-pill{min-height:36px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);
 color:var(--muted);font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.doc-pill:hover{color:var(--text)}
.doc-pill.on{background:var(--green);border-color:var(--green);color:var(--surface)}
.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.doc-card{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--line);
 border-radius:14px;padding:16px 18px;box-shadow:var(--shadow);min-width:0}
.doc-card-top{display:flex;flex-wrap:wrap;gap:6px}
.doc-description{margin:0;font-size:15px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.doc-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--muted)}
.doc-meta span{display:inline-flex;align-items:center;gap:5px}
.doc-meta .icon{width:14px;height:14px}
.doc-origin{font-weight:600}
.doc-note{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:11px;color:var(--muted);line-height:1.45}
.doc-note .icon{width:15px;height:15px;flex-shrink:0;margin-top:1px}
.doc-cancelled{opacity:.72}
.doc-history summary{cursor:pointer;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:6px;min-height:32px}
.doc-history ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.doc-history li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}
.doc-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:4px}
.doc-actions .btn{min-height:40px}
.doc-file-chosen{display:block;margin-top:6px;font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.doc-progress{display:flex;align-items:center;gap:10px;margin-top:12px}
.doc-progress progress{flex:1;height:8px;min-width:0}
.doc-progress-text{font-size:11px;color:var(--muted)}

@media(max-width:1180px) and (min-width:801px){
 .log-deck-controls{grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) auto;grid-template-rows:auto auto auto auto auto}
 .log-field-search>*{grid-column:1/-1;grid-row:auto}
 .log-field-search>label{grid-row:1}
 .log-field-search>.search{grid-row:2}
 .log-field-search>small{grid-row:3}
 .log-field-from>label{grid-row:4}.log-field-from>input{grid-row:5}.log-field-from>small{display:none}
 .log-field-to>label{grid-row:4}.log-field-to>input{grid-row:5}.log-field-to>small{display:none}
 .log-field-reset>.btn{grid-row:5;grid-column:3}
}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 /* Su mobile restano nella fascia la ricerca nel commento e il comando Filtri; le date vivono nel foglio. */
 .log-deck-controls{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;padding:10px 14px 12px;gap:8px}
 .log-field-from,.log-field-to,.log-field-reset{display:none}
 .log-field-sheet{display:contents}
 .log-field-search>label{display:none}
 .log-field-search>.search{grid-row:1;grid-column:1}
 .log-field-search>small{grid-row:2;grid-column:1/-1}
 .log-field-sheet>.btn{grid-row:1;grid-column:2;min-width:44px;min-height:44px}
 .log-row{flex-direction:column;gap:12px}
 .log-row-actions{width:100%}
 .log-row-actions .btn{width:100%;min-height:44px}
 .doc-grid{grid-template-columns:1fr}
 .vehicle-tab{padding:0 13px;font-size:12px}
 .vehicle-km-pair{grid-template-columns:1fr}
}
@media(min-width:1600px){.doc-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}
@media(prefers-reduced-motion:reduce){.doc-progress progress{transition:none}}
/* Il duplicato e' una domanda dentro la stessa superficie: non apre una seconda finestra. */
.doc-duplicate{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.doc-duplicate .btn{align-self:flex-start;min-height:44px}

/* ---- Documenti: categoria a tessere e area di rilascio Premium ------------------------------------ */
/* Stessa costruzione dello stato iniziale del mezzo, gia' approvata in S1: nessun menu a tendina per una
   scelta che ha bisogno di essere letta, bersagli ampi, icona e testo insieme, nessuna preselezione. */
.doc-category-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.doc-category-option{position:relative;display:block;cursor:pointer;min-width:0}
.doc-category-option input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.doc-category-body{display:flex;align-items:center;gap:12px;min-height:66px;padding:12px 14px;border:1.5px solid var(--line);
 border-radius:13px;background:var(--surface);transition:border-color .15s,background .15s,box-shadow .15s}
.doc-category-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;
 border-radius:11px;background:var(--tint);color:var(--muted);transition:background .15s,color .15s}
.doc-category-icon .icon{width:19px;height:19px}
.doc-category-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.doc-category-text strong{font-size:14px;letter-spacing:-.1px}
.doc-category-text small{font-size:11px;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}
.doc-category-tick{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;
 margin-left:auto;border-radius:50%;background:var(--green);color:var(--surface);opacity:0;transform:scale(.7);transition:opacity .15s,transform .15s}
.doc-category-tick .icon{width:13px;height:13px}
.doc-category-option:hover .doc-category-body{border-color:var(--green)}
.doc-category-option input:focus-visible+.doc-category-body{outline:2px solid var(--green);outline-offset:2px}
.doc-category-option input:checked+.doc-category-body{border-color:var(--green);background:var(--tint);box-shadow:inset 3px 0 0 var(--green)}
.doc-category-option input:checked+.doc-category-body .doc-category-icon{background:var(--green);color:var(--surface)}
.doc-category-option input:checked+.doc-category-body .doc-category-tick{opacity:1;transform:scale(1)}

/* Area di rilascio che e' anche un pulsante: il selettore di file resta il percorso principale. */
.doc-dropzone{position:relative;display:flex;align-items:center;justify-content:center;min-height:132px;padding:18px;
 border:1.5px dashed var(--line);border-radius:14px;background:var(--tint);cursor:pointer;text-align:center;
 transition:border-color .15s,background .15s}
.doc-dropzone>input[type=file]{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.doc-dropzone:hover,.doc-dropzone.sopra{border-color:var(--green);background:var(--surface)}
.doc-dropzone.sopra{border-style:solid}
.doc-dropzone:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.doc-dropzone-empty{display:flex;flex-direction:column;align-items:center;gap:7px}
.doc-dropzone-empty strong{font-size:14px}
.doc-dropzone-empty small{font-size:12px;color:var(--muted)}
.doc-dropzone-link{color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.doc-dropzone-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;
 background:var(--surface);border:1px solid var(--line);color:var(--green)}
.doc-dropzone-icon .icon{width:21px;height:21px}
.doc-dropzone.scelto{border-style:solid;border-color:var(--green);background:var(--surface);min-height:0;padding:14px 16px}
.doc-dropzone-file{display:flex;align-items:center;gap:12px;width:100%;min-width:0;text-align:left}
.doc-dropzone-badge{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:44px;flex-shrink:0;
 border-radius:11px;background:var(--green);color:var(--surface);font-size:11px;font-weight:800;letter-spacing:.4px}
.doc-dropzone-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.doc-dropzone-name{font-size:13px;overflow-wrap:anywhere}
.doc-dropzone-size{font-size:11px;color:var(--muted)}
.doc-dropzone-clear{flex-shrink:0;min-width:36px;min-height:36px}
.doc-file-section .field-error{display:block;margin-top:8px}
.doc-file-section>small{display:block;margin-top:8px;font-size:11px;color:var(--muted)}
.doc-history-actions{display:inline-flex;gap:12px;flex-shrink:0}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .doc-category-choice{grid-template-columns:1fr}
 .doc-category-body{min-height:60px}
 .doc-dropzone{min-height:120px}
 .doc-actions .btn{flex:1}
}
@media(prefers-reduced-motion:reduce){
 .doc-category-body,.doc-category-icon,.doc-category-tick,.doc-dropzone{transition:none}
}

/* ---- Scadenzario ------------------------------------------------------------------------------------ */
/* Banda dell'urgenza: compare soltanto quando esiste davvero qualcosa oltre il termine, ed e' l'unica
   azione primaria della pagina. */
.deadline-alert{display:flex;align-items:flex-start;gap:13px;padding:16px 20px;margin-bottom:18px;
 border:1px solid color-mix(in srgb,var(--red) 28%,var(--line));border-radius:14px;background:var(--red-bg)}
.deadline-alert>.icon{width:20px;height:20px;color:var(--red);flex-shrink:0;margin-top:2px}
.deadline-alert div{flex:1;min-width:0}
.deadline-alert strong{display:block;font-size:14px;color:var(--red)}
.deadline-alert p{margin:4px 0 0;font-size:12px;color:var(--ink);line-height:1.5}
.deadline-metric .fleet-metric-value{font-variant-numeric:tabular-nums}
.deadline-metric.red .fleet-metric-value{color:var(--red)}
.deadline-metric.amber .fleet-metric-value{color:var(--amber)}
.deadline-metric.blue .fleet-metric-value{color:var(--blue)}
.deadline-metric.green .fleet-metric-value{color:var(--green)}

/* Linea del tempo: dodici colonne di uguale larghezza, altezza proporzionale al carico del mese. */
.deadline-timeline .panel-body{padding-top:14px}
/* Righe condivise dalla griglia, come nelle fasce filtri di S1.2: barre, conteggi ed etichette non possono
   disallinearsi, perche' non sono tre gruppi indipendenti ma tre righe della stessa griglia. Il flusso per
   colonna assegna a ogni mese la propria colonna. */
.timeline-track{display:grid;grid-template-rows:88px 17px 14px;grid-auto-flow:column;
 grid-auto-columns:minmax(0,1fr);gap:6px 10px;margin:0;padding:0;list-style:none}
.timeline-month{display:contents}
.timeline-bar{grid-row:1;align-self:end;justify-self:center;width:100%;max-width:34px;
 height:var(--quota,0%);min-height:7px;max-height:100%;
 border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,var(--green),color-mix(in srgb,var(--green) 60%,var(--surface)))}
.timeline-count{grid-row:2;justify-self:center}
.timeline-label{grid-row:3;justify-self:center}
.timeline-month.empty .timeline-bar{background:color-mix(in srgb,var(--line) 85%,transparent);border-radius:999px}
.timeline-count{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink);min-height:15px}
.timeline-label{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}

/* Fascia filtri: stessa griglia esplicita di S1.2, che resta regola costruttiva permanente. */
.deadline-deck-controls{grid-template-columns:minmax(240px,2fr) minmax(150px,1fr) minmax(150px,1fr) minmax(170px,1.1fr) auto}
.deadline-field-search>*{grid-column:1}
.deadline-field-state>*{grid-column:2}
.deadline-field-kind>*{grid-column:3}
.deadline-field-company>*{grid-column:4}
.deadline-field-reset>*{grid-column:5}
.deadline-field-sheet{display:none}

.deadline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-bottom:20px}
.deadline-grid.vehicle{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.deadline-card{display:flex;flex-direction:column;gap:9px;padding:16px 18px;background:var(--surface);
 border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);position:relative;overflow:hidden;min-width:0}
/* Barra di accento a sinistra: dichiara l'urgenza senza colorare l'intera superficie. */
.deadline-card::before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:var(--line)}
.deadline-card.urgent::before{background:var(--red)}
.deadline-card.today::before{background:var(--amber)}
.deadline-card.soon::before{background:var(--green)}
.deadline-card.planned::before{background:color-mix(in srgb,var(--blue) 50%,var(--line))}
.deadline-card.done{opacity:.72}
.deadline-card.done::before{background:color-mix(in srgb,var(--muted) 40%,transparent)}
.deadline-card.projected{border-style:dashed}
.deadline-lead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.deadline-kind{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:700;letter-spacing:.4px;
 text-transform:uppercase;color:var(--muted)}
.deadline-kind .icon{width:15px;height:15px}
.deadline-plate{border:0;background:var(--tint);color:var(--green);border-radius:8px;padding:4px 9px;
 font-family:ui-monospace,monospace;font-size:13px;font-weight:700;letter-spacing:.5px;min-height:30px}
.deadline-plate:hover{background:color-mix(in srgb,var(--green) 18%,var(--surface))}
.deadline-what{margin:0;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.deadline-meta{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:11px;color:var(--muted)}
.deadline-term{display:inline-flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums}
.deadline-term .icon{width:13px;height:13px}
.deadline-flag{color:var(--amber);background:var(--amber-bg);border-radius:6px;padding:2px 7px;font-size:10px}
.deadline-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px;
 padding-top:10px;border-top:1px solid var(--line)}
.deadline-when{font-size:12px;letter-spacing:-.1px}
.deadline-card.urgent .deadline-when{color:var(--red)}
.deadline-card.today .deadline-when{color:var(--amber)}
.deadline-actions{display:inline-flex;gap:6px;flex-shrink:0}

/* Parametri ricorrenti dentro la scheda mezzo. */
.recurrence-panel{padding:18px 20px;margin-bottom:20px;background:var(--surface);border:1px solid var(--line);
 border-radius:15px;box-shadow:var(--shadow)}
.recurrence-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}
.recurrence-head h3{margin:0;font-size:15px}
.recurrence-head p{margin:4px 0 0;font-size:12px}
.recurrence-locked{font-size:11px;color:var(--muted);white-space:nowrap}
.recurrence-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.recurrence-item{padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--bg);min-width:0}
.recurrence-item.missing{border-style:dashed}
.recurrence-top{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:700;letter-spacing:.4px;
 text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.recurrence-top .icon{width:15px;height:15px}
.recurrence-next{display:block;font-size:17px;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.recurrence-item.missing .recurrence-next{font-size:14px;color:var(--muted)}
.recurrence-item small{display:block;margin-top:5px;font-size:10px;color:var(--muted);line-height:1.5}
.deadline-vehicle-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.deadline-vehicle-head h3{margin:0;font-size:15px}

@media(max-width:1180px) and (min-width:801px){
 .deadline-deck-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
 .deadline-field-search>*{grid-column:1/-1}
 .deadline-field-state>*{grid-column:1}
 .deadline-field-kind>*{grid-column:2}
 .deadline-field-company>*{grid-column:1}
 .deadline-field-reset>*{grid-column:3}
}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 /* Mobile: a prima vista ricerca e comando Filtri, il resto nel foglio che si apre soltanto da li'. */
 .deadline-deck-controls{grid-template-columns:minmax(0,1fr) auto}
 .deadline-field-search>label{grid-row:1;grid-column:1/-1}
 .deadline-field-search>.search{grid-row:2;grid-column:1}
 .deadline-field-search>small{grid-row:3;grid-column:1/-1}
 .deadline-deck-controls .deadline-field-state,.deadline-deck-controls .deadline-field-kind,
 .deadline-deck-controls .deadline-field-company,.deadline-deck-controls .deadline-field-reset{display:none}
 .deadline-field-sheet{display:contents}
 .deadline-field-sheet>.btn{grid-row:2;grid-column:2}
 .deadline-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .deadline-grid,.deadline-grid.vehicle{grid-template-columns:1fr;gap:10px}
 .deadline-card{padding:14px 16px}
 .deadline-alert{flex-direction:column;gap:10px}
 .deadline-alert .btn{width:100%}
 /* La linea del tempo non scorre e non forza larghezze: su telefono i dodici mesi si dispongono su due
    righe da sei, restano tutti leggibili e nulla puo' sporgere dalla pagina. */
 .deadline-timeline .panel-body{min-width:0;max-width:100%;overflow:hidden;padding:14px}
 /* Su telefono i dodici mesi diventano barre orizzontali di altezza certa: si leggono senza schiacciare
    le etichette, non esiste larghezza da far scorrere e un mese vuoto resta una traccia, non un pallino. */
 .deadline-timeline .panel-head{flex-direction:column;align-items:flex-start;gap:3px}
 /* Su telefono la stessa tecnica del desktop, ruotata: tre colonne condivise e una riga per mese.
    Le celle non hanno una scatola propria da dimensionare, quindi non possono crescere da sole. */
 .timeline-track{grid-template-rows:none;grid-template-columns:32px minmax(0,1fr) 26px;
  grid-auto-flow:row;grid-auto-rows:20px;grid-auto-columns:auto;gap:7px 10px;min-width:0;max-width:100%}
 .timeline-month{display:contents}
 .timeline-label{grid-row:auto;grid-column:1;justify-self:start;align-self:center}
 .timeline-bar{grid-row:auto;grid-column:2;justify-self:stretch;align-self:center;width:100%;max-width:100%;
  height:9px;min-height:9px;max-height:9px;border-radius:999px;
  background:linear-gradient(to right,var(--green) var(--quota,0%),color-mix(in srgb,var(--line) 75%,transparent) var(--quota,0%))}
 .timeline-month.empty .timeline-bar{background:color-mix(in srgb,var(--line) 75%,transparent)}
 .timeline-count{grid-row:auto;grid-column:3;justify-self:end;align-self:center;min-height:0}
 .recurrence-head{flex-direction:column;align-items:stretch}
 .recurrence-head .btn{width:100%}
 .recurrence-grid{grid-template-columns:1fr}
 .deadline-vehicle-head{flex-direction:column;align-items:stretch;gap:10px}
 .deadline-vehicle-head .btn{width:100%}
}
@media(prefers-reduced-motion:reduce){.deadline-card,.timeline-bar{transition:none}}

/* ---- Estrazione del gasolio ----------------------------------------------------------------------- */
.fuel-presets{display:flex;flex-wrap:wrap;gap:8px;padding:0 22px 14px}
/* Periodo personalizzato: scrittura manuale in italiano e calendario nativo sulla stessa riga. */
.fuel-range{display:grid;grid-template-columns:minmax(0,210px) minmax(0,210px) auto;
 grid-template-rows:auto auto auto;gap:7px 18px;justify-content:start;
 padding:14px 22px 18px;border-top:1px solid var(--line)}
.fuel-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.fuel-field>label{font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--muted)}
.fuel-field input[type=text]{height:44px;min-height:44px;font-variant-numeric:tabular-nums;letter-spacing:.2px}
.fuel-field .field-error:not([hidden]){display:block;font-size:11px;line-height:1.45}
/* Dentro la card i campi condividono le tre righe della griglia — etichetta, controllo, aiuto — come la
   fascia filtri di S1.2: Azzera cade sulla riga dei controlli per costruzione, non per misura, e un
   messaggio d'errore sotto una data non lo sposta. */
.fuel-range .fuel-field{display:contents}
.fuel-range .fuel-field>label{grid-row:1;align-self:end}
.fuel-range .fuel-field>.date-entry{grid-row:2}
.fuel-range .fuel-field>small{grid-row:3;align-self:start}
.fuel-range .fuel-field-from>*{grid-column:1}
.fuel-range .fuel-field-to>*{grid-column:2}
.fuel-range .fuel-field-reset>*{grid-column:3}
.fuel-range .fuel-field-reset>.btn{grid-row:2;align-self:center;justify-self:start;
 min-height:44px;white-space:nowrap;padding-inline:16px}
.fuel-field-reset .btn[disabled]{opacity:1;color:color-mix(in srgb,var(--muted) 70%,transparent);border-color:transparent;background:transparent}
.fleet-sheet-summary .text-button[disabled]{opacity:1;color:color-mix(in srgb,var(--muted) 70%,transparent)}
.fuel-range-compact{display:none}
.fuel-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:18px}
.fuel-metric{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow);min-width:0}
.fuel-metric-top{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;letter-spacing:.4px;
 text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.fuel-metric-top .icon{width:16px;height:16px}
.fuel-metric-value{display:block;font-size:27px;letter-spacing:-.6px;line-height:1.1}
.fuel-metric-period{font-size:16px;letter-spacing:-.2px}
.fuel-note{display:flex;align-items:flex-start;gap:9px;margin:0 0 18px;padding:12px 16px;border-radius:12px;
 background:var(--amber-bg);font-size:12px;line-height:1.5}
.fuel-note .icon{width:16px;height:16px;flex-shrink:0;margin-top:1px}
.fuel-table-wrap{overflow-x:auto}
.fuel-table{width:100%}
.fuel-table .num{text-align:right;font-variant-numeric:tabular-nums}
.fuel-cell-plate strong{font-size:13px;letter-spacing:.4px}
.fuel-amount{display:block;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.2px}
.fuel-share{display:block;font-size:10px;color:var(--muted);margin-top:3px}
.fuel-unit{display:none}
.fuel-table tfoot td{font-weight:700;border-top:2px solid var(--line);background:var(--tint)}
.fuel-total-amount strong{display:inline;font-size:14px;font-variant-numeric:tabular-nums}
@media(max-width:1180px) and (min-width:801px){
 .fuel-range{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 /* Mobile: a prima vista soltanto i periodi rapidi. Le date esatte vivono nel foglio dei filtri avanzati,
    cosi' la card resta una sola decisione invece di quattro campi accatastati. */
 .fuel-presets{padding:12px 14px 0}
 .fuel-presets .doc-pill{flex:1 1 calc(50% - 4px);min-height:44px;justify-content:center;font-size:12px}
 .fuel-range{display:none}
 .fuel-range-compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px 14px 14px}
 .fuel-range-compact .btn{width:100%;min-height:48px}
 .fuel-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .fuel-metric{padding:13px 14px}
 .fuel-metric-value{font-size:22px;letter-spacing:-.5px}
 .fuel-metric:last-child{grid-column:1/-1}
 .fuel-metric-period{font-size:15px}
 .fleet-head .head-actions .btn{width:100%}
 /* Spesa per mezzo: su telefono la tabella diventa una card per mezzo. Targa e importo sulla prima riga,
    azienda e rifornimenti sulla seconda, barra proporzionale della quota sul periodo alla base. */
 .fuel-summary-panel .panel-head{flex-direction:column;align-items:flex-start;gap:3px;padding:16px 16px 13px}
 .fuel-summary-panel .panel-body{padding:12px}
 .fuel-summary-panel .fuel-table-wrap{overflow:visible}
 .fuel-table,.fuel-table tbody,.fuel-table tfoot{display:block;width:100%}
 .fuel-table thead{display:none}
 .fuel-table tbody{display:grid;gap:10px}
 .fuel-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"plate amount" "company count" "quota quota";
  align-items:baseline;gap:2px 12px;padding:13px 15px 12px;border:1px solid var(--line);border-radius:14px;
  background:var(--surface);box-shadow:0 6px 18px #18332b0a}
 .fuel-table tbody tr:hover{background:var(--surface)}
 .fuel-table tbody td{display:block;padding:0;border:0;min-width:0;font-size:12px}
 .fuel-cell-plate{grid-area:plate}
 .fuel-cell-plate strong{font-size:17px;letter-spacing:.5px}
 .fuel-cell-company{grid-area:company;font-size:11px;color:var(--muted);line-height:1.45;overflow-wrap:anywhere}
 .fuel-cell-count{grid-area:count;text-align:right;font-size:11px;color:var(--muted);white-space:nowrap}
 .fuel-cell-amount{grid-area:amount;text-align:right}
 .fuel-amount{font-size:19px;letter-spacing:-.4px}
 /* La quota resta annunciata dallo screen reader: a schermo la racconta la barra, non un secondo numero. */
 .fuel-share{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;margin:0}
 .fuel-table tbody tr::after{content:'';grid-area:quota;height:5px;margin-top:10px;border-radius:999px;
  background:linear-gradient(to right,var(--green) var(--quota,0%),color-mix(in srgb,var(--line) 75%,transparent) var(--quota,0%))}
 .fuel-unit{display:inline}
 .fuel-table tfoot tr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label amount" "count amount";
  align-items:center;gap:2px 12px;margin-top:10px;padding:14px 15px;border-radius:14px;background:var(--tint);
  border:1px solid color-mix(in srgb,var(--green) 22%,var(--line))}
 .fuel-table tfoot td{display:block;padding:0;border:0;background:none}
 .fuel-total-label{grid-area:label;font-size:12px}
 .fuel-table tfoot .fuel-total-count{grid-area:count;font-size:11px;font-weight:400;color:var(--muted);text-align:left;justify-self:start}
 .fuel-total-amount{grid-area:amount;text-align:right}
 .fuel-total-amount strong{font-size:20px;letter-spacing:-.4px}
 /* Foglio dei filtri avanzati: stessa griglia verticale delle altre superfici Flotta. */
 .fuel-sheet-grid{display:grid;gap:16px}
}

/* Gestione Dispositivi D1 — anagrafiche di servizio. Soli token esistenti: --surface, --line, --tint,
   --green, --ink, --muted, --bg, --radius, --shadow, --amber. Fascia filtri sulla griglia esplicita a righe
   condivise, la stessa regola costruttiva approvata per la Flotta: etichetta, controllo, aiuto. */
.devices-deck{padding:20px 24px;margin-bottom:22px}
.devices-deck-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:14px}
.devices-deck-head h2{font-size:15px;margin:0}
.devices-count-pill{background:var(--tint);color:var(--green);border-radius:999px;padding:6px 13px;font-size:11px;font-weight:700;white-space:nowrap}
/* Fascia filtri: ogni campo e' un blocco con **tre righe di altezza fissa** — etichetta, controllo, aiuto.
   Le righe fisse sono cio' che tiene i controlli su una sola linea: con righe libere un aiuto piu' lungo
   alzava il proprio campo e basta. Il campo va a capo tutto insieme, quindi un'etichetta non si sgancia mai
   dal proprio controllo: era esattamente cio' che si vedeva quando la riga non ci stava. */
/* Ogni variante dichiara le proprie colonne: nessun a-capo casuale e nessun comando spinto nel margine. */
.devices-deck-controls{display:grid;gap:12px}
.devices-deck-row{display:grid;align-items:start;gap:12px;min-width:0}
.devices-field{display:grid;grid-template-rows:14px 44px auto;row-gap:6px;min-width:0;width:100%}
.devices-field>*{min-width:0}
.devices-field>label,.devices-field>span:first-child{grid-row:1;font-size:10px;color:var(--muted);font-weight:700;
 align-self:end;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.devices-field>.search,.devices-field>select,.devices-field>.btn,.devices-field>.devices-picker,
.devices-field>.devices-period{grid-row:2;min-height:44px;align-self:stretch}
.devices-field>small{grid-row:3;font-size:10px;color:var(--muted);line-height:1.35}
.devices-deck-simple .devices-deck-row.primaria{grid-template-columns:minmax(0,1fr) minmax(112px,max-content)}
.devices-deck-hospitals .devices-deck-row.primaria{grid-template-columns:minmax(280px,1fr) 176px minmax(112px,max-content)}
.devices-deck-park .devices-deck-row.primaria{grid-template-columns:minmax(0,1fr)}
.devices-deck-park .devices-deck-row.secondaria,
.devices-deck-period .devices-deck-row.secondaria{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(112px,max-content)}
/* Il periodo ha una colonna dedicata: due date scritte a mano e due calendari non vengono compressi. */
.devices-deck-period .devices-deck-row.primaria{grid-template-columns:minmax(260px,1fr) minmax(360px,440px)}
.devices-deck-report .devices-deck-row.primaria{grid-template-columns:minmax(210px,1.4fr) repeat(2,minmax(145px,1fr)) minmax(112px,max-content)}
.devices-field-reset>.btn,.devices-field-sheet>.btn{grid-row:2;min-width:112px}
.devices-field .search{flex:none;min-width:0}
/* Periodo: un campo solo con due estremi e la freccia che ne dichiara il verso. */
.devices-period{display:grid;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);align-items:center;gap:6px}
.devices-period-sep{color:var(--muted);font-size:12px;text-align:center}
.devices-period .date-entry{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:4px;min-width:0}
.devices-period .date-entry input[type=text]{min-height:44px;min-width:0;width:100%;font-variant-numeric:tabular-nums}
.devices-period .native-date-trigger{flex-shrink:0}
.devices-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin-bottom:20px}
.devices-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;transition:var(--ease)}
.devices-card:hover{box-shadow:0 6px 18px #0000000f;transform:translateY(-1px)}
.devices-card.quiet{opacity:.78}
.devices-card-open{display:flex;flex-direction:column;gap:9px;width:100%;text-align:left;border:0;background:none;padding:20px;color:inherit;min-height:150px}
.devices-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.devices-card-wards{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}
.devices-card-wards .icon{width:15px;height:15px}
.devices-card strong{font-size:17px;letter-spacing:-.3px;line-height:1.35}
.devices-card-sub{font-size:12px;color:var(--muted)}
.devices-card-enter{margin-top:auto;display:inline-flex;align-items:center;gap:7px;color:var(--green);font-size:12px;font-weight:700}
.nav-label-inner{margin-top:20px}
/* Dashboard del modulo */
.devices-focus{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;background:var(--tint);border:1px solid color-mix(in srgb,var(--green) 25%,var(--line));border-radius:var(--radius);padding:22px 26px;margin-bottom:22px}
.devices-focus.quiet{background:var(--surface);border-color:var(--line)}
.devices-focus h2{margin:6px 0 4px;font-size:21px;letter-spacing:-.5px}
.devices-focus p{margin:0;font-size:12px;color:var(--muted)}
.devices-kpi{margin-bottom:22px}
.devices-report-page{min-width:0}
.devices-report-kpi{overflow:hidden}
.devices-report-kpi .devices-kpi{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0}
.devices-report-kpi .stat{display:flex;min-width:0;min-height:108px;flex-direction:column;justify-content:space-between;gap:8px;
 padding:18px;border:0;border-right:1px solid var(--line);border-radius:0;box-shadow:none}
.devices-report-kpi .stat:last-child{border-right:0}
.devices-report-kpi .stat span{color:var(--muted);font-size:10px;font-weight:700;line-height:1.35;letter-spacing:.5px;text-transform:uppercase}
.devices-report-kpi .stat strong{font-size:28px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.devices-report-kpi .stat.rosso{background:color-mix(in srgb,var(--red-bg) 55%,var(--surface));color:var(--red)}
.devices-report-kpi .stat.ambra{background:color-mix(in srgb,var(--amber-bg) 62%,var(--surface));color:var(--amber)}
.devices-report-section .panel-head h3{margin:0}
.devices-report-table{min-width:0;table-layout:auto}
.devices-report-table .main-cell{font-weight:700;color:var(--ink)}
.devices-report-nota{display:flex;align-items:flex-start;gap:10px;margin:0;padding:15px 17px;border:1px solid color-mix(in srgb,var(--green) 23%,var(--line));
 border-radius:13px;background:var(--tint);color:var(--muted);font-size:11px;line-height:1.55}
.devices-report-nota .icon{width:18px;height:18px;flex:0 0 18px;color:var(--green)}

/* Report Ospedali: albero patrimoniale Premium. Le superfici sono opache e gli effetti restano statici:
   su tablet e telefono centinaia di righe non devono innescare blur o ricomposizioni durante lo scroll. */
.devices-deck-report-tree .devices-deck-row.primaria{grid-template-columns:minmax(260px,1.5fr) minmax(230px,1fr) minmax(108px,max-content)}
.devices-report-summary{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:-2px 0 14px}
.devices-report-summary>span{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:11.5px}
.devices-report-summary .icon{width:15px;height:15px;color:var(--green)}
.devices-report-summary strong{color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums}
.devices-report-summary .active{border-color:color-mix(in srgb,var(--green) 35%,var(--line));background:var(--tint);color:var(--green-dark);font-weight:700}
.devices-tree{display:flex;flex-direction:column;gap:12px}
.devices-tree-hospital{border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 9px 26px #173f3210;overflow:clip}
.devices-tree-hospital.quiet{opacity:.78}
.devices-tree-hospital-main{display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(360px,auto);align-items:center;gap:18px;min-height:100px;padding:17px 18px;border-left:4px solid var(--green)}
.devices-tree-toggle{display:flex;align-items:center;gap:13px;min-width:0;min-height:54px;padding:0;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer}
.devices-tree-toggle:focus-visible,.devices-tree-ward-toggle:focus-visible,.devices-tree-device-id button:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 38%,transparent);outline-offset:3px;border-radius:10px}
.devices-tree-chevron{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:var(--tint);color:var(--green-dark);transition:transform .16s ease}
.devices-tree-chevron .icon{width:17px;height:17px}.devices-tree-toggle[aria-expanded="true"] .devices-tree-chevron{transform:rotate(180deg);background:var(--green);color:white}
.devices-tree-title{display:flex;min-width:0;flex-direction:column;gap:3px}.devices-tree-title small,.devices-tree-branch-head small,.devices-tree-device small,.devices-preventive-intro small,.devices-preventive-confirm small,.devices-preventive-batches article>div:first-child>small{font-size:9px;font-weight:800;letter-spacing:.85px;color:var(--green);text-transform:uppercase}
.devices-tree-title strong{font-size:17px;line-height:1.25}.devices-tree-title>span{overflow:hidden;color:var(--muted);font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}
.devices-tree-metrics{display:flex;align-items:stretch;gap:7px}
.devices-tree-metrics>span{display:flex;min-width:76px;min-height:48px;flex-direction:column;justify-content:center;padding:6px 10px;border-radius:11px;background:var(--soft);color:var(--muted);font-size:9.5px;line-height:1.25;text-align:center}
.devices-tree-metrics strong{color:var(--ink);font-size:17px;font-variant-numeric:tabular-nums}
.devices-tree-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:7px}.devices-tree-actions .btn{min-height:40px;padding:8px 11px;font-size:10.5px}
.devices-tree-branch{border-top:1px solid var(--line);background:color-mix(in srgb,var(--soft) 65%,var(--surface))}
.devices-tree-loading{display:flex;align-items:center;justify-content:center;gap:9px;min-height:90px;color:var(--muted);font-size:12px}.devices-tree-loading .icon{width:17px;height:17px;color:var(--green)}
.devices-tree-wards{padding:13px 16px 17px}.devices-tree-branch-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 7px 11px;color:var(--muted);font-size:11px}.devices-tree-branch-head>span:first-child{display:flex;flex-direction:column;gap:2px}.devices-tree-branch-head strong{color:var(--ink);font-size:13px}
.devices-tree-ward{border:1px solid var(--line);border-radius:13px;background:var(--surface);overflow:clip}.devices-tree-ward+.devices-tree-ward{margin-top:7px}
.devices-tree-ward-toggle{display:grid;grid-template-columns:30px minmax(180px,1fr) minmax(100px,auto);align-items:center;gap:11px;width:100%;min-height:58px;padding:8px 13px;border:0;background:none;color:var(--ink);text-align:left;cursor:pointer}.devices-tree-ward-toggle:disabled{cursor:default;opacity:.62}
.devices-tree-ward-icon{display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:var(--tint);color:var(--green-dark)}.devices-tree-ward-icon .icon{width:13px;height:13px}.devices-tree-ward-toggle[aria-expanded="true"] .devices-tree-ward-icon{background:var(--green);color:#fff}.devices-tree-ward-toggle[aria-expanded="true"] .devices-tree-ward-icon .icon{transform:rotate(45deg)}
.devices-tree-ward-toggle>span:nth-child(2){display:flex;min-width:0;flex-direction:column;gap:2px}.devices-tree-ward-toggle strong{font-size:13px}.devices-tree-ward-toggle small{overflow:hidden;color:var(--muted);font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}
.devices-tree-ward-count{display:flex;align-items:baseline;justify-content:flex-end;gap:4px;color:var(--muted);font-size:10px}.devices-tree-ward-count strong{font-size:17px;font-variant-numeric:tabular-nums;color:var(--green-dark)}
.devices-tree-devices{border-top:1px solid var(--line);background:var(--soft);padding:11px}.devices-tree-device-head{display:flex;align-items:center;justify-content:space-between;padding:1px 2px 9px;color:var(--muted);font-size:10px}.devices-tree-device-head strong{color:var(--ink);font-size:12px}
.devices-tree-device-list{display:flex;flex-direction:column;gap:6px}.devices-tree-device{display:grid;grid-template-columns:52px minmax(140px,.72fr) minmax(240px,1.4fr) minmax(80px,.45fr) minmax(120px,auto);align-items:center;gap:12px;min-height:66px;padding:8px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.devices-tree-device>div{display:flex;min-width:0;flex-direction:column;gap:2px}.devices-tree-device strong{overflow:hidden;font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}.devices-tree-device>div>span{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.devices-tree-device-photo{display:grid!important;place-items:center;width:48px;height:48px;border-radius:10px;background:var(--soft)}.devices-tree-device-photo .devices-type-photo{width:44px;height:44px;border:0;background:transparent}
.devices-tree-device-id button{width:max-content;max-width:100%;padding:2px 0;border:0;background:none;color:var(--green-dark);font:750 12px ui-monospace,SFMono-Regular,Menlo,monospace;text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;cursor:pointer}
.devices-tree-device-state{align-items:flex-end!important}.devices-tree-device-state .badge+.badge{margin-top:3px}.devices-tree-more{display:flex;justify-content:center;padding:11px 0 1px}.devices-tree-more .btn{min-width:200px}
.devices-report-empty{border:1px dashed var(--line);border-radius:18px;background:var(--surface)}

/* Preventive massive: due passaggi leggibili, nessuna ambiguita' fra servizio storico e PDF allegato. */
.devices-preventive-modal{width:min(720px,calc(100vw - 28px))}.devices-preventive-intro,.devices-preventive-confirm{display:flex;align-items:flex-start;gap:13px;padding:15px 16px;border:1px solid color-mix(in srgb,var(--green) 28%,var(--line));border-radius:14px;background:var(--tint)}
.devices-preventive-intro>.icon,.devices-preventive-confirm>.icon{width:25px;height:25px;flex:0 0 25px;color:var(--green-dark)}.devices-preventive-intro strong{display:block;font-size:14px}.devices-preventive-intro p,.devices-preventive-confirm p{margin:4px 0 0;color:var(--muted);font-size:11.5px;line-height:1.55}.devices-preventive-confirm h3{margin:2px 0 0;font-size:17px}
.devices-preventive-types{min-width:0;margin:0;padding:0;border:0}.devices-preventive-types legend{margin-bottom:8px;font-size:12px;font-weight:750}.devices-preventive-type-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:285px;overflow:auto;padding:2px}
.devices-preventive-type-list label{display:flex;align-items:center;gap:10px;min-height:50px;padding:8px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface);cursor:pointer}.devices-preventive-type-list label:has(input:checked){border-color:var(--green);background:var(--tint);box-shadow:0 0 0 1px color-mix(in srgb,var(--green) 25%,transparent)}
.devices-preventive-type-list input{width:20px;height:20px;accent-color:var(--green)}.devices-preventive-type-list span{display:flex;min-width:0;flex-direction:column;gap:2px}.devices-preventive-type-list strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.devices-preventive-type-list small{color:var(--muted);font-size:9.5px}
.devices-preventive-doc-state{display:flex;align-items:flex-start;gap:10px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg) 78%,var(--surface))}.devices-preventive-doc-state.ok{border-color:color-mix(in srgb,var(--green) 28%,var(--line));background:var(--tint)}.devices-preventive-doc-state.pending{border-color:color-mix(in srgb,var(--amber) 30%,var(--line));background:var(--amber-bg)}.devices-preventive-doc-state .icon{width:18px;height:18px;flex:0 0 18px}.devices-preventive-doc-state span{display:flex;flex-direction:column;gap:2px}.devices-preventive-doc-state strong{font-size:11.5px}.devices-preventive-doc-state small{color:var(--muted);font-size:10px;line-height:1.45}
.devices-preventive-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.devices-preventive-kpi>span{display:flex;min-height:70px;flex-direction:column;justify-content:center;padding:11px;border-radius:12px;background:color-mix(in srgb,var(--bg) 78%,var(--surface));text-align:center}.devices-preventive-kpi small{color:var(--muted);font-size:9px;text-transform:uppercase}.devices-preventive-kpi strong{font-size:17px;color:var(--ink)}
.devices-preventive-preview-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:38px;padding:7px 11px;border-bottom:1px solid var(--line);font-size:11.5px}.devices-preventive-preview-row strong{font-variant-numeric:tabular-nums}
.devices-preventive-batches{display:flex;max-height:min(60vh,560px);flex-direction:column;gap:8px;overflow:auto}.devices-preventive-batches article{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 13px;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:12px;background:var(--surface)}.devices-preventive-batches article.cancelled{border-left-color:var(--red);opacity:.8}.devices-preventive-batches article>div:first-child{display:flex;min-width:0;flex-direction:column;gap:2px}.devices-preventive-batches article>div:first-child>strong{font-size:14px}.devices-preventive-batches article>div:first-child>span{overflow:hidden;color:var(--muted);font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.devices-preventive-batch-count{display:flex;flex-direction:column;text-align:center}.devices-preventive-batch-count strong{font-size:18px}.devices-preventive-batch-count small{color:var(--muted);font-size:9px}.devices-preventive-batches article>p{grid-column:1/-1;margin:0;padding-top:7px;border-top:1px solid var(--line);color:var(--muted);font-size:10.5px}

@media (max-width:1180px){
 .devices-tree-hospital-main{grid-template-columns:minmax(260px,1fr) auto}.devices-tree-actions{grid-column:1/-1;justify-content:flex-start;padding-left:47px}.devices-tree-device{grid-template-columns:48px minmax(120px,.65fr) minmax(200px,1.3fr) 75px minmax(110px,auto)}
}
@media (max-width:760px){
 .devices-deck-report-tree .devices-deck-row.primaria{grid-template-columns:1fr 1fr}.devices-deck-report-tree .devices-field-search{grid-column:1/-1}.devices-deck-report-tree .devices-field-reset>.btn{width:100%}
 .devices-tree-hospital-main{display:flex;align-items:stretch;flex-direction:column;gap:11px;padding:14px;border-left-width:3px}.devices-tree-toggle{width:100%}.devices-tree-title strong{font-size:15px}.devices-tree-metrics{display:grid;grid-template-columns:repeat(2,1fr)}.devices-tree-metrics>span{min-width:0}.devices-tree-actions{display:grid;grid-template-columns:1fr 1fr;padding-left:0}.devices-tree-actions .btn{width:100%;min-width:0}
 .devices-tree-wards{padding:10px}.devices-tree-ward-toggle{grid-template-columns:28px minmax(0,1fr);padding:9px 10px}.devices-tree-ward-count{grid-column:2;justify-content:flex-start}.devices-tree-ward-toggle small{white-space:normal}.devices-tree-devices{padding:8px}
 .devices-tree-device{grid-template-columns:46px minmax(0,1fr) auto;gap:8px;padding:9px}.devices-tree-device>div:nth-child(3){grid-column:2/-1}.devices-tree-device>div:nth-child(4){grid-column:2}.devices-tree-device-state{grid-column:3;grid-row:1/2}.devices-tree-device strong,.devices-tree-device>div>span{white-space:normal}.devices-tree-device-photo{grid-row:1/3}.devices-tree-device-state .badge{font-size:8px}
 .devices-preventive-type-list{grid-template-columns:1fr}.devices-preventive-kpi{grid-template-columns:1fr 1fr}.devices-preventive-kpi>span:last-child{grid-column:1/-1}.devices-preventive-batches article{grid-template-columns:minmax(0,1fr) auto}.devices-preventive-batches article>.btn,.devices-preventive-batches article>.badge{grid-column:1/-1;width:100%}
}
.stat.warn .stat-icon{color:var(--amber);background:var(--amber-bg)}
.stat.quiet .stat-value{color:var(--muted)}
.devices-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:22px}
.devices-shortcut{display:flex;align-items:flex-start;gap:15px;text-align:left;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;color:inherit;min-height:104px;transition:var(--ease)}
button.devices-shortcut:hover{box-shadow:0 6px 18px #0000000f;transform:translateY(-1px)}
.devices-shortcut-icon{display:grid;place-content:center;width:44px;height:44px;border-radius:12px;background:var(--tint);color:var(--green);flex-shrink:0}
.devices-shortcut-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.devices-shortcut-copy small{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--green);font-weight:700}
.devices-shortcut-copy strong{font-size:16px;letter-spacing:-.3px}
.devices-shortcut-copy span{font-size:12px;color:var(--muted)}
.devices-shortcut-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px;font-size:11px;font-weight:700;color:var(--muted)}
.devices-shortcut-go{display:inline-flex;align-items:center;gap:6px;color:var(--green)}
.devices-shortcut-go .icon{width:16px;height:16px}
/* Accessi rapidi ai servizi di reparto: sono visibili soltanto quando il backend dichiara il relativo
   modulo attivo per azienda e account. Il bagliore richiama l'occhio senza muovere il contenuto. */
.devices-service-launchers{position:relative;margin:0 0 24px;padding:22px;border:1px solid color-mix(in srgb,var(--green) 26%,var(--line));
 border-radius:22px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 92%,#dff8ef),color-mix(in srgb,var(--surface) 96%,#dcebe7));
 box-shadow:0 18px 44px #143d3020, inset 0 1px 0 #ffffffb8;overflow:hidden}
.devices-service-launchers:before{content:"";position:absolute;inset:-55% 48% auto -18%;height:180%;border-radius:50%;pointer-events:none;
 background:radial-gradient(circle,color-mix(in srgb,var(--green) 14%,transparent),transparent 66%)}
.devices-service-heading{position:relative;display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:16px}
.devices-service-heading h2{margin:3px 0 0;font-size:20px;letter-spacing:-.45px}.devices-service-heading p{max-width:520px;margin:0;color:var(--muted);font-size:12px;line-height:1.55;text-align:right}
.devices-service-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.devices-service-launcher{position:relative;isolation:isolate;display:grid;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:116px;
 padding:18px 20px;border:1px solid color-mix(in srgb,var(--green) 31%,var(--line));border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 94%,#e6fff6),var(--surface));
 color:var(--ink);text-align:left;overflow:hidden;box-shadow:0 12px 30px #123e3118,inset 0 1px 0 #ffffffd4;transition:transform var(--ease),box-shadow var(--ease),border-color var(--ease)}
.devices-service-launcher.odl{border-color:color-mix(in srgb,#2775a8 30%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 94%,#e7f5ff),var(--surface))}
.devices-service-launcher:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--green) 58%,var(--line));box-shadow:0 18px 40px #123e3129,inset 0 1px 0 #fff}
.devices-service-launcher.odl:hover{border-color:color-mix(in srgb,#2775a8 58%,var(--line))}
.devices-service-launcher:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 50%,transparent);outline-offset:3px}
.devices-service-glow{position:absolute;z-index:-1;inset:-2px;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 12%,transparent),0 0 0 0 color-mix(in srgb,var(--green) 0%,transparent);animation:devices-service-pulse 4.8s ease-in-out infinite}
.devices-service-launcher.odl .devices-service-glow{animation-delay:1.3s;box-shadow:inset 0 0 0 1px color-mix(in srgb,#2775a8 12%,transparent)}
@keyframes devices-service-pulse{0%,58%,100%{opacity:.55;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 12%,transparent),0 0 0 0 color-mix(in srgb,var(--green) 0%,transparent)}72%{opacity:1;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 28%,transparent),0 0 0 8px color-mix(in srgb,var(--green) 7%,transparent)}}
.devices-service-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:linear-gradient(145deg,var(--green),var(--green-dark));color:#fff;box-shadow:0 9px 20px #0b74542d}
.devices-service-launcher.odl .devices-service-icon{background:linear-gradient(145deg,#2d88ba,#215f8e);box-shadow:0 9px 20px #1f61892d}
.devices-service-icon .icon{width:25px;height:25px}.devices-service-copy{display:flex;min-width:0;flex-direction:column;gap:4px}.devices-service-copy small{font-size:9px;font-weight:850;letter-spacing:1.15px;color:var(--green)}
.devices-service-launcher.odl .devices-service-copy small{color:#2775a8}.devices-service-copy strong{font-size:18px;letter-spacing:-.25px}.devices-service-copy>span{color:var(--muted);font-size:11.5px;line-height:1.45}
.devices-service-action{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:0 12px;border-radius:999px;background:color-mix(in srgb,var(--green) 9%,var(--surface));color:var(--green);font-size:11px;font-weight:800;white-space:nowrap}
.devices-service-launcher.odl .devices-service-action{background:color-mix(in srgb,#2775a8 9%,var(--surface));color:#2775a8}.devices-service-action .icon{width:15px;height:15px}
@media (prefers-reduced-motion:reduce){.devices-service-glow{animation:none}.devices-service-launcher{transition:none}}
@media (max-width:480px){
 .devices-service-launcher{grid-template-columns:44px minmax(0,1fr)}
 .devices-service-action{grid-column:2;justify-self:start}.devices-service-copy>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
}
.devices-perimeter .readonly-grid dd small{font-weight:400}
/* Grafici della dashboard: nessuna libreria, nessuna risorsa esterna. Le barre vivono su righe di griglia
   condivise, cosi' l'allineamento fra barra, valore ed etichetta e' strutturale e non si rompe. */
@property --assegnati{syntax:'<percentage>';inherits:false;initial-value:0%}
@property --fuori{syntax:'<percentage>';inherits:false;initial-value:0%}
@keyframes devices-bar-rise{from{height:0}}
@keyframes devices-rank-grow{from{width:0}}
@keyframes devices-panel-in{from{opacity:0;transform:translateY(10px)}}
@keyframes devices-donut-in{from{--assegnati:0%;--fuori:0%;transform:scale(.94);opacity:.35}}
@keyframes devices-value-in{from{opacity:0}}
.devices-charts{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:18px;margin-bottom:22px;align-items:start}
.devices-charts .devices-chart{animation:devices-panel-in .38s cubic-bezier(.2,.8,.2,1) both}
.devices-charts .devices-chart:nth-child(2){animation-delay:.07s}
.devices-charts .devices-chart:nth-child(3){animation-delay:.14s}
.devices-charts .devices-chart:nth-child(3):last-child{grid-column:1/-1}
.devices-chart{margin:0}
.devices-chart .panel-head h2{font-size:14px}
.devices-trend{display:grid;grid-template-rows:96px 16px 14px;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);
 gap:6px 8px;margin:0;padding:0;list-style:none}
.devices-trend-month{display:contents}
.devices-trend-bar{grid-row:1;align-self:end;justify-self:stretch;border-radius:6px 6px 3px 3px;background:linear-gradient(180deg,var(--green) 0%,var(--green-dark) 100%);
 height:var(--quota,0%);min-height:6px;transition:height var(--ease);
 animation:devices-bar-rise .62s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i,0) * 38ms)}
.devices-trend-bar.senza-valore{background:var(--line);min-height:4px}
.devices-trend-value{grid-row:2;text-align:center;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;
 animation:devices-value-in .4s ease both;animation-delay:calc(220ms + var(--i,0) * 38ms)}
.devices-trend-label{grid-row:3;text-align:center;font-size:10px;color:var(--muted);text-transform:capitalize}
.devices-donut-body{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.devices-donut{width:132px;height:132px;border-radius:50%;flex-shrink:0;display:grid;place-content:center;position:relative;
 background:conic-gradient(var(--green) 0 var(--assegnati),var(--amber) var(--assegnati) var(--fuori),var(--line) var(--fuori) 100%);
 animation:devices-donut-in .85s cubic-bezier(.2,.8,.2,1) both}
.devices-donut::after{content:'';position:absolute;inset:16px;border-radius:50%;background:var(--surface)}
.devices-donut>span{position:relative;z-index:1;text-align:center;font-size:20px;font-weight:700;line-height:1.1}
.devices-donut>span small{display:block;font-size:10px;font-weight:400;color:var(--muted);margin-top:2px}
.devices-legend{list-style:none;margin:0;padding:0;display:grid;gap:9px;font-size:12px;color:var(--muted);min-width:0}
.devices-legend li{display:flex;align-items:center;gap:9px}
.devices-legend strong{color:var(--ink);font-variant-numeric:tabular-nums}
.devices-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.devices-dot.green{background:var(--green)}.devices-dot.amber{background:var(--amber)}.devices-dot.line{background:var(--line)}
.devices-rank{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.devices-rank li{display:grid;grid-template-columns:86px minmax(0,1fr) 34px;align-items:center;gap:10px;font-size:12px}
.devices-rank-label{color:var(--muted);font-weight:700}
.devices-rank-track{height:9px;border-radius:5px;background:var(--bg);overflow:hidden}
.devices-rank-fill{display:block;height:100%;width:var(--quota,0%);background:var(--green);border-radius:5px;
 animation:devices-rank-grow .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(120ms + var(--i,0) * 70ms)}
.devices-rank-fill.warn{background:var(--amber)}
.devices-rank-value{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
/* Scheda della struttura: piena larghezza e tre fasce che restano al loro posto durante lo scorrimento.
   Il pannello non puo' ritagliare i figli, altrimenti lo sticky non ha alcun effetto. */
.content.devices-sheet-page{--workspace-page-gutter:clamp(28px,2.2vw,58px);width:100%;max-width:none;margin:0;padding-inline:var(--workspace-page-gutter);animation:none}
.devices-shell .topbar{position:sticky;top:0;z-index:25}
.devices-list-page .devices-deck{position:sticky;top:var(--workspace-header-height,0px);z-index:14;box-shadow:0 6px 14px -12px #0000002e}
.devices-table-page .devices-deck{margin-bottom:0;border-radius:var(--radius) var(--radius) 0 0;border-bottom:0}
.devices-table-page #devices-results>.panel,.devices-table-page #devices-movement-results>.panel,
.devices-table-page #devices-request-results>.panel{overflow:visible;border-radius:0 0 var(--radius) var(--radius);margin-bottom:22px}
.devices-table-page #devices-results .table-wrap,.devices-table-page #devices-movement-results .table-wrap,
.devices-table-page #devices-request-results .table-wrap{overflow:visible}
/* L'intestazione resta ferma sotto la fascia filtri in ogni registro del modulo, non nel solo parco. */
.devices-table-page #devices-results thead th,.devices-table-page #devices-movement-results thead th,
.devices-table-page #devices-request-results thead th{position:sticky;z-index:12;
 top:calc(var(--workspace-header-height,0px) + var(--devices-deck-height,0px));
 box-shadow:inset 0 -1px 0 var(--line),0 6px 12px -10px #00000026}
.devices-sheet-page .devices-wards thead th{box-shadow:inset 0 -1px 0 var(--line),0 6px 12px -10px #00000026}
.devices-sheet-page .devices-identity{position:sticky;top:var(--workspace-header-height,0px);z-index:14;overflow:visible;margin-bottom:0;border-radius:var(--radius) var(--radius) 0 0;border-bottom:0}
.devices-tab-panel:focus,.devices-tab-panel:focus-visible{outline:none}
.devices-sheet-page .devices-wards-panel,.devices-sheet-page .devices-docs-panel{border-radius:0 0 var(--radius) var(--radius);overflow:visible;margin-top:0}
.devices-sheet-page .devices-docs-panel .table-wrap{overflow:visible}
.devices-sheet-page .devices-tabs{position:sticky;top:calc(var(--workspace-header-height,0px) + var(--devices-identity-height,0px));z-index:14}
.devices-sheet-page .devices-wards-head,.devices-sheet-page .devices-docs-head,.devices-sheet-page .devices-maintenance-head{position:sticky;top:calc(var(--workspace-header-height,0px) + var(--devices-identity-height,0px) + var(--devices-tabs-height,0px));z-index:13;background:var(--surface);border-radius:var(--radius) var(--radius) 0 0}
.devices-sheet-page .devices-wards-panel .table-wrap{overflow:visible}
.devices-sheet-page .devices-wards thead th,.devices-sheet-page .devices-docs thead th{position:sticky;top:calc(var(--workspace-header-height,0px) + var(--devices-identity-height,0px) + var(--devices-tabs-height,0px) + var(--devices-wards-head-height,0px));z-index:12;box-shadow:inset 0 -1px 0 var(--line),0 6px 12px -10px #00000026}
/* Testo guida: leggero, e sparisce al primo tocco, perche' non deve sembrare un campo gia' compilato */
input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 55%,transparent);opacity:1;font-weight:400}
input:focus::placeholder,textarea:focus::placeholder{color:transparent}
/* Censimento: una superficie sola per il dispositivo singolo e per il blocco di matricole */
.devices-form{display:grid;gap:18px}
.devices-form-hero{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:center;padding:13px 15px;
 border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:14px;background:linear-gradient(135deg,var(--tint),var(--surface))}
.devices-form-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--surface);color:var(--green)}
.devices-form-hero strong{display:block;font-size:14px}
.devices-form-hero small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.5}
.devices-form-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch}
.devices-mode{position:relative;cursor:pointer}
.devices-mode input{position:absolute;opacity:0;pointer-events:none}
.devices-mode{display:flex}
.devices-mode>span{display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:11px;
 align-content:start;width:100%;min-height:78px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;
 background:var(--surface);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.devices-mode>span>.icon{grid-row:1/3;width:22px;height:22px;color:var(--green)}
.devices-mode strong{font-size:12px}
.devices-mode small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.45}
.devices-mode.selected>span{border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 13%,transparent)}
.devices-mode:focus-within>span{outline:3px solid color-mix(in srgb,var(--green) 34%,transparent);outline-offset:2px}
.devices-form-section{display:block}
.devices-serial-row+.field-hint{margin-top:10px}
.devices-serial-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}
.devices-serial-row input{font:700 15px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5px;min-height:46px}
.devices-scan-button{min-height:46px;white-space:nowrap}
/* Tipologia: una riga sola con elenco a comparsa, non un catalogo aperto dentro il form */
.devices-combo{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr) 40px;align-items:center;
 border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:border-color var(--ease),box-shadow var(--ease)}
.devices-combo:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 13%,transparent)}
.devices-combo.scelta{border-color:var(--green);background:var(--tint)}
.devices-combo-icon{display:grid;place-items:center;color:var(--muted)}
.devices-combo.scelta .devices-combo-icon{color:var(--green)}
.devices-combo-input{min-height:46px;border:0;background:transparent;font-size:13px;font-weight:600;color:var(--ink);padding:0}
.devices-combo-input:focus{outline:none}
.devices-combo-toggle{display:grid;place-items:center;width:40px;height:44px;border:0;background:transparent;color:var(--muted)}
.devices-combo-toggle .icon{width:16px;height:16px}
.devices-combo-list{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:5;max-height:250px;overflow:auto;
 padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 18px 40px #00000024}
.devices-combo-item{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 10px;border:0;
 border-radius:9px;background:transparent;color:var(--ink);font-size:12.5px;text-align:left}
.devices-combo-item:hover,.devices-combo-item.attiva{background:var(--tint)}
.devices-combo-item.selected{color:var(--green);font-weight:700}
.devices-combo-item small{margin-left:auto;padding-left:10px;color:var(--muted);font-size:10px;white-space:nowrap}
.devices-combo-item .icon{width:15px;height:15px;color:var(--green);flex:0 0 15px}
.devices-combo-empty,.devices-combo-more{display:flex;align-items:center;gap:8px;margin:0;padding:10px;color:var(--muted);font-size:11px}
.devices-combo-empty .icon{width:15px;height:15px}
/* Lettura con la fotocamera: vive dentro la stessa superficie del censimento */
.devices-scan{display:grid;gap:12px}
.devices-scan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.devices-scan-head strong{display:block;font-size:14px}
.devices-scan-head small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.5}
.devices-scan-stage{position:relative;border-radius:16px;overflow:hidden;background:#04110f;aspect-ratio:4/3}
.devices-scan-stage video{width:100%;height:100%;object-fit:cover;display:block}
.devices-scan-frame{position:absolute;inset:14% 10%;border:2px solid #7ee0bd;border-radius:14px;
 box-shadow:0 0 0 100vmax #04110f66;pointer-events:none}
.devices-scan-status{margin:0;color:var(--muted);font-size:11.5px;text-align:center}
.devices-form-section textarea{width:100%;min-height:104px;resize:vertical;font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace}
.devices-bulk-preview{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.devices-bulk-empty{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}
.devices-bulk-empty .icon{width:15px;height:15px;color:var(--amber)}
.devices-bulk-note{width:100%;color:var(--muted);font:600 10px ui-monospace,monospace;overflow-wrap:anywhere}
.devices-type-label em{font-style:normal;margin-left:6px;padding:2px 7px;border-radius:999px;background:var(--red-bg);color:var(--red);font-size:9px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}
.devices-type-chosen{border-color:var(--line);background:var(--bg);color:var(--muted)}
.devices-type-chosen.scelta{border-color:var(--green);background:var(--tint);color:var(--green)}
.devices-form-more{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.devices-form-more>summary{display:flex;align-items:center;gap:9px;padding:13px 15px;cursor:pointer;font-size:12px;font-weight:700;list-style:none}
.devices-form-more>summary::-webkit-details-marker{display:none}
.devices-form-more>summary .icon{width:17px;height:17px;color:var(--green)}
.devices-form-more>summary small{margin-left:auto;color:var(--muted);font-size:10px;font-weight:600}
.devices-form-more[open]>summary{border-bottom:1px solid var(--line);background:var(--bg)}
.devices-form-more .form-grid{padding:15px}
.devices-form-state{display:flex;align-items:flex-start;gap:9px;margin:0;padding:11px 13px;border-radius:12px;
 background:var(--bg);color:var(--muted);font-size:11px;line-height:1.5}
.devices-form-state .icon{width:16px;height:16px;flex:0 0 16px;margin-top:1px;color:var(--green)}
.devices-exports{display:inline-flex;gap:8px;margin-right:8px}
.etichetta-corta{display:none}
/* Selettore Premium: un pulsante che apre un elenco cercabile, al posto della tendina di sistema */
.devices-field-picker{min-width:0}
.devices-picker{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;
 padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);
 font-size:13px;font-weight:600;text-align:left;transition:border-color var(--ease),box-shadow var(--ease),background var(--ease)}
.devices-picker:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:var(--tint)}
.devices-picker.attivo{border-color:var(--green);background:var(--tint);color:var(--green)}
.devices-picker .icon{width:16px;height:16px;flex:0 0 16px;color:var(--muted)}
.devices-picker.attivo .icon{color:var(--green)}
.devices-picker-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.devices-picker-modal .modal-content{padding-top:18px}
.devices-picker-catalog .devices-picker-list{max-height:min(52vh,420px);overflow:auto}
.devices-picker-any .devices-catalog-letter{color:var(--muted)}
.devices-catalog-item{display:flex;align-items:center;gap:10px;justify-content:space-between}
.devices-catalog-item>span:first-child{overflow-wrap:anywhere}
.devices-catalog-item small{color:var(--muted);font-size:10px;margin-left:auto;padding-left:10px;white-space:nowrap}
.devices-catalog-item .icon{width:16px;height:16px;flex:0 0 16px;color:var(--green)}
/* Anagrafica: la tipologia si sceglie nello stesso elenco, dentro la superficie del form */
.devices-type-field{display:block}
.devices-type-label{display:block;margin-bottom:6px;font-size:11px;font-weight:700}
.devices-type-chosen{display:block;padding:10px 12px;margin-bottom:6px;border:1px solid var(--green);border-radius:10px;
 background:var(--tint);color:var(--green);font-size:13px;font-weight:700}
.devices-type-field .devices-picker-list{max-height:220px}
.devices-type-field .devices-picker-status{margin-bottom:6px}
.devices-type-field>.field-hint{display:block;margin-top:4px}
/* Foglio dei filtri su telefono: prima l'elenco dei filtri, poi le voci, nella stessa superficie */
.devices-sheet-rows{display:grid;gap:10px}
.devices-sheet-row{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:60px;
 padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-align:left}
.devices-sheet-row:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line));background:var(--tint)}
.devices-sheet-row small{display:block;font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.devices-sheet-row strong{display:block;margin-top:3px;font-size:13px}
.devices-sheet-row .icon{width:17px;height:17px;color:var(--green);flex:0 0 17px}
.devices-sheet-back{margin-bottom:12px}
/* Contatori della fascia: rispondono ai filtri, non al totale dell'azienda */
.devices-kpi-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.devices-kpi-chip{display:inline-flex;align-items:baseline;gap:6px;padding:6px 11px;border:1px solid var(--line);
 border-radius:999px;background:var(--bg);color:var(--muted);font-size:11px;font-weight:600}
.devices-kpi-chip strong{font-size:13px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.devices-kpi-chip.verde{border-color:color-mix(in srgb,var(--green) 30%,var(--line));background:var(--tint);color:var(--green)}
.devices-kpi-chip.verde strong{color:var(--green)}
.devices-kpi-chip.ambra{border-color:color-mix(in srgb,var(--amber) 34%,var(--line));background:var(--amber-bg);color:var(--amber)}
.devices-kpi-chip.ambra strong{color:var(--amber)}
.devices-kpi-chip.rosso{border-color:color-mix(in srgb,var(--red) 30%,var(--line));background:var(--red-bg);color:var(--red)}
.devices-kpi-chip.rosso strong{color:var(--red)}
.devices-kpi-chip.blu{border-color:color-mix(in srgb,var(--blue) 34%,var(--line));background:var(--blue-bg);color:var(--blue)}
.devices-kpi-chip.blu strong{color:var(--blue)}
.devices-kpi-chip.blu{border-color:color-mix(in srgb,var(--blue) 30%,var(--line));background:var(--blue-bg);color:var(--blue)}
.devices-kpi-chip.blu strong{color:var(--blue)}
/* Identita' del dispositivo: immagine, matricola e tipologia come blocco unico */
.devices-device-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center}
.devices-device-figure{display:grid;place-items:center}
.devices-device-identity{display:flex;flex-direction:column;gap:6px;min-width:0}
.devices-serial.grande{font-size:22px;letter-spacing:.6px}
.devices-device-type{font-size:13px;color:var(--muted)}
.devices-device-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
/* Elenco del parco: tabella a schermo largo, card su telefono */
.devices-park-cards{display:none}
.devices-park td.devices-photo-cell{width:64px}
.devices-park .devices-type-photo{width:44px;height:44px;border-radius:10px}
.devices-park td small.muted{display:block;margin-top:3px;font-size:10px}
/* Parco dispositivi: la matricola domina la riga, la posizione racconta dove si trova davvero */
.devices-serial{font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.4px;overflow-wrap:anywhere}
.devices-park td[data-label=Descrizione] small{display:block;margin-top:3px;font-size:10px}
.devices-position{display:inline-flex;flex-direction:column;gap:2px;min-width:0}
.devices-position strong{font-size:12px;overflow-wrap:anywhere}
.devices-position small{color:var(--muted);font-size:10px;line-height:1.45}
.devices-position.senza{flex-direction:row;align-items:center;gap:7px;color:var(--muted);font-size:11px}
.devices-position.senza .icon{width:15px;height:15px;flex:0 0 15px;color:var(--amber)}
.devices-place{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:start;margin-top:16px;padding:14px 16px;
 border:1px solid color-mix(in srgb,var(--green) 24%,var(--line));border-radius:14px;background:linear-gradient(135deg,var(--tint),var(--surface))}
.devices-place.senza{border-color:color-mix(in srgb,var(--amber) 30%,var(--line));background:color-mix(in srgb,var(--amber-bg) 55%,var(--surface))}
.devices-place-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--surface);color:var(--green)}
.devices-place.senza .devices-place-mark{color:var(--amber)}
.devices-place small{display:block;font-size:9px;font-weight:800;letter-spacing:.7px;color:var(--muted)}
.devices-place strong{display:block;margin:3px 0;font-size:16px}
.devices-place>div>span{display:block;font-size:12px;color:var(--ink)}
.devices-place small.muted{margin-top:5px;font-weight:600;letter-spacing:0;text-transform:none}
.devices-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px 26px}
.devices-check{flex-direction:row;align-items:center;gap:10px}
.devices-check input{width:20px;height:20px;accent-color:var(--green)}
.devices-check span{font-size:12px;font-weight:600}
/* Il comando dei filtri avanzati esiste solo dove i selettori non ci stanno: su desktop resta nascosto */
.devices-field-sheet{display:none}
.devices-sheet-filters{display:grid;gap:14px}
.devices-sheet-filters .devices-field{display:block}
.devices-sheet-filters label{display:block;margin-bottom:6px;font-size:11px;font-weight:700}
.devices-sheet-filters select{width:100%;min-height:44px}
.devices-sheet-filters small{display:none}
/* Sezioni della scheda: una sola riga di comandi, sempre visibile durante lo scorrimento */
.devices-tabs{display:flex;gap:6px;padding:8px 10px;background:var(--surface);border:1px solid var(--line);border-top:0;border-bottom:0}
.devices-tab{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1px solid transparent;border-radius:10px;
 background:transparent;color:var(--muted);font-size:12px;font-weight:700;transition:background var(--ease),color var(--ease),border-color var(--ease)}
.devices-tab:hover{background:var(--tint);color:var(--green)}
.devices-tab.active{background:var(--tint);border-color:color-mix(in srgb,var(--green) 34%,var(--line));color:var(--green)}
.devices-tab .icon{width:17px;height:17px}
.devices-tab-panel{display:block}
/* Cronologia della matricola: la provenienza massiva o su richiesta e l'esito si leggono prima del testo.
   Le righe restano card semantiche anche su desktop, cosi' una descrizione lunga non schiaccia data e stato. */
.devices-maintenance-panel{overflow:visible;border-radius:0 0 var(--radius) var(--radius);margin-top:0}
.devices-maintenance-head{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}
.devices-maintenance-head h2{margin:2px 0 0}.devices-maintenance-head p{margin:5px 0 0;color:var(--muted);font-size:11px}
.devices-maintenance-kpi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:15px 24px;border-bottom:1px solid var(--line);background:var(--surface)}
.devices-maintenance-kpi>span{display:flex;min-height:66px;flex-direction:column;justify-content:center;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
.devices-maintenance-kpi small{color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.55px;text-transform:uppercase}.devices-maintenance-kpi strong{margin-top:2px;font-size:20px;font-variant-numeric:tabular-nums}
.devices-maintenance-kpi .green{border-color:color-mix(in srgb,var(--green) 28%,var(--line));background:var(--tint)}.devices-maintenance-kpi .green strong{color:var(--green-dark)}
.devices-maintenance-kpi .blue{border-color:color-mix(in srgb,var(--blue) 24%,var(--line));background:var(--blue-bg)}.devices-maintenance-kpi .amber{border-color:color-mix(in srgb,var(--amber) 28%,var(--line));background:var(--amber-bg)}
.devices-maintenance-list{display:flex;flex-direction:column;gap:9px;padding:16px 24px;background:var(--surface)}
.devices-maintenance-entry{display:grid;grid-template-columns:130px minmax(260px,1fr) 120px 140px;align-items:center;gap:16px;min-height:104px;padding:14px 15px;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:14px;background:var(--surface);box-shadow:0 7px 18px #173f3209}
.devices-maintenance-entry.state-0{border-left-color:var(--blue)}.devices-maintenance-entry.state-1{border-left-color:var(--amber)}.devices-maintenance-entry.state-3{border-left-color:var(--muted)}
.devices-maintenance-date,.devices-maintenance-work{display:flex;flex-direction:column;gap:3px}.devices-maintenance-date small,.devices-maintenance-work small{color:var(--muted);font-size:8.5px;font-weight:800;letter-spacing:.7px}.devices-maintenance-date strong{font-size:13px}.devices-maintenance-date span{color:var(--muted);font:700 10px ui-monospace,monospace}
.devices-maintenance-main{min-width:0}.devices-maintenance-badges{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:7px}.devices-maintenance-main h3{margin:0;font-size:13px;line-height:1.35}.devices-maintenance-main>p{margin:4px 0 0;color:var(--muted);font-size:10.5px}
.devices-maintenance-note{display:flex;align-items:flex-start;gap:6px;margin-top:7px;color:var(--muted);font-size:10px;line-height:1.4}.devices-maintenance-note .icon{width:14px;height:14px;flex:0 0 14px;color:var(--green)}
.devices-maintenance-work{text-align:center}.devices-maintenance-work strong{font-size:20px;font-variant-numeric:tabular-nums}.devices-maintenance-work span{color:var(--muted);font-size:9.5px}.devices-maintenance-action .btn{width:100%;justify-content:center}.devices-maintenance-pagination{padding:0 24px 18px}
@media (max-width:1050px){.devices-maintenance-entry{grid-template-columns:112px minmax(230px,1fr) 100px}.devices-maintenance-action{grid-column:2/-1}.devices-maintenance-action .btn{width:auto}}
@media (max-width:760px){
 .devices-maintenance-head{align-items:flex-start;padding:15px 16px}.devices-maintenance-head p{line-height:1.45}.devices-maintenance-kpi{grid-template-columns:1fr 1fr;padding:11px 12px}.devices-maintenance-kpi>span{min-height:58px}
 .devices-maintenance-list{padding:11px 12px}.devices-maintenance-entry{grid-template-columns:1fr auto;gap:11px;min-height:0;padding:13px}.devices-maintenance-date{grid-column:1}.devices-maintenance-main{grid-column:1/-1}.devices-maintenance-work{grid-column:2;grid-row:1;text-align:right}.devices-maintenance-action{grid-column:1/-1}.devices-maintenance-action .btn{width:100%;min-height:44px}.devices-maintenance-pagination{padding:0 12px 14px}
}
/* Schermo basso con mouse: le fasce fisse restano tutte, ma si compattano per non mangiare le righe.
   La compressione vale solo con puntatore fine, cosi' i bersagli touch restano a 44 px dove servono. */
@media (min-width:801px) and (max-height:760px) and (pointer:fine){
 .devices-sheet-page .devices-identity{padding:10px 24px}
 .devices-sheet-page .devices-identity-grid{gap:7px 20px}
 .devices-sheet-page .devices-identity-item small{margin-bottom:2px}
 .devices-sheet-page .devices-identity-item strong{font-size:12px}
 .devices-sheet-page .devices-tabs{padding:4px 8px}
 .devices-sheet-page .devices-tab{min-height:44px;padding:0 13px}
 .devices-sheet-page .devices-wards-head,.devices-sheet-page .devices-docs-head{padding-block:10px}
}
/* Documenti: lo storico del vecchio gestionale e i nuovi allegati nello stesso elenco */
.devices-docs-panel{margin-top:22px}
.devices-docs-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.devices-docs td[data-label=Formato]{font:700 11px ui-monospace,monospace;letter-spacing:.4px}
.devices-doc-row-cancelled{opacity:.72}
.devices-doc-cancelled{display:inline-flex;align-items:flex-start;gap:7px;color:var(--muted);font-size:11px;line-height:1.45;text-align:left}
.devices-doc-cancelled .icon{width:15px;height:15px;flex:0 0 15px;margin-top:1px;color:var(--amber)}
.devices-file-field{display:flex;flex-direction:column;gap:8px}
.devices-file-editor{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
.devices-file-name{font-size:11px;color:var(--muted);overflow-wrap:anywhere;min-width:0}
/* Sezione pianificata: dichiara che cosa fara', senza numeri finti */
.devices-soon .panel-body{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:32px 28px}
.devices-soon-mark{width:52px;height:52px;display:grid;place-items:center;border-radius:15px;background:var(--tint);color:var(--green)}
.devices-soon-mark .icon{width:26px;height:26px}
.devices-soon h2{margin:0}
.devices-soon p{margin:0;max-width:72ch;color:var(--muted);font-size:13px}
.devices-soon-list{display:grid;gap:10px;margin:6px 0 0;padding:0;list-style:none;width:100%}
.devices-soon-list li{display:grid;gap:3px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.devices-soon-list strong{font-size:12px}
.devices-soon-list span{font-size:11px;color:var(--muted);line-height:1.5}
/* Scheda della tipologia: l'immagine e' l'elemento di riconoscimento, quindi sta in testa */
.devices-identity-type{grid-template-columns:auto repeat(auto-fit,minmax(150px,1fr));align-items:center}
.devices-type-figure{display:flex;align-items:center;justify-content:center}
.devices-type-photo.grande{width:120px;height:120px;border-radius:14px}
/* Scheda della struttura: identita' in fascia e reparti a tutta larghezza */
.devices-identity{padding:18px 24px;margin-bottom:22px}
.devices-identity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px 26px}
.devices-identity-item small{display:block;font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.devices-identity-item strong{font-size:13px;font-weight:700;display:block;overflow-wrap:anywhere}
.devices-wards-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.devices-wards-title{display:flex;align-items:center;gap:12px;min-width:0}
.devices-wards-title h2{margin:0}
.devices-wards-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.devices-ward-search{min-width:260px;flex:1}
.devices-ward-search input{min-height:44px;padding-right:48px}
.devices-ward-search .fleet-clear-search{right:0;width:44px;height:44px;min-height:44px!important}
/* Catalogo alfabetico dei reparti attivabili */
.devices-alphabet{display:flex;flex-wrap:wrap;gap:6px}
.devices-letter{min-width:44px;min-height:44px;padding:0 9px;border:1px solid var(--line);background:var(--surface);border-radius:8px;font-size:11px;font-weight:700;color:var(--muted)}
.devices-letter:hover{background:var(--bg);color:var(--ink)}
.devices-letter.selected{background:var(--green);border-color:var(--green);color:var(--surface)}
[data-theme=dark] .devices-letter.selected{color:#0a2820}
.devices-catalog-group{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start;padding:6px 0}
.devices-catalog-letter{font-size:12px;font-weight:700;color:var(--green);background:var(--tint);border-radius:8px;text-align:center;padding:5px 0;position:sticky;top:0}
.devices-catalog-items{display:grid;gap:5px}
.devices-catalog-status{font-size:11px;margin:0}
.devices-catalog-empty{display:flex;gap:9px;align-items:center;font-size:12px;margin:14px 0}
.devices-wards-panel .panel-head{flex-wrap:wrap}
.devices-wards td.actions-cell{white-space:nowrap;text-align:right;width:1%}
.devices-row-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.devices-photo-head,.devices-photo-cell{width:72px}
.devices-photo-field{display:grid;gap:8px;margin-bottom:16px}
.devices-photo-title{font-size:12px;font-weight:700}
.devices-photo-editor{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.devices-photo-preview{width:84px;height:84px;border-radius:12px;border:1px solid var(--line);background:var(--bg);display:grid;place-content:center;overflow:hidden;flex-shrink:0}
.devices-photo-preview img{width:100%;height:100%;object-fit:cover;display:block}
.devices-photo-vuota{color:var(--muted);display:grid;place-content:center}
.devices-photo-vuota .icon{width:26px;height:26px}
.devices-photo-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.devices-photo-attesa{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--amber) 34%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--amber-bg) 70%,var(--surface));color:var(--ink);line-height:1.5;text-align:left}
.devices-photo-attesa .icon{flex:0 0 16px;width:16px;height:16px;margin-top:2px;color:var(--amber)}
.devices-photo-actions small{flex-basis:100%;font-size:11px;color:var(--muted)}
.devices-photo-pick{cursor:pointer}
.devices-type-photo{width:52px;height:52px;border-radius:10px;border:1px solid var(--line);background:var(--surface);display:grid;place-content:center;overflow:hidden;flex-shrink:0;color:var(--muted)}
/* L'archivio storico e' fatto di immagini piccole, in maggioranza fra 50 e 90 px di lato. L'immagine si
   riduce per stare nella tessera ma non viene mai ingrandita oltre la propria misura naturale: allargare
   un PNG da 62 px a 120 lo trasforma in una macchia, e ritagliarlo ne taglia via il soggetto. */
.devices-type-photo img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.devices-type-photo .icon{width:22px;height:22px}
.devices-row-actions .btn{min-height:44px}
.devices-row-actions .btn.icon-btn{width:44px;height:44px;flex-shrink:0}
.devices-note{display:flex;gap:10px;align-items:flex-start;margin:16px 0 0;font-size:11px;line-height:1.6}
.devices-note .icon{width:16px;height:16px;margin-top:2px;flex-shrink:0;color:var(--amber)}
.devices-readonly{align-items:center}
.devices-catalog{display:grid;gap:12px}
.devices-catalog-list{display:grid;gap:6px;max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:8px}
.devices-catalog-item{text-align:left;border:1px solid transparent;background:var(--bg);border-radius:8px;padding:11px 13px;font-size:12px;font-weight:700;color:var(--ink);min-height:44px}
.devices-catalog-item:hover{background:var(--tint);color:var(--green)}
.devices-catalog-item.selected{background:var(--tint);color:var(--green);border-color:var(--green)}
.devices-catalog-more{font-size:11px;margin:6px 0 0}
.devices-form-lead{display:flex;align-items:center;gap:9px;margin:0 0 14px;font-size:12px;color:var(--muted)}
.devices-form-lead .icon{color:var(--green)}
@media(max-width:1180px){.devices-ward-search{min-width:200px}}

/* A 900/1024 px il workspace e' gia' ridotto dalla barra laterale: le tabelle piu' dense passano a card
   prima del breakpoint telefono, senza introdurre uno scroll orizzontale annidato. */
@media (min-width:801px) and (max-width:1100px) and (min-height:521px){
 .devices-park-table{display:none}
 .devices-park-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .devices-park-card{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;box-shadow:0 1px 2px #0000000a}
 .devices-park-open{display:grid;grid-template-columns:52px minmax(0,1fr) 22px;gap:12px;align-items:center;width:100%;
  min-height:80px;padding:13px;border:0;background:transparent;text-align:left;color:var(--ink)}
 .devices-park-open:hover{background:var(--tint)}
 .devices-park-figure .devices-type-photo{width:52px;height:52px;border-radius:12px}
 .devices-park-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
 .devices-park-serial{font:800 14px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.3px;overflow-wrap:anywhere}
 .devices-park-name{font-size:12px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
 .devices-park-meta{font-size:9px;color:var(--muted);overflow-wrap:anywhere}
 .devices-park-go{display:grid;place-items:center;color:var(--green)}
 .devices-park-go .icon{width:18px;height:18px}
 .devices-park-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 13px;border-top:1px solid var(--line);background:var(--bg)}
 .devices-park-foot .devices-position strong{font-size:10px}
 .devices-park-foot .devices-position small{font-size:8px}
 .table-wrap:has(.devices-types){overflow:visible}
 .devices-types,.devices-types tbody{display:block;width:100%}
 .devices-types thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
 .devices-types tbody{display:grid;gap:12px;padding:12px}
 .devices-types tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}
 .devices-types td{display:block;min-width:0;padding:7px 9px;border:0;border-radius:9px;background:var(--bg)}
 .devices-types td:before{content:attr(data-label);display:block;margin-bottom:3px;color:var(--muted);font-size:9px;font-weight:700}
 .devices-types td.devices-photo-cell,.devices-types td.main-cell,.devices-types td.actions-cell{grid-column:1/-1}
 .devices-types td.devices-photo-cell{display:flex;justify-content:center;width:auto;background:transparent}
 .devices-types td.devices-photo-cell:before{display:none}
 .devices-types td.main-cell{padding:2px 0 9px;background:transparent;border-bottom:1px solid var(--line)}
 .devices-types td.actions-cell{display:flex;justify-content:flex-end;background:transparent}
}

@media (min-width:801px) and (max-width:960px) and (min-height:521px){
 .devices-deck-period .devices-deck-row.primaria{grid-template-columns:minmax(164px,1fr) minmax(364px,400px)}
 .devices-deck-hospitals .devices-deck-row.primaria,
 .devices-deck-report .devices-deck-row.primaria{grid-template-columns:repeat(2,minmax(0,1fr))}
 .devices-deck-hospitals .devices-field-search,
 .devices-deck-report .devices-report-hospital,
 .devices-deck-report .devices-field-reset{grid-column:1/-1}
 .devices-deck-report .devices-field-reset>.btn{width:100%}
}
@media (min-width:801px) and (max-width:880px) and (min-height:521px){
 .devices-deck-period .devices-deck-row.primaria{grid-template-columns:minmax(0,1fr)}
}

@media (min-width:801px) and (max-width:1199px){
 .devices-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}
 .devices-service-launchers{padding:18px}.devices-service-heading{align-items:flex-start}.devices-service-heading p{max-width:360px}
 .devices-service-launcher{grid-template-columns:48px minmax(0,1fr);min-height:122px;padding:16px}.devices-service-icon{width:48px;height:48px}.devices-service-action{grid-column:2;justify-self:start}
}

@media (max-width:1100px){
 .devices-report-kpi .devices-kpi{grid-template-columns:repeat(3,minmax(0,1fr))}
 .devices-report-kpi .stat{border-bottom:1px solid var(--line)}
 .devices-report-kpi .stat:nth-child(3n){border-right:0}
 .devices-report-kpi .stat:nth-last-child(-n+3){border-bottom:0}
 .devices-report-section .table-wrap{overflow:visible}
 .devices-report-table,.devices-report-table tbody{display:block;width:100%}
 .devices-report-table thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
 .devices-report-table tbody{display:grid;gap:10px;padding:12px}
 .devices-report-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;
  border:1px solid var(--line);border-radius:14px;background:var(--surface)}
 .devices-report-table td{display:flex;min-width:0;flex-direction:column;gap:3px;padding:9px 11px;border:0;border-radius:9px;
  background:var(--bg);text-align:left!important;overflow-wrap:anywhere}
 .devices-report-table td:before{content:attr(data-label);color:var(--muted);font-size:8px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
 .devices-report-table td.main-cell{grid-column:1/-1;padding:0 0 10px;border-bottom:1px solid var(--line);border-radius:0;background:transparent;font-size:13px}
}

@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .devices-service-launchers{margin-bottom:16px;padding:15px;border-radius:18px}
 .devices-service-heading{display:block;margin-bottom:12px}.devices-service-heading h2{font-size:17px}.devices-service-heading p{margin-top:5px;text-align:left;font-size:10.5px}
 .devices-service-grid{grid-template-columns:1fr;gap:10px}.devices-service-launcher{grid-template-columns:46px minmax(0,1fr) auto;min-height:92px;padding:13px 14px;gap:12px;border-radius:15px}
 .devices-service-icon{width:46px;height:46px;border-radius:13px}.devices-service-icon .icon{width:22px;height:22px}.devices-service-copy strong{font-size:16px}.devices-service-copy>span{font-size:10.5px}
 .devices-service-action{min-height:36px;padding:0 10px;font-size:10px}
 .devices-deck{padding:16px}
 /* Su telefono la fascia tiene soltanto l'essenziale: il resto vive dietro il comando «Filtri», come impone
    la regola della piattaforma. I campi da nascondere sono dichiarati nel markup, non riconosciuti per id. */
 /* Una colonna sola di righe: la fascia si legge dall'alto verso il basso, come tutto il resto su telefono. */
 .devices-deck-controls{grid-template-columns:1fr;gap:8px}
 .devices-deck-row,
 .devices-deck-simple .devices-deck-row.primaria,
 .devices-deck-hospitals .devices-deck-row.primaria,
 .devices-deck-park .devices-deck-row.primaria,
 .devices-deck-park .devices-deck-row.secondaria,
 .devices-deck-period .devices-deck-row.primaria,
 .devices-deck-period .devices-deck-row.secondaria,
 .devices-deck-report .devices-deck-row.primaria{grid-template-columns:1fr 1fr;gap:8px}
 .devices-deck-row:empty,.devices-deck-row:not(:has(.devices-field:not(.devices-field-advanced))){display:none}
 .devices-field{grid-template-rows:14px 44px auto;row-gap:5px;min-width:0}
 .devices-field-search,.devices-field-period{grid-column:1/-1}
 .devices-deck-simple .devices-field-reset{grid-column:1/-1}
 .devices-deck-hospitals .devices-field-reset{grid-column:auto}
 .devices-deck-report .devices-report-hospital{grid-column:1;grid-row:1}
 .devices-deck-report .devices-field-reset{grid-column:2;grid-row:1}
 .devices-deck-report .devices-report-from{grid-column:1;grid-row:2}
 .devices-deck-report .devices-report-to{grid-column:2;grid-row:2}
 .devices-deck-report .devices-report-hospital>small{display:none}
 .devices-deck .devices-field-advanced{display:none}
 .devices-deck:not(:has(.devices-field-sheet)) .devices-field-advanced{display:grid}
 .devices-field-reset>.btn,.devices-field-sheet>.btn{width:100%;justify-content:center;min-height:46px}
 /* Il periodo su telefono resta una riga sola con i due estremi affiancati: due date incolonnate
    occuperebbero mezzo schermo per dire una cosa sola. */
 .devices-period{grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr);gap:4px}
 .devices-period .date-entry{grid-template-columns:minmax(0,1fr) 40px;gap:2px}
 .devices-period .date-entry input[type=text]{font-size:16px;padding-inline:8px}
 .devices-period .native-date-trigger{width:40px;min-width:40px}
 /* Testata di pagina su telefono: i comandi secondari su una riga sola, l'azione primaria a tutta larghezza.
    Quattro comandi incolonnati mangiavano mezzo schermo prima di arrivare al contenuto: qui la prima card
    dell'elenco entra nella prima schermata. */
 .devices-shell .page-head{gap:12px;margin-bottom:14px}
 .devices-shell .page-head .head-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%}
 .devices-shell .page-head .head-actions>.btn.primary{grid-column:1/-1}
 .devices-shell .page-head .head-actions .btn{width:100%;justify-content:center;min-height:46px;padding-inline:8px;gap:6px}
 .devices-shell .page-head .head-actions .btn .icon{width:17px;height:17px}
 /* Il gruppo delle estrazioni non è una griglia dentro la griglia: si dissolve, e i suoi due comandi
    diventano celle della testata. Come griglia annidata traboccava sopra il comando accanto. */
 .devices-exports{display:contents}
 .etichetta-lunga{display:none}
 .etichetta-corta{display:inline}
 /* La fascia dei filtri resta compatta: titolo e conteggio sulla stessa riga, nessun aiuto ridondante. */
 .devices-deck{padding:14px}
 .devices-deck-head{gap:10px;margin-bottom:10px}
 .devices-deck-head h2{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .devices-field-period>small{display:none}
 /* La regola della piattaforma: in fascia restano il periodo e il comando dei filtri. «Azzera» vive dentro
    il foglio, dove sta già, e la fascia guadagna una riga intera di contenuto. */
 .devices-deck-advanced .devices-field-reset{display:none}
 .devices-field-sheet{grid-column:1/-1}
 /* La descrizione della pagina è contesto, non azione: due righe bastano e il contenuto sale. */
 .devices-shell .page-head p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .devices-grid{grid-template-columns:1fr;gap:12px}
 .devices-card-open{min-height:0;padding:16px}
 .devices-wards td.actions-cell{text-align:left;width:auto}
 .devices-row-actions{justify-content:flex-start;flex-wrap:wrap}
 .devices-catalog-list{max-height:230px}
 .devices-focus{padding:18px;flex-direction:column;align-items:flex-start;gap:12px}
 .devices-focus h2{font-size:18px}
 .devices-report-page .page-head .head-actions{grid-template-columns:1fr}
 .devices-report-kpi .devices-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
 .devices-report-kpi .stat{min-height:88px;padding:14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
 .devices-report-kpi .stat:nth-child(3n){border-right:1px solid var(--line)}
 .devices-report-kpi .stat:nth-child(even){border-right:0}
 .devices-report-kpi .stat:nth-last-child(-n+3){border-bottom:1px solid var(--line)}
 .devices-report-kpi .stat:nth-last-child(-n+2){border-bottom:0}
 .devices-report-kpi .stat strong{font-size:24px}
 .devices-report-kpi .stat span{font-size:8px}
 .devices-report-section .panel-head{padding:15px 16px}
 .devices-report-table tbody{gap:8px;padding:8px}
 .devices-report-table tr{gap:7px;padding:10px}
 .devices-report-table td{padding:8px 9px}
 .devices-report-nota{padding:13px 14px;font-size:10px}
 .devices-shortcuts{grid-template-columns:1fr;gap:12px}
 .devices-shortcut{min-height:0;padding:16px;gap:12px}
 .devices-identity{padding:16px}
 .devices-identity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .devices-wards-head,.devices-docs-head{align-items:stretch}
 .devices-wards-tools{width:100%}
 .devices-tabs{padding:6px 8px;gap:4px}
 .devices-tab{flex:1;justify-content:center;padding:0 8px;font-size:11px;gap:0}
 .devices-tab .icon{display:none}
 /* Scheda su telefono: l'identità scorre via, le sezioni restano. Tenere fissa anche l'identità — alta
    quanto un'immagine più la matricola — lasciava due dita di contenuto sotto due fasce ferme. */
 .devices-sheet-page .devices-identity{position:static;border-radius:var(--radius) var(--radius) 0 0}
 .devices-sheet-page .devices-tabs{top:var(--workspace-header-height,0px);
  box-shadow:0 8px 16px -14px #18332b66;border-top:1px solid var(--line)}
 .devices-sheet-page .devices-wards-head,.devices-sheet-page .devices-docs-head,.devices-sheet-page .devices-maintenance-head{
  top:calc(var(--workspace-header-height,0px) + var(--devices-tabs-height,0px))}
 .devices-sheet-page .devices-wards thead th,.devices-sheet-page .devices-docs thead th{
  top:calc(var(--workspace-header-height,0px) + var(--devices-tabs-height,0px) + var(--devices-wards-head-height,0px))}
 .devices-deck .devices-field-sheet{display:grid}
 .devices-docs-head .devices-wards-tools .btn{width:100%;justify-content:center}
 .devices-docs.responsive td.actions-cell{width:auto}
 .devices-docs.responsive .devices-row-actions{width:100%}
 .devices-docs.responsive .devices-row-actions .btn{flex:1;justify-content:center}
 .devices-identity-type{grid-template-columns:repeat(2,minmax(0,1fr))}
 .devices-form-modes{grid-template-columns:1fr}
 .devices-serial-row{grid-template-columns:1fr;gap:8px}
 .devices-scan-button{width:100%;justify-content:center}
 .devices-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .devices-place{grid-template-columns:38px minmax(0,1fr);padding:12px}
 .devices-place-mark{width:38px;height:38px}
 /* Su telefono l'elenco del parco e' una card per dispositivo: la tabella schiacciata era piatta */
 .devices-park-table{display:none}
 .devices-park-cards{display:grid;gap:12px}
 .devices-park-card{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:hidden;
  box-shadow:0 1px 2px #0000000a}
 .devices-park-open{display:grid;grid-template-columns:56px minmax(0,1fr) 22px;gap:13px;align-items:center;width:100%;
  padding:14px;border:0;background:transparent;text-align:left;color:var(--ink)}
 .devices-park-open:hover{background:var(--tint)}
 .devices-park-figure .devices-type-photo{width:56px;height:56px;border-radius:12px}
 .devices-park-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
 .devices-park-serial{font:800 15px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.4px;overflow-wrap:anywhere}
 .devices-park-name{font-size:13px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
 .devices-park-meta{font-size:10px;color:var(--muted);overflow-wrap:anywhere}
 .devices-park-go{display:grid;place-items:center;color:var(--green)}
 .devices-park-go .icon{width:18px;height:18px}
 .devices-park-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:11px 14px;
  border-top:1px solid var(--line);background:var(--bg)}
 .devices-park-foot .devices-position strong{font-size:11px}
 .devices-park-foot .devices-position small{font-size:9px}
 /* Identita' del dispositivo centrata: immagine, matricola e tipologia, come chiede la lettura su telefono */
 .devices-device-head{grid-template-columns:1fr;justify-items:center;text-align:center;gap:12px}
 .devices-device-identity{align-items:center}
 .devices-device-chips{justify-content:center}
 .devices-serial.grande{font-size:20px}
 .devices-picker-catalog .devices-picker-list{max-height:46vh}
 .devices-type-figure{grid-column:span 2;justify-content:center}
 .devices-type-photo.grande{width:104px;height:104px}
 .devices-soon .panel-body{padding:20px 16px}
 .devices-file-editor{flex-direction:column;align-items:stretch}
 .devices-file-editor .btn{justify-content:center}
 .devices-file-name{text-align:center}
 .devices-ward-search{min-width:0;flex-basis:100%}
 .devices-catalog-group{grid-template-columns:30px minmax(0,1fr)}
 .devices-types.responsive td.devices-photo-cell{grid-column:span 2;width:auto;display:flex;justify-content:center;padding:4px 0 10px}
 .devices-types.responsive td.devices-photo-cell:before{display:none}
 .devices-types.responsive .devices-type-photo{width:96px;height:96px}
 .devices-photo-editor{justify-content:center}
 .devices-photo-actions{justify-content:center;text-align:center}
 .devices-charts{grid-template-columns:1fr;gap:12px}
 .devices-trend{grid-template-rows:72px 15px 13px;gap:4px 5px}
 .devices-trend-label{font-size:9px}
 .devices-donut-body{gap:16px}
 .devices-donut{width:112px;height:112px}
 .content.devices-sheet-page{padding-inline:16px}
 .devices-sheet-page .devices-identity{position:static;margin-bottom:12px;border-radius:var(--radius);border-bottom:1px solid var(--line)}
 .devices-sheet-page .devices-wards-panel{border-radius:var(--radius)}
 .devices-sheet-page .devices-wards-head{position:sticky;top:calc(var(--workspace-header-height,0px) + var(--devices-tabs-height,0px));z-index:13;
  background:var(--surface);box-shadow:0 6px 12px -10px #0000002e;border-radius:var(--radius) var(--radius) 0 0}
 .devices-sheet-page .devices-wards thead th{position:static}}

@media (prefers-reduced-motion: reduce){
 .devices-charts .devices-chart,.devices-trend-bar,.devices-trend-value,.devices-donut,.devices-rank-fill{animation:none!important}
}

/* ---- Movimenti, slice D3 ---- */
/* Il tipo del movimento e' l'informazione che si legge per prima: la pastiglia porta il colore del suo
   significato — verde l'assegnazione, rosso il fuori uso — e il grigio quando il movimento e' annullato. */
.devices-kind{font-weight:700;letter-spacing:.2px}
.devices-kind.verde{background:var(--green-bg);color:var(--green-dark)}
.devices-kind.blu{background:var(--blue-bg);color:var(--blue)}
.devices-kind.ambra{background:var(--amber-bg);color:var(--amber)}
.devices-kind.rosso{background:var(--red-bg);color:var(--red)}
.devices-kind.grigio{background:var(--bg);color:var(--muted)}
.devices-kind.annullato{background:var(--bg);color:var(--muted);text-decoration:line-through}
.devices-movements tr.riga-annullata{opacity:.62}
.devices-movements tr.riga-annullata .devices-serial,.devices-movements tr.riga-annullata strong{text-decoration:line-through}
.devices-park-card.annullata{opacity:.68}
/* ---- Registrazione del movimento: tre passi in una superficie sola ---- */
/* Il modal e' piu' largo del consueto perche' ogni riga di dispositivo porta immagine, matricola, stato e
   posizione: a 580 px si comprimerebbero fino a non dire nulla. */
dialog.devices-wide-modal{width:min(820px,calc(100% - 24px))}
.devices-movement-form{gap:20px}
.devices-step{display:grid;gap:12px}
.devices-step-head{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:12px}
.devices-step-n{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--nav);color:#9dedce;font-size:12px;font-weight:800}
.devices-step-head strong{display:block;font-size:13.5px;letter-spacing:-.1px}
.devices-step-head small{display:block;margin-top:1px;color:var(--muted);font-size:11px;line-height:1.45}
/* Toni: ogni tipo di movimento e ogni priorita' dichiarano il proprio colore con due variabili, cosi' le
   tessere condividono una sola regola di selezione. */
.tono-verde{--tono:var(--green);--tono-bg:var(--tint)}
.tono-blu{--tono:var(--blue);--tono-bg:var(--blue-bg)}
.tono-ambra{--tono:var(--amber);--tono-bg:var(--amber-bg)}
.tono-rosso{--tono:var(--red);--tono-bg:var(--red-bg)}
.tono-grigio{--tono:var(--muted);--tono-bg:var(--bg)}
/* Tipi di movimento: tessere della stessa altezza, con icona, che cosa comportano e lo stato che impongono. */
.devices-kind-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:10px;align-items:stretch;margin:0;grid-auto-rows:1fr}
.devices-kind-choice{position:relative;display:flex;cursor:pointer;min-width:0}
.devices-kind-choice input{position:absolute;opacity:0;pointer-events:none}
.devices-kind-body{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;column-gap:11px;row-gap:8px;align-items:start;
 width:100%;min-height:98px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:var(--surface);
 transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,transform .16s ease}
.devices-kind-mark{grid-row:1/3;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--tono-bg);color:var(--tono);transition:background .16s ease,color .16s ease}
.devices-kind-mark .icon{width:19px;height:19px}
.devices-kind-text strong{display:block;font-size:12.5px;line-height:1.3;color:var(--ink)}
.devices-kind-text small{display:block;margin-top:2px;color:var(--muted);font-size:10.5px;line-height:1.4}
.devices-kind-state{grid-column:2;justify-self:start;display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 6px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:10px;font-weight:700}
.devices-kind-state .icon{width:12px;height:12px}
.devices-kind-choice:hover .devices-kind-body{border-color:color-mix(in srgb,var(--tono) 45%,var(--line));transform:translateY(-1px);box-shadow:0 6px 16px #18332b0d}
.devices-kind-choice:has(:checked) .devices-kind-body{border-color:var(--tono);background:color-mix(in srgb,var(--tono-bg) 70%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--tono) 18%,transparent)}
.devices-kind-choice:has(:checked) .devices-kind-mark{background:var(--tono);color:#fff}
.devices-kind-choice:has(:checked) .devices-kind-state{background:var(--surface);color:var(--tono)}
.devices-kind-choice:focus-within .devices-kind-body{outline:3px solid color-mix(in srgb,var(--tono) 34%,transparent);outline-offset:2px}
.devices-movement-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 14px}
.devices-movement-grid .devices-type-field[hidden]{display:none}
/* Corpo del movimento: tre strade per aggiungere, un solo elenco che si vede e si corregge. */
.devices-basket-count{display:inline-grid;place-content:center;min-width:34px;height:30px;padding:0 10px;border-radius:9px;background:var(--nav);color:#9dedce;font-weight:800;font-size:13px;font-variant-numeric:tabular-nums}
.devices-basket-tools{display:flex;gap:8px;flex-wrap:wrap}
.devices-basket-tools .btn{min-height:44px}
.devices-basket-tools .btn.evidenza{background:var(--tint);border-color:color-mix(in srgb,var(--green) 40%,var(--line));color:var(--green-dark)}
.devices-basket-tools .btn.evidenza:hover{background:color-mix(in srgb,var(--tint) 70%,var(--surface))}
.devices-basket-tools .btn[aria-expanded=true]{border-color:var(--green);color:var(--green-dark)}
.devices-paste{display:grid;gap:8px;padding:12px 12px 10px;border:1px dashed color-mix(in srgb,var(--green) 40%,var(--line));border-radius:12px;background:var(--bg)}
.devices-paste label.field{margin-bottom:0}
.devices-paste textarea{min-height:72px;font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface)}
.devices-paste .devices-bulk-preview{margin-top:0}
.devices-paste .devices-bulk-preview:empty{display:none}
.devices-paste-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.devices-paste-foot .field-hint{margin:0;flex:1 1 220px}
.devices-basket-empty{display:flex;align-items:center;gap:14px;padding:16px 18px;border:1px dashed var(--line);border-radius:14px;color:var(--muted)}
.devices-basket-empty>.icon{width:26px;height:26px;color:var(--green);flex-shrink:0}
.devices-basket-empty strong{display:block;color:var(--ink);font-size:13px}
.devices-basket-empty span{display:block;font-size:11px;line-height:1.5}
.devices-basket-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:340px;overflow:auto}
.devices-basket-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto 44px;align-items:center;gap:12px;padding:7px 8px 7px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);animation:appear .18s ease}
.devices-basket-row .devices-type-photo{width:44px;height:44px;border-radius:10px}
.devices-basket-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.devices-basket-main strong{font-size:13px}
.devices-basket-main span,.devices-basket-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.devices-basket-main span{font-size:12px;color:var(--ink)}
.devices-basket-main small{font-size:10.5px;color:var(--muted)}
.devices-basket-remove{width:44px;height:44px;border:0;border-radius:9px;background:transparent;color:var(--muted);display:grid;place-items:center;transition:background .15s ease,color .15s ease}
.devices-basket-remove:hover{background:var(--red-bg);color:var(--red)}
.devices-basket-remove .icon{width:16px;height:16px}
/* Elenco dei dispositivi ammessi: righe con spunta, immagine, identita', stato e posizione. */
.devices-cand-panel{min-height:420px;gap:14px}
.devices-cand-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.devices-cand-criterion{margin:4px 0 0;color:var(--muted);font-size:11.5px;line-height:1.5}
.devices-cand-criterion:empty{display:none}
.devices-cand-tools{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center}
.devices-cand-tools .search input{min-height:44px}
.devices-cand-list{display:grid;gap:6px;max-height:min(46vh,440px);min-height:120px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.devices-cand-row{position:relative;display:grid;grid-template-columns:24px 44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 10px;border:1px solid transparent;border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .15s ease,background .15s ease}
.devices-cand-row:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
.devices-cand-row.selected{border-color:var(--green);background:var(--tint)}
.devices-cand-row.gia{opacity:.55;cursor:default}
.devices-cand-row input{position:absolute;opacity:0;pointer-events:none}
.devices-cand-row:focus-within{outline:3px solid color-mix(in srgb,var(--green) 34%,transparent);outline-offset:1px}
.devices-cand-check{width:22px;height:22px;border-radius:7px;border:2px solid color-mix(in srgb,var(--muted) 45%,var(--line));display:grid;place-items:center;color:transparent;background:var(--surface);transition:background .15s ease,border-color .15s ease}
.devices-cand-check .icon{width:14px;height:14px;stroke-width:2.6}
.devices-cand-row.selected .devices-cand-check,.devices-cand-row.gia .devices-cand-check{background:var(--green);border-color:var(--green);color:#fff}
.devices-cand-row .devices-type-photo{width:44px;height:44px;border-radius:10px}
.devices-cand-main{display:flex;flex-direction:column;min-width:0;gap:1px}
.devices-cand-main strong{font-size:13px}
.devices-cand-main span{font-size:12px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.devices-cand-main small{font-size:10.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.devices-cand-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:220px}
.devices-cand-side small{font-size:10.5px;color:var(--muted);text-align:right;line-height:1.35}
.devices-cand-status{margin:0;font-size:11px}
.devices-cand-foot{display:flex;justify-content:flex-end;gap:10px;padding-top:12px;border-top:1px solid var(--line)}
.devices-cand-empty{display:grid;justify-items:center;gap:6px;padding:30px 16px;color:var(--muted);text-align:center}
.devices-cand-empty .icon{width:28px;height:28px}
.devices-cand-empty strong{color:var(--ink);font-size:13px}
.devices-cand-empty span{font-size:11.5px;max-width:400px;line-height:1.5}
.devices-scan-status.errore{color:var(--red)}
@media (max-width:720px){
 .devices-kind-grid{grid-template-columns:1fr 1fr;gap:8px}
 .devices-kind-body{min-height:0;padding:10px 11px;row-gap:6px}
 .devices-kind-text small{display:none}
 .devices-step-head{grid-template-columns:26px minmax(0,1fr) auto}
 .devices-step-n{width:26px;height:26px}
 .devices-basket-tools .btn{flex:1 1 calc(50% - 8px)}
 .devices-cand-panel{min-height:0}
 .devices-cand-tools{grid-template-columns:1fr 1fr}
 .devices-cand-tools .search{grid-column:1/-1}
 .devices-cand-row{grid-template-columns:24px 40px minmax(0,1fr);row-gap:6px}
 .devices-cand-side{grid-column:2/-1;flex-direction:row;flex-wrap:wrap;align-items:center;max-width:none;gap:8px}
 .devices-cand-side small{text-align:left}
 .devices-basket-row{grid-template-columns:44px minmax(0,1fr) 44px;row-gap:4px}
 .devices-basket-row .badge{grid-column:2;justify-self:start}
 .devices-cand-foot .btn{flex:1}
}
@media (max-width:420px){.devices-kind-grid{grid-template-columns:1fr}}

/* ---- Richieste di manutenzione, slice D4 ---- */
.devices-priority{font-weight:700}
.devices-fault{max-width:340px;color:var(--ink);line-height:1.5}
.devices-fault-full{margin:0;font-size:14px;line-height:1.65;color:var(--ink)}
/* Una lavorazione e' un fatto avvenuto: data, tempo, chi e che cosa. Si legge come una voce di diario,
   non come una riga di tabella, perche' la descrizione e' un testo e non un valore. */
.devices-works{display:flex;flex-direction:column;gap:12px}
.devices-work{border:1px solid var(--line);border-radius:14px;padding:14px 16px;background:var(--surface)}
.devices-work-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.devices-work-head strong{font-size:14px}
.devices-work-time{color:var(--muted);font-size:12px}
.devices-work-head .btn{margin-left:auto}
.devices-work p{margin:0 0 8px;font-size:13px;line-height:1.6;color:var(--ink)}
.devices-work-foot{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);font-size:11px}
.devices-work-foot span{display:inline-flex;align-items:center;gap:6px}
.devices-work-foot .icon{width:14px;height:14px}
@media (max-width:720px){.devices-work-head .btn{margin-left:0;width:100%}}

/* ---- Segnalazione pubblica da reparto, slice D5 ---- */
/* Pagina autonoma: chi la usa e' in corsia, spesso con una mano sola e uno schermo piccolo. Una colonna,
   bersagli grandi, nessuna navigazione da imparare. */
.segnala-body{background:var(--bg)}
.segnala{max-width:620px;margin:0 auto;padding:24px 18px 48px;display:flex;flex-direction:column;gap:18px}
.segnala-head{display:flex;align-items:center;gap:14px}
.segnala-logo{border-radius:12px;border:1px solid var(--line);background:var(--surface)}
.segnala-head strong{display:block;font-size:15px;color:var(--ink)}
.segnala-head span{display:block;font-size:12px;color:var(--muted)}
.segnala-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:24px}
.segnala-card h1{font-size:24px;margin:0 0 6px;line-height:1.25}
.segnala-eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.8px;color:var(--green-dark);margin-bottom:6px}
.segnala-lead{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.6}
.segnala-place{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:14px;background:var(--tint);margin-bottom:18px}
.segnala-place strong{font-size:15px;color:var(--green-dark)}
.segnala-place span{font-size:12px;color:var(--muted)}
.segnala-primario{width:100%;min-height:52px;margin-top:18px;font-size:15px}
.segnala-form{display:flex;flex-direction:column;gap:14px}
.segnala-priorita{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.segnala-priorita .devices-mode{min-height:68px}
.segnala-nota{font-size:11px;color:var(--muted);line-height:1.6;text-align:center;margin:0}
.segnala-esito{text-align:center}
.segnala-check{display:grid;place-content:center;width:56px;height:56px;margin:0 auto 14px;border-radius:50%;
 background:var(--green-bg);color:var(--green-dark);font-size:26px;font-weight:700}
.segnala-riferimento{font-size:12px;color:var(--muted)}
.segnala .devices-serial-row input{width:100%}
@media (max-width:520px){.segnala{padding:16px 14px 40px}.segnala-card{padding:18px}.segnala-card h1{font-size:21px}}

/* ---- Contatti: una pagina sola, raggiungibile da ogni profilo come la guida ---- */
.contatti{max-width:1040px;margin:0 auto;display:grid;gap:22px}
.contatti-hero{display:grid;justify-items:center;text-align:center;gap:6px;padding:34px 24px 30px;border:1px solid var(--line);
 border-radius:var(--radius);background:linear-gradient(170deg,var(--tint),var(--surface) 62%);box-shadow:var(--shadow)}
.contatti-logo{display:grid;place-items:center;width:112px;height:112px;margin-bottom:8px;border-radius:28px;
 background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 30px #18332b14}
.contatti-logo img{width:88px;height:88px;object-fit:contain}
.contatti-hero h1{margin:2px 0 0;font-size:31px;letter-spacing:-1px}
.contatti-hero p{margin:0;color:var(--muted);font-size:14px;max-width:560px}
.contatti-azioni{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:16px}
.contatti-azioni .btn{min-height:46px;padding-inline:20px}
.contatti-griglia{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);gap:22px;align-items:start}
.contatti-mappa{margin:0;overflow:hidden}
.contatti-mappa .count-pill{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.contatti-sedi{display:grid;gap:8px;padding:14px 16px 0}
.contatti-sede{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:11px;width:100%;
 min-height:56px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);
 text-align:left;transition:border-color .15s ease,background .15s ease}
.contatti-sede:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line));background:var(--tint)}
.contatti-sede.attiva{border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 14%,transparent)}
.contatti-sede-pin{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--bg);color:var(--muted)}
.contatti-sede.attiva .contatti-sede-pin{background:var(--green);color:#fff}
.contatti-sede strong{display:block;font-size:12.5px}
.contatti-sede small{display:block;margin-top:1px;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.contatti-mappa iframe{display:block;width:100%;height:340px;border:0;margin-top:14px;filter:saturate(.92)}
.contatti-mappa-piede{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;
 border-top:1px solid var(--line);color:var(--muted);font-size:11.5px}
.contatti-mappa-piede .btn{flex:0 0 auto}
.contatti-elenco{margin:0}
.contatti-elenco .panel-body{display:grid;gap:10px}
.contatto-card{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;align-items:center;gap:14px;padding:14px 16px;
 border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);text-decoration:none;
 transition:border-color .16s ease,background .16s ease,transform .16s ease}
.contatto-card:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line));background:var(--tint);text-decoration:none;transform:translateY(-1px)}
.contatto-card.statica{cursor:default}
.contatto-card.statica:hover{transform:none;background:var(--surface);border-color:var(--line)}
.contatto-mark{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:var(--tint);color:var(--green)}
.contatto-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.contatto-copy small{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.contatto-copy strong{font-size:15px;overflow-wrap:anywhere}
.contatto-copy span{font-size:11.5px;color:var(--muted)}
.contatto-card>.icon{width:18px;height:18px;color:var(--muted)}
.contatti-nota{display:flex;align-items:flex-start;gap:10px;margin:0;padding:14px 16px;border-radius:14px;
 background:var(--bg);color:var(--muted);font-size:12px;line-height:1.6}
.contatti-nota .icon{width:17px;height:17px;flex-shrink:0;color:var(--green)}
@media(max-width:900px){
 .contatti-griglia{grid-template-columns:1fr}
 .contatti-hero{padding:26px 18px}
 .contatti-hero h1{font-size:26px}
 .contatti-logo{width:92px;height:92px;border-radius:24px}
 .contatti-logo img{width:72px;height:72px}
 .contatti-azioni{width:100%}
 .contatti-azioni .btn{flex:1 1 140px;justify-content:center}
 .contatti-mappa iframe{height:250px}
 .contatti-mappa-piede{flex-direction:column;align-items:stretch;gap:8px}
 .contatti-mappa-piede .btn{width:100%;justify-content:center;min-height:44px}
 .contatti-mappa .count-pill{max-width:100%}
}

/* Foglio dei filtri su telefono: un elenco di righe grandi da toccare, poi le voci dentro la stessa
   superficie. Senza queste regole le voci erano bottoni nudi alti 34 px: sotto il bersaglio minimo. */
.devices-filter-body{display:grid;gap:14px}
.devices-filter-list{display:grid;gap:10px}
.devices-filter-entry{display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:2px 12px;
 width:100%;min-height:64px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;
 background:var(--surface);text-align:left;transition:border-color .15s ease,background .15s ease}
.devices-filter-entry:hover{border-color:color-mix(in srgb,var(--green) 42%,var(--line));background:var(--tint)}
.devices-filter-entry>span{grid-column:1;font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.devices-filter-entry>strong{grid-column:1;font-size:13.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.devices-filter-entry>.icon{grid-column:2;grid-row:1/3;width:18px;height:18px;color:var(--muted)}
.devices-filter-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;background:none;border:0;
 padding:6px 0;color:var(--green-dark);font:700 13px inherit;cursor:pointer}
.devices-filter-back .icon{width:16px;height:16px}

/* Selettore dentro la superficie del form: la scelta non distrugge cio' che e' gia' stato scritto. */
.devices-inline-picker{display:flex;flex-direction:column;gap:12px;min-height:340px}
.devices-inline-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;background:none;border:0;padding:6px 0;color:var(--green-dark);
 font:600 13px inherit;cursor:pointer}
.devices-inline-back .icon{width:16px;height:16px}
.devices-inline-title{margin:0;font-size:17px}
.devices-inline-body{flex:1;min-height:0}

/* ---- Registro dei movimenti: densita' e gerarchia ---- */
/* Una riga si legge in quest'ordine: quando, che natura, che cosa dice il documento, dove e' andato. Le
   larghezze sono dichiarate, cosi' la destinazione non si mangia la descrizione. */
.devices-movements{table-layout:fixed;width:100%}
.devices-movements .col-data{width:112px}
.devices-movements .col-tipo{width:176px}
.devices-movements .col-descr{width:auto;min-width:220px}
.devices-movements .col-dest{width:210px}
.devices-movements .col-num{width:72px;text-align:center}
.devices-movements .col-autore{width:150px}
.devices-movements .col-azione{width:46px}
.devices-movements tbody tr{cursor:pointer;transition:background .15s}
.devices-movements tbody tr:hover{background:var(--tint)}
.devices-movements tbody tr:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.devices-descr{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:13px}
.devices-descr.vuota{color:var(--muted);font-style:italic}
.devices-dest{display:flex;flex-direction:column;gap:1px;min-width:0}
.devices-dest strong{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.devices-dest small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.devices-dest.vuota{color:var(--muted)}
.devices-count-badge{display:inline-grid;place-content:center;min-width:34px;height:26px;padding:0 8px;border-radius:9px;
 background:var(--tint);color:var(--green-dark);font-weight:700;font-size:13px}
.devices-count-zero{color:var(--muted)}
.devices-movements .devices-row-go{display:grid;place-content:center;color:var(--muted)}
.devices-movements .devices-row-go .icon{width:18px;height:18px}
.devices-movements tbody tr:hover .devices-row-go{color:var(--green-dark)}
.devices-mov-cards{display:none}

/* ---- Scheda del movimento: la testata dice che cosa e' successo, il resto e' dettaglio ---- */
.devices-mov-hero{display:flex;gap:24px;align-items:flex-start;padding:22px 24px;
 background:linear-gradient(135deg,color-mix(in srgb,var(--tint) 78%,var(--surface)),var(--surface))}
.devices-mov-hero.annullato{background:var(--surface)}
.devices-mov-hero-main{flex:1;min-width:0}
.devices-mov-hero-kind{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.devices-mov-hero h2{margin:0 0 8px;font-size:30px;letter-spacing:-.4px}
.devices-mov-hero-place{display:flex;align-items:center;gap:8px;margin:0;color:var(--ink);font-size:14px}
.devices-mov-hero-place .icon{width:17px;height:17px;color:var(--green-dark);flex-shrink:0}
.devices-mov-hero-nota{display:flex;align-items:flex-start;gap:8px;margin:10px 0 0;color:var(--amber);font-size:11.5px;line-height:1.5}
.devices-mov-hero-nota .icon{width:15px;height:15px;flex-shrink:0;margin-top:1px}
.devices-mov-hero-side{display:flex;gap:12px;flex-shrink:0}
.devices-mov-metric{display:flex;flex-direction:column;gap:2px;align-items:center;justify-content:center;min-width:112px;
 padding:14px 16px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.devices-mov-metric strong{font-size:26px;line-height:1;color:var(--green-dark)}
.devices-mov-metric span{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.devices-mov-metric.secondaria strong{font-size:15px;color:var(--ink);text-align:center}
/* I fatti del documento: una griglia di coppie etichetta-valore, ciascuna in una propria tessera, con il
   respiro del corpo del pannello. Prima erano figli diretti della card e il testo toccava i bordi. */
.devices-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.devices-fact{display:flex;flex-direction:column;gap:3px;min-width:0;padding:12px 14px;border:1px solid var(--line);
 border-radius:12px;background:color-mix(in srgb,var(--bg) 62%,var(--surface))}
.devices-fact small{font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.devices-fact strong{font-size:13.5px;color:var(--ink);overflow-wrap:anywhere}
.devices-mov-note{display:flex;flex-direction:column;gap:5px;margin:14px 0 0;padding:14px 16px;border-radius:12px;
 background:var(--tint);border-left:3px solid var(--green);color:var(--ink);font-size:13px;line-height:1.6}
.devices-mov-note small{font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--green-dark)}
.devices-mov-note p{margin:0}
.devices-noreport-note{display:flex;align-items:flex-start;gap:10px;margin:14px 0 0;padding:14px 16px;border-radius:12px;
 background:var(--amber-bg);border-left:3px solid var(--amber);color:var(--ink);font-size:13px;line-height:1.6}
.devices-noreport-note>.icon{width:17px;height:17px;color:var(--amber);flex-shrink:0;margin-top:2px}
.devices-noreport-note small{display:block;font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--amber)}
.devices-noreport-note p{margin:2px 0 0;overflow-wrap:anywhere}

.devices-mov-devices-cards{display:none}
.devices-mov-devices td.devices-photo-cell{width:64px}
.devices-mov-devices .devices-type-photo{width:44px;height:44px;border-radius:10px}

/* ---- Telefono: una scheda per movimento, mai una tabella schiacciata ---- */
@media (max-width:1100px){
 /* Anche i dispositivi del movimento diventano schede: una tabella a sei colonne dentro 390 px non si
    stringe, si spezza — ed è quello che faceva. */
 .table-wrap:has(.devices-mov-devices){display:none}
 .devices-mov-devices-cards{display:grid;gap:10px}
 .devices-mov-device{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
 .devices-mov-device-open{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;
  width:100%;padding:12px 14px;border:0;background:none;text-align:left;cursor:pointer;min-height:72px}
 .devices-mov-device .devices-type-photo{width:48px;height:48px;border-radius:12px}
 .devices-mov-device-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
 .devices-mov-device-copy .devices-serial{font:700 14px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink)}
 .devices-mov-device-name{font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .devices-mov-device-type{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .devices-mov-device-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
 .devices-mov-device-side .icon{width:17px;height:17px;color:var(--muted)}
 .devices-movements,.devices-movements+*{display:none}
 .devices-movements{display:none}
 .table-wrap:has(.devices-movements){display:none}
 .devices-mov-cards{display:flex;flex-direction:column;gap:10px}
 .devices-mov-card{border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
 .devices-mov-card.annullata{opacity:.66}
 .devices-mov-open{display:flex;flex-direction:column;gap:8px;width:100%;padding:14px 16px;border:0;background:none;text-align:left;cursor:pointer}
 .devices-mov-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
 .devices-mov-date{font:700 16px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink)}
 .devices-mov-descr{font-size:13px;line-height:1.5;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .devices-mov-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid var(--line)}
 .devices-mov-place{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11.5px;min-width:0}
 .devices-mov-place .icon{width:14px;height:14px;flex-shrink:0}
 .devices-mov-count{display:inline-flex;align-items:baseline;gap:4px;font-weight:700;color:var(--green-dark);font-size:17px}
 .devices-mov-count small{font-size:10px;font-weight:600;color:var(--muted)}
 .devices-mov-hero{flex-direction:column;gap:16px;padding:18px}
 .devices-mov-hero h2{font-size:24px}
 .devices-mov-hero-side{width:100%}
 .devices-mov-metric{flex:1;min-width:0}
 .devices-facts{grid-template-columns:1fr 1fr;gap:8px}
 .devices-fact{padding:10px 12px}
}


/* ---- Coda delle manutenzioni ---- */
.devices-requests{table-layout:fixed;width:100%}
.devices-requests .col-data{width:104px}
/* In coda si riconosce prima l'apparecchiatura che la matricola: l'immagine sta accanto alla data, e il
   guasto smette di prendersi tutta la riga — resta il testo su due righe, che e' quanto serve per capire. */
.devices-requests .col-foto{width:60px}
.devices-requests .col-disp{width:172px}
.devices-requests .col-guasto{width:auto;min-width:180px;max-width:0}
.devices-requests .col-dest{width:190px}
.devices-requests .col-prio{width:96px}
.devices-requests .col-stato{width:130px}
.devices-requests .col-num{width:88px}
.devices-requests .col-azione{width:46px}
.devices-requests tbody tr{cursor:pointer;transition:background .15s}
.devices-requests tbody tr:hover{background:var(--tint)}
.devices-requests tbody tr:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.devices-requests td.col-foto{padding-inline:0}
.devices-requests .col-foto .devices-type-photo{width:44px;height:44px;border-radius:10px}
/* Il guasto si legge su due righe: il resto lo racconta la scheda, e la riga resta densa e ordinata. */
.devices-requests .devices-fault{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
 white-space:normal;font-size:12.5px;line-height:1.45}
.devices-requests .devices-row-go{display:grid;place-content:center;color:var(--muted)}
.devices-requests .devices-row-go .icon{width:18px;height:18px}
.devices-requests tbody tr:hover .devices-row-go{color:var(--green-dark)}
.devices-work-chip{display:inline-flex;flex-direction:column;align-items:center;gap:1px;padding:4px 10px;border-radius:9px;background:var(--tint)}
.devices-work-chip strong{font-size:14px;color:var(--green-dark);line-height:1}
.devices-work-chip small{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}
.devices-priority{font-weight:700}
.devices-req-cards{display:none}

/* Testata della richiesta: il dispositivo si vede, non si legge soltanto. */
.devices-req-hero{display:flex;gap:22px;align-items:center;padding:22px 24px;
 background:linear-gradient(135deg,color-mix(in srgb,var(--tint) 74%,var(--surface)),var(--surface));
 border-left:4px solid var(--line)}
.devices-req-hero.priorita-3{border-left-color:var(--amber)}
.devices-req-hero.priorita-4{border-left-color:var(--red)}
.devices-req-hero-figure .devices-type-photo{width:96px;height:96px;border-radius:16px}
.devices-type-photo .devices-photo-fallback{width:100%;height:100%;display:grid;place-items:center;color:var(--muted)}
.devices-type-photo .devices-photo-fallback[hidden]{display:none}
.devices-type-photo.foto-non-disponibile img{display:none}
.devices-type-photo.foto-non-disponibile .devices-photo-fallback{display:grid}
.devices-req-hero-main{flex:1;min-width:0}
.devices-req-hero-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.devices-req-hero h2{margin:0 0 4px}
.devices-req-hero-type{margin:0 0 8px;color:var(--muted);font-size:13px}
.devices-req-hero-place{display:flex;align-items:center;gap:8px;margin:0;font-size:13.5px;color:var(--ink)}
.devices-req-hero-place .icon{width:16px;height:16px;color:var(--green-dark);flex-shrink:0}
.devices-req-hero-actions{display:flex;margin-top:14px}
.devices-req-device-open{min-height:44px;padding-inline:14px}
.devices-req-hero-side{display:flex;gap:12px;flex-shrink:0}
.devices-req-fault-panel .devices-fault-full{margin:0 0 18px;padding:16px 18px;border-radius:12px;background:var(--bg);
 font-size:14px;line-height:1.65}
/* Lavorazioni come diario: una linea verticale le lega nel tempo. */
.devices-works{list-style:none;margin:0;padding:0 0 0 22px;position:relative;display:flex;flex-direction:column;gap:12px}
.devices-works:before{content:'';position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--line)}
.devices-work{position:relative}
.devices-work:before{content:'';position:absolute;left:-22px;top:18px;width:10px;height:10px;border-radius:50%;
 background:var(--green);box-shadow:0 0 0 3px var(--surface)}
/* Dispositivo riconosciuto nel form della richiesta. */
.devices-request-found:empty{display:none}
.devices-found-card{display:flex;align-items:center;gap:14px;padding:12px 14px;margin:0 0 16px;border-radius:14px;
 background:var(--green-bg);border:1px solid color-mix(in srgb,var(--green) 26%,transparent)}
.devices-found-card>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.devices-found-card strong{font:700 15px ui-monospace,SFMono-Regular,Menlo,monospace}
.devices-found-card span{font-size:12.5px;color:var(--ink)}
.devices-found-card small{font-size:11px;color:var(--muted)}
.devices-found-card>.icon{width:22px;height:22px;color:var(--green-dark);flex-shrink:0}
.devices-found-warn{display:flex;align-items:center;gap:8px;margin:-8px 0 14px;color:var(--amber);font-size:12px}
.devices-found-warn .icon{width:15px;height:15px;flex-shrink:0}
/* Dispositivo riconosciuto ma dichiarato fuori uso (29/09/2026): la card resta, senza spunta, e sotto l'avviso che
   blocca la richiesta. Stessi token del rosso del prodotto, in chiaro e in scuro. */
.devices-found-card.fuori-uso{background:var(--red-bg);border-color:color-mix(in srgb,var(--red) 30%,transparent);margin-bottom:10px}
.devices-found-card.fuori-uso>.badge{flex-shrink:0}
.devices-found-block{display:flex;align-items:flex-start;gap:12px;margin:0 0 16px;padding:12px 14px;border-radius:12px;
 background:var(--red-bg);border-left:3px solid var(--red);color:var(--ink)}
.devices-found-block-mark{display:grid;place-content:center;width:30px;height:30px;border-radius:9px;flex-shrink:0;
 background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}
.devices-found-block-mark .icon{width:17px;height:17px}
.devices-found-block>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.devices-found-block strong{font-size:13.5px;color:var(--red)}
.devices-found-block span{font-size:12.5px;line-height:1.55}
/* Chiusura senza rapporto di lavoro: prima la domanda con la motivazione, poi l'esito nella stessa finestra. */
.devices-noreport-alert{display:flex;align-items:flex-start;gap:14px;margin:0 0 16px;padding:16px;border-radius:14px;
 background:var(--amber-bg);border:1px solid color-mix(in srgb,var(--amber) 30%,transparent)}
.devices-noreport-mark{display:grid;place-content:center;width:40px;height:40px;border-radius:12px;flex-shrink:0;
 background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber)}
.devices-noreport-mark .icon{width:21px;height:21px}
.devices-noreport-alert strong{display:block;font-size:15px;line-height:1.35;color:var(--ink)}
.devices-noreport-alert p{margin:6px 0 0;font-size:12.5px;line-height:1.55;color:var(--muted)}
.devices-noreport[data-fase=domanda] .devices-noreport-done,.devices-noreport:not([data-fase=domanda]) .devices-noreport-ask,
.devices-noreport:not([data-fase=domanda]) .devices-noreport-alert p{display:none}
.devices-noreport:not([data-fase=domanda]) .devices-noreport-alert{padding:12px 14px;align-items:center}
.devices-noreport:not([data-fase=domanda]) .devices-noreport-mark{width:32px;height:32px}
.devices-noreport:not([data-fase=domanda]){padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--line)}
/* Priorita' come tessere: colore proprio, icona, livello a barre e che cosa significa sceglierla. La stessa
   tessera vive nella richiesta, nel cambio di priorita' e nella pagina di reparto. */
.devices-prio-field{margin:0 0 18px}
.devices-prio-label{display:block;margin-bottom:8px;font-size:12px;font-weight:700}
.devices-prio-lead{margin:0 0 14px;color:var(--muted);font-size:12.5px;line-height:1.55}
.devices-prio-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;grid-auto-rows:1fr}
.devices-prio{position:relative;display:flex;cursor:pointer;min-width:0}
.devices-prio input{position:absolute;opacity:0;pointer-events:none}
.devices-prio-body{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr) 22px;grid-template-rows:auto auto;column-gap:12px;row-gap:9px;align-items:center;
 width:100%;min-height:92px;padding:13px 14px;border:1px solid var(--line);border-left:4px solid var(--tono);border-radius:14px;background:var(--surface);
 transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}
.devices-prio-mark{grid-row:1/3;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--tono-bg);color:var(--tono);transition:background .16s ease,color .16s ease}
.devices-prio-mark .icon{width:20px;height:20px}
.devices-prio-text strong{display:block;font-size:13.5px;color:var(--ink)}
.devices-prio-text small{display:block;margin-top:2px;color:var(--muted);font-size:10.5px;line-height:1.4}
.devices-prio-level{grid-column:2;display:flex;gap:3px;align-items:flex-end;height:12px}
.devices-prio-level i{display:block;width:9px;border-radius:2px;background:var(--line)}
.devices-prio-level i:nth-child(1){height:5px}.devices-prio-level i:nth-child(2){height:7px}.devices-prio-level i:nth-child(3){height:9px}.devices-prio-level i:nth-child(4){height:12px}
.devices-prio-level i.on{background:var(--tono)}
.devices-prio-tick{grid-column:3;grid-row:1/3;width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:transparent;background:var(--surface);transition:background .16s ease,border-color .16s ease}
.devices-prio-tick .icon{width:13px;height:13px;stroke-width:2.8}
.devices-prio:hover .devices-prio-body{transform:translateY(-1px);border-color:color-mix(in srgb,var(--tono) 45%,var(--line));border-left-color:var(--tono);box-shadow:0 6px 16px #18332b0d}
.devices-prio:has(:checked) .devices-prio-body{border-color:var(--tono);background:color-mix(in srgb,var(--tono-bg) 72%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--tono) 20%,transparent)}
.devices-prio:has(:checked) .devices-prio-mark{background:var(--tono);color:#fff}
.devices-prio:has(:checked) .devices-prio-tick{background:var(--tono);border-color:var(--tono);color:#fff}
.devices-prio:focus-within .devices-prio-body{outline:3px solid color-mix(in srgb,var(--tono) 34%,transparent);outline-offset:2px}
.badge.devices-priority.p4{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--red) 35%,transparent)}
.devices-req-hero.priorita-1{border-left-color:var(--green)}
.devices-req-hero.priorita-2{border-left-color:var(--blue)}
@media (max-width:520px){.devices-prio-grid{grid-template-columns:1fr}.devices-prio-body{min-height:0}}

@media (max-width:1100px){
 .table-wrap:has(.devices-requests){display:none}
 .devices-req-cards{display:flex;flex-direction:column;gap:10px}
 .devices-req-card{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:16px;background:var(--surface);
  box-shadow:var(--shadow);overflow:hidden}
 .devices-req-card.priorita-1{border-left-color:var(--green)}
 .devices-req-card.priorita-2{border-left-color:var(--blue)}
 .devices-req-card.priorita-3{border-left-color:var(--amber)}
 .devices-req-card.priorita-4{border-left-color:var(--red)}
 .devices-req-open{display:flex;flex-direction:column;gap:8px;width:100%;padding:14px 16px;border:0;background:none;text-align:left;cursor:pointer}
 .devices-req-top{display:flex;align-items:center;gap:10px}
 .devices-req-top .devices-type-photo{width:40px;height:40px;border-radius:10px;flex-shrink:0}
 .devices-req-top .badge{margin-left:auto}
 .devices-req-serial{font:700 15px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink)}
 .devices-req-fault{font-size:13px;line-height:1.5;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .devices-req-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid var(--line)}
 .devices-req-place{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11.5px;min-width:0}
 .devices-req-place .icon{width:14px;height:14px;flex-shrink:0}
 .devices-req-meta{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}
 .devices-req-meta small{font-size:11px;color:var(--muted)}
 .devices-req-hero{flex-direction:column;align-items:flex-start;gap:16px;padding:18px}
 .devices-req-hero-main,.devices-req-hero-actions,.devices-req-device-open{width:100%}
 .devices-req-device-open{justify-content:center}
 .devices-req-hero-side{width:100%}
 .devices-req-hero-side .devices-mov-metric{flex:1}
}

/* ---- Segnalazione da reparto: due passi, bersagli grandi, nulla da imparare ---- */
.segnala-step{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:1px;color:var(--muted);margin-bottom:10px}
.segnala-scan-cta{display:flex;align-items:center;gap:16px;width:100%;padding:18px 20px;margin:4px 0 0;
 border:0;border-radius:18px;cursor:pointer;text-align:left;color:#fff;
 background:linear-gradient(135deg,var(--green-dark),var(--green));box-shadow:0 10px 24px -14px var(--green-dark)}
.segnala-scan-cta:hover{filter:brightness(1.06)}
.segnala-scan-cta:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.segnala-scan-icon{display:grid;place-content:center;width:52px;height:52px;border-radius:14px;background:#ffffff26;flex-shrink:0}
.segnala-scan-icon svg{width:28px;height:28px}
.segnala-scan-cta strong{display:block;font-size:17px}
.segnala-scan-cta small{display:block;font-size:12px;opacity:.85;margin-top:2px}
.segnala-oppure{display:flex;align-items:center;gap:12px;margin:18px 0 12px;color:var(--muted);font-size:11.5px}
.segnala-oppure:before,.segnala-oppure:after{content:'';flex:1;height:1px;background:var(--line)}
.segnala-manuale input{min-height:52px;font:600 17px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5px}
.segnala-device{display:flex;align-items:center;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.segnala-device-figure{display:grid;place-content:center;width:76px;height:76px;border-radius:16px;border:1px solid var(--line);
 background:var(--surface);overflow:hidden;flex-shrink:0}
.segnala-foto{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.segnala-foto.vuota{display:grid;place-content:center;color:var(--muted)}
.segnala-foto.vuota svg{width:30px;height:30px}
.segnala-device-copy{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.segnala-device-copy strong{font:700 19px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5px}
.segnala-device-copy>span:last-child{font-size:13px;color:var(--muted)}
.segnala-cambia{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:8px 12px;
 font:600 12px inherit;color:var(--green-dark);cursor:pointer;min-height:44px;flex-shrink:0}
.segnala-place{display:flex;align-items:center;gap:12px;padding:14px 16px;margin:16px 0 20px;border-radius:14px;background:var(--tint)}
.segnala-place svg{width:22px;height:22px;color:var(--green-dark);flex-shrink:0}
.segnala-place strong{display:block;font-size:14px;color:var(--green-dark)}
.segnala-place span{display:block;font-size:12px;color:var(--muted)}
.segnala-aperta{padding:16px 18px;border-radius:14px;background:var(--amber-bg);border:1px solid color-mix(in srgb,var(--amber) 28%,transparent)}
.segnala-aperta strong{display:block;font-size:14px;color:var(--amber);margin-bottom:4px}
.segnala-aperta span{font-size:12.5px;line-height:1.6;color:var(--ink)}
.segnala-fuoriuso{display:flex;align-items:flex-start;gap:14px;margin:14px 0 4px;padding:16px 18px;border-radius:14px;
 background:var(--red-bg);border:1px solid color-mix(in srgb,var(--red) 30%,transparent)}
.segnala-fuoriuso[hidden]{display:none}
.segnala-fuoriuso-mark{display:grid;place-content:center;width:40px;height:40px;border-radius:12px;flex-shrink:0;
 background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}
.segnala-fuoriuso-mark .icon{width:21px;height:21px}
.segnala-fuoriuso>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.segnala-fuoriuso strong{font-size:15px;color:var(--red)}
.segnala-fuoriuso span{font-size:13px;line-height:1.6;color:var(--ink)}
.segnala-fuoriuso small{font:600 11.5px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted);overflow-wrap:anywhere}
.segnala-priorita{border:0;padding:0;margin:0;display:block}
.segnala-priorita legend{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:8px;padding:0}
.segnala-contatti{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.segnala-contatti .field span em{font-style:normal;margin-left:6px;padding:2px 7px;border-radius:999px;background:var(--red-bg);
 color:var(--red);font-size:9px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}
.segnala-conferma{display:flex;align-items:flex-start;gap:9px;margin:2px 0 0;padding:12px 14px;border-radius:12px;
 background:var(--tint);color:var(--green-dark);font-size:12px;line-height:1.55}
.segnala-conferma .icon{width:16px;height:16px;flex-shrink:0;margin-top:1px}
.segnala-check svg{width:30px;height:30px}
@media (max-width:520px){.segnala-contatti{grid-template-columns:1fr}}

/* ============================================================================================
   D9 — Gestione Dispositivi: elevazione visuale.
   Regola di lettura: il dispositivo deve avere un'identita' che si riconosce prima di essere
   letta, come la targa nella Flotta. Qui quell'oggetto esiste davvero ed e' l'etichetta EAN-13
   incollata sul bene. Nessun tema nuovo, nessun blur, nessuna palette diversa: gli stessi token
   del prodotto, usati con piu' gerarchia. Il blocco sta in coda per vincere la cascata senza
   riscrivere regole gia' approvate altrove.
   ============================================================================================ */

/* --- Testata di pagina: la barra di accento che gia' hanno Dashboard Generale e Flotta ------- */
.devices-shell .page-head{position:relative;padding-left:18px}
.devices-shell .page-head::before{content:'';position:absolute;left:0;top:2px;bottom:6px;width:3px;border-radius:3px;
 background:linear-gradient(180deg,var(--green),color-mix(in srgb,var(--green) 25%,transparent))}
.devices-shell .page-head h1{letter-spacing:-.9px}

/* --- L'etichetta del dispositivo ------------------------------------------------------------
   Barre a sinistra, codice a destra, dentro una tessera chiara con bordo: e' l'oggetto fisico
   che il reparto ha sotto gli occhi. La classe `devices-serial` resta sul codice, monospaziato. */
.devices-tag{display:inline-flex;align-items:stretch;gap:0;max-width:100%;border:1px solid var(--line);
 border-radius:8px;background:var(--surface);overflow:hidden;box-shadow:inset 0 1px 0 #ffffff12,0 1px 1px #0000000a;
 vertical-align:middle}
.devices-tag-bars{flex:0 0 14px;background-image:repeating-linear-gradient(90deg,
 color-mix(in srgb,var(--ink) 78%,transparent) 0 1.5px,transparent 1.5px 3px,
 color-mix(in srgb,var(--ink) 78%,transparent) 3px 4px,transparent 4px 6.5px);
 background-position:center;background-repeat:repeat;border-right:1px solid var(--line);opacity:.62}
.devices-tag .devices-serial{display:block;padding:5px 9px;font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace;
 letter-spacing:.6px;color:var(--ink);overflow-wrap:anywhere;line-height:1.35}
.devices-tag.vuota{padding:5px 10px;font-size:11.5px;font-weight:700;color:var(--muted);background:var(--bg);
 border-style:dashed;box-shadow:none}
.devices-tag.grande{border-radius:11px}
.devices-tag.grande .devices-tag-bars{flex-basis:20px}
.devices-tag.grande .devices-serial{padding:9px 14px;font-size:21px;letter-spacing:.9px}
.devices-tag.vuota.grande{padding:10px 14px;font-size:15px}
[data-theme=dark] .devices-tag{background:color-mix(in srgb,var(--surface) 82%,#000)}

/* --- Tessera dell'immagine: cornice piu' presente, segnaposto che non sparisce --------------- */
.devices-figure{display:inline-flex;flex-shrink:0}
.devices-type-photo{box-shadow:0 1px 2px #0000000d}
.devices-type-photo.vuota{background:var(--tint);color:color-mix(in srgb,var(--green) 62%,var(--muted));
 border-color:color-mix(in srgb,var(--green) 18%,var(--line))}
.devices-vuoto{color:var(--muted);font-size:11.5px}

/* --- Elenco del parco: densita' invariata, gerarchia restituita ------------------------------ */
.devices-park tbody tr{position:relative;transition:background var(--ease)}
.devices-park tbody tr::after{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--green);
 opacity:0;transition:opacity var(--ease)}
.devices-park tbody tr:hover::after{opacity:1}
.devices-park td.devices-photo-cell{width:76px}
.devices-park .devices-type-photo{width:48px;height:48px;border-radius:11px}
.devices-park td.main-cell{min-width:190px}
.devices-park .devices-row-open{opacity:.72;transition:opacity var(--ease),background var(--ease)}
.devices-park tbody tr:hover .devices-row-open{opacity:1;background:var(--tint);border-color:color-mix(in srgb,var(--green) 26%,var(--line));color:var(--green-dark)}
.devices-position.senza.quieta{color:var(--muted)}
.devices-position.senza.quieta .icon{color:var(--muted);width:13px;height:13px;flex-basis:13px}

/* --- Scheda del dispositivo: testata con identita', poi anagrafica e numeri affiancati -------- */
.devices-device-head{grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center}
.devices-device-eyebrow{font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--green)}
.devices-device-identity{gap:9px}
.devices-device-identity>.devices-tag{align-self:flex-start}
.devices-device-name{font-size:17px;font-weight:700;letter-spacing:-.3px;line-height:1.35;overflow-wrap:anywhere}
.devices-device-chips{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.devices-device-type{font-size:12px;color:var(--muted)}
.devices-sheet-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,1fr);gap:22px;align-items:start}
.devices-sheet-side{display:flex;flex-direction:column;gap:22px;min-width:0}
.devices-sheet-side .panel{margin-bottom:0}
.devices-sheet-grid>.panel{margin-bottom:0}
.devices-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px}
.devices-overview-grid .devices-identity-item{padding:13px 0;border-bottom:1px solid var(--line)}
.devices-overview-grid .devices-identity-item:nth-last-child(-n+2){border-bottom:0;padding-bottom:0}
.devices-overview-grid .devices-identity-item:nth-child(-n+2){padding-top:0}
.devices-metrics{display:grid;gap:12px}
.devices-metric{padding:14px 16px;border-radius:13px;background:var(--tint);
 border:1px solid color-mix(in srgb,var(--green) 16%,transparent)}
.devices-metric small{display:block;font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--green-dark)}
.devices-metric strong{display:block;margin:2px 0 3px;font-size:28px;line-height:1.1;letter-spacing:-1px;
 color:var(--green-dark);font-variant-numeric:tabular-nums}
.devices-metric span{display:block;font-size:11px;color:var(--muted);line-height:1.5}
.devices-state-note{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.devices-state-note p{margin:0;font-size:12px;color:var(--muted);line-height:1.6}

/* --- Movimenti: la natura del documento diventa un'ancora visiva ----------------------------- */
.devices-kind-anchor{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;flex-shrink:0;
 background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.devices-kind-anchor .icon{width:19px;height:19px}
.devices-kind-anchor.grande{width:56px;height:56px;border-radius:16px}
.devices-kind-anchor.grande .icon{width:25px;height:25px}
.devices-kind-anchor.tinta-verde{background:var(--tint);color:var(--green-dark);border-color:color-mix(in srgb,var(--green) 22%,var(--line))}
.devices-kind-anchor.tinta-blu{background:var(--blue-bg);color:var(--blue);border-color:color-mix(in srgb,var(--blue) 22%,var(--line))}
.devices-kind-anchor.tinta-ambra{background:var(--amber-bg);color:var(--amber);border-color:color-mix(in srgb,var(--amber) 26%,var(--line))}
.devices-kind-anchor.tinta-rosso{background:var(--red-bg);color:var(--red);border-color:color-mix(in srgb,var(--red) 22%,var(--line))}
.devices-kind-anchor.annullato{background:var(--bg);color:var(--muted);border-color:var(--line)}
.devices-movements td.col-ico{width:64px}
.devices-movements .devices-descr.vuota{font-style:normal;font-size:12px}
.devices-mov-hero{gap:20px}
.devices-mov-hero-mark{display:flex;align-items:center}

/* I fatti del documento non sono card dentro una card: una griglia con filetti, come la scheda
   mezzo della Flotta. Sei riquadri dentro un pannello erano la definizione di card annidata. */
.devices-facts{grid-template-columns:repeat(auto-fit,minmax(186px,1fr));gap:0 26px}
.devices-fact{padding:13px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;gap:4px}
.devices-fact small{font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}
.devices-fact strong{font-size:13px}

/* --- Richieste: l'etichetta nella testata, senza titolo che comincia con un trattino --------- */
.devices-req-hero-serial{margin:0 0 6px;display:flex}
.devices-requests td.col-disp .devices-tag{margin-bottom:4px}


/* --- Tablet: la scheda torna in colonna prima che la corsia laterale si stringa -------------- */
@media (max-width:1180px){
 .devices-sheet-grid{grid-template-columns:1fr}
}

/* --- Telefono e telefono in orizzontale ------------------------------------------------------ */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .devices-shell .page-head{padding-left:14px}
 .devices-tag .devices-serial{font-size:12.5px;padding:5px 8px}
 .devices-tag.grande .devices-serial{font-size:18px;padding:8px 12px}
 .devices-overview-grid{grid-template-columns:1fr;gap:0}
 .devices-overview-grid .devices-identity-item{padding:11px 0}
 .devices-overview-grid .devices-identity-item:nth-child(-n+2){padding-top:11px}
 .devices-overview-grid .devices-identity-item:first-child{padding-top:0}
 .devices-overview-grid .devices-identity-item:nth-last-child(-n+2){border-bottom:1px solid var(--line);padding-bottom:11px}
 .devices-overview-grid .devices-identity-item:last-child{border-bottom:0;padding-bottom:0}
 .devices-device-identity>.devices-tag{align-self:center}
 .devices-metric strong{font-size:24px}
 .devices-facts{grid-template-columns:1fr;gap:0}
 .devices-fact{padding:11px 0}
 .devices-kind-anchor{width:36px;height:36px;border-radius:11px}
 .devices-kind-anchor .icon{width:17px;height:17px}
 .devices-kind-anchor.grande{width:48px;height:48px;border-radius:14px}
}

/* --- Card Premium del parco: una sola superficie tattile, non una riga compressa -------------
   Vale sia sul tablet stretto sia sul telefono: la regola e' identica, cambia solo il numero di
   colonne, quindi si dichiara una volta per entrambe le fasce. */
@media (min-width:801px) and (max-width:1100px) and (min-height:521px),
       (max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .devices-park-card{border-radius:18px;box-shadow:var(--shadow);transition:box-shadow var(--ease),transform var(--ease)}
 .devices-park-card:hover{box-shadow:0 6px 18px #0000000f;transform:translateY(-1px)}
 .devices-park-open{display:flex;flex-direction:column;align-items:stretch;gap:10px;grid-template-columns:none;
  min-height:0;padding:14px 15px 13px}
 .devices-park-head{display:grid;grid-template-columns:auto minmax(0,1fr) 20px;gap:12px;align-items:center}
 .devices-park-figure .devices-type-photo{width:54px;height:54px;border-radius:13px}
 .devices-park-ident{display:flex;flex-direction:column;gap:6px;min-width:0}
 .devices-park-ident .devices-tag{align-self:flex-start;max-width:100%}
 .devices-park-name{font-size:13px;font-weight:700;line-height:1.4;overflow-wrap:anywhere;color:var(--ink)}
 .devices-park-meta{font-size:11px;color:var(--muted);line-height:1.5;overflow-wrap:anywhere}
 .devices-park-go{align-self:center;color:var(--green)}
 .devices-park-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:2px;padding:11px 0 0;
  border-top:1px solid var(--line);background:none}
 .devices-park-foot .devices-position strong{font-size:11.5px}
 .devices-park-foot .devices-position small{font-size:10px}
 .devices-park-foot .devices-position.senza{font-size:11px}
}
@media (max-width:420px){
 .devices-park-head{grid-template-columns:auto minmax(0,1fr) 18px;gap:10px}
 .devices-park-figure .devices-type-photo{width:48px;height:48px}
}

/* --- D9, seconda passata: rifiniture nate guardando gli screenshot ------------------------- */
/* Il segnaposto dell'immagine era una tessera grande e vuota: l'icona la riempie senza fingere
   una fotografia che non c'e'. */
.devices-type-photo.vuota .icon{width:26px;height:26px}
.devices-type-photo.grande.vuota .icon{width:44px;height:44px}
.devices-device-figure .devices-type-photo.grande{width:104px;height:104px}

/* Le metriche di movimento e richiesta diventano tessere, come i chilometri nella scheda mezzo:
   erano due riquadri bianchi di larghezza diversa, e si leggevano come due campi qualsiasi. */
.devices-mov-metric{min-width:0;flex:1 1 150px;max-width:220px;padding:14px 16px;border-radius:13px;
 background:var(--tint);border:1px solid color-mix(in srgb,var(--green) 16%,transparent);align-items:flex-start;gap:3px}
.devices-mov-metric strong{font-size:27px;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.devices-mov-metric span{font-size:10px;font-weight:800;letter-spacing:.7px;color:var(--green-dark)}
.devices-mov-metric.secondaria{background:var(--bg);border-color:var(--line)}
.devices-mov-metric.secondaria strong{font-size:14px;color:var(--ink);text-align:left;line-height:1.35}
.devices-mov-metric.secondaria span{color:var(--muted)}
.devices-mov-hero-side{align-items:stretch}

/* Le intestazioni delle griglie operative reggono la riga: erano piu' chiare del testo che annunciano. */
.devices-park thead th,.devices-movements thead th,.devices-requests thead th,
.devices-mov-devices thead th{color:var(--ink);font-weight:800;letter-spacing:.9px;
 background:color-mix(in srgb,var(--bg) 78%,var(--tint))}

/* Perimetro della dashboard: filetti al posto di quattro riquadri dentro il pannello. */
.devices-perimeter .readonly-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px}
.devices-perimeter .readonly-grid>div{padding:13px 0;border-bottom:1px solid var(--line);background:none;border-radius:0}
.devices-perimeter .readonly-grid>div:nth-last-child(-n+2){border-bottom:0;padding-bottom:0}
.devices-perimeter .readonly-grid>div:nth-child(-n+2){padding-top:0}
.devices-perimeter .readonly-grid dt{font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}
.devices-perimeter .readonly-grid dd{margin:3px 0 0;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}

@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .devices-perimeter .readonly-grid{grid-template-columns:1fr}
 .devices-perimeter .readonly-grid>div:nth-child(-n+2){padding-top:13px}
 .devices-perimeter .readonly-grid>div:first-child{padding-top:0}
 .devices-perimeter .readonly-grid>div:nth-last-child(-n+2){border-bottom:1px solid var(--line);padding-bottom:13px}
 .devices-perimeter .readonly-grid>div:last-child{border-bottom:0;padding-bottom:0}
 .devices-mov-metric{max-width:none}
 .devices-mov-metric strong{font-size:23px}
}

/* --- D9: bersagli tattili del modulo ---------------------------------------------------------
   La regola della piattaforma vuole almeno 44 px per ogni comando. Nel modulo restavano a 40 px i
   pulsanti `small` — paginazione, estrazioni, «Rinomina», «Apri la coda» — e a 14 px il recapito
   del reparto, che e' un link da toccare in reparto con il telefono in mano. */
.devices-shell .btn.small{min-height:44px}
.devices-mail{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:4px 0;
 color:var(--green-dark);font-weight:600;overflow-wrap:anywhere}
.devices-mail .icon{width:15px;height:15px;flex-shrink:0;color:var(--muted)}
.devices-mail:hover .icon{color:var(--green-dark)}

/* --- D9: stati vuoti e di attesa del modulo ---------------------------------------------------
   Lo stato vuoto e' una superficie come le altre: l'icona vive in una tessera, non galleggia nel
   bianco, e il testo resta leggibile. Vale anche per «in caricamento», che e' lo stato che si vede
   piu' spesso su una rete di reparto. */
.devices-shell .empty{padding:44px 24px}
.devices-shell .empty>.icon{width:26px;height:26px;margin:0 0 14px;padding:13px;box-sizing:content-box;
 border-radius:16px;background:var(--tint);color:var(--green-dark);
 border:1px solid color-mix(in srgb,var(--green) 16%,transparent)}
.devices-shell .empty strong{font-size:15.5px;letter-spacing:-.2px}
.devices-shell .empty p{font-size:12.5px;line-height:1.65}

/* Tema scuro: l'etichetta e le tessere restano leggibili senza inventare colori nuovi. */
[data-theme=dark] .devices-tag-bars{opacity:.8;border-right-color:color-mix(in srgb,var(--line) 70%,transparent)}
[data-theme=dark] .devices-type-photo.vuota{background:color-mix(in srgb,var(--tint) 62%,transparent)}
[data-theme=dark] .devices-metric,[data-theme=dark] .devices-mov-metric{background:color-mix(in srgb,var(--tint) 70%,transparent)}
[data-theme=dark] .devices-park thead th,[data-theme=dark] .devices-movements thead th,
[data-theme=dark] .devices-requests thead th,[data-theme=dark] .devices-mov-devices thead th{background:color-mix(in srgb,var(--bg) 82%,var(--tint))}

/* Movimento ridotto: le uniche transizioni introdotte sono quelle del passaggio del puntatore. */
@media (prefers-reduced-motion: reduce){
 .devices-park tbody tr,.devices-park tbody tr::after,.devices-park-card,.devices-park .devices-row-open{transition:none}
 .devices-park-card:hover{transform:none}
}

/* --- D9: le regole di base non devono scavalcare il guscio mobile ----------------------------
   Una regola aggiunta in coda al foglio vince su una regola dentro un media query precedente, a
   parita' di specificita': le media query non pesano. Le poche regole di base introdotte qui sopra
   vanno quindi ridichiarate per telefono, altrimenti l'identita' della scheda torna su due colonne
   invece di restare centrata in colonna unica. E' un difetto che il collaudo ha intercettato. */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .devices-device-head{grid-template-columns:1fr;justify-items:center;text-align:center;gap:14px}
 .devices-device-identity{align-items:center}
 .devices-device-identity>.devices-tag{align-self:center}
 .devices-mov-hero{gap:16px}
}

/* --- D9: la colonna della natura non toglie spazio alla descrizione --------------------------
   L'ancora del tipo occupa una colonna nuova: le larghezze dichiarate vanno rifatte, altrimenti a
   spendere i 56 px e' la descrizione, che e' proprio la colonna con cui chi ha registrato riconosce
   il proprio documento — sul parco reale e' valorizzata su 4.693 documenti su 4.854. Il collaudo lo
   ha intercettato misurando, e la regola resta: la descrizione e' la colonna piu' larga. */
.devices-movements .col-ico{width:52px}
.devices-movements .col-data{width:112px}
/* La colonna del tipo si dichiara sulla misura reale, non a occhio: la pastiglia piu' lunga —
   «Rientro da assegnazione» — misura 173 px, e con i 34 px di spaziatura della cella ne servono 207.
   La colonna ne dichiarava 176 e la pastiglia usciva sopra la descrizione gia' prima di D9: il difetto
   era li' e si vedeva. `width:1%` non e' una soluzione: il browser lo prende alla lettera e la colonna
   scende a 10 px. */
.devices-movements .col-tipo{width:210px}
.devices-movements .col-tipo .badge::before{flex:0 0 5px}
.devices-movements .col-descr{width:auto;min-width:230px}
.devices-movements .col-dest{width:200px}
.devices-movements .col-autore{width:130px}

/* ==================================================================================================
   TOOL SUPERADMIN — Genera Barcode e Importa file
   Due superfici lunghe con una domanda in mezzo, quindi pagine e non modali. Riusano i componenti del
   modulo: `.devices-deck` per la fascia comandi sticky, `.panel`, `.data-table`, `.banner`, le pastiglie
   di conteggio. Qui c'e' soltanto cio' che non esisteva: l'ancora visuale del codice, il riepilogo
   dell'intervallo, la barra di avanzamento, l'area di caricamento e le tabelle che su schermo stretto
   diventano schede. Nessun token inventato: il difetto del 17/09 e' costato trenta punti.
   ================================================================================================== */
.tools-page .devices-deck-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.tools-page .devices-deck-head h2{margin:0 0 4px;font-size:17px;letter-spacing:-.2px}
.tools-page .devices-deck-head p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}

/* Il modulo del lotto: righe condivise come la fascia filtri di S1.2, cosi' etichette e aiuti cadono
   sulla stessa linea e un aiuto lungo non alza soltanto il proprio campo. */
.tool-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px 16px;align-items:start}
.tool-form .devices-field{width:auto}
.tool-form .devices-field-wide{grid-column:1/-1}
.tool-form input,.tool-form select{min-height:44px;width:100%;padding:0 12px;border:1px solid var(--line);border-radius:10px;
 background:var(--surface);color:var(--ink);font-size:14px}
.tool-form input:focus-visible,.tool-form select:focus-visible{outline:2px solid var(--green);outline-offset:1px}

/* Ancora visuale del codice: si riconosce prima di leggerlo, come nel parco. Le barre sono decoro
   dichiarato `aria-hidden`, mai un codice a barre leggibile: quello sta nel PDF. */
.tool-code{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:4px 10px 4px 6px;border-radius:9px;
 border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 60%,var(--surface))}
.tool-code-bars{flex:0 0 14px;height:18px;border-radius:2px;
 background:repeating-linear-gradient(90deg,var(--ink) 0 1px,transparent 1px 2px,var(--ink) 2px 4px,transparent 4px 6px)}
.tool-code-value{font:700 13.5px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.4px;color:var(--ink);
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Riepilogo dell'intervallo: e' la superficie che decide, quindi e' la piu' marcata della pagina. */
.tool-summary{padding:20px 24px;margin-bottom:22px}
.tool-summary-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
 padding-bottom:16px;border-bottom:1px solid var(--line)}
.tool-summary-head small{display:block;font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.tool-summary-head strong{display:block;margin-top:3px;font-size:19px;letter-spacing:-.3px;color:var(--ink)}
.tool-summary-head p{margin:4px 0 0;font-size:12px}
.tool-summary-wait{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}
.tool-summary-wait .icon{width:18px;height:18px}
.tool-summary-codes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:16px}
.tool-summary-codes>div{display:flex;flex-direction:column;gap:6px;min-width:0;padding:14px 16px;border-radius:12px;
 border:1px solid var(--line);background:var(--tint)}
.tool-summary-codes small{font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--green-dark)}
.tool-summary-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:12px}
.tool-summary-facts>div{display:flex;flex-direction:column;gap:3px;min-width:0;padding:12px 14px;border-radius:12px;
 border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 62%,var(--surface))}
.tool-summary-facts small{font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.tool-summary-facts strong{font-size:16px;color:var(--ink);overflow-wrap:anywhere}
/* Valide e da correggere non si distinguono per il solo colore: hanno un filetto e un'etichetta propria. */
.tool-summary-facts>div.ok{border-left:3px solid var(--green);background:var(--tint)}
.tool-summary-facts>div.ok strong{color:var(--green-dark)}
.tool-summary-facts>div.ko{border-left:3px solid var(--red);background:color-mix(in srgb,var(--red) 8%,var(--surface))}
.tool-summary-facts>div.ko strong{color:var(--red)}
.tool-sha{font:600 13px ui-monospace,SFMono-Regular,Menlo,monospace!important;letter-spacing:.2px}
.tool-summary .banner{margin-top:16px}
.tool-summary-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.tool-summary-actions .btn{min-height:44px}

/* Avanzamento determinato: la quota e' scritta anche a parole, perche' una barra da sola non si legge
   con un lettore di schermo ne' in stampa. */
.tool-progress-bar{height:10px;margin-top:18px;border-radius:999px;background:var(--tint);overflow:hidden}
.tool-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--green),var(--green-dark));
 transition:width 240ms ease}
.tool-progress-text{margin:10px 0 0;font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--green-dark)}
.tool-progress .muted{margin:6px 0 0;font-size:12px;line-height:1.5}

/* Area di caricamento: l'input nativo resta nel percorso di tastiera e la label e' la superficie. */
.tool-upload{position:relative}
.tool-upload input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.tool-upload label{display:flex;align-items:center;gap:14px;min-height:80px;padding:16px 18px;border-radius:14px;
 border:1.5px dashed var(--line);background:color-mix(in srgb,var(--bg) 60%,var(--surface));cursor:pointer;
 transition:border-color 180ms ease,background 180ms ease}
.tool-upload input[type=file]:hover+label{border-color:var(--green);background:var(--tint)}
.tool-upload input[type=file]:focus-visible+label{outline:2px solid var(--green);outline-offset:2px}
.tool-upload label>span{display:grid;place-content:center;flex:0 0 46px;height:46px;border-radius:12px;
 background:var(--tint);color:var(--green-dark)}
.tool-upload label>span .icon{width:22px;height:22px}
.tool-upload label>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.tool-upload label strong{font-size:14.5px;color:var(--ink)}
.tool-upload label small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool-upload label em{flex-shrink:0;font-style:normal;font-weight:700;font-size:12.5px;color:var(--green-dark)}
.tool-upload-actions{display:flex;justify-content:flex-end;margin-top:14px}
.tool-upload-actions .btn{min-height:44px}

/* Le assegnazioni previste e i motivi di scarto: elenchi brevi, leggibili prima della conferma. */
.tool-group-list{margin-top:18px}
.tool-group-list h3{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.tool-group{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;
 background:var(--surface);margin-bottom:8px}
.tool-group>span:first-child{display:grid;place-content:center;flex:0 0 32px;height:32px;border-radius:9px;
 background:var(--tint);color:var(--green-dark)}
.tool-group>span:first-child .icon{width:16px;height:16px}
.tool-group>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.tool-group strong{font-size:13.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool-group small{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tool-group-count{display:inline-grid;place-content:center;min-width:36px;height:28px;padding:0 9px;border-radius:9px;
 background:var(--tint);color:var(--green-dark);font-weight:700;font-size:13.5px}
.tool-reason-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.tool-reason-list li{display:flex;align-items:center;gap:10px;padding:10px 13px;border-radius:11px;
 border:1px solid var(--line);border-left:3px solid var(--red);background:var(--surface);font-size:13px;color:var(--ink)}
.tool-reason-count{display:inline-grid;place-content:center;min-width:32px;height:26px;padding:0 8px;border-radius:8px;
 background:color-mix(in srgb,var(--red) 12%,var(--surface));color:var(--red);font-weight:700;font-size:13px}
/* Il motivo non e' mai solo colore: porta sempre l'icona e il testo. */
.tool-reason{display:inline-flex;align-items:flex-start;gap:7px;color:var(--red);font-size:12.5px;line-height:1.45}
.tool-reason .icon{width:15px;height:15px;flex-shrink:0;margin-top:1px}

/* Tabelle dell'archivio e delle righe: su schermo ampio restano tabelle, piu' sotto diventano schede. */
.tool-archive-panel{margin-top:22px}
.tool-archive-cards,.tool-row-cards{display:none}
.tool-rows-panel{margin-top:18px}
.tool-rows-panel .data-table td.number{font:700 13px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--muted)}
.tool-rows-panel .data-table td small{display:block;font-size:11px;color:var(--muted)}
.tool-rows-panel tr.tool-row-ko td:first-child{box-shadow:inset 3px 0 0 var(--red)}
.tool-archive-table .data-table td small{display:block;font-size:11px;color:var(--muted)}
.tool-archive-table .data-table td.number{text-align:right}

/* Conferma dell'importazione: dice che cosa succede, in quale azienda, e chiede una spunta esplicita. */
.tool-confirm{display:flex;flex-direction:column;gap:14px}
.tool-confirm-copy{margin:0;font-size:14px;line-height:1.6;color:var(--ink)}
.tool-confirm-check{display:flex;align-items:flex-start;gap:11px;min-height:44px;padding:13px 15px;border-radius:12px;
 border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 62%,var(--surface));cursor:pointer;font-size:13.5px;line-height:1.5}
.tool-confirm-check input{width:20px;height:20px;flex-shrink:0;margin-top:1px;accent-color:var(--green)}
.tool-confirm-check:has(input:focus-visible){outline:2px solid var(--green);outline-offset:2px}

/* ---- Tablet e desktop compatto: la fascia comandi non si stringe oltre il leggibile ---- */
@media (max-width:1180px){
 .tool-form{grid-template-columns:repeat(auto-fit,minmax(168px,1fr))}
 .tool-summary{padding:18px}
}

/* ---- Tabelle in schede: sotto questa soglia una tabella a sei colonne non si stringe, si spezza.
        E' la stessa soglia gia' adottata dal registro dei movimenti. ---- */
@media (max-width:1100px){
 .table-wrap:has(.tool-archive-table),.tool-archive-table{display:none}
 .table-wrap:has(.tool-rows-panel .data-table){display:none}
 .tool-rows-panel .table-wrap{display:none}
 .tool-archive-cards{display:flex;flex-direction:column;gap:10px;padding:0 0 4px}
 .tool-archive-card{display:flex;flex-direction:column;gap:9px;padding:14px 16px;border:1px solid var(--line);
  border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
 .tool-archive-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
 .tool-archive-top small{display:block;font-size:9.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
 .tool-archive-top strong{display:block;margin-top:3px;font-size:15px;color:var(--ink);overflow-wrap:anywhere}
 .tool-archive-codes{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted)}
 .tool-archive-card .muted{margin:0;font-size:12.5px;line-height:1.5}
 .tool-archive-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:9px;
  border-top:1px solid var(--line);font-size:11.5px;color:var(--muted)}
 .tool-archive-foot .btn{min-height:44px}
 .tool-row-cards{display:flex;flex-direction:column;gap:10px}
 .tool-row-card{display:flex;flex-direction:column;gap:7px;padding:13px 15px;border:1px solid var(--line);
  border-radius:14px;background:var(--surface)}
 .tool-row-card.ko{border-left:3px solid var(--red)}
 .tool-row-card.ok{border-left:3px solid var(--green)}
 .tool-row-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
 .tool-row-number{font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
 .tool-row-desc{margin:0;font-size:13.5px;color:var(--ink);line-height:1.45;overflow-wrap:anywhere}
 .tool-row-place{display:flex;align-items:center;gap:7px;margin:0;font-size:12px;color:var(--muted)}
 .tool-row-place .icon{width:14px;height:14px;flex-shrink:0}
 .tool-row-card .tool-reason{margin:0}
}

/* ---- Telefono ---- */
@media (max-width:820px){
 .tools-page .devices-deck-head{flex-direction:column;gap:6px}
 .tool-form{grid-template-columns:1fr;gap:12px}
 .tool-summary{padding:16px}
 .tool-summary-head strong{font-size:17px}
 .tool-summary-codes,.tool-summary-facts{grid-template-columns:1fr}
 .tool-summary-actions{flex-direction:column}
 .tool-summary-actions .btn{width:100%;justify-content:center}
 .tool-upload label{flex-wrap:wrap;gap:12px}
 .tool-upload label em{width:100%;text-align:right}
 .tool-upload-actions .btn{width:100%;justify-content:center}
 .tool-archive-foot{flex-direction:column;align-items:stretch;gap:8px}
 .tool-archive-foot .btn{width:100%;justify-content:center}
}

/* Il telefono in orizzontale e il telefono con la tastiera aperta non sono la stessa cosa: la larghezza
   minima impedisce che una viewport accorciata dalla tastiera passi per un landscape. E' la stessa
   difesa gia' adottata dai Fogli di carico il 16/09. */
@media (max-width:1024px) and (max-height:520px) and (min-width:600px){
 .tool-summary{padding:14px 16px}
 .tool-summary-head{padding-bottom:12px}
 .tool-upload label{min-height:64px;padding:12px 14px}
}

/* Movimento ridotto: la barra si aggiorna comunque, senza transizione. */
@media (prefers-reduced-motion:reduce){
 .tool-progress-fill{transition:none}
 .tool-upload label{transition:none}
}

/* ODL · rifinitura conclusiva: firme affiancate, archivio allineato e conferme operative leggibili. */
.toast.success{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:13px;min-width:min(420px,calc(100vw - 32px));padding:15px 17px;border:1px solid color-mix(in srgb,#8de5c5 40%,transparent);border-radius:16px;background:linear-gradient(135deg,#0b715c,#075545);box-shadow:0 18px 48px #062b2366;color:#fff}
.toast.success>span{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#ffffff18;box-shadow:inset 0 0 0 1px #ffffff24}
.toast.success>span .icon{width:23px;height:23px;stroke-width:2.4}
.toast.success>div{display:grid;gap:3px;min-width:0}.toast.success strong{font-size:14px;line-height:1.25}.toast.success small{color:#d9f8ec;font-size:11px;line-height:1.45}
.odl-fields>.odl-signature-card{grid-column:auto;min-width:0;padding:14px;border:1px solid color-mix(in srgb,var(--green) 18%,var(--line));border-radius:16px;background:color-mix(in srgb,var(--green) 4%,var(--surface))}
.odl-session-technician input{font-weight:750;color:var(--green);background:color-mix(in srgb,var(--green) 6%,var(--surface))}
.odl-report-filters{align-items:start}
.odl-report-filters .field,.odl-report-action{display:grid;grid-template-rows:18px 48px 16px;gap:7px;min-width:0;align-items:center}
.odl-report-filters .field>span,.odl-report-action>span{font-size:11px;font-weight:750;color:var(--ink)}
.odl-report-filters .field>small,.odl-report-action>small{font-size:9.5px;line-height:16px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.odl-report-action .btn{width:100%;min-width:132px;justify-content:center}

@media(max-width:1366px){
 .odl-report-filters{grid-template-columns:minmax(0,.75fr) minmax(0,.75fr) minmax(220px,1.25fr) minmax(132px,.55fr)}
 .odl-report-filters .field:nth-child(3){grid-column:auto}
 .odl-report-action .btn{justify-self:stretch}
}
@media(max-width:900px){
 .odl-report-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
 .odl-report-filters .field:nth-child(3){grid-column:1/-1}
 .odl-report-action{grid-column:1/-1}
}
@media(max-width:760px){
 .odl-fields>.odl-signature-card{grid-column:1/-1;padding:12px}
 .odl-report-filters{grid-template-columns:1fr;gap:11px}
 .odl-report-filters .field:nth-child(3),.odl-report-action{grid-column:auto}
 .odl-report-action>span,.odl-report-action>small{display:none}
 .odl-report-action{grid-template-rows:48px}
 .toast.success{grid-template-columns:42px minmax(0,1fr);min-width:0;width:100%;padding:13px 14px}
 .toast.success>span{width:42px;height:42px}
}
/* Magazzino: fino a quattro azioni di testata (Nuovo bene e le tre esportazioni) devono restare
   leggibili e cliccabili senza mai spingere la pagina in overflow orizzontale. */
.warehouse-head-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;width:auto;max-width:100%}
.warehouse-head-actions .btn{flex:0 1 auto;min-height:44px;white-space:nowrap}
@media(max-width:1180px){.warehouse-head-actions{justify-content:flex-start}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .head-actions:has(.warehouse-head-actions){display:block;width:100%}
 .warehouse-head-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;grid-column:1/-1}
 .warehouse-head-actions .btn{width:100%;min-width:0;min-height:46px;justify-content:center;white-space:normal}
}
@media(max-width:430px){.warehouse-head-actions{grid-template-columns:1fr}}
/* Fogli di carico, desktop: griglia a colonne fisse (auto-fill) e card compatte. Con auto-fit un solo foglio
   occupava l'intera larghezza; con molti fogli le card alte 278 px moltiplicavano lo scorrimento. */
@media(min-width:801px) and (min-height:521px),(min-width:1025px){
 .trips-page .trip-cards.load-sheet-cards{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
 .load-sheet-card{min-height:0;padding:16px 18px;gap:10px;box-shadow:0 6px 18px #173d340a}
 .load-sheet-card h2{margin:2px 0 0;font-size:16px;line-height:1.3;overflow-wrap:anywhere}
 .load-sheet-card>div>p{margin:2px 0 0;font-size:11px}
 .load-sheet-card>.list-row{padding:8px 0;gap:10px;border-bottom:0}
 .load-sheet-card>.list-row .stat-icon{width:32px;height:32px}
 .load-sheet-card>.list-row p{font-size:10.5px}
 .load-sheet-card>.btn{min-height:38px}
 .load-sheet-card::after{width:110px;height:110px;right:-40px;bottom:-48px}
}
/* Aggiorna applicazione: solo su telefono, dove l'app installata in Home non ha il ricaricamento del browser. */
.account-sheet-actions .account-refresh,.account-refresh-note{display:none}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .account-sheet-actions .account-refresh{display:flex}
 .account-refresh-note{display:block;margin:-2px 2px 4px;color:var(--muted);font-size:11px;line-height:1.4}
}
.loadsheet-notes textarea{min-height:76px;resize:vertical}
.loadsheet-detail-notes{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-left:3px solid var(--green);border-radius:10px;background:color-mix(in srgb,var(--tint) 40%,var(--surface))}
.loadsheet-detail-notes small{display:block;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.5px}
.loadsheet-detail-notes p{margin:4px 0 0;font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
/* Didascalia del flag email Nomenclatore per il ruolo Operatore ASP: avviso ambrato, non un errore. */
.op-email-note{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:start;margin:8px 0 0;padding:11px 13px;border:1px solid color-mix(in srgb,var(--amber) 38%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--amber) 9%,var(--surface));color:var(--ink);font-size:12px;line-height:1.5}
.op-email-note>.icon{width:18px;height:18px;margin-top:1px;color:var(--amber)}
.op-email-note strong:first-child{display:block;margin-bottom:2px;font-size:12px}
.op-email-note[hidden]{display:none}
/* La targa della card di scadenza apre la scheda del mezzo. */
.deadline-plate{cursor:pointer;transition:background var(--ease)}
.deadline-plate:focus-visible{outline:2px solid var(--green);outline-offset:2px}
/* Trascinamento del PDF nel riquadro di caricamento: stato attivo e rifiuto leggibili, senza animazioni. */
.document-dropzone.dragging{border-style:solid;border-color:var(--green);background:color-mix(in srgb,var(--green) 14%,var(--surface));box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 16%,transparent)}
.document-dropzone.dragging .document-dropzone-icon{background:var(--green);color:#fff}
.document-dropzone.rejected{border-color:var(--red)}
.document-dropzone.rejected small{color:var(--red);font-weight:700}
/* Dati dell'assistito: etichette in grassetto, piu' leggibili nella lavorazione quotidiana. */
.assistant-data-grid .detail-item small{font-weight:800;color:color-mix(in srgb,var(--ink) 72%,var(--muted))}
/* Rettifica del foglio di carico: pratiche in uscita con motivazione, pratiche in entrata, riepilogo sempre visibile. */
.loadsheet-amend-modal{width:min(760px,calc(100vw - 32px))}
.amend-intro{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,var(--tint),var(--surface))}
.amend-intro>.icon{width:44px;height:44px;padding:11px;border-radius:12px;background:var(--green);color:#fff}
.amend-intro h3{margin:3px 0 4px;font-size:16px}.amend-intro p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.amend-summary{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin:14px 0 4px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:12px}
.amend-count strong{font-size:16px;color:var(--green)}.amend-count.bad strong{color:var(--red)}
.amend-delta{font-weight:700}.amend-delta.add{color:var(--green)}.amend-delta.remove{color:var(--red)}.amend-delta.date{color:var(--blue)}
.amend-delta.squadra{color:var(--violet);overflow-wrap:anywhere}
.amend-crew .reason-presets{margin:6px 0 10px}
.amend-warning{flex-basis:100%;color:var(--red);font-weight:700}
.amend-section{margin-top:16px}.amend-section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px;margin-bottom:8px}
.amend-section-head h4{margin:0;font-size:13px}.amend-section-head small{color:var(--muted);font-size:11px}
.amend-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:8px 12px;align-items:center;padding:10px 12px;margin-top:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.amend-row .grow{min-width:0}.amend-row strong,.amend-candidate strong{display:block;font-size:13px;overflow-wrap:anywhere}.amend-row small,.amend-candidate small{display:block;color:var(--muted);font-size:11px;line-height:1.45}
.amend-row .btn{min-height:40px}
.amend-row.removing{border-color:color-mix(in srgb,var(--red) 40%,var(--line));background:color-mix(in srgb,var(--red) 5%,var(--surface))}
.amend-row.removing strong{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--red) 70%,transparent)}
.amend-reason{grid-column:1/-1;margin:2px 0 0}.amend-reason textarea{min-height:60px;resize:vertical}
.amend-search{margin-bottom:8px}
.amend-candidates{display:grid;gap:6px;max-height:280px;overflow:auto;padding:2px}
.amend-candidate{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:center;min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer}
.amend-candidate input{width:18px;height:18px;margin:0;accent-color:var(--green)}
.amend-candidate.selected{border-color:var(--green);background:color-mix(in srgb,var(--tint) 70%,var(--surface))}
.amend-empty{margin:4px 0;padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:12px;text-align:center}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .amend-row{grid-template-columns:36px minmax(0,1fr)}.amend-row .btn{grid-column:1/-1;width:100%;min-height:44px;justify-content:center}
 .amend-candidates{max-height:none}
}
/* Ordini: pratica uscita almeno una volta da un foglio di carico. Icona ambrata con suggerimento al passaggio o al focus. */
.order-amend-flag{position:relative;display:inline-grid;place-items:center;width:22px;height:22px;margin-left:6px;vertical-align:middle;border-radius:50%;background:color-mix(in srgb,var(--amber) 16%,var(--surface));color:var(--amber);cursor:help}
.order-amend-flag>.icon{width:13px;height:13px}
.order-amend-flag:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.order-amend-flag::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 8px);left:50%;z-index:40;transform:translate(-50%,4px);padding:7px 10px;border-radius:9px;background:var(--nav);color:#fff;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 10px 24px #0000002e;opacity:0;pointer-events:none;transition:opacity 150ms ease,transform 150ms ease}
.order-amend-flag:hover::after,.order-amend-flag:focus-visible::after{opacity:1;transform:translate(-50%,0)}
@media(prefers-reduced-motion:reduce){.order-amend-flag::after{transition:none}}
/* Rettifica: pratiche in entrata e pannello di scelta a tutta altezza nella stessa finestra. */
.amend-row.adding{grid-template-columns:36px minmax(0,1fr) auto;border-color:color-mix(in srgb,var(--green) 38%,var(--line));background:color-mix(in srgb,var(--tint) 55%,var(--surface))}
.amend-add-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--green);color:#fff}.amend-add-mark .icon{width:16px;height:16px}
.amend-pick{display:flex;align-items:center;gap:10px;width:100%;min-height:52px;margin-top:8px;padding:10px 14px;border:1.5px dashed color-mix(in srgb,var(--green) 48%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--tint) 45%,var(--surface));color:var(--green);font-weight:800;justify-content:flex-start}
.amend-pick:hover{border-style:solid;background:var(--tint)}
.amend-pick-count{margin-left:auto;padding:3px 9px;border-radius:999px;background:var(--surface);color:var(--muted);font-size:11px;font-weight:700}
.amend-picker{display:flex;flex-direction:column;gap:10px;min-height:min(560px,70vh)}
.amend-picker-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}
.amend-picker-head h3{margin:0;font-size:16px}.amend-picker-head p{margin:3px 0 0;color:var(--muted);font-size:12px}
.amend-picker-status{color:var(--muted);font-size:12px;font-weight:700}
.amend-picker .amend-candidates{flex:1;max-height:min(460px,55vh)}
.amend-picker-foot{position:sticky;bottom:0;display:flex;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--line);background:var(--surface)}
.amend-picker-foot .btn{min-height:44px}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .amend-row.adding{grid-template-columns:36px minmax(0,1fr)}.amend-row.adding .btn{grid-column:1/-1;width:100%;justify-content:center;min-height:44px}
 .amend-picker-head{grid-template-columns:1fr}.amend-picker .amend-candidates{max-height:none}.amend-picker-foot .btn{width:100%;justify-content:center}
}
.amend-picker .search{flex:0 0 auto}
/* Matricole: ricerca piu' compatta e filtri rapidi per stato allineati, con contatore. */
.family-page .serials-search-deck{grid-template-columns:minmax(220px,360px) auto minmax(0,1fr)}
.family-page .serials-search-deck .serial-match-count{justify-self:end;white-space:nowrap}
.serial-quick{display:flex;flex-wrap:wrap;gap:8px}
.serial-chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 8px 6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:700;cursor:pointer;transition:background var(--ease),border-color var(--ease),color var(--ease)}
.serial-chip-count{min-width:24px;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:11px;font-weight:800;text-align:center;font-variant-numeric:tabular-nums}
.serial-chip:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
.serial-chip:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.serial-chip.green[aria-pressed=true]{border-color:var(--green);background:var(--green);color:#fff}
.serial-chip.blue[aria-pressed=true]{border-color:var(--blue);background:var(--blue);color:#fff}
.serial-chip.red[aria-pressed=true]{border-color:var(--red);background:var(--red);color:#fff}
.serial-chip[aria-pressed=true] .serial-chip-count{background:#ffffff33;color:#fff}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .family-page .serials-search-deck{grid-template-columns:1fr}.family-page .serials-search-deck .serial-match-count{justify-self:start}
 .serial-quick{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.serial-quick::-webkit-scrollbar{display:none}.serial-chip{flex:0 0 auto;min-height:44px}
}
@media(prefers-reduced-motion:reduce){.serial-chip{transition:none}}
@media(min-width:801px) and (min-height:521px),(min-width:1025px){.family-page .serials-search-deck .search{flex:0 1 360px;min-width:220px}.family-page .serials-search-deck .serial-match-count{margin-left:auto}}
.family-page .serials-search-deck .serial-match-count{align-self:center}
/* Pannello di scelta della rettifica: una riga per pratica, altezza minima leggibile. */
.amend-picker .amend-candidates{align-content:start}
.amend-candidate{min-height:44px;padding:7px 12px}
.amend-candidate .grow{display:flex;align-items:baseline;gap:10px;min-width:0}
.amend-candidate .grow strong{flex:0 0 auto;white-space:nowrap}
.amend-candidate .grow small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.amend-candidate .grow{display:block}.amend-candidate .grow small{white-space:normal}}
/* Azzera dei filtri delle matricole, in linea con i filtri rapidi. */
.serial-reset{min-height:40px}.serial-reset:disabled{opacity:.45;cursor:default}
/* Ordini: motivo della sospensione al passaggio del mouse o al fuoco, senza aprire la pratica. */
.suspended-tip,.hover-tip{position:relative;cursor:help}
.suspended-tip:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.suspended-tip::after,.hover-tip::after{content:attr(data-tip);position:absolute;top:calc(100% + 8px);left:0;z-index:60;width:max-content;max-width:320px;padding:9px 12px;border-radius:10px;background:var(--nav);color:#fff;font-size:12px;font-weight:600;line-height:1.4;letter-spacing:0;text-transform:none;white-space:normal;text-align:left;box-shadow:0 12px 28px #00000033;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity 150ms ease,transform 150ms ease}
.suspended-tip:hover::after,.suspended-tip:focus-visible::after,.hover-tip:hover::after,.hover-tip:focus-visible::after{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.suspended-tip::after{transition:none}}
/* Richieste Dispositivi: colonna Esito e interruttore Fuori uso. */
.devices-requests .col-esito{width:150px}
.devices-requests .col-dest{width:170px}
.devices-outcome{white-space:nowrap}
.devices-outcome.muted-outcome{color:var(--muted);background:var(--bg)}
.devices-oos-toggle{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);transition:background 150ms ease,color 150ms ease,border-color 150ms ease}
.devices-oos-toggle>.icon{width:13px;height:13px;color:var(--red)}
.devices-oos-toggle:hover{border-color:var(--red)}
.devices-oos-toggle.on{background:var(--red);border-color:var(--red);color:#fff}
.devices-oos-toggle.on>.icon{color:#fff}
.devices-oos-toggle:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.devices-req-outcome{display:block;margin:6px 0 0}
@media(prefers-reduced-motion:reduce){.devices-oos-toggle{transition:none}}
.devices-parts-toggle>.icon{color:var(--blue)}
.devices-parts-toggle:hover{border-color:var(--blue)}
.devices-parts-toggle.on{background:var(--blue);border-color:var(--blue)}
.devices-parts-toggle:focus-visible{outline-color:var(--blue)}
.devices-parts-mark{display:block;margin-top:3px;font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--blue);text-transform:uppercase}
/* Preventive in blocco (lotti di Report Ospedali): interruttore nella riga delle pastiglie e segno sulla riga. */
.devices-preventive-toggle>.icon{color:var(--green)}
.devices-preventive-toggle:hover{border-color:var(--green)}
.devices-preventive-toggle.on{background:var(--green);border-color:var(--green)}
.devices-preventive-toggle:focus-visible{outline-color:var(--green)}
.devices-preventive-mark{display:block;margin-top:3px;font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--green);text-transform:uppercase}
.devices-req-meta .devices-preventive-mark{display:inline;margin-top:0}
/* Su telefono Fuori uso e Con ricambi vivono nel foglio dei filtri avanzati, non nella riga delle pastiglie. */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.devices-oos-toggle{display:none}}
/* Richieste su telefono: contatori piu' compatti e respiro fra la fascia fissa e la prima richiesta. */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .devices-kpi-row{gap:6px;margin-top:10px;padding-top:10px}
 .devices-kpi-chip{gap:4px;padding:4px 9px;font-size:10px}
 .devices-kpi-chip strong{font-size:11.5px}
 #devices-request-results{margin-top:14px}
}
/* Etichette: un bene dichiarato fuori uso si riconosce nella card, perché di norma non lo si stampa. */
.label-print-card strong{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.label-print-flag{flex:0 0 auto;padding:2px 7px;border:1px solid color-mix(in srgb,var(--red) 32%,var(--line));border-radius:999px;background:var(--red-bg);color:var(--red);font-family:var(--font);font-size:9px;font-weight:800;line-height:1.5;letter-spacing:.06em;text-transform:uppercase}
/* Rettifica di un movimento articoli: la natura del documento non si tocca, e si vede che non si tocca.
   La pastiglia sta dove starebbe il campo, con la stessa altezza, così la riga non cambia ritmo. */
.inventory-kind-locked{display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:44px}
.inventory-kind-locked .badge{align-self:flex-start}
.inventory-kind-locked small{color:var(--muted);line-height:1.35}
.inventory-movement-form .field>textarea{min-height:82px;resize:vertical}
/* Motivazioni frequenti del fuori uso: scorciatoie, non una tendina. Il campo resta libero e la voce scelta
   si riconosce a colpo d'occhio; il bersaglio resta oltre i 36 px anche su telefono. */
.return-reason-presets{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.return-reason-presets-label{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.return-reason-chips{display:flex;flex-wrap:wrap;gap:8px}
.return-reason-chip{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:8px 13px;border:1px solid var(--line);
 border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:700;cursor:pointer;
 transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}
.return-reason-chip svg{width:15px;height:15px;opacity:.55;flex:none}
.return-reason-chip:hover{border-color:var(--amber);background:var(--amber-bg)}
.return-reason-chip.scelto{background:var(--amber-bg);border-color:var(--amber);color:var(--ink)}
.return-reason-chip.scelto svg{opacity:1;color:var(--amber)}
.return-reason-chip:active{transform:translateY(1px)}
@media (prefers-reduced-motion:reduce){.return-reason-chip{transition:none}.return-reason-chip:active{transform:none}}

/* ---------------------------------------------------------------- Aggiornamento disponibile
   Compare, anche sulla pagina di accesso, quando il server ha una release piu' nuova di quella in memoria.
   Aurora nei colori del Gestionale (notte --nav, verde --green, blu del prodotto, verde chiaro del marchio), marchio
   su medaglione bianco al centro di due orbite, scintille, novita' e un solo pulsante. Al tocco le orbite accelerano,
   la barra si riempie, si disegna la spunta e l'app si ricarica. Solo transform e opacity; con il movimento ridotto
   restano le dissolvenze. Nessun figlio a flex:1 (base 0%): su Safari iOS verrebbe schiacciato a zero. */
.upd{position:fixed;inset:0;z-index:6000;display:flex;overflow-y:auto;overscroll-behavior:contain;padding:calc(20px + env(safe-area-inset-top)) 16px calc(20px + env(safe-area-inset-bottom));color:#eafff7;background:#071a1c;isolation:isolate;font-family:var(--font);animation:upd-fade .35s ease both;-webkit-tap-highlight-color:transparent}
.upd-aurora{position:fixed;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(120% 90% at 10% 0%,#14433e 0%,#102e30 45%,#071a1c 100%)}
.upd-aurora .blob{position:absolute;border-radius:50%;opacity:.85;will-change:transform}
.upd-aurora .b1{width:78vmax;height:78vmax;left:-24vmax;top:-30vmax;background:radial-gradient(closest-side,#087f68cc,#087f6800);animation:upd-drift1 26s ease-in-out infinite alternate}
.upd-aurora .b2{width:64vmax;height:64vmax;right:-22vmax;top:8vmax;background:radial-gradient(closest-side,#046650d9,#04665000);animation:upd-drift2 32s ease-in-out infinite alternate}
.upd-aurora .b3{width:58vmax;height:58vmax;left:18vmax;bottom:-34vmax;background:radial-gradient(closest-side,#245da3a6,#245da300);animation:upd-drift3 38s ease-in-out infinite alternate}
.upd-aurora .b4{width:40vmax;height:40vmax;right:12vmax;bottom:-18vmax;background:radial-gradient(closest-side,#8cc56b59,#8cc56b00);animation:upd-drift1 44s ease-in-out infinite alternate-reverse}
.upd-aurora .dots{position:absolute;inset:0;background-image:radial-gradient(#ffffff17 1px,transparent 1.2px);background-size:26px 26px;-webkit-mask-image:radial-gradient(ellipse at 50% 40%,#000 0%,#0000 72%);mask-image:radial-gradient(ellipse at 50% 40%,#000 0%,#0000 72%)}
.upd-card{position:relative;margin:auto;width:100%;max-width:440px;display:flex;flex-direction:column;max-height:calc(100vh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-height:calc(100dvh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom));text-align:center;padding:30px 22px 20px;border-radius:28px;background:linear-gradient(160deg,#ffffff1f,#ffffff08 60%);border:1px solid #ffffff2b;box-shadow:0 30px 80px #0000006b,inset 0 1px 0 #ffffff24;-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);animation:upd-rise .75s .05s cubic-bezier(.2,1,.3,1) both}
.upd-card>*{flex:0 0 auto}
/* Le novita' scorrono dentro la scheda se lo schermo e' basso: marchio, titolo e pulsante restano sempre in vista. */
.upd-card>.upd-notes{flex:0 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-mask:linear-gradient(#000 calc(100% - 14px),#0000);mask:linear-gradient(#000 calc(100% - 14px),#0000);padding-bottom:10px}
.upd-mark{position:relative;width:150px;height:150px;margin:0 auto 20px;display:grid;place-items:center}
.upd-orbit{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,#69d7b200 0deg,#69d7b2 80deg,#8cc56b00 170deg,#aed0ff 260deg,#69d7b200 360deg);-webkit-mask:radial-gradient(closest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(closest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px));animation:upd-spin 5s linear infinite;transition:opacity .3s ease}
.upd-orbit.o2{inset:15px;opacity:.75;animation-duration:8s;animation-direction:reverse}
.upd-medal{position:relative;z-index:1;width:96px;height:96px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 28%,#fff,#eef7f3 70%);box-shadow:0 14px 34px #0000005c,0 0 0 6px #ffffff14,inset 0 -3px 8px #087f681f;animation:upd-medal-in .8s .15s cubic-bezier(.2,1,.3,1) both,upd-float 4.5s 1s ease-in-out infinite}
.upd-medal img{display:block;width:auto;height:62px;filter:drop-shadow(0 2px 3px #087f6826)}
.upd-medal::after{content:'';position:absolute;inset:0;border-radius:50%;background:linear-gradient(105deg,#fff0 38%,#ffffffc2 50%,#fff0 62%) no-repeat;background-size:250% 100%;background-position:110% 0;animation:upd-sheen-once 1.3s .7s cubic-bezier(.4,0,.2,1) both;pointer-events:none}
.upd-done{position:absolute;inset:15px;width:calc(100% - 30px);height:calc(100% - 30px);z-index:2;opacity:0;transition:opacity .2s ease}
.upd-done .ring{fill:#087f68;stroke:#69d7b2;stroke-width:5;stroke-dasharray:327;stroke-dashoffset:327}
.upd-done .tick{fill:none;stroke:#fff;stroke-width:9;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:80;stroke-dashoffset:80}
.upd-spark{position:absolute;width:16px;height:16px;margin:-8px 0 0 -8px;color:var(--c);opacity:0;animation:upd-twinkle 2.6s var(--d) ease-in-out infinite;pointer-events:none}
.upd-spark .icon{width:16px;height:16px;fill:currentColor;stroke:none}
.upd-eyebrow{margin:0;font-size:11px;font-weight:700;letter-spacing:2.6px;text-transform:uppercase;color:#9fe5c9;animation:upd-up .6s .12s both}
.upd h2{font-size:25px;line-height:1.2;letter-spacing:-.7px;margin:8px 0;color:#fff;animation:upd-up .6s .18s both}
.upd-lead{color:#bcd6d0;margin:0 auto 16px;max-width:340px;font-size:15px;line-height:1.5;animation:upd-up .6s .24s both}
.upd-ver{display:inline-flex;align-self:center;align-items:center;gap:8px;margin:0;padding:6px 13px;border-radius:999px;background:#ffffff12;border:1px solid #ffffff24;font-size:12.5px;color:#bcd6d0;font-variant-numeric:tabular-nums;animation:upd-up .6s .3s both}
.upd-ver strong{color:#fff}
.upd-ver .icon{width:14px;height:14px;color:#69d7b2}
.upd-notes{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px;text-align:left}
.upd-notes[hidden]{display:none}
.upd-notes li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:#ffffff0f;border:1px solid #ffffff1a;font-size:13.5px;line-height:1.45;color:#e3f6f0;animation:upd-up .5s both}
.upd-notes li:nth-child(1){animation-delay:.05s}
.upd-notes li:nth-child(2){animation-delay:.12s}
.upd-notes li:nth-child(3){animation-delay:.19s}
.upd-notes li:nth-child(4){animation-delay:.26s}
.upd-notes .icon{color:#69d7b2;width:18px;height:18px;margin-top:1px}
.upd-go{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:56px;margin-top:20px;padding:12px 18px;border:0;border-radius:16px;font:inherit;font-size:17px;font-weight:700;letter-spacing:-.2px;color:#062a23;background:linear-gradient(135deg,#c9f2e1,#69d7b2 45%,#2fae8a);box-shadow:0 14px 34px #2fae8a59,inset 0 1px 0 #ffffff80;cursor:pointer;animation:upd-up .6s .36s both,upd-breathe 2.8s 1.4s ease-in-out infinite;transition:transform .15s ease}
.upd-go:active{transform:scale(.98)}
.upd-go:focus-visible{outline:3px solid #fff;outline-offset:3px}
.upd-go:disabled{opacity:1;cursor:progress}
.upd-go::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,#fff0 30%,#ffffffa6 50%,#fff0 70%);background-size:250% 100%;background-position:120% 0;animation:upd-sheen 3.4s 1.2s ease-in-out infinite;pointer-events:none}
.upd-go-icon{display:grid;place-items:center}
.upd-go-icon .icon{width:21px;height:21px;stroke-width:2.2}
.upd-bar{position:absolute;left:0;bottom:0;height:4px;width:100%;transform-origin:left center;transform:scaleX(0);background:#062a2359;transition:transform 1.3s cubic-bezier(.2,.8,.2,1)}
.upd-foot{display:flex;gap:6px;justify-content:center;align-items:center;margin:14px 0 0;font-size:12px;color:#9dbab4}
.upd-foot .icon{width:15px;height:15px;color:#69d7b2}
.upd.working .upd-orbit{animation-duration:1.1s}
.upd.working .upd-orbit.o2{animation-duration:1.6s}
.upd.working .upd-go-icon .icon{animation:upd-spin .9s linear infinite}
.upd.working .upd-go::after,.upd.working .upd-go{animation-play-state:paused}
.upd.working .upd-bar{transform:scaleX(.9)}
.upd.done .upd-bar{transform:scaleX(1);transition-duration:.25s}
.upd.done .upd-orbit{opacity:0}
.upd.done .upd-medal{animation:upd-out .3s ease forwards}
.upd.done .upd-done{opacity:1}
.upd.done .upd-done .ring{animation:upd-draw .5s cubic-bezier(.65,0,.35,1) forwards}
.upd.done .upd-done .tick{animation:upd-draw .3s .32s ease-out forwards}
.upd.done .upd-go-icon .icon{animation:none}
@keyframes upd-fade{from{opacity:0}to{opacity:1}}
@keyframes upd-spin{to{transform:rotate(360deg)}}
@keyframes upd-rise{from{opacity:0;transform:translateY(28px) scale(.96)}to{opacity:1;transform:none}}
@keyframes upd-up{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
@keyframes upd-medal-in{from{transform:scale(.82) translateY(10px);opacity:0}to{transform:none;opacity:1}}
@keyframes upd-float{50%{transform:translateY(-4px)}}
@keyframes upd-breathe{50%{box-shadow:0 18px 46px #2fae8a85,inset 0 1px 0 #ffffff80}}
@keyframes upd-sheen{0%{background-position:120% 0}55%,100%{background-position:-20% 0}}
@keyframes upd-sheen-once{from{background-position:110% 0}to{background-position:-10% 0}}
@keyframes upd-twinkle{0%,100%{opacity:0;transform:scale(.3) rotate(0)}45%{opacity:1;transform:scale(1) rotate(40deg)}70%{opacity:.2;transform:scale(.6) rotate(70deg)}}
@keyframes upd-out{to{opacity:0;transform:scale(.72)}}
@keyframes upd-draw{to{stroke-dashoffset:0}}
@keyframes upd-drift1{to{transform:translate3d(14vmax,10vmax,0) scale(1.12)}}
@keyframes upd-drift2{to{transform:translate3d(-12vmax,14vmax,0) scale(.9)}}
@keyframes upd-drift3{to{transform:translate3d(10vmax,-12vmax,0) scale(1.18)}}
@media (max-height:780px){
 .upd-card{padding:22px 18px 16px}
 .upd-mark{width:118px;height:118px;margin-bottom:12px}
 .upd-orbit.o2{inset:12px}
 .upd-done{inset:12px;width:calc(100% - 24px);height:calc(100% - 24px)}
 .upd-medal{width:78px;height:78px}
 .upd-medal img{height:50px}
 .upd h2{font-size:22px;margin:6px 0}
 .upd-lead{font-size:14px;margin-bottom:12px}
 .upd-notes{margin-top:12px;gap:6px}
 .upd-notes li{padding:8px 11px;font-size:13px}
 .upd-go{margin-top:14px;min-height:52px}
 .upd-foot{margin-top:10px}
}
@media (max-height:600px){
 .upd-mark{width:92px;height:92px}
 .upd-orbit.o2{inset:9px}
 .upd-done{inset:9px;width:calc(100% - 18px);height:calc(100% - 18px)}
 .upd-medal{width:60px;height:60px}
 .upd-medal img{height:38px}
 .upd-eyebrow{display:none}
 .upd h2{font-size:20px}
}
@media (prefers-reduced-motion:reduce){
 .upd,.upd *,.upd *::before,.upd *::after{animation:none!important;transition:none!important}
 .upd{animation:upd-fade .2s ease both!important}
 .upd.done .upd-done .ring,.upd.done .upd-done .tick{stroke-dashoffset:0}
 .upd.done .upd-medal{opacity:0}
}

/* =====================================================================================================
   Release r14 (24/09/2026) — Genera Barcode a lotti, Magazzino SuperAdmin, perimetro della consultazione
   Solo token esistenti; bersagli di 44 px; nessun backdrop-filter sulle superfici fisse; movimento ridotto.
   ===================================================================================================== */
/* ---- Chip condivise: periodi rapidi, quantità, motivazioni ---- */
.preset-chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:999px;
 background:var(--surface);color:var(--ink);font:700 12.5px var(--font);cursor:pointer;
 transition:background-color var(--ease),border-color var(--ease),color var(--ease),transform var(--ease)}
.preset-chip:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.preset-chip:active{transform:scale(.97)}
.preset-chip[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}
[data-theme=dark] .preset-chip[aria-pressed=true]{color:var(--nav)}
.preset-chip:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:2px}
.preset-chip-count{min-width:22px;padding:1px 7px;border-radius:999px;background:var(--bg);font-size:11px;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}
.preset-chip[aria-pressed=true] .preset-chip-count{background:#ffffff2e;color:inherit}
@media(pointer:coarse){.preset-chip{min-height:44px}}
.link-btn{padding:0;border:0;background:none;color:var(--green-dark);font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.link-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:2px;border-radius:4px}

/* ---- Genera Barcode: lotti al centro ---- */
.lots-head{align-items:flex-end}
@media(min-width:801px){.lots-head .head-actions,.prices-page .page-head .head-actions{flex-wrap:nowrap;flex:0 0 auto}
 .lots-head .head-actions .btn,.prices-page .page-head .head-actions .btn{white-space:nowrap}}
.lots-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 22px}
.lots-kpi{display:flex;align-items:flex-start;gap:14px;min-width:0;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);
 background:var(--surface);box-shadow:var(--shadow)}
.lots-kpi-icon{flex:0 0 40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--tint);color:var(--green)}
.lots-kpi-icon.warm{background:var(--blue-bg);color:var(--blue)}
.lots-kpi-icon.deep{background:var(--nav);color:#9dedce}
.lots-kpi-icon .icon{width:20px;height:20px}
.lots-kpi>div{min-width:0}
.lots-kpi small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.7px;color:var(--muted)}
.lots-kpi strong{display:block;margin-top:4px;font-size:26px;line-height:1.05;letter-spacing:-.6px;font-variant-numeric:tabular-nums;color:var(--ink)}
.lots-kpi>div>span{display:block;margin-top:5px;font-size:11.5px;color:var(--muted)}
.lots-panel{padding:0;overflow:visible}
.lots-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--line)}
.lots-panel-head h2{margin:0;font-size:18px;letter-spacing:-.3px}
.lots-panel-head p{margin:4px 0 0;font-size:12.5px;color:var(--muted);max-width:62ch;line-height:1.5}
.lots-panel-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.lots-panel-tools .btn{min-height:44px}
.lots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;padding:20px 24px 24px}
.lots-empty{grid-column:1/-1}
.lots-empty .btn{margin-top:14px}
.lots-more{display:flex;justify-content:center;padding:0 24px 24px}
.lots-more .btn{min-height:44px}
.lot-card{position:relative;display:flex;flex-direction:column;gap:14px;min-width:0;padding:18px 18px 16px 20px;border:1px solid var(--line);
 border-radius:14px;background:var(--surface);box-shadow:0 1px 0 #18332b08;
 transition:transform var(--ease),box-shadow var(--ease),border-color var(--ease)}
.lot-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;border-radius:14px 0 0 14px;background:var(--lot-accent,var(--line))}
.lot-card::after{content:"";position:absolute;inset:-4px;border-radius:18px;border:2px solid var(--green);opacity:0;pointer-events:none;transition:opacity .3s ease}
.lot-card.is-fresh::after{opacity:1}
.lot-card.state-done,.lot-card.state-running{--lot-accent:var(--blue)}
.lot-card.state-printed{--lot-accent:var(--green)}
.lot-card.state-failed{--lot-accent:var(--red)}
.lot-card.state-stale{--lot-accent:var(--amber)}
.lot-card.state-deleted{--lot-accent:var(--line);background:var(--bg)}
@media(hover:hover){.lot-card:not(.state-deleted):hover{transform:translateY(-2px);box-shadow:0 14px 34px #18332b14;
 border-color:color-mix(in srgb,var(--lot-accent) 40%,var(--line))}}
.lot-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.lot-number{font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1px;color:var(--muted)}
.lot-identity{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}
.lot-desinenza{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:96px;padding:10px 14px;border-radius:12px;
 background:var(--nav);color:#e7f5ee}
.lot-desinenza small{font-size:8.5px;font-weight:800;letter-spacing:1px;color:#9dedce}
.lot-desinenza strong{font:800 24px/1.1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:1px;color:#fff}
.lot-desinenza span{font-size:10px;color:#b3cbc7;font-variant-numeric:tabular-nums}
.lot-range{display:grid;gap:3px;min-width:0}
.lot-range .tool-code{max-width:100%}
.lot-range .tool-code-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lot-range-arrow{display:flex;padding-left:14px;color:var(--muted)}
.lot-range-arrow .icon{width:13px;height:13px;transform:rotate(90deg)}
.lot-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0;padding:12px 0 0;border-top:1px dashed var(--line)}
.lot-facts>div{min-width:0}
.lot-facts dt{font-size:9px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}
.lot-facts dd{margin:2px 0 0;font-size:13px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.lot-note{display:flex;gap:8px;margin:0;font-size:12px;line-height:1.45;color:var(--muted)}
.lot-note .icon{width:14px;height:14px;flex:0 0 auto;margin-top:2px}
.lot-progress{display:flex;flex-direction:column;gap:6px;font-size:11.5px;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums}
.lot-progress .tool-progress-bar{margin-top:0}
.lot-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none}
.lot-steps li{display:flex;align-items:center;gap:6px;min-width:0;font-size:11px;font-weight:700;color:var(--muted);line-height:1.2}
.lot-steps li>span{flex:0 0 18px;height:18px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--line);background:var(--surface)}
.lot-steps li>span .icon{width:11px;height:11px}
.lot-steps li.done{color:var(--green-dark)}
.lot-steps li.done>span{background:var(--green);border-color:var(--green);color:#fff}
[data-theme=dark] .lot-steps li.done>span{color:var(--nav)}
.lot-steps li.current{color:var(--ink)}
.lot-steps li.current>span{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent)}
.lot-stamp{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--tint);
 border:1px dashed color-mix(in srgb,var(--green) 45%,transparent)}
.lot-stamp-mark{flex:0 0 auto;padding:5px 8px;border:2px solid var(--green);border-radius:6px;font:900 10px/1 var(--font);letter-spacing:1.2px;
 color:var(--green);transform:rotate(-4deg)}
.lot-stamp>span:last-child{min-width:0}
.lot-stamp strong{display:block;font-size:12.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lot-stamp small{display:block;font-size:11px;color:var(--muted)}
.lot-deleted{display:flex;gap:10px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:12px;background:var(--red-bg);color:var(--red);
 font-size:12px;line-height:1.45}
.lot-deleted .icon{width:15px;height:15px;flex:0 0 auto;margin-top:2px}
.lot-deleted strong{display:block}
.lot-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}
.lot-actions .btn{min-height:44px}
.lot-actions .btn.primary{margin-left:auto}
.lot-actions .btn.danger{background:none;color:var(--red)}
.lot-actions .btn.danger:hover{background:var(--red-bg)}
.lot-facts dd small{display:block;margin-top:1px;font-size:11px;font-weight:600;color:var(--muted)}
/* Modal del lotto: form e anteprima affiancati su desktop, impilati su telefono. */
#modal.lot-modal{width:min(1000px,calc(100vw - 32px))}
#modal.lot-modal.lot-modal-compact{width:min(600px,calc(100vw - 24px))}
.lot-modal .modal-header{position:sticky;top:0;z-index:4;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--tint) 72%,var(--surface)));
 box-shadow:0 1px 0 var(--line)}
.lot-modal .modal-footer{position:sticky;bottom:-24px;z-index:3;margin:22px -24px -24px;padding:15px 24px;border-top:1px solid var(--line);background:var(--surface)}
.lot-form-intro{display:flex;gap:10px;align-items:flex-start;margin:0 0 18px;padding:12px 14px;border-radius:12px;background:var(--tint);
 color:var(--green-dark);font-size:12.5px;line-height:1.5}
.lot-form-intro .icon{width:18px;height:18px;flex:0 0 auto}
.lot-form{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:22px;align-items:start}
.lot-form-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.lot-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.lot-field>label{font-size:11px;font-weight:800;letter-spacing:.3px;color:var(--muted)}
.lot-field>small{font-size:11px;color:var(--muted);line-height:1.4}
.lot-field .field-error{font-size:11.5px;font-weight:700;color:var(--red)}
.lot-field-desinenza,.lot-field-wide{grid-column:1/-1}
.lot-desinenza-input{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.lot-desinenza-input input{flex:1 1 150px;min-width:0;font:800 22px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:4px}
.lot-desinenza-input .field-error{flex-basis:100%}
.lot-suggestion{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px dashed color-mix(in srgb,var(--green) 55%,transparent);
 border-radius:11px;background:var(--tint);color:var(--green-dark);font:700 12px var(--font);cursor:pointer;transition:border-color var(--ease)}
.lot-suggestion:hover{border-style:solid}
.lot-suggestion .icon{width:14px;height:14px}
.lot-suggestion:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:2px}
.lot-quick{display:flex;flex-wrap:wrap;gap:6px}
.lot-quick .preset-chip{min-height:36px;padding:0 11px;font-size:12px}
@media(pointer:coarse){.lot-quick .preset-chip{min-height:44px}}
.lot-preview{margin:0;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
.lot-preview.ready{border-color:color-mix(in srgb,var(--green) 40%,var(--line));background:linear-gradient(180deg,var(--tint),var(--surface) 70%)}
.lot-preview.blocked{border-color:color-mix(in srgb,var(--amber) 45%,var(--line))}
.lot-preview .tool-summary-codes{grid-template-columns:1fr}
.lot-preview .tool-summary-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
.lot-preview-ok{display:flex;gap:8px;align-items:flex-start;margin:14px 0 0;font-size:12px;line-height:1.45;color:var(--green-dark)}
.lot-preview-ok .icon{width:16px;height:16px;flex:0 0 auto}
.lot-print-intro{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px;padding:16px;border-radius:14px;
 background:linear-gradient(135deg,var(--tint),var(--surface));border:1px solid color-mix(in srgb,var(--green) 25%,var(--line))}
.lot-print-intro>.icon{flex:0 0 40px;width:40px;height:40px;padding:10px;border-radius:12px;background:var(--green);color:#fff}
[data-theme=dark] .lot-print-intro>.icon{color:var(--nav)}
.lot-print-intro h3{margin:4px 0;font-size:17px;letter-spacing:-.2px}
.lot-print-intro p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}
.lot-print-intro .eyebrow{font-size:9.5px;letter-spacing:1.2px}
.lot-print-intro.danger{background:linear-gradient(135deg,var(--red-bg),var(--surface));border-color:color-mix(in srgb,var(--red) 25%,var(--line))}
.lot-print-intro.danger>.icon{background:var(--red)}
.lot-print-intro.danger .eyebrow{color:var(--red)}
.lot-confirm{display:flex;gap:10px;align-items:flex-start;margin-top:16px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;
 background:var(--bg);font-size:13px;line-height:1.45;cursor:pointer}
.lot-confirm input{width:20px;height:20px;min-height:0;margin:1px 0 0;padding:0;flex:0 0 auto;accent-color:var(--green)}
.lot-confirm:has(input:checked){border-color:color-mix(in srgb,var(--green) 50%,var(--line));background:var(--tint)}
.reason-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
@media(max-width:1180px){.lots-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.lot-form{grid-template-columns:1fr}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .devices-shell .lots-head .head-actions{grid-template-columns:1fr}
 .devices-shell .lots-head .head-actions>.btn.primary{order:-1;min-height:50px;font-size:14px}
 .lots-kpis{gap:10px;margin-bottom:16px}
 .lots-kpi{padding:14px;gap:10px}
 .lots-kpi-icon{flex-basis:34px;height:34px;border-radius:10px}
 .lots-kpi strong{font-size:21px}
 .lots-kpi>div>span{font-size:10.5px}
 .lots-panel-head{flex-direction:column;align-items:stretch;padding:16px}
 .lots-panel-tools{justify-content:space-between}
 .lots-grid{grid-template-columns:1fr;padding:14px 12px 16px;gap:12px}
 .lot-card{padding:16px 14px 14px 18px}
 .lot-actions .btn{flex:1 1 0;min-width:0;justify-content:center;padding-inline:8px}
 .lot-actions .btn.primary{flex:1 1 100%;margin-left:0;order:-1}
 /* Su telefono il modal occupa lo schermo: nessuna finestra sopra la lista, e footer sempre raggiungibile. */
 #modal.lot-modal,#modal.lot-modal.lot-modal-compact{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border-radius:0;border:0}
 .lot-modal .modal-header{padding:14px 16px calc(14px) 16px;padding-top:calc(14px + env(safe-area-inset-top))}
 .lot-modal .modal-content{padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
 .lot-modal .modal-footer{bottom:calc(-16px - env(safe-area-inset-bottom));margin:18px -16px calc(-16px - env(safe-area-inset-bottom));
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));box-shadow:0 -10px 25px #18332b0d}
 .lot-modal .modal-footer .btn{flex:1;min-height:48px}
 .lot-form-fields{grid-template-columns:1fr;gap:16px}
 .lot-field-desinenza .lot-suggestion{flex:1 1 100%;justify-content:center}
 .lot-quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
 .lot-quick .preset-chip{justify-content:center;padding:0 6px}
 .lot-preview .tool-summary-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:380px){.lots-kpis{grid-template-columns:1fr}.lot-form-fields{grid-template-columns:1fr}}

/* ---- Magazzino SuperAdmin: valore del servizio ---- */
.service-value-band{position:relative;display:grid;grid-template-columns:minmax(0,1.4fr) auto auto;align-items:center;gap:26px;margin:0 0 22px;
 padding:22px 26px;overflow:hidden;border-radius:var(--radius);color:#e7f5ee;box-shadow:0 18px 40px #102e3024;
 background:radial-gradient(120% 160% at 0% 0%,#1f5c50 0%,var(--nav) 58%)}
.service-value-band::after{content:"";position:absolute;right:-60px;bottom:-90px;width:260px;height:260px;border-radius:50%;
 background:radial-gradient(circle,#65d7ad30,transparent 70%);pointer-events:none}
.service-value-copy{position:relative;min-width:0}
.service-value-copy .eyebrow{color:#9dedce;font-size:10px}
.service-value-copy h2{margin:6px 0 4px;font-size:34px;line-height:1.05;letter-spacing:-1px;font-variant-numeric:tabular-nums;color:#fff}
.service-value-copy p{margin:0;font-size:12.5px;color:#b3cbc7;line-height:1.5}
.service-value-meter{position:relative;display:flex;align-items:center;gap:12px}
.service-value-ring{position:relative;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;
 background:conic-gradient(#65d7ad calc(var(--quota,0) * 1%),#ffffff1f 0)}
.service-value-ring::before{content:"";position:absolute;inset:7px;border-radius:50%;background:var(--nav)}
.service-value-ring strong{position:relative;font-size:14px;color:#fff;font-variant-numeric:tabular-nums}
.service-value-meter>span:last-child strong{display:block;font-size:14px;color:#fff}
.service-value-meter small{display:block;font-size:11px;color:#b3cbc7}
.service-value-actions{position:relative;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.service-value-actions .btn{min-height:44px}
.service-value-actions .btn:not(.primary){background:#ffffff14;border-color:#ffffff2e;color:#fff}
.service-value-actions .btn:not(.primary):hover{background:#ffffff24}
@media(max-width:1100px){.service-value-band{grid-template-columns:minmax(0,1fr) auto}.service-value-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .service-value-band{grid-template-columns:1fr;gap:16px;margin:0 0 16px;padding:18px 16px}
 .service-value-copy .eyebrow{letter-spacing:1.1px}
 .service-value-copy h2{font-size:28px}
 .service-value-actions{display:grid;grid-template-columns:1fr 1fr}
 .service-value-actions .btn{justify-content:center;min-height:48px;padding-inline:10px;gap:6px;white-space:nowrap;font-size:13px}
}

/* ---- Prodotti in uso: Excel o campagna di verifica ---- */
#modal.inuse-export-modal{width:min(720px,calc(100vw - 24px))}
.export-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.export-choice-tile{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:flex-start;padding:16px 40px 16px 16px;
 border:1.5px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;
 transition:border-color var(--ease),box-shadow var(--ease),transform var(--ease)}
.export-choice-tile:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
.export-choice-tile input{position:absolute;width:1px;height:1px;min-height:0;opacity:0;pointer-events:none}
.export-choice-tile:has(input:checked){border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 16%,transparent);
 background:linear-gradient(180deg,var(--tint),var(--surface) 75%)}
.export-choice-tile:has(input:focus-visible){outline:3px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:2px}
.export-choice-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--green-bg);color:var(--green)}
.export-choice-icon.pdf{background:var(--blue-bg);color:var(--blue)}
.export-choice-icon .icon{width:20px;height:20px}
.export-choice-copy{min-width:0}
.export-choice-copy small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.7px;color:var(--muted)}
.export-choice-copy strong{display:block;margin-top:3px;font-size:15px;color:var(--ink)}
.export-choice-copy>span{display:block;margin-top:4px;font-size:12px;line-height:1.45;color:var(--muted)}
.export-choice-check{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;
 border:1.5px solid var(--line);color:transparent;transition:background-color var(--ease),border-color var(--ease)}
.export-choice-check .icon{width:12px;height:12px}
.export-choice-tile:has(input:checked) .export-choice-check{background:var(--green);border-color:var(--green);color:#fff}
[data-theme=dark] .export-choice-tile:has(input:checked) .export-choice-check{color:var(--nav)}
.inuse-campaign{margin-top:16px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
.inuse-campaign-head small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.7px;color:var(--green-dark)}
.inuse-campaign-head strong{display:block;margin-top:3px;font-size:16px}
.inuse-campaign-head p{margin:4px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
.inuse-presets,.savings-presets{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.inuse-period{margin:0}
.inuse-summary{margin-top:6px}
.inuse-summary-wait{display:flex;align-items:center;gap:10px;padding:14px;border-radius:12px;background:var(--surface);border:1px dashed var(--line);
 font-size:12.5px;line-height:1.45;color:var(--muted)}
.inuse-summary-wait.warn{border-style:solid;border-color:color-mix(in srgb,var(--amber) 45%,var(--line));background:var(--amber-bg);color:var(--amber)}
.inuse-summary-wait .icon{width:18px;height:18px;flex:0 0 auto}
.inuse-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.inuse-kpis>div{min-width:0;padding:12px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.inuse-kpis>div:first-child{background:var(--nav);border-color:var(--nav);color:#e7f5ee}
.inuse-kpis small{display:block;font-size:9px;font-weight:800;letter-spacing:.7px;color:var(--muted)}
.inuse-kpis>div:first-child small{color:#9dedce}
.inuse-kpis strong{display:block;margin-top:4px;font-size:22px;letter-spacing:-.4px;font-variant-numeric:tabular-nums}
.inuse-kpis span{display:block;font-size:11px;color:var(--muted)}
.inuse-kpis>div:first-child span{color:#b3cbc7}
.inuse-note{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;font-size:12px;line-height:1.45;color:var(--muted)}
.inuse-note.warn{color:var(--amber)}
.inuse-note .icon{width:15px;height:15px;flex:0 0 auto;margin-top:1px}
.inuse-export-modal .report-export-note{margin-top:16px}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .export-choice{grid-template-columns:1fr}
 .inuse-campaign{padding:14px}
 .inuse-period{grid-template-columns:1fr 1fr;gap:0 10px}
 .inuse-kpis{grid-template-columns:1fr 1fr}
 .inuse-kpis>div:first-child{grid-column:1/-1}
}

/* ---- Prezzi a nuovo ---- */
.prices-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 22px}
.prices-kpi{min-width:0;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.prices-kpi.accent{background:radial-gradient(120% 160% at 0% 0%,#1f5c50 0%,var(--nav) 60%);border-color:var(--nav);color:#e7f5ee}
.prices-kpi small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.7px;color:var(--muted)}
.prices-kpi.accent small{color:#9dedce}
.prices-kpi strong{display:block;margin-top:6px;font-size:26px;line-height:1.05;letter-spacing:-.6px;font-variant-numeric:tabular-nums}
.prices-kpi.accent strong{color:#fff}
.prices-kpi strong span{font-size:14px;letter-spacing:0;color:var(--muted)}
.prices-kpi>span{display:block;margin-top:6px;font-size:11.5px;color:var(--muted)}
.prices-kpi.accent>span{color:#b3cbc7}
.prices-bar{display:block;height:6px;margin-top:10px;overflow:hidden;border-radius:99px;background:var(--bg)}
.prices-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--green-dark));transition:width .3s ease}
.prices-panel{padding:0;overflow:visible}
.prices-deck{position:sticky;top:var(--workspace-header-height,86px);z-index:20;display:grid;
 grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:12px 16px;align-items:end;padding:16px 20px;
 border-bottom:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;background:var(--surface);box-shadow:0 6px 14px #18332b08}
.prices-search{position:relative;display:flex;align-items:center;min-width:0}
.prices-search>.icon{position:absolute;left:12px;width:17px;height:17px;color:var(--muted);pointer-events:none}
.prices-search input{padding-left:38px}
.prices-chips{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;gap:8px}
.prices-source{display:flex;flex-direction:column;gap:6px;min-width:0}
.prices-source>span{font-size:10.5px;font-weight:800;letter-spacing:.3px;color:var(--muted)}
.price-list{display:flex;flex-direction:column}
.price-row{display:grid;grid-template-columns:56px minmax(0,2fr) minmax(150px,auto) minmax(170px,210px) minmax(130px,160px);gap:16px;align-items:center;
 padding:12px 20px;border-bottom:1px solid var(--line);transition:background-color var(--ease)}
.price-row:last-child{border-bottom:0;border-radius:0 0 var(--radius) var(--radius)}
.price-row.dirty{background:color-mix(in srgb,var(--amber-bg) 55%,var(--surface))}
.price-row-photo{width:56px;height:56px;display:grid;place-items:center;overflow:hidden;border-radius:12px;background:var(--bg);border:1px solid var(--line)}
.price-row-photo img{max-width:100%;max-height:100%;object-fit:contain}
.price-row-identity{min-width:0}
.price-row-identity strong{display:block;font-size:13.5px;line-height:1.35;color:var(--ink);overflow-wrap:anywhere}
.price-row-codes{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.price-row-codes span{padding:1px 7px;border-radius:6px;background:var(--bg);font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--ink)}
.price-row-codes span.muted{color:var(--muted);background:none;border:1px solid var(--line)}
.price-row-qty{display:flex;gap:14px}
.price-row-qty small,.price-row-value small{display:block;font-size:9px;font-weight:800;letter-spacing:.7px;color:var(--muted)}
.price-row-qty strong{display:block;font-size:15px;font-variant-numeric:tabular-nums}
.price-row-input{display:flex;flex-direction:column;gap:5px;min-width:0}
.price-input{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);
 color:var(--muted);font-weight:800;transition:border-color var(--ease),box-shadow var(--ease)}
.price-input:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 16%,transparent)}
.price-input input{flex:1;min-width:0;min-height:42px;padding:0;border:0;background:none;text-align:right;font:800 15px var(--font);color:var(--ink);
 font-variant-numeric:tabular-nums;outline:none}
.price-input:has(input[aria-invalid=true]){border-color:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 14%,transparent)}
.price-input.big{min-height:54px;border-radius:12px;font-size:18px}
.price-input.big input{font-size:22px}
.price-row-note{font-size:10.5px;color:var(--muted);min-height:16px}
.price-suggestion{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px dashed color-mix(in srgb,var(--green) 55%,transparent);
 border-radius:7px;background:var(--tint);color:var(--green-dark);font:700 10.5px var(--font);cursor:pointer;min-height:28px}
.price-suggestion .icon{width:12px;height:12px}
.price-row-value{text-align:right;min-width:0}
.price-row-value strong{display:block;font-size:15px;font-variant-numeric:tabular-nums;color:var(--green-dark)}
.prices-savebar{position:sticky;bottom:16px;z-index:22;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0 0;
 padding:14px 18px;border-radius:14px;background:var(--nav);color:#e7f5ee;box-shadow:0 18px 40px #102e3040;animation:savebar-in .22s ease}
.prices-savebar-copy strong{display:block;font-size:14px;color:#fff}
.prices-savebar-copy small{display:block;font-size:11.5px;color:#b3cbc7}
.prices-savebar-copy b{color:#9dedce;font-variant-numeric:tabular-nums}
.prices-savebar>div{display:flex;gap:10px}
.prices-savebar .btn{min-height:44px}
.prices-savebar .btn.ghost{color:#fff;border-color:#ffffff2e;background:#ffffff10}
@keyframes savebar-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:1180px){.prices-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .price-row{grid-template-columns:56px minmax(0,1fr) minmax(160px,200px) minmax(120px,150px)}.price-row-qty{grid-column:2;grid-row:2}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .prices-page .page-head .head-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
 .prices-page .page-head .head-actions .btn{justify-content:center;min-height:48px;white-space:nowrap;padding-inline:10px}
 .prices-kpis{gap:10px;margin:0 0 16px}
 .prices-kpi{padding:14px}
 .prices-kpi strong{font-size:21px}
 .prices-panel{border-radius:0;border-inline:0}
 .prices-deck{grid-template-columns:1fr;gap:10px;padding:12px 16px;border-radius:0}
 .prices-chips{grid-row:auto;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:0 16px}
 .prices-chips::-webkit-scrollbar{display:none}
 .prices-chips .preset-chip{flex:0 0 auto}
 .prices-source{display:none}
 .price-row{grid-template-columns:48px minmax(0,1fr);gap:10px 12px;padding:14px 16px}
 .price-row-photo{width:48px;height:48px}
 .price-row-qty{grid-column:2;grid-row:auto}
 .price-row-input{grid-column:1/-1}
 .price-row-value{grid-column:1/-1;display:flex;align-items:baseline;justify-content:space-between;text-align:left}
 .prices-savebar{bottom:calc(12px + env(safe-area-inset-bottom));margin:12px 12px 0;flex-direction:column;align-items:stretch}
 .prices-savebar>div{display:grid;grid-template-columns:1fr 1fr}
 .prices-savebar .btn{justify-content:center;min-height:48px}
}
@media(max-width:380px){.prices-kpis{grid-template-columns:1fr}}

/* ---- Report risparmio ---- */
#modal.savings-modal{width:min(760px,calc(100vw - 24px))}
.savings-intro{display:flex;gap:14px;align-items:flex-start;margin-bottom:18px;padding:16px;border-radius:14px;
 background:radial-gradient(120% 160% at 0% 0%,#1f5c50 0%,var(--nav) 60%);color:#e7f5ee}
.savings-intro>.icon{flex:0 0 40px;width:40px;height:40px;padding:10px;border-radius:12px;background:#ffffff18;color:#9dedce}
.savings-intro .eyebrow{color:#9dedce;font-size:9.5px;letter-spacing:1.2px}
.savings-intro h3{margin:4px 0;font-size:18px;color:#fff}
.savings-intro p{margin:0;font-size:12.5px;line-height:1.5;color:#b3cbc7}
.savings-grid{gap:0 14px;align-items:end}
.savings-fee{grid-column:1/-1}
.savings-fee>span:first-child{font-size:12px;font-weight:700}
.savings-presets{grid-column:1/-1;margin:4px 0 10px}
.savings-preview{margin-top:8px}
.savings-hero{position:relative;padding:20px;overflow:hidden;border-radius:14px;border:1px solid color-mix(in srgb,var(--green) 35%,var(--line));
 background:linear-gradient(180deg,var(--tint),var(--surface) 80%)}
.savings-hero.negative{border-color:color-mix(in srgb,var(--amber) 45%,var(--line));background:linear-gradient(180deg,var(--amber-bg),var(--surface) 80%)}
.savings-hero>small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.8px;color:var(--green-dark)}
.savings-hero.negative>small{color:var(--amber)}
.savings-amount{display:block;margin-top:4px;font-size:40px;line-height:1.05;letter-spacing:-1.4px;font-variant-numeric:tabular-nums;color:var(--green-dark)}
.savings-hero.negative .savings-amount{color:var(--amber)}
.savings-split{position:relative;display:block;height:12px;margin-top:14px;overflow:hidden;border-radius:99px;
 background:linear-gradient(90deg,var(--green),var(--green-dark))}
.savings-split .cost{position:absolute;inset:0 auto 0 0;width:var(--cost,0%);border-radius:inherit;background:var(--amber);transition:width .3s ease}
.savings-split-legend{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;margin-top:8px;font-size:11.5px;color:var(--muted);
 font-variant-numeric:tabular-nums}
.savings-split-legend>span{display:inline-flex;align-items:center;gap:6px}
.savings-split-legend .dot{display:inline-block;width:9px;height:9px;border-radius:50%}
.savings-split-legend .dot.cost{background:var(--amber)}
.savings-split-legend .dot.value{background:var(--green)}
.savings-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.savings-facts>div{min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.savings-facts small{display:block;font-size:9px;font-weight:800;letter-spacing:.7px;color:var(--muted)}
.savings-facts strong{display:block;margin-top:3px;font-size:17px;font-variant-numeric:tabular-nums}
.savings-fact-note{display:block;margin-top:2px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .savings-grid{grid-template-columns:1fr 1fr}
 .savings-amount{font-size:32px}
 .savings-facts{grid-template-columns:1fr 1fr}
}

/* ---- Perimetro del profilo di consultazione ---- */
.consultation-perimeter .perimeter-lead{margin:0 0 12px;font-size:12.5px;line-height:1.5;color:var(--muted)}
.perimeter-companies{display:grid;gap:10px}
.perimeter-company{border:1.5px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color var(--ease),box-shadow var(--ease)}
.perimeter-company.selected{border-color:color-mix(in srgb,var(--green) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 10%,transparent)}
.perimeter-company-toggle{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;
 padding:10px 14px;cursor:pointer}
.perimeter-company-toggle input{position:absolute;width:1px;height:1px;min-height:0;opacity:0;pointer-events:none}
.perimeter-company-toggle:has(input:focus-visible){outline:3px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:2px;border-radius:12px}
.perimeter-company-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--bg);color:var(--muted)}
.perimeter-company.selected .perimeter-company-mark{background:var(--tint);color:var(--green)}
.perimeter-company-mark .icon{width:18px;height:18px}
.perimeter-company-copy{min-width:0}
.perimeter-company-copy strong{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.perimeter-company-copy small{display:block;font-size:11px;color:var(--muted)}
.perimeter-check{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;border:1.5px solid var(--line);color:transparent}
.perimeter-check .icon{width:13px;height:13px}
.perimeter-company.selected .perimeter-check{background:var(--green);border-color:var(--green);color:#fff}
[data-theme=dark] .perimeter-company.selected .perimeter-check{color:var(--nav)}
.perimeter-hospitals{padding:0 14px 14px}
.perimeter-mode{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:var(--bg)}
.perimeter-mode label{position:relative;cursor:pointer}
.perimeter-mode input{position:absolute;width:1px;height:1px;min-height:0;opacity:0;pointer-events:none}
.perimeter-mode span{display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 10px;border-radius:9px;font-size:12px;font-weight:700;
 color:var(--muted);transition:background-color var(--ease),color var(--ease),box-shadow var(--ease)}
.perimeter-mode span .icon{width:14px;height:14px}
.perimeter-mode input:checked+span{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #18332b1f}
.perimeter-mode input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:1px}
.perimeter-hospital-list{margin-top:10px}
.perimeter-search{position:relative;display:flex;align-items:center}
.perimeter-search>.icon{position:absolute;left:12px;width:16px;height:16px;color:var(--muted);pointer-events:none}
.perimeter-search input{padding-left:36px}
.perimeter-hospital-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:264px;margin-top:8px;padding:2px;overflow-y:auto;
 overscroll-behavior:contain}
.perimeter-hospital{display:flex;align-items:flex-start;gap:10px;min-height:44px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;
 background:var(--surface);cursor:pointer;transition:border-color var(--ease),background-color var(--ease)}
.perimeter-hospital input{width:18px;height:18px;min-height:0;margin:1px 0 0;padding:0;flex:0 0 auto;accent-color:var(--green)}
.perimeter-hospital:has(input:checked){border-color:color-mix(in srgb,var(--green) 55%,var(--line));background:var(--tint)}
.perimeter-hospital>span{min-width:0}
.perimeter-hospital strong{display:block;font-size:12.5px;line-height:1.3;overflow-wrap:anywhere}
.perimeter-hospital small{display:block;font-size:10.5px;color:var(--muted)}
.perimeter-hospital.inactive strong{color:var(--muted)}
.perimeter-loading{display:flex;align-items:center;gap:8px;grid-column:1/-1;margin:6px 0;font-size:12px;color:var(--muted)}
.perimeter-loading .icon{width:15px;height:15px}
.perimeter-summary{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--tint);color:var(--green-dark)}
.perimeter-summary:empty{display:none}
.perimeter-summary>.icon{width:18px;height:18px;flex:0 0 auto;margin-top:1px}
.perimeter-summary small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.7px}
.perimeter-summary span{display:block;font-size:12.5px;color:var(--ink)}
.perimeter-summary span strong{color:var(--green-dark)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .perimeter-hospital-items{grid-template-columns:1fr;max-height:320px}
}
@media(max-width:420px){.perimeter-mode span{white-space:nowrap;padding:0 6px}.perimeter-mode span .icon{display:none}}
.devices-perimeter-strip{display:flex;gap:14px;align-items:flex-start;margin:0 0 20px;padding:14px 18px;border-radius:14px;
 border:1px solid color-mix(in srgb,var(--blue) 30%,var(--line));background:linear-gradient(135deg,var(--blue-bg),var(--surface))}
.devices-perimeter-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:11px;background:var(--blue);color:#fff}
[data-theme=dark] .devices-perimeter-icon{color:var(--nav)}
.devices-perimeter-icon .icon{width:18px;height:18px}
.devices-perimeter-strip>div{min-width:0}
.devices-perimeter-strip small{display:block;font-size:9.5px;font-weight:800;letter-spacing:.8px;color:var(--blue)}
.devices-perimeter-strip strong{display:block;margin-top:2px;font-size:14px}
.devices-perimeter-names{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.devices-perimeter-names span{padding:3px 9px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:11.5px;font-weight:700}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.devices-perimeter-strip{margin:0 0 14px;padding:12px 14px}}
.devices-company-context.switchable{cursor:pointer;font:inherit;text-align:left;transition:border-color var(--ease),background-color var(--ease)}
.devices-company-context.switchable:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:var(--tint)}
.devices-company-context.switchable>.icon:last-child{width:14px;height:14px;margin-left:auto;color:var(--muted)}
.devices-company-context.switchable:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:2px}
@media(prefers-reduced-motion:reduce){
 .preset-chip,.lot-card,.lot-card::after,.export-choice-tile,.perimeter-company,.perimeter-mode span,.perimeter-hospital,.price-row,.price-input,
 .prices-bar span,.savings-split .cost,.lot-suggestion{transition:none}
 .prices-savebar{animation:none}
 .lot-card:hover{transform:none}
}
/* ---- r14 · Cambio di tema: un cerchio che si apre dal punto del clic (View Transitions, dove disponibili) ---- */
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
.theme-transition::view-transition-new(root){animation:theme-reveal .3s ease-out both}
@keyframes theme-reveal{from{clip-path:circle(0 at var(--theme-x,90%) var(--theme-y,5%))}to{clip-path:circle(150vmax at var(--theme-x,90%) var(--theme-y,5%))}}
@media(prefers-reduced-motion:reduce){.theme-transition::view-transition-new(root){animation:none}}
/* ---- r14 · Avvio e notifiche ---- */
.boot-emblem{display:block;width:auto;height:64px;margin:0 auto 18px;filter:drop-shadow(0 6px 14px #087f6826)}
.boot p{margin:14px 0 0;font-size:12px;font-weight:700;letter-spacing:.3px;color:var(--muted)}
.toast{border:1px solid #ffffff14;animation:toast-in .24s cubic-bezier(.2,.7,.2,1) both}
@keyframes toast-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.toast{animation:none}}

/* Stati della richiesta a scelta multipla (24/09/2026): scelte rapide, quattro tessere con casella e un solo
   «Applica». Il colore del punto e' quello dei contatori: nuove blu, in lavorazione ambra, chiuse verde. */
.devices-state-multi{display:grid;gap:14px}
.devices-state-lead{margin:0;font-size:12px;line-height:1.55;color:var(--muted)}
.devices-state-quick{display:flex;flex-wrap:wrap;gap:8px}
.devices-state-quick button{display:inline-flex;align-items:baseline;gap:6px;min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:999px;
 background:var(--surface);color:var(--ink);font:inherit;font-size:12px;font-weight:750;cursor:pointer;align-items:center;
 transition:background .15s ease,border-color .15s ease,color .15s ease}
.devices-state-quick button small{font-size:10.5px;font-weight:600;color:var(--muted)}
.devices-state-quick button:hover{border-color:var(--green);color:var(--green)}
.devices-state-quick button[aria-pressed="true"]{background:var(--tint);border-color:var(--green);color:var(--green)}
.devices-state-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;border:0;min-width:0}
.devices-state-choice{position:relative;display:flex;align-items:center;gap:10px;min-height:52px;padding:0 14px;border:1px solid var(--line);
 border-radius:10px;background:var(--bg);cursor:pointer;transition:background .15s ease,border-color .15s ease}
.devices-state-choice input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.devices-state-box{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border:1.5px solid var(--muted);border-radius:6px;
 background:var(--surface);transition:background .15s ease,border-color .15s ease}
.devices-state-box .icon{width:13px;height:13px;color:#fff;opacity:0;transform:scale(.6);transition:opacity .15s ease,transform .15s ease}
.devices-state-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--muted)}
.devices-state-choice[data-stato="0"] .devices-state-dot{background:var(--blue)}
.devices-state-choice[data-stato="1"] .devices-state-dot{background:var(--amber)}
.devices-state-choice[data-stato="2"] .devices-state-dot{background:var(--green)}
.devices-state-name{font-size:13px;font-weight:750;color:var(--ink)}
.devices-state-choice:hover{border-color:var(--green)}
.devices-state-choice:has(input:checked){background:var(--tint);border-color:var(--green)}
.devices-state-choice input:checked+.devices-state-box{background:var(--green);border-color:var(--green)}
.devices-state-choice input:checked+.devices-state-box .icon{opacity:1;transform:none}
.devices-state-choice:has(input:focus-visible){outline:2px solid var(--green);outline-offset:2px}
.devices-state-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line)}
.devices-state-status{margin:0;font-size:12px;font-weight:650;color:var(--muted)}
.devices-state-status.warn{color:var(--red)}
.devices-state-foot .btn{min-height:44px}
.devices-filter-custom{margin-top:6px}
@media(max-width:560px){.devices-state-grid{grid-template-columns:1fr}.devices-state-foot .btn{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.devices-state-quick button,.devices-state-choice,.devices-state-box,.devices-state-box .icon{transition:none}}

/* Stampa pratiche del foglio di carico (24/09/2026): chiude l'elenco pratiche con un'azione sola, il PDF dei DDT vergini. */
.load-sheet-print{display:flex;align-items:center;gap:14px;margin:14px 0 6px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--green) 28%,var(--line));
 border-radius:14px;background:linear-gradient(135deg,var(--tint),color-mix(in srgb,var(--surface) 84%,var(--tint)))}
.load-sheet-print>.icon{flex:0 0 auto;width:22px;height:22px;color:var(--green)}
.load-sheet-print .grow{min-width:0}
.load-sheet-print strong{display:block;font-size:13px}
.load-sheet-print small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.5}
.load-sheet-print .btn{flex:0 0 auto;min-height:44px}
.load-sheet-print.is-empty{border-color:var(--line);background:var(--bg)}
.load-sheet-print.is-empty>.icon{color:var(--muted)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .load-sheet-print{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px 12px;padding:14px}
 .load-sheet-print .btn{grid-column:1/-1;width:100%;justify-content:center}
}

/* DDT di consegna degli articoli (r17): elenco, scheda, modulo di emissione, destinatari e invio. */
.ddt-search .search{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.ddt-search .search input{border:0;background:transparent;flex:1;min-width:0;font:inherit;min-height:42px;outline:none}
.ddt-sub{display:block;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.45}
.ddt-warning{display:flex;align-items:center;gap:14px;padding:16px 18px;border-color:color-mix(in srgb,var(--amber) 40%,var(--line));background:color-mix(in srgb,var(--amber) 8%,var(--surface))}
.ddt-warning>.icon{width:22px;height:22px;color:var(--amber);flex:0 0 auto}
.ddt-warning div{flex:1}.ddt-warning p{margin:3px 0 0;font-size:12px;color:var(--muted)}
.ddt-sheet .ddt-status{margin:0 0 10px}
.ddt-band{display:flex;gap:14px;align-items:flex-start;margin:0 0 18px;padding:16px 18px;border-radius:14px;border:1px solid var(--line)}
.ddt-band>.icon{width:22px;height:22px;flex:0 0 auto;margin-top:1px}
.ddt-band p{margin:4px 0 0;font-size:12px;line-height:1.55;color:var(--muted)}
.ddt-band-open{background:color-mix(in srgb,var(--amber) 9%,var(--surface));border-color:color-mix(in srgb,var(--amber) 35%,var(--line))}.ddt-band-open>.icon{color:var(--amber)}
.ddt-band-delivered{background:var(--tint);border-color:color-mix(in srgb,var(--green) 35%,var(--line))}.ddt-band-delivered>.icon{color:var(--green)}
.ddt-band-cancelled{background:color-mix(in srgb,var(--red) 7%,var(--surface));border-color:color-mix(in srgb,var(--red) 30%,var(--line))}.ddt-band-cancelled>.icon{color:var(--red)}
.ddt-sheet-grid{align-items:start}
.ddt-notes{margin:0;white-space:pre-wrap;font-size:13px;line-height:1.6}
.ddt-documents{display:flex;flex-wrap:wrap;gap:8px}
.ddt-history{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.ddt-history li{display:grid;grid-template-columns:12px 1fr;gap:10px}
.ddt-history-dot{width:9px;height:9px;margin-top:5px;border-radius:50%;background:var(--green)}
.ddt-history strong{font-size:13px}.ddt-history small{display:block;color:var(--muted);font-size:11px;margin-top:2px}
.ddt-history p{margin:4px 0 0;font-size:12px;line-height:1.5;color:var(--ink)}
.ddt-send-icon{position:relative;display:inline-flex;width:18px;height:18px}
.ddt-send-icon>.icon{width:18px;height:18px}
.ddt-spark{position:absolute;right:-6px;top:-7px;display:inline-flex}
.ddt-spark .icon{width:11px;height:11px;color:#FFD66B}
.ddt-send-button{gap:10px}
.btn:not(.primary) .ddt-spark .icon{color:var(--amber)}
.ddt-send-mark{display:grid;place-items:center}
/* Modulo di emissione: le sezioni seguono il foglio di carta. */
.ddt-form{display:grid;gap:18px}
.ddt-form-section{display:grid;gap:12px;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.ddt-form-section h3{display:flex;align-items:center;gap:10px;margin:0;font-size:14px}
.ddt-form-section h3 span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--tint);color:var(--green);font-size:11px;font-variant-numeric:tabular-nums}
.ddt-choices{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;border:0;min-width:0}
.ddt-choices legend{width:100%;margin:0 0 6px;padding:0;font-size:12px;font-weight:700;color:var(--muted)}
.ddt-choice{position:relative;display:inline-flex}
.ddt-choice input{position:absolute;opacity:0;width:1px;height:1px}
.ddt-choice span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:12px;font-weight:700;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.ddt-choice input:checked+span{background:var(--tint);border-color:var(--green);color:var(--green)}
.ddt-choice input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
.ddt-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.muted-field{opacity:.6}
.ddt-recipient-card{display:grid;gap:8px;padding:14px;border-radius:12px;background:var(--bg)}
.ddt-recipient-info{display:grid;gap:3px}.ddt-recipient-info span{font-size:12px;color:var(--muted)}
.ddt-recipient-place{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5}
.ddt-recipient-place .icon{width:15px;height:15px;flex:0 0 auto;margin-top:1px}
.ddt-recipient-place.fixed .icon{color:var(--green)}.ddt-recipient-place.manual .icon{color:var(--amber)}
.ddt-override{display:flex;align-items:center;gap:10px;min-height:44px;font-size:13px;cursor:pointer}
.ddt-override input{width:18px;height:18px;accent-color:var(--green)}
.ddt-required-mark{color:var(--red);font-weight:700}
.ddt-picker{display:grid;gap:8px}
.ddt-picker .search{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.ddt-picker .search input{border:0;background:transparent;flex:1;min-width:0;font:inherit;font-size:16px;min-height:42px;outline:none}
.ddt-article-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;max-height:280px;overflow:auto;padding:2px}
.ddt-article{display:grid;grid-template-columns:44px minmax(0,1fr) auto 28px;align-items:center;gap:10px;min-height:60px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:left;font:inherit;color:var(--ink);cursor:pointer;transition:border-color .15s ease,background .15s ease}
.ddt-article:hover{border-color:var(--green);background:var(--tint)}
.ddt-article.unavailable{opacity:.5;cursor:not-allowed}
.ddt-article .inventory-photo{width:44px;height:44px}
.ddt-article-text{display:grid;min-width:0}.ddt-article-text strong{font-size:13px}.ddt-article-text small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ddt-article-stock{display:grid;justify-items:end;text-align:right}.ddt-article-stock strong{font-size:14px}.ddt-article-stock small{font-size:10px;color:var(--muted)}
.ddt-committed-note{color:var(--amber)!important}
.ddt-article-add{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--tint);color:var(--green)}
.ddt-article-add .icon{width:15px;height:15px}
.ddt-picker-empty{margin:4px 0;font-size:12px}
.ddt-basket-empty{display:flex;align-items:center;gap:10px;padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:12px}
.ddt-basket-empty .icon{width:18px;height:18px}
.ddt-basket-table input{width:100%;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font:inherit;font-size:14px}
.ddt-basket-table .ddt-line-quantity{max-width:120px;text-align:right}
.ddt-basket-table input:invalid{border-color:var(--red)}
.ddt-basket-totals{display:flex;flex-wrap:wrap;gap:16px;justify-content:flex-end;padding:10px 4px 0;font-size:12px;color:var(--muted)}
.ddt-basket-totals strong{color:var(--ink);font-size:14px}
.ddt-lines-field{margin:0}
.ddt-recipients-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.ddt-recipients-head p{margin:0;font-size:12px;color:var(--muted);max-width:520px}
.ddt-recipient-list{display:grid;gap:8px}
.ddt-recipient{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ddt-recipient>div{display:grid;gap:4px;min-width:0}.ddt-recipient small{color:var(--muted);font-size:11px}
.ddt-recipient.inactive{opacity:.6}
.ddt-recipient-form{display:grid;gap:12px}
.ddt-recipient-form h3{margin:4px 0 0}.ddt-recipient-form h4{margin:6px 0 0;font-size:13px}.ddt-recipient-form h4 small{font-weight:500;color:var(--muted)}
.ddt-recipient-actions{display:flex;justify-content:flex-end}
.ddt-settings .form-grid .span-two{grid-column:1/-1}
@media(max-width:800px){
 .ddt-three{grid-template-columns:1fr}
 .ddt-article-results{grid-template-columns:1fr;max-height:240px}
 .ddt-recipients-head{flex-direction:column;align-items:stretch}
 .ddt-recipient{flex-direction:column;align-items:stretch}
 .ddt-form-section{padding:14px}
}
@media(prefers-reduced-motion:reduce){.ddt-status-chip,.ddt-choice span,.ddt-article{transition:none}}
.ddt-sheet>.ddt-status{display:inline-flex;margin:0 0 10px}
.ddt-sheet .panel{margin-bottom:18px}
.ddt-lines-table td,.ddt-basket-table td{vertical-align:middle}
.ddt-basket-table .ddt-line-lot,.ddt-basket-table .ddt-line-expiry{max-width:150px}
.ddt-reason-other{max-width:420px}
.ddt-delivery{display:grid;gap:10px}
.ddt-delivery-fields{margin:0}
.ddt-file input[type=file]{min-height:44px;padding:10px;border:1px dashed var(--line);border-radius:10px;background:var(--bg);font:inherit}
.ddt-recipients,.ddt-settings,.ddt-sign,.ddt-send,.ddt-cancel{display:grid;gap:14px}
@media(max-width:800px){
 .ddt-basket-table .ddt-line-quantity,.ddt-basket-table .ddt-line-lot,.ddt-basket-table .ddt-line-expiry{max-width:none}
}
/* Riquadro di caricamento Premium (r17): condiviso da Flotta e Dispositivi. Il rilascio ha uno stato proprio
   sovrapposto, cosi' il riquadro non cambia misura mentre il file passa sopra. */
.doc-dropzone{overflow:hidden;isolation:isolate}
.doc-dropzone-icon{transition:transform .18s ease,background .18s ease,color .18s ease,border-color .18s ease}
.doc-dropzone:hover .doc-dropzone-icon{transform:translateY(-2px);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.doc-dropzone-chip{display:inline-flex;align-items:center;min-height:24px;margin-top:4px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.2px}
.doc-dropzone-drop{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
 background:color-mix(in srgb,var(--green) 9%,var(--surface));color:var(--green);opacity:0;pointer-events:none;transition:opacity .15s ease}
.doc-dropzone-drop strong{font-size:14px}
.doc-dropzone-drop .doc-dropzone-icon{background:var(--green);border-color:var(--green);color:#fff;transform:scale(1.08)}
.doc-dropzone.sopra{border-color:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 14%,transparent)}
.doc-dropzone.sopra .doc-dropzone-drop{opacity:1}
.doc-dropzone.sopra>.doc-dropzone-empty,.doc-dropzone.sopra>.doc-dropzone-file{visibility:hidden}
.doc-dropzone.scelto .doc-dropzone-file{animation:doc-dropzone-in .2s ease-out}
.doc-dropzone.scelto .doc-dropzone-badge{box-shadow:0 6px 14px color-mix(in srgb,var(--green) 28%,transparent)}
.doc-dropzone.rifiutato,.doc-dropzone[aria-invalid=true]{border-color:var(--red);background:color-mix(in srgb,var(--red) 5%,var(--surface))}
@keyframes doc-dropzone-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
/* Nota operativa dei form di Gestione Dispositivi: icona e testo sulla stessa riga, come un avviso vero. */
.devices-form-note{display:flex;align-items:flex-start;gap:11px;margin-top:4px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--green) 20%,var(--line));border-radius:12px;background:var(--tint);color:var(--ink)}
.devices-form-note>.icon{flex:0 0 auto;width:18px;height:18px;margin-top:2px;color:var(--green)}
.devices-form-note>p{margin:0;font-size:12px;line-height:1.55}
.ddt-file-section{display:grid;gap:8px}
.ddt-file-title{margin:0;font-size:12px;font-weight:700}
.ddt-file-section>small{font-size:11px;color:var(--muted)}
.ddt-file-section .field-error{display:block}
.ddt-sign-modal .doc-dropzone{min-height:168px}
.ddt-sign-modal .doc-dropzone.scelto{min-height:0}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.ddt-sign-modal .doc-dropzone{min-height:140px}}
@media(prefers-reduced-motion:reduce){.doc-dropzone-icon,.doc-dropzone-drop{transition:none}.doc-dropzone:hover .doc-dropzone-icon{transform:none}.doc-dropzone.scelto .doc-dropzone-file{animation:none}}
/* DDT r17 · seconda stesura: tipo di DDT, destinatari a tessere, modulo ridistribuito, righe manuali, ordine allegato. */
.ddt-kind-modal{width:min(760px,calc(100% - 24px));max-width:760px}
.ddt-kind-intro{margin:0 0 16px;font-size:13px;color:var(--muted)}
.ddt-kind-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ddt-kind-tile{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 24px;gap:14px;align-items:start;min-height:150px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-align:left;font:inherit;color:var(--ink);cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.ddt-kind-tile:hover{border-color:var(--green);box-shadow:0 12px 30px color-mix(in srgb,var(--green) 14%,transparent);transform:translateY(-2px)}
.ddt-kind-tile:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.ddt-kind-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--tint);color:var(--green)}
.ddt-kind-icon .icon{width:24px;height:24px}
.ddt-kind-tile.pickup .ddt-kind-icon{background:var(--blue-bg);color:var(--blue)}
.ddt-kind-tile.pickup:hover{border-color:var(--blue);box-shadow:0 12px 30px color-mix(in srgb,var(--blue) 14%,transparent)}
.ddt-kind-copy{display:grid;gap:5px;min-width:0}
.ddt-kind-number{font:700 11px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.3px;color:var(--muted);text-transform:uppercase}
.ddt-kind-copy strong{font-size:19px;letter-spacing:-.2px}
.ddt-kind-copy small{font-size:12px;line-height:1.55;color:var(--muted)}
.ddt-kind-go{align-self:center;color:var(--muted)}.ddt-kind-go .icon{width:18px;height:18px}
.ddt-kind-tile:hover .ddt-kind-go{color:var(--green)}.ddt-kind-tile.pickup:hover .ddt-kind-go{color:var(--blue)}
.ddt-kind-tag{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.3px;text-transform:uppercase}
.ddt-kind-tag .icon{width:11px;height:11px}
.ddt-kind-tag.pickup{background:var(--blue-bg);color:var(--blue)}
.ddt-kind-tag.manual{background:var(--amber-bg);color:var(--amber)}
.ddt-band-issued{background:var(--blue-bg);border-color:color-mix(in srgb,var(--blue) 30%,var(--line))}.ddt-band-issued>.icon{color:var(--blue)}
.ddt-band b{font-weight:800;color:var(--ink)}
.ddt-serial{font:600 12px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.2px}
/* Destinatari a tessere */
.ddt-recipient-search{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.ddt-recipient-search input{border:0;background:transparent;flex:1;min-width:0;font:inherit;font-size:16px;min-height:42px;outline:none}
.ddt-recipient-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.ddt-recipient-option{position:relative;display:block;cursor:pointer}
.ddt-recipient-option>input{position:absolute;opacity:0;pointer-events:none}
.ddt-recipient-body{display:grid;grid-template-columns:40px minmax(0,1fr) 22px;gap:11px;align-items:start;height:100%;padding:13px 13px 13px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.ddt-recipient-option:hover .ddt-recipient-body{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.ddt-recipient-option input:checked+.ddt-recipient-body{border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 16%,transparent)}
.ddt-recipient-option input:focus-visible+.ddt-recipient-body{outline:2px solid var(--green);outline-offset:2px}
.ddt-recipient-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--bg);color:var(--green)}
.ddt-recipient-mark .icon{width:19px;height:19px}
.ddt-recipient-option input:checked+.ddt-recipient-body .ddt-recipient-mark{background:var(--surface)}
.ddt-recipient-copy{display:grid;gap:4px;min-width:0}
.ddt-recipient-copy strong{font-size:13px;line-height:1.35}
.ddt-recipient-copy>small{font-size:11px;color:var(--muted);line-height:1.4}
.ddt-recipient-copy .ddt-recipient-place{display:inline-flex;align-items:center;gap:6px;width:max-content;max-width:100%;margin-top:3px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:700;line-height:1.3}
.ddt-recipient-copy .ddt-recipient-place .icon{width:12px;height:12px;margin:0;flex:0 0 auto}
.ddt-recipient-copy .ddt-recipient-place span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ddt-recipient-copy .ddt-recipient-place.fixed{background:var(--green-bg);color:var(--green)}
.ddt-recipient-copy .ddt-recipient-place.manual{background:var(--amber-bg);color:var(--amber)}
.ddt-recipient-tick{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--line);border-radius:50%;color:transparent;transition:background .16s ease,border-color .16s ease}
.ddt-recipient-tick .icon{width:13px;height:13px}
.ddt-recipient-option input:checked+.ddt-recipient-body .ddt-recipient-tick{border-color:var(--green);background:var(--green);color:#fff}
.ddt-recipient-none{margin:0;font-size:12px}
.ddt-delivery-fixed{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--green) 22%,var(--line));border-radius:12px;background:var(--surface)}
.ddt-delivery-fixed>.icon{width:18px;height:18px;margin-top:2px;color:var(--green);flex:0 0 auto}
.ddt-delivery-fixed>span{display:grid;gap:2px}
.ddt-delivery-fixed small{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.ddt-delivery-fixed strong{font-size:13px}.ddt-delivery-fixed>span>span{font-size:12px;color:var(--muted)}
/* Ordine di riferimento */
.ddt-hint{margin:-4px 0 0;font-size:11px;color:var(--muted)}
.ddt-documents-body{display:grid;gap:12px}
/* Modo di compilazione dei beni */
.ddt-mode{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ddt-mode-option{position:relative;cursor:pointer}
.ddt-mode-option>input{position:absolute;opacity:0;pointer-events:none}
.ddt-mode-option>span{display:grid;grid-template-columns:22px minmax(0,1fr);gap:11px;align-items:start;height:100%;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:var(--surface);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.ddt-mode-option>span>.icon{width:20px;height:20px;margin-top:1px;color:var(--green)}
.ddt-mode-option strong{display:block;font-size:13px}.ddt-mode-option small{display:block;margin-top:2px;font-size:11px;line-height:1.45;color:var(--muted)}
.ddt-mode-option input:checked+span{border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 14%,transparent)}
.ddt-mode-option input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
.ddt-stock-block,.ddt-manual-block{display:grid;gap:12px}
/* Righe manuali */
.ddt-manual-rows{display:grid;gap:8px}
.ddt-manual-row{display:grid;grid-template-columns:28px minmax(110px,.8fr) minmax(200px,2fr) minmax(130px,1fr) 104px 44px;gap:10px;align-items:end;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.ddt-manual-row .field{margin:0;gap:5px}
.ddt-manual-row .field>span{font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--muted)}
.ddt-manual-row input{min-height:42px}
.ddt-manual-serial input{font-family:ui-monospace,Menlo,Consolas,monospace;letter-spacing:.2px}
.ddt-manual-quantity input{text-align:right}
.ddt-manual-index{display:grid;place-items:center;width:28px;height:28px;margin-bottom:7px;border-radius:8px;background:var(--bg);font:800 11px ui-monospace,Menlo,Consolas,monospace;color:var(--muted)}
.ddt-manual-remove{align-self:end;width:44px;height:44px}
.ddt-manual-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ddt-manual-foot .ddt-basket-totals{padding:0}
.ddt-manual-field,.ddt-lines-field{margin:0}
.ddt-manual-field .field-error,.ddt-lines-field .field-error,#devices-error-recipientId{display:block}
/* Controlli segmentati: una scelta sola, a colpo d'occhio */
.ddt-form-row{display:grid;gap:14px;align-items:end}
.ddt-row-transport{grid-template-columns:auto minmax(220px,1fr)}
.ddt-row-reason{grid-template-columns:auto minmax(200px,1fr)}
.ddt-row-payment{grid-template-columns:auto minmax(180px,1fr) auto}
.ddt-seg{margin:0;padding:0;border:0;min-width:0}
.ddt-seg legend{margin:0 0 6px;padding:0;font-size:12px;font-weight:700;color:var(--muted)}
.ddt-seg-track{display:inline-flex;flex-wrap:wrap;gap:3px;padding:3px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.ddt-seg-option{position:relative;display:inline-flex}
.ddt-seg-option input{position:absolute;opacity:0;pointer-events:none}
.ddt-seg-option span{display:inline-flex;align-items:center;min-height:36px;padding:0 13px;border-radius:9px;font-size:12px;font-weight:700;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease;white-space:nowrap}
.ddt-seg-option span:hover{color:var(--ink)}
.ddt-seg-option input:checked+span{background:var(--surface);color:var(--green);box-shadow:0 1px 3px #18332b1f,0 0 0 1px color-mix(in srgb,var(--green) 30%,transparent)}
.ddt-seg-option input:focus-visible+span{outline:2px solid var(--green);outline-offset:1px}
.ddt-reason-other{margin:0}
@media(max-width:1100px){.ddt-row-reason{grid-template-columns:1fr}.ddt-manual-row{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 96px 44px}.ddt-manual-code{grid-column:2}.ddt-manual-description{grid-column:3/5}.ddt-manual-serial{grid-column:2/4}.ddt-manual-quantity{grid-column:4}.ddt-manual-remove{grid-column:5;grid-row:1}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .ddt-kind-grid,.ddt-mode{grid-template-columns:1fr}
 .ddt-kind-tile{min-height:0}
 .ddt-recipient-grid{grid-template-columns:1fr}
 .ddt-row-transport,.ddt-row-reason,.ddt-row-payment{grid-template-columns:1fr}
 .ddt-seg-track{display:flex;width:100%}
 .ddt-seg-option{flex:1 1 auto}.ddt-seg-option span{justify-content:center;width:100%;min-height:40px;padding:0 10px}
 .ddt-manual-row{grid-template-columns:28px minmax(0,1fr) 44px;row-gap:10px}
 .ddt-manual-index{grid-row:1;align-self:center;margin:0}
 .ddt-manual-code,.ddt-manual-description,.ddt-manual-serial,.ddt-manual-quantity{grid-column:1/-1}
 .ddt-manual-code{grid-row:2}.ddt-manual-description{grid-row:3}.ddt-manual-serial{grid-row:4}.ddt-manual-quantity{grid-row:5}
 .ddt-manual-remove{grid-column:3;grid-row:1}
}
@media(prefers-reduced-motion:reduce){.ddt-kind-tile,.ddt-recipient-body,.ddt-mode-option>span,.ddt-seg-option span,.ddt-recipient-tick{transition:none}.ddt-kind-tile:hover{transform:none}}

/* Ordini NSO (r17): cartelle per struttura, griglia con stato e avanzamento, scheda con residui, caricamento multiplo. */
.order-folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin:0 0 16px}
.order-folder{position:relative;display:flex;align-items:stretch;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .16s ease,box-shadow .16s ease}
.order-folder:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.order-folder.active{border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 14%,transparent)}
.order-folder-main{flex:1;display:grid;grid-template-columns:40px minmax(0,1fr);gap:11px;align-items:center;min-height:68px;padding:12px 8px 12px 13px;border:0;background:none;font:inherit;color:var(--ink);text-align:left;cursor:pointer;border-radius:14px}
.order-folder-main:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.order-folder-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--bg);color:var(--green)}
.order-folder.active .order-folder-icon{background:var(--surface)}
.order-folder-icon .icon{width:19px;height:19px}
.order-folder-copy{display:grid;gap:5px;min-width:0}.order-folder-copy strong{font-size:13px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.order-folder-copy small{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:11px;color:var(--muted)}
.order-folder-open{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border-radius:999px;background:var(--green-bg);color:var(--green);font-weight:800;white-space:nowrap}.order-folder-open.zero{background:var(--bg);color:var(--muted);font-weight:700}
.order-folder-edit{align-self:center;margin-right:6px;width:36px;height:36px;min-height:36px}
.order-progress{position:relative;display:block;width:100%;min-width:90px;height:7px;border-radius:999px;background:var(--bg);overflow:hidden}
.order-progress-done,.order-progress-transit{position:absolute;top:0;bottom:0;border-radius:999px}
.order-progress-done{left:0;width:var(--w);background:var(--green)}
.order-progress-transit{left:var(--x);width:var(--w);background:color-mix(in srgb,var(--amber) 70%,transparent)}
.order-progress-cell{display:grid;gap:5px;min-width:130px}.order-progress-cell small{font-size:11px;color:var(--muted)}
.order-summary{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 16px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.order-summary-progress{flex:1;display:grid;gap:7px;min-width:240px}.order-summary-progress .order-progress{height:9px}
.order-summary-progress span{font-size:12px;color:var(--muted)}.order-summary-progress strong,.order-summary-progress b{color:var(--ink)}
.order-lines-table td{vertical-align:middle}
.order-line-pos{font:700 12px ui-monospace,Menlo,Consolas,monospace;color:var(--muted);width:1%}
.order-article{display:inline-grid;grid-template-columns:40px minmax(0,1fr);gap:10px;align-items:center;min-width:180px}
.order-article .inventory-photo{width:40px;height:40px}
.order-article strong{display:block;font-size:13px}.order-article small{display:block;font-size:11px;color:var(--muted)}
.order-article.missing{grid-template-columns:22px minmax(0,1fr);color:var(--amber)}.order-article.missing .icon{width:18px;height:18px}
.order-article.missing strong{color:var(--amber)}
.order-article-change{margin-top:4px;padding:0;border:0;background:none;font:inherit;font-size:11px;font-weight:700;color:var(--green);text-decoration:underline;cursor:pointer}
.order-article-assign{margin-top:6px}
.order-line-desc{display:block;font-size:12px;line-height:1.45;max-width:340px}
.order-delivered{color:var(--green)}.order-transit{color:var(--amber)}
.order-residual{display:inline-flex;align-items:center;gap:4px;margin-bottom:5px}.order-residual.zero{color:var(--green)}.order-residual .icon{width:14px;height:14px}
.order-line-done td{background:color-mix(in srgb,var(--green) 4%,var(--surface))}
.order-ddts{display:grid;gap:8px}
.order-ddt{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font:inherit;color:var(--ink);text-align:left;cursor:pointer;transition:border-color .15s ease}
.order-ddt:hover{border-color:var(--green)}.order-ddt:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.order-ddt-number{font:800 13px ui-monospace,Menlo,Consolas,monospace}.order-ddt-meta{font-size:12px;color:var(--muted)}
.order-upload{display:grid;gap:12px}
.order-upload-help{font-size:11px;color:var(--muted)}
.order-upload-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.order-upload-list:empty{display:none}
.order-upload-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);animation:doc-dropzone-in .2s ease-out}
.order-upload-state{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--bg);color:var(--muted)}.order-upload-state .icon{width:17px;height:17px}
.order-upload-copy{display:grid;gap:2px;min-width:0}.order-upload-copy strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-upload-copy small{font-size:11px;color:var(--muted)}
.order-upload-size{font-size:11px;color:var(--muted)}
.order-upload-item.lettura .order-upload-state{background:var(--blue-bg);color:var(--blue)}
.order-upload-item.fatto{border-color:color-mix(in srgb,var(--green) 35%,var(--line))}.order-upload-item.fatto .order-upload-state{background:var(--green-bg);color:var(--green)}
.order-upload-item.doppio .order-upload-state{background:var(--amber-bg);color:var(--amber)}
.order-upload-item.errore{border-color:color-mix(in srgb,var(--red) 30%,var(--line))}.order-upload-item.errore .order-upload-state{background:var(--red-bg);color:var(--red)}
.order-upload-open .icon{width:14px;height:14px}
.order-article-choices{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;max-height:320px;overflow:auto;padding:2px}
.order-article-choice{position:relative;cursor:pointer}
.order-article-choice input{position:absolute;opacity:0;pointer-events:none}
.order-article-choice span{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.order-article-choice strong{font-size:13px}.order-article-choice small{font-size:11px;color:var(--muted)}
.order-article-choice input:checked+span{border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 14%,transparent)}
.order-article-choice input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
.order-point-place{display:flex;align-items:center;gap:7px;font-size:12px}.order-point-place .icon{width:14px;height:14px}
/* DDT nato da un ordine */
.ddt-from-order,.ddt-order-link{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid color-mix(in srgb,var(--blue) 25%,var(--line));border-radius:12px;background:var(--blue-bg)}
.ddt-from-order>.icon,.ddt-order-link>.icon{width:18px;height:18px;color:var(--blue);flex:0 0 auto}
.ddt-from-order>span,.ddt-order-link>span:first-of-type{display:grid;gap:1px}
.ddt-from-order small,.ddt-order-link small{font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.ddt-from-order strong,.ddt-order-link strong{font-size:13px;color:var(--ink)}
.ddt-order-link{width:100%;font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease}
.ddt-order-link:hover{border-color:var(--blue)}.ddt-order-link:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ddt-order-link>.order-pill{margin-left:auto}
.ddt-order-lines-head{margin-bottom:10px}
.ddt-order-master{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--bg);cursor:pointer}
.ddt-order-master input{width:20px;height:20px;margin-top:1px;accent-color:var(--green);flex:0 0 auto}
.ddt-order-master strong{display:block;font-size:13px}.ddt-order-master small{display:block;font-size:11px;color:var(--muted)}
.ddt-order-table td{vertical-align:middle}
.ddt-order-table input:not([type=checkbox]){width:100%;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font:inherit;font-size:14px}
.ddt-order-qty{max-width:120px;text-align:right}
.ddt-order-qty.invalid{border-color:var(--red);box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 15%,transparent)}
.ddt-order-lot,.ddt-order-expiry{max-width:130px}
/* «Tutto»: interruttore a pastiglia con casella quadrata vera, mai deformata dallo stile dei campi di testo. */
.ddt-order-all-cell{text-align:center}
.ddt-order-all{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 12px 0 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.ddt-order-all input{flex:0 0 auto;width:18px;height:18px;min-height:0;margin:0;padding:0;accent-color:var(--green);cursor:pointer}
.ddt-order-all:hover{border-color:var(--green)}
.ddt-order-all:has(input:checked){border-color:var(--green);background:var(--tint);color:var(--green)}
.ddt-order-all:has(input:focus-visible){outline:2px solid var(--green);outline-offset:2px}
.ddt-order-selected td{background:color-mix(in srgb,var(--green) 5%,var(--surface))}
.ddt-order-done td,.ddt-order-missing td{opacity:.7}
.ddt-order-complete{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--green)}.ddt-order-complete .icon{width:14px;height:14px}
#ddt-order-totals{justify-content:flex-end}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .order-folder-main{padding:10px}
 .order-folder-icon{width:36px;height:36px}
 .order-summary{flex-direction:column;align-items:stretch}
 .order-upload-item{grid-template-columns:34px minmax(0,1fr) auto}.order-upload-size{display:none}
 .order-upload-open{grid-column:1/-1}
 .ddt-order-qty,.ddt-order-lot,.ddt-order-expiry{max-width:none}
 .order-line-desc{max-width:none}
}
@media(prefers-reduced-motion:reduce){.order-folder,.order-ddt,.ddt-order-link{transition:none}.order-upload-item{animation:none}}

/* Elenchi Premium di Gestione giacenze (r17) — DDT e Ordini condividono lo stesso impianto: fascia filtri fissa sotto
   la testata, intestazione della tabella fissa sotto la fascia, miniature degli articoli e pastiglie di stato a colori.
   Sotto i 1181 px la tabella diventa una griglia di schede; sul telefono la fascia tiene ricerca, Azzera e Filtri, e il
   resto si apre soltanto dal comando. Le misure sono dichiarate: nessuna colonna cresce a spese delle altre. */
.state-pill{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px 0 8px;border-radius:999px;background:var(--pill-bg,var(--bg));color:var(--pill-fg,var(--muted));font-size:11px;font-weight:800;letter-spacing:.2px;line-height:1;white-space:nowrap}
.state-pill .icon{width:13px;height:13px;flex:0 0 auto}
.t-amber{--pill-bg:var(--amber-bg);--pill-fg:var(--amber);--chip-tone:var(--amber)}
.t-green{--pill-bg:var(--green-bg);--pill-fg:var(--green);--chip-tone:var(--green)}
.t-blue{--pill-bg:var(--blue-bg);--pill-fg:var(--blue);--chip-tone:var(--blue)}
.t-violet{--pill-bg:var(--violet-bg);--pill-fg:var(--violet);--chip-tone:var(--violet)}
.t-muted{--pill-bg:var(--bg);--pill-fg:var(--muted);--chip-tone:var(--muted)}
/* Fascia */
.list-deck .devices-deck-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.list-deck .devices-deck-head h2{margin:0}
.list-deck-summary{display:flex;align-items:center;gap:8px;margin-left:auto}
.list-deck-toggle{display:none;align-items:center;gap:7px;min-height:44px;padding-inline:12px}
.list-deck-toggle .icon{width:16px;height:16px}
.list-deck-toggle[aria-expanded="true"]{background:var(--tint);border-color:var(--green);color:var(--green)}
.list-deck-grid{display:grid;gap:14px;align-items:end}
.list-deck-label{display:block;margin-bottom:7px;font-size:11px;font-weight:800;color:var(--ink)}
.list-deck-reset .btn{min-height:44px;white-space:nowrap}
.list-deck-context{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 3px 0 11px;border:1px solid color-mix(in srgb,var(--green) 30%,var(--line));border-radius:999px;background:var(--tint);color:var(--green);font-size:12px;font-weight:800;max-width:100%}
.list-deck-context>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.list-deck-context .icon{width:14px;height:14px;flex:0 0 auto}
.list-deck-context button{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:999px;background:transparent;color:inherit;cursor:pointer}
.list-deck-context button:hover{background:color-mix(in srgb,var(--green) 14%,transparent)}
.list-deck-context button:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.ddt-deck-grid{grid-template-columns:minmax(260px,1fr) minmax(330px,390px) auto;grid-template-areas:"search period reset" "status status committed"}
.orders-deck-grid{grid-template-columns:minmax(240px,1fr) minmax(330px,390px) auto;grid-template-areas:"search period reset" "status status status"}
.orders-deck-grid .list-period{grid-area:period;min-width:0}
.list-deck-grid>.list-deck-more{display:contents}
.list-deck-search{grid-area:search;min-width:0}
.list-deck-reset{grid-area:reset}
.ddt-deck-grid .list-period{grid-area:period;min-width:0}
.list-deck-grid .ddt-status-field{grid-area:status;min-width:0;display:block}
.ddt-deck-grid .ddt-committed{grid-area:committed;justify-self:end}
.list-period .devices-period{min-height:44px}
/* Testata: i comandi restano in riga accanto al testo; e' il testo, lungo, a restringersi. */
.ddt-head>div:first-child,.nso-orders-page .page-head>div:first-child{flex:1 1 auto;min-width:0}
.ddt-head .head-actions,.nso-orders-page .page-head .head-actions{flex:0 0 auto;flex-wrap:nowrap;align-self:flex-end}
@media(min-width:801px) and (max-width:1180px){.ddt-head{flex-direction:column;align-items:stretch}.ddt-head .head-actions{align-self:flex-start}}
/* Pastiglie di stato della fascia: il tono dice di che stato si parla, il numero quanti sono. */
.ddt-status-chips{display:flex;flex-wrap:wrap;gap:6px}
.ddt-status-chip{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:0 5px 0 13px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
.ddt-status-chip>span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.ddt-status-chip[class*=" t-"]>span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--chip-tone)}
.ddt-status-chip>strong{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--bg);font-size:11px;font-variant-numeric:tabular-nums;transition:background-color .15s ease,color .15s ease}
.ddt-status-chip:hover{border-color:color-mix(in srgb,var(--chip-tone,var(--green)) 55%,var(--line))}
.ddt-status-chip.active{border-color:var(--chip-tone,var(--green));background:color-mix(in srgb,var(--chip-tone,var(--green)) 11%,var(--surface));box-shadow:0 0 0 1px var(--chip-tone,var(--green)) inset}
.ddt-status-chip.active>strong{background:var(--chip-tone,var(--green));color:var(--surface)}
.ddt-status-chip:focus-visible{outline:2px solid var(--green);outline-offset:2px}
/* «Da gestire» (r27): la somma di nuovi, in evasione ed evasi parzialmente; il punto ne porta i tre colori. */
.ddt-status-chip.t-todo>span::before{background:conic-gradient(var(--blue) 0 120deg,var(--amber) 0 240deg,var(--violet) 0)}
.ddt-committed{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:0 14px;border:1px solid color-mix(in srgb,var(--amber) 28%,var(--line));border-radius:12px;background:var(--amber-bg);color:var(--ink);font-size:12px;white-space:nowrap}
.ddt-committed .icon{width:16px;height:16px;color:var(--amber)}
.ddt-committed strong{font-size:14px;font-variant-numeric:tabular-nums}
.ddt-committed.zero{border-color:var(--line);background:var(--surface);color:var(--muted)}.ddt-committed.zero .icon{color:var(--muted)}
/* Griglia */
.list-grid-panel{overflow:visible;border-top-left-radius:0;border-top-right-radius:0}
.list-grid-panel>.table-wrap{overflow:visible}
.list-grid{table-layout:fixed;width:100%}
.list-grid>thead{position:sticky;top:calc(var(--workspace-header-height,0px) + var(--devices-deck-height,0px) - 1px);z-index:13}
.list-grid>thead>tr>th{background:var(--bg);box-shadow:inset 0 -1px 0 var(--line)}
.list-grid>tbody>tr{cursor:pointer;transition:background-color .15s ease}
.list-grid>tbody>tr>td{padding:14px 12px;vertical-align:middle;overflow-wrap:anywhere}
.list-grid>thead>tr>th:first-child,.list-grid>tbody>tr>td:first-child{padding-left:20px}
.list-grid>tbody>tr:hover>td{background:color-mix(in srgb,var(--tint) 60%,var(--surface))}
.list-grid>tbody>tr:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.list-grid>tbody>tr:hover .ddt-row-go{color:var(--green);transform:translateX(3px)}
.ddt-row-cancelled>td,.order-row-cancelled>td{color:var(--muted)}
.ddt-row-cancelled .art-thumb,.order-row-cancelled .art-thumb,.ddt-row-cancelled .ddt-number{opacity:.6}
.ddt-table>thead>tr>th:nth-child(1){width:136px}.ddt-table>thead>tr>th:nth-child(2){width:25%}
.ddt-table>thead>tr>th:nth-child(4){width:108px}.ddt-table>thead>tr>th:nth-child(5){width:156px}.ddt-table>thead>tr>th:nth-child(6){width:96px}
.order-table>thead>tr>th:nth-child(1){width:216px}.order-table>thead>tr>th:nth-child(2){width:17%}
.order-table>thead>tr>th:nth-child(4){width:152px}.order-table>thead>tr>th:nth-child(5){width:172px}.order-table>thead>tr>th:nth-child(6){width:96px}
/* Identita' del documento: numero e anno sulla stessa linea di base, la data sotto, mai a capo. */
.ddt-id{display:grid;justify-items:start;gap:6px}
.ddt-id-number{display:flex;align-items:baseline;gap:1px;white-space:nowrap}
.ddt-id-number .ddt-number{display:inline;font:800 21px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:-.03em;color:var(--ink)}
.ddt-id-year{font:700 12px/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--muted)}
.ddt-id-date{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.ddt-id-date .icon{width:13px;height:13px;flex:0 0 auto}
.ddt-id .ddt-kind-tag{margin-top:0}
.ddt-recipient-name{font-size:13px!important;font-weight:800;line-height:1.3;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ddt-place{display:flex;align-items:flex-start;gap:5px;margin-top:5px;font-size:12px;color:var(--muted);line-height:1.35}
.ddt-place .icon{width:13px;height:13px;flex:0 0 auto;margin-top:1px}
.ddt-place>span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ddt-order-ref{display:inline-flex;align-items:center;gap:5px;margin-top:8px;padding:3px 9px 3px 7px;border-radius:999px;background:var(--blue-bg);color:var(--blue);font-size:11px;font-weight:800;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ddt-order-ref .icon{width:12px;height:12px;flex:0 0 auto}
.ddt-order-ref.muted-ref{background:var(--bg);color:var(--muted);font-weight:700}
.ddt-packages{display:grid;justify-items:end;gap:3px}
.ddt-packages strong{font-size:21px!important;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.ddt-packages small{font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.ddt-cell-packages{text-align:right}
.ddt-cell-status .state-pill{max-width:100%}
.ddt-mail-state{display:flex;align-items:center;gap:5px;margin-top:7px;font-size:11px;font-weight:800;white-space:nowrap}
.ddt-mail-state .icon{width:13px;height:13px}
.ddt-mail-state.pending{color:var(--amber)}.ddt-mail-state.sent{color:var(--green)}
.ddt-cancel-reason{display:block;margin-top:6px;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ddt-cell-actions{text-align:right;white-space:nowrap}
.ddt-cell-actions .ddt-pdf{width:44px;height:44px;min-height:44px;vertical-align:middle}
.ddt-row-go{display:inline-grid;place-items:center;width:22px;vertical-align:middle;color:var(--muted);transition:transform .18s ease,color .18s ease}
.ddt-row-go .icon{width:16px;height:16px}
/* Miniature degli articoli: foto della tipologia mai ingrandita oltre la sua misura, codice e quantita'. */
.art-thumbs{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.art-thumb{display:inline-grid;grid-template-columns:40px minmax(0,auto);align-items:center;gap:9px;min-height:48px;max-width:100%;padding:4px 12px 4px 4px;border:1px solid var(--line);border-radius:13px;background:var(--surface);box-shadow:0 1px 2px #17342b0a}
.art-thumb-photo{display:grid;place-items:center;width:40px;height:40px;border:1px solid color-mix(in srgb,var(--line) 75%,transparent);border-radius:10px;background:linear-gradient(145deg,var(--surface),var(--tint));overflow:hidden;color:var(--muted)}
.art-thumb-photo img{display:block;max-width:36px;max-height:36px;width:auto;height:auto;object-fit:contain}
.art-thumb-photo .icon{width:18px;height:18px}
.art-thumb-photo.no-photo{border-style:dashed;background:color-mix(in srgb,var(--green) 4%,var(--surface))}
.art-thumb-copy{display:grid;gap:2px;min-width:0;line-height:1.15}
.art-thumb-copy strong{display:block;font:800 12px/1.15 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;letter-spacing:.02em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}
.art-thumb-copy small{font-size:12px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.art-thumb-copy small>span[aria-hidden]{color:var(--muted);font-weight:600}
.art-thumb.manual .art-thumb-copy strong{font-family:inherit!important;letter-spacing:0;max-width:180px}
.art-thumb.manual .art-thumb-photo{color:var(--blue)}
.art-thumb.unmatched{border-color:color-mix(in srgb,var(--amber) 45%,var(--line));background:color-mix(in srgb,var(--amber) 6%,var(--surface))}
.art-thumb.unmatched .art-thumb-photo{color:var(--amber);border-color:color-mix(in srgb,var(--amber) 35%,var(--line))}
.art-thumbs-more{display:inline-grid;place-items:center;min-width:48px;height:48px;padding:0 10px;border-radius:13px;background:var(--tint);color:var(--green);font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
/* Ordini: identita', date, righe da associare */
.order-cell-id .order-number{display:inline;font:800 15px/1.1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.01em;color:var(--ink)}
.order-id{display:grid;gap:5px;justify-items:start}
.order-id-line{display:grid;grid-template-columns:62px auto;align-items:baseline;gap:6px;font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}
.order-id-line small{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.order-cig{display:block;margin-top:5px;font:700 11px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--muted)}
.order-unmatched{display:inline-flex;align-items:center;gap:5px;margin-top:8px;font-size:11px;font-weight:800;color:var(--amber)}
.order-unmatched .icon{width:13px;height:13px}
/* Tablet e desktop stretto: la tabella diventa una griglia di schede. */
@media(max-width:1180px){
 .list-deck{border-radius:var(--radius)!important;border-bottom:1px solid var(--line)!important;margin-bottom:14px!important}
 .list-grid-panel{border:0;background:transparent;box-shadow:none;padding:0;border-radius:0}
 .list-grid,.list-grid>tbody{display:block;width:100%}
 .list-grid>thead{display:none}
 .list-grid>tbody{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,390px),1fr));gap:12px}
 .list-grid>tbody>tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:0;row-gap:12px;padding:15px 16px 12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 1px 2px #17342b0a,0 10px 24px -20px #17342b55}
 .list-grid>tbody>tr>td{display:block;padding:0!important;border:0;min-width:0;background:transparent!important}
 .list-grid>tbody>tr:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
 .list-grid>tbody>tr:active{background:var(--tint)}
 .list-deck-toggle{display:inline-flex}
 .ddt-deck-grid,.orders-deck-grid{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"search reset" "more more";gap:10px}
 .list-deck-search{display:block}
 .list-deck-search>label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
 .list-deck-grid>.list-deck-more{display:none;grid-area:more}
 .list-deck.deck-open .list-deck-grid>.list-deck-more{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding-top:12px;border-top:1px solid var(--line)}
 .list-deck-grid .list-period,.list-deck-grid .ddt-status-field,.ddt-deck-grid .ddt-committed{grid-area:auto}
 .list-deck-more .list-period{flex:1 1 340px;max-width:430px}
 .list-deck-more .ddt-status-field{flex:1 1 100%;order:3}
 .list-grid>tbody>tr::before{content:"";grid-row:4;grid-column:1/-1;align-self:start;border-top:1px solid var(--line)}
 .ddt-row{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"id id status" "recipient recipient recipient" "articles articles articles" "packages mail actions"}
 .order-row{grid-template-areas:"id status" "point point" "articles articles" "progress actions"}
 .ddt-cell-id,.order-cell-id{grid-area:id}
 .order-cell-status{grid-area:status;display:grid!important;justify-items:end;align-content:start;gap:6px;padding-left:12px!important}
 .ddt-cell-status{display:contents!important}
 .ddt-cell-status>.state-pill{grid-area:status;justify-self:end;align-self:start;margin-left:12px}
 .ddt-cell-status>.ddt-mail-state,.ddt-cell-status>.ddt-cancel-reason{grid-area:mail;align-self:center;margin:0;padding:11px 0 0 12px}
 .ddt-cell-status>.ddt-cancel-reason{max-width:170px}
 .ddt-cell-recipient{grid-area:recipient}.order-cell-point{grid-area:point}
 .ddt-cell-articles,.order-cell-articles{grid-area:articles}
 .ddt-cell-packages,.order-cell-progress{grid-area:packages;text-align:left;padding-top:11px!important;display:flex!important;align-items:center}
 .order-cell-progress{grid-area:progress}
 .ddt-cell-actions,.order-cell-actions{grid-area:actions;display:flex!important;align-items:center;justify-content:flex-end;gap:2px;padding-top:11px!important;padding-left:12px!important}
 .ddt-id{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
 .ddt-packages{display:flex;align-items:baseline;gap:7px;justify-items:start}
 .ddt-packages strong{font-size:18px!important}
 .art-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
 .art-thumb{width:100%}
 .art-thumb-copy strong{max-width:none}
 .order-id{display:grid;grid-template-columns:auto;gap:4px}
 .order-progress-cell{min-width:0}
}
/* Telefono: fascia compatta, il resto dietro «Filtri». */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .list-deck{padding:12px 14px!important}
 .list-deck .devices-deck-head{margin-bottom:10px;gap:8px}
 .list-deck .devices-deck-head h2{font-size:15px}
 .list-deck-context{min-height:44px;order:3;flex:1 1 100%;justify-content:space-between}
 .list-deck-context button{width:40px;height:40px}
 .list-deck-search .search{min-height:44px}
 .list-deck-search input{font-size:16px}
 .list-deck-reset .btn{width:44px;min-width:44px;padding:0;justify-content:center;gap:0;font-size:0}
 .list-deck-reset .btn .icon{width:18px;height:18px}
 .order-cell-progress .order-progress-cell{flex:1}
 .list-deck.deck-open .list-deck-grid>.list-deck-more{display:grid;gap:14px;padding-top:6px}
 .list-deck-more .list-period{max-width:none}
 .ddt-deck-grid .ddt-committed{justify-self:stretch}
 .list-period input{font-size:16px}
 .list-deck .list-period{display:block}
 .list-period .devices-period{display:grid;grid-template-columns:1fr;gap:8px}
 .list-period .devices-period-sep{display:none}
 .list-period .date-entry{grid-template-columns:34px minmax(0,1fr) 44px;align-items:center}
 .list-period .date-entry::before{content:attr(data-label);font-size:12px;font-weight:800;color:var(--muted)}
 .ddt-status-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .ddt-status-chip>span{white-space:normal;min-width:0;line-height:1.2;text-align:left}
 .ddt-status-chip{min-height:44px;justify-content:space-between;padding-left:12px}
 .ddt-status-chip.t-todo{grid-column:1/-1}
 .ddt-committed{justify-content:center}
 .devices-shell .ddt-head .head-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
 .devices-shell .ddt-head .head-actions .btn{justify-content:center;grid-column:auto}
 .devices-shell .ddt-head .head-actions .btn.primary{grid-column:1/-1;order:-1;min-height:48px}
 .devices-shell .nso-orders-page .page-head .head-actions{grid-template-columns:1fr;width:100%}.devices-shell .nso-orders-page .page-head .head-actions .btn{width:100%;justify-content:center;min-height:48px;grid-column:auto}
 .list-grid>tbody{gap:10px}
 .list-grid>tbody>tr{padding:14px 14px 10px}
 .ddt-id-number .ddt-number{font-size:20px}
 .art-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
 .order-folders{display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:16px;gap:8px;margin:0 -16px 12px;padding:2px 16px 8px;scrollbar-width:none}
 .order-folders::-webkit-scrollbar{display:none}
 .order-folder{flex:0 0 min(76%,250px);scroll-snap-align:start}
 .order-folder-main{grid-template-columns:36px minmax(0,1fr);min-height:64px}
}
@media(max-width:380px){.list-deck-summary .devices-count-pill{display:none}.ddt-status-chip>span{font-size:11px}.art-thumb{grid-template-columns:36px minmax(0,auto);gap:7px;padding-right:8px}.art-thumb-photo{width:36px;height:36px}.art-thumb-photo img{max-width:32px;max-height:32px}}
@media(prefers-reduced-motion:reduce){.ddt-status-chip,.ddt-status-chip>strong,.list-grid>tbody>tr,.ddt-row-go{transition:none}.list-grid>tbody>tr:hover .ddt-row-go{transform:none}}

/* Pannello dei file nell'app della Home (r17): foglio dal basso sul telefono, scheda al centro sugli schermi grandi.
   E' un <dialog> proprio, non la finestra condivisa #modal: si apre anche sopra una finestra gia' aperta senza
   distruggerla, per esempio dall'Elenco smaltimenti. */
.file-sheet{position:fixed;inset:auto 0 0 0;width:min(560px,100%);max-width:100%;max-height:100%;margin:0 auto;padding:0;border:0;background:transparent;color:var(--ink);overflow:visible}
.file-sheet::backdrop{background:#0c1f1b8c}
.file-sheet[open]{animation:file-sheet-in .22s ease-out}
@keyframes file-sheet-in{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
.file-sheet-card{display:grid;gap:16px;padding:10px 18px calc(18px + env(safe-area-inset-bottom,0px));border:1px solid var(--line);border-bottom:0;border-radius:22px 22px 0 0;background:var(--surface);box-shadow:0 -18px 48px -24px #0c1f1b80}
.file-sheet-grip{justify-self:center;width:42px;height:5px;border-radius:999px;background:var(--line)}
.file-sheet-head{display:grid;grid-template-columns:48px minmax(0,1fr) 44px;gap:12px;align-items:center}
.file-sheet-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--green-bg);color:var(--green)}
.file-sheet-icon .icon{width:22px;height:22px}
.file-sheet-icon.error{background:var(--red-bg);color:var(--red)}
.file-sheet-head strong{display:block;font-size:15px;line-height:1.3;overflow-wrap:anywhere}
.file-sheet-head small{display:block;margin-top:3px;font-size:12px;color:var(--muted)}
.file-sheet-close{width:44px;height:44px;min-height:44px}
.file-sheet-actions{display:grid;gap:10px}
.file-sheet-actions .btn{min-height:52px;justify-content:center;font-size:15px}
.file-sheet-actions .btn .icon{width:18px;height:18px}
.file-sheet-note{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:12px;line-height:1.45;color:var(--muted)}
.file-sheet-note .icon{width:15px;height:15px;flex:0 0 auto;margin-top:1px}
@media(min-width:801px){.file-sheet{inset:0;height:max-content;margin:auto}.file-sheet-card{border-bottom:1px solid var(--line);border-radius:20px}.file-sheet-grip{display:none}.file-sheet-actions{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.file-sheet[open]{animation:none}}

/* Smaltimento sacche su telefono: i due comandi della testata a tutta riga, il primario per primo. La regola generica
   a tre colonne lasciava «Elenco smaltimenti» in un terzo della riga, spezzato su due linee. */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .devices-shell .odl-head .head-actions{display:grid;grid-template-columns:1fr;gap:8px;width:100%}
 .devices-shell .odl-head .head-actions .btn{width:100%;min-height:46px;justify-content:center;white-space:nowrap;grid-column:auto}
 .devices-shell .odl-head .head-actions .btn.primary{order:-1;min-height:50px}
 /* La ricerca di Task e Smaltimenti non riserva piu' la riga dell'etichetta nascosta: niente vuoto sopra il campo. */
 .devices-shell .task-deck .task-search{display:block}
 /* Tessere dei conteggi: stessa lettura in tutte e tre, icona, titoletto, numero ed etichetta centrati. */
 .devices-shell .odl-kpis>article{display:grid;justify-items:center;align-content:start;gap:8px;text-align:center}
 .devices-shell .odl-kpis>article>div{display:grid;grid-template-columns:1fr;justify-items:center;align-items:start;gap:3px}
 .devices-shell .odl-kpis>article>div>small{order:1}
 .devices-shell .odl-kpis>article>div>strong{order:2;font-size:24px;line-height:1.05}
 .devices-shell .odl-kpis>article>div>p{order:3;line-height:1.3}
}

/* Safari su iPhone: il campo data nativo ha una larghezza propria che ignora quella del contenitore e sborda a destra.
   Il simulatore di Chrome non lo mostra perche' usa un altro motore. Solo su iOS (-webkit-touch-callout esiste soltanto
   li'): l'aspetto nativo si toglie, la larghezza torna quella del campo, il valore si allinea a sinistra. */
@supports (-webkit-touch-callout:none){
 input[type="date"],input[type="datetime-local"],input[type="time"],input[type="month"]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%;box-sizing:border-box;min-height:44px;text-align:left}
 input[type="date"]::-webkit-date-and-time-value,input[type="datetime-local"]::-webkit-date-and-time-value,input[type="time"]::-webkit-date-and-time-value,input[type="month"]::-webkit-date-and-time-value{min-height:1.4em;text-align:left}
}

/* Novita' generali dell'aggiornamento (Operatore ASP senza novita' proprie): la scintilla dorata al posto della spunta. */
.upd-notes.generali li .icon{color:#ffd48a}

/* DDT da ordine (r17, rettifica del titolare): modale largo su desktop senza scorrimento orizzontale; su telefono ogni
   riga dell'ordine e' una scheda con la miniatura in alto al centro, i quattro numeri, la quantita' con «Tutto» e sotto
   lotto e scadenza. Comandi in fondo su griglia, pastiglie sempre dentro la loro scheda. */
dialog.devices-wide-modal.ddt-modal{width:min(1240px,calc(100% - 32px))}
.ddt-modal .ddt-form,.ddt-modal .ddt-form-section,.ddt-modal .devices-form-hero,.ddt-modal .ddt-from-order{min-width:0;max-width:100%}
.ddt-recipient-copy{min-width:0}.ddt-recipient-copy strong,.ddt-recipient-copy small{overflow-wrap:anywhere}
.ddt-recipient-place{min-width:0;max-width:100%}.ddt-recipient-place>span{min-width:0;overflow-wrap:anywhere}
/* Card destinatario del DDT (r19): la colonna del testo e' vincolata alla card, cosi' la pillola del luogo non ne esce mai. Il luogo va a capo invece di troncarsi: si legge per intero prima di scegliere. */.ddt-recipient-copy{grid-template-columns:minmax(0,1fr)}.ddt-recipient-copy .ddt-recipient-place{width:fit-content;max-width:100%;align-items:flex-start;border-radius:10px}.ddt-recipient-copy .ddt-recipient-place .icon{margin-top:1px}.ddt-recipient-copy .ddt-recipient-place span{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.ddt-order-table{table-layout:fixed;width:100%}
.ddt-order-table>thead>tr>th:nth-child(2),.ddt-order-table>thead>tr>th:nth-child(4){width:84px}
.ddt-order-table>thead>tr>th:nth-child(3){width:104px}.ddt-order-table>thead>tr>th:nth-child(5){width:94px}
.ddt-order-table>thead>tr>th:nth-child(6){width:128px}.ddt-order-table>thead>tr>th:nth-child(7){width:104px;text-align:center}
.ddt-order-table>thead>tr>th:nth-child(8){width:124px}.ddt-order-table>thead>tr>th:nth-child(9){width:108px}
.ddt-order-table td{overflow-wrap:anywhere}
.ddt-order-article{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center}
.ddt-order-article-copy{display:grid;gap:2px;min-width:0}
.ddt-order-photo{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:linear-gradient(145deg,var(--surface),var(--tint));overflow:hidden;color:var(--muted)}
.ddt-order-photo img{display:block;max-width:38px;max-height:38px;width:auto;height:auto;object-fit:contain}
.ddt-order-photo .icon{width:18px;height:18px}
.ddt-order-photo.no-photo{border-style:dashed;background:color-mix(in srgb,var(--green) 4%,var(--surface))}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .ddt-order-table,.ddt-order-table>tbody{display:block;width:100%}
 .ddt-order-table>thead{display:none}
 .data-table.responsive.ddt-order-table>tbody>tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"art art art art" "req del res disp" "qty qty all all" "lot lot exp exp";gap:10px 8px;margin:0 0 10px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 1px 2px #17342b0a}
 .data-table.responsive.ddt-order-table>tbody>tr>td{display:block;min-width:0;padding:0;border:0;text-align:left}
 .ddt-order-table>tbody>tr>td:nth-child(1){grid-area:art}.ddt-order-table>tbody>tr>td:nth-child(2){grid-area:req}.ddt-order-table>tbody>tr>td:nth-child(3){grid-area:del}
 .ddt-order-table>tbody>tr>td:nth-child(4){grid-area:res}.ddt-order-table>tbody>tr>td:nth-child(5){grid-area:disp}.ddt-order-table>tbody>tr>td:nth-child(6){grid-area:qty}
 .ddt-order-table>tbody>tr>td:nth-child(7){grid-area:all;align-self:end}.ddt-order-table>tbody>tr>td:nth-child(8){grid-area:lot}.ddt-order-table>tbody>tr>td:nth-child(9){grid-area:exp}
 .data-table.responsive.ddt-order-table>tbody>tr>td.ddt-order-art:before{display:none}
 .ddt-order-article{grid-template-columns:1fr;justify-items:center;text-align:center;gap:8px}
 .ddt-order-photo{width:58px;height:58px;border-radius:14px}.ddt-order-photo img{max-width:52px;max-height:52px}
 .ddt-order-article-copy strong{font-size:15px}
 .ddt-order-table>tbody>tr>td:nth-child(n+2):nth-child(-n+5){display:grid;justify-items:center;align-content:center;gap:2px;min-height:52px;padding:6px 4px;border-radius:12px;background:var(--bg);font-size:15px;font-weight:800;text-align:center}
 .ddt-order-table>tbody>tr>td:nth-child(n+2):nth-child(-n+5):before{margin:0;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
 .ddt-order-table>tbody>tr>td:nth-child(n+2):nth-child(-n+5) .ddt-sub{font-size:10px;font-weight:700}
 .ddt-order-table input:not([type=checkbox]){width:100%;min-height:44px;font-size:16px}
 .ddt-order-qty{max-width:none;text-align:center;font-weight:800}
 .ddt-order-all{display:flex;width:100%;min-height:44px;border-radius:12px;font-size:14px}
 .ddt-order-all input{width:20px;height:20px}
 .ddt-order-table>tbody>tr>td:nth-child(7):before{display:none}
 .ddt-order-done td:nth-child(6){grid-column:1/-1}
 .ddt-order-lines-head .ddt-order-master{padding:12px}
 .ddt-modal .modal-footer{display:grid;grid-template-columns:1fr 1fr;gap:8px}
 .ddt-modal .modal-footer>.btn{width:100%;min-height:48px;justify-content:center;margin:0}
 .ddt-modal .modal-footer>.ddt-preview{grid-column:1/-1;order:-1}
 .ddt-modal .modal-footer>[type=submit]{white-space:nowrap}
}

/* Percorso di ritorno fra le schede (r17): «Torna a …» sopra la testata, con il nome della scheda precedente. */
.back-trail{display:inline-flex;align-items:center;gap:8px;max-width:100%;min-height:40px;margin:0 0 14px;padding:0 16px 0 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font:inherit;font-size:13px;cursor:pointer;transition:border-color .15s ease,color .15s ease}
.back-trail>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.back-trail strong{color:var(--ink)}
.back-trail .icon{width:16px;height:16px;flex:0 0 auto;color:var(--green)}
.back-trail:hover{border-color:var(--green);color:var(--ink)}
.back-trail:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.back-trail{min-height:44px;width:100%;justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){.back-trail{transition:none}}

/* Quantita' dell'NSO incompatibili con la confezione (r17): allarme nella scheda, cella del richiesto che lampeggia tre
   volte e poi resta rossa, avviso sull'elenco, sul caricamento e nel modulo di consegna. */
.order-pack-alert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;margin:0 0 16px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--red) 40%,var(--line));border-radius:14px;background:var(--red-bg);color:var(--ink)}
.order-pack-alert>.icon{width:22px;height:22px;margin-top:1px;color:var(--red)}
.order-pack-alert strong{display:block;font-size:14px;color:var(--red)}
.order-pack-alert ul{margin:8px 0 6px;padding-left:18px;font-size:13px;line-height:1.5}
.order-pack-alert p{margin:0;font-size:12px;color:var(--muted)}
.order-pack-cell{position:relative;background:color-mix(in srgb,var(--red) 8%,var(--surface))!important;box-shadow:inset 0 0 0 2px var(--red)}
.order-pack-cell::after{content:"";position:absolute;inset:0;border-radius:4px;box-shadow:0 0 0 5px color-mix(in srgb,var(--red) 38%,transparent);opacity:0;pointer-events:none;animation:order-pack-pulse .9s ease-in-out 3}
@keyframes order-pack-pulse{50%{opacity:1}}
.order-pack-cell strong{color:var(--red)}
.order-pack-cell .ddt-sub{color:var(--red)!important;font-weight:800}
.order-pack-flag{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:2px 9px;border-radius:999px;background:var(--red-bg);color:var(--red);font-size:11px;font-weight:800;white-space:nowrap}
.order-pack-flag .icon{width:12px;height:12px}
.art-thumb.pack-issue{border-color:color-mix(in srgb,var(--red) 55%,var(--line));background:color-mix(in srgb,var(--red) 6%,var(--surface))}
.art-thumb.pack-issue .art-thumb-copy small{color:var(--red)}
.order-upload-item.rettifica{border-color:color-mix(in srgb,var(--red) 35%,var(--line))}
.order-upload-item.rettifica .order-upload-state{background:var(--red-bg);color:var(--red)}
.order-upload-item.rettifica .order-upload-copy small{color:var(--red);white-space:normal}
.ddt-order-pack>td{background:color-mix(in srgb,var(--red) 4%,var(--surface))}
.ddt-order-pack-note{display:inline-flex;align-items:center;gap:6px;color:var(--red);font-size:12px;font-weight:800;white-space:normal;text-align:left}
.ddt-order-pack-note .icon{width:14px;height:14px;flex:0 0 auto}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .order-pack-alert{grid-template-columns:auto minmax(0,1fr)}
 .order-pack-alert>.btn{grid-column:1/-1;width:100%;min-height:44px;justify-content:center}
 .order-cell-status .order-pack-flag{margin-top:0}
 .ddt-order-pack>td:nth-child(6){grid-column:1/-1}
}
@media(prefers-reduced-motion:reduce){.order-pack-cell::after{animation:none}}

/* Fumetto di data e ora su Consegnato e Inviato (r17): stesso componente del motivo di Sospesa, allineato a destra
   perche' vive nell'ultima colonna utile e non deve uscire dalla tabella. */
.hover-tip:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.hover-tip.tip-end::after{left:auto;right:0}

/* Modulo DDT: nelle righe miste (pastiglie e campi) etichette e controlli stanno sulla stessa linea di base; il campo
   non porta il proprio margine inferiore dentro la riga. Data e ora del trasporto si scelgono: data italiana + ora. */
.ddt-form-row>.field,.ddt-form-row>fieldset{margin:0}
.ddt-form-row>.field{gap:6px}
.ddt-transport-at{margin:0}
.ddt-transport-when{display:grid;grid-template-columns:minmax(0,1fr) 118px;gap:8px;align-items:center}
/* Ora del trasporto: campo con orologio e griglia di orari per fascia, dentro il modulo (mai una finestra sopra l'altra). */
.ddt-time-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 10px 0 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--muted);font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.ddt-time-trigger .icon{width:16px;height:16px;flex:0 0 auto}
.ddt-time-trigger.scelta{color:var(--ink);font-variant-numeric:tabular-nums}
.ddt-time-trigger.scelta .icon:first-child{color:var(--green)}
.ddt-time-trigger:hover,.ddt-time-trigger[aria-expanded="true"]{border-color:var(--green)}
.ddt-time-trigger:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.ddt-time-panel{display:block;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 14px 34px -24px #17342b66;animation:ddt-time-in .18s ease-out}
@keyframes ddt-time-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.ddt-time-panel[hidden]{display:none}
.ddt-time-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ddt-time-chip{min-height:40px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:800 13px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease}
.ddt-time-chip:hover{border-color:var(--green);background:var(--tint)}
.ddt-time-chip[aria-pressed="true"]{border-color:var(--green);background:var(--green);color:var(--surface)}
.ddt-time-chip:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.ddt-transport-when{grid-template-columns:minmax(0,1fr) 112px}.ddt-transport-when input{font-size:16px}.ddt-time-chips{grid-template-columns:repeat(3,minmax(0,1fr))}.ddt-time-chip{min-height:44px}}
@media(prefers-reduced-motion:reduce){.ddt-time-panel{animation:none}.ddt-time-trigger,.ddt-time-chip{transition:none}}

/* «Tutto» con disponibilita' inferiore al residuo: la quantita' proposta e' la massima consegnabile, e lo si dice. */
.ddt-order-hint{display:block;margin-top:5px;font-size:11px;font-weight:700;line-height:1.35;color:var(--amber);text-align:left}
.ddt-order-lines-error{margin:0 0 10px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--red) 35%,var(--line));border-radius:12px;background:var(--red-bg)}
/* Centro di costo della riga d'ordine: un NSO unisce piu' reparti, e due righe dello stesso articolo si distinguono. */
.ddt-order-cdc{display:inline-flex;align-self:start;margin-top:4px;padding:2px 8px;border-radius:999px;background:var(--blue-bg);color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.02em;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.ddt-order-cdc{align-self:center}}
/* Togli / Ripristina una riga dell'ordine nel DDT. */
.ddt-order-table>thead>tr>th:nth-child(10){width:52px}
.ddt-order-remove-cell{text-align:right}
.ddt-order-remove{width:40px;height:40px;min-height:40px;color:var(--muted)}
.ddt-order-remove:hover{color:var(--red);border-color:color-mix(in srgb,var(--red) 40%,var(--line))}
.ddt-order-removed>td{padding:8px 12px!important;background:var(--bg)}
.ddt-order-removed>td{display:table-cell}
.ddt-order-removed>td>*{vertical-align:middle}
.ddt-order-removed-copy{display:inline-flex;align-items:center;gap:8px;margin-right:12px;font-size:12px;color:var(--muted)}
.ddt-order-removed-copy .icon{width:14px;height:14px}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .data-table.responsive.ddt-order-table>tbody>tr{position:relative}
 .ddt-order-table>tbody>tr>td.ddt-order-remove-cell{position:absolute;top:8px;right:8px;padding:0}
 .ddt-order-remove{width:44px;height:44px;min-height:44px}
 .data-table.responsive.ddt-order-table>tbody>tr.ddt-order-removed{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;background:var(--bg)}
 .data-table.responsive.ddt-order-table>tbody>tr.ddt-order-removed>td{display:contents;background:none;padding:0!important}
 .data-table.responsive.ddt-order-table>tbody>tr.ddt-order-removed>td:before{display:none}
 .ddt-order-removed .btn{min-height:44px}
}

/* Anteprima delle email della piattaforma (r17, 25/09/2026): chi invia vede il messaggio vero, composto dal server,
   con le intestazioni come in un client di posta. Il corpo sta in un riquadro isolato che ne conserva lo stile. */
.mail-preview{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
.mail-preview-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:color-mix(in srgb,var(--tint) 60%,var(--surface));border-bottom:1px solid var(--line)}
.mail-preview-title{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--green-dark)}
.mail-preview-title .icon{width:16px;height:16px}
.mail-preview-state{font-size:12px;color:var(--muted)}
.mail-preview.busy .mail-preview-state{color:var(--green-dark)}
.mail-preview.failed .mail-preview-state{color:var(--red)}
.mail-preview-meta{margin:0;display:grid;border-bottom:1px solid var(--line)}
.mail-preview-meta>div{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;padding:8px 14px;border-top:1px solid var(--line)}
.mail-preview-meta>div:first-child{border-top:0}
.mail-preview-meta>div[hidden]{display:none}
.mail-preview-meta dt{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);padding-top:2px}
.mail-preview-meta dd{margin:0;font-size:13px;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.mail-preview-subject dd{font-weight:700}
.mail-preview-chip{display:inline-block;margin:0 6px 4px 0;padding:1px 9px;border:1px solid var(--line);border-radius:999px;background:var(--bg);font-size:12px;line-height:20px}
.mail-preview-file{display:inline-flex;align-items:center;gap:9px;max-width:100%;padding:4px 12px 4px 4px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:12px;font-weight:600}
.mail-preview-file b{display:inline-grid;place-items:center;flex:0 0 26px;width:26px;height:30px;border-radius:5px;background:#c8413a;color:#fff;font-size:9px;letter-spacing:.4px}
.mail-preview-file span{min-width:0;overflow-wrap:anywhere}
.mail-preview-file small{color:var(--muted);font-weight:500;white-space:nowrap}
.mail-preview-body{position:relative;background:#f4f7f6}
.mail-preview-body iframe{display:block;width:100%;height:560px;border:0;background:#f4f7f6}
.mail-preview-veil{position:absolute;inset:0;background:#f4f7f6;opacity:0;pointer-events:none;transition:opacity .2s ease}
.mail-preview.busy .mail-preview-veil{opacity:.35}
.ddt-send-preview{margin-top:16px}
dialog.devices-wide-modal.ddt-send-modal{width:min(820px,calc(100% - 32px))}

/* Annullamento di un ordine errato con la segnalazione: form a sinistra, email vera a destra. */
dialog.devices-wide-modal.order-cancel-modal{width:min(760px,calc(100% - 32px))}
dialog.devices-wide-modal.order-cancel-modal.with-mail{width:min(1240px,calc(100% - 32px))}
.order-cancel{display:grid;gap:16px}
.order-cancel .field{margin:0}
.order-cancel .field-hint{display:block;margin:6px 0 0;font-size:12px;line-height:1.45;color:var(--muted);font-weight:400}
.order-issue-switch{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;min-height:44px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--tint) 45%,var(--surface));cursor:pointer}
.order-issue-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}
.order-issue-switch-track{position:relative;display:block;width:46px;height:28px;border-radius:999px;background:color-mix(in srgb,var(--muted) 45%,var(--line));transition:background-color .2s ease}
.order-issue-switch-track span{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s ease}
.order-issue-switch input:checked+.order-issue-switch-track{background:var(--green)}
.order-issue-switch input:checked+.order-issue-switch-track span{transform:translateX(18px)}
.order-issue-switch input:focus-visible+.order-issue-switch-track{outline:3px solid color-mix(in srgb,var(--green) 50%,transparent);outline-offset:2px}
.order-issue-switch-copy{min-width:0}
.order-issue-switch-copy strong{display:block;font-size:14px;color:var(--ink)}
.order-issue-switch-copy small{display:block;margin-top:2px;font-size:12px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}
.order-issue-switch.is-disabled{cursor:not-allowed;opacity:.7}
.order-issue{min-width:0;margin:0;padding:0;border:0}
.order-issue[hidden]{display:none}
.order-issue-grid{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:20px;align-items:start}
.order-issue-fields{display:grid;gap:14px}
.order-issue-fields textarea{min-height:220px;resize:vertical}
.order-issue-sent{display:flex;align-items:flex-start;gap:8px;margin:8px 0 0;font-size:13px;color:var(--ink)}
.order-issue-sent .icon{flex:0 0 16px;width:16px;height:16px;margin-top:3px;color:var(--green)}
@media(max-width:1024px){.order-issue-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.mail-preview-veil,.order-issue-switch-track,.order-issue-switch-track span{transition:none}}

/* Perimetro operativo dell'Amministrativo (r17): «Tutte le aziende» oppure solo alcune, sopra le tessere delle aziende. */
.perimeter-scope{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}
.perimeter-scope label{position:relative;cursor:pointer}
.perimeter-scope input{position:absolute;width:1px;height:1px;min-height:0;opacity:0;pointer-events:none}
.perimeter-scope label>span{display:flex;align-items:center;gap:12px;min-height:60px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color .18s ease,background-color .18s ease}
.perimeter-scope label>span>.icon{flex:0 0 20px;width:20px;height:20px;color:var(--muted)}
.perimeter-scope strong{display:block;font-size:13px;color:var(--ink)}
.perimeter-scope small{display:block;font-size:11px;color:var(--muted);line-height:1.4}
.perimeter-scope input:checked+span{border-color:var(--green);background:var(--tint)}
.perimeter-scope input:checked+span>.icon{color:var(--green)}
.perimeter-scope input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:2px}
.perimeter-companies[hidden]{display:none}
.perimeter-company[data-no-hospitals] .perimeter-company-summary{color:var(--muted)}
@media(max-width:520px){.perimeter-scope{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.perimeter-scope label>span{transition:none}}

/* Congedo all'uscita (r17): lo stesso «grazie» della timbratura d'uscita di Persone. Anello e spunta che si disegnano,
   particelle una sola volta, testi che salgono a scalare. Nessuna animazione infinita. */
.congedo{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:24px;background:#041416e3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:congedo-in .2s ease both;cursor:pointer}
.congedo.out{animation:congedo-out .25s ease forwards}
.congedo-card{max-width:440px;text-align:center;color:#eafff7;animation:congedo-pop .45s cubic-bezier(.2,1.4,.4,1) both}
.congedo-mark{position:relative;width:112px;height:112px;margin:0 auto}
.congedo-mark svg{position:relative;z-index:1;display:block;filter:drop-shadow(0 14px 30px #00000073)}
.congedo-mark .ring{fill:#0b6e58;stroke:#5ee0ae;stroke-width:5;stroke-dasharray:327;stroke-dashoffset:327;animation:congedo-draw .6s .05s cubic-bezier(.65,0,.35,1) forwards}
.congedo-mark .tick{fill:none;stroke:#fff;stroke-width:9;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:80;stroke-dashoffset:80;animation:congedo-draw .35s .5s ease-out forwards}
.congedo-burst{position:absolute;inset:0;pointer-events:none}
.congedo-burst i{position:absolute;left:50%;top:50%;width:var(--s);height:var(--s);margin:calc(var(--s) / -2) 0 0 calc(var(--s) / -2);border-radius:50%;background:var(--c);opacity:0;animation:congedo-burst .9s .45s cubic-bezier(.1,.8,.3,1) forwards}
.congedo-burst i:nth-child(3n){border-radius:2px}
.congedo-eyebrow{margin:22px 0 6px;font-size:11px;font-weight:700;letter-spacing:2.4px;text-transform:uppercase;color:#9dedce;animation:congedo-rise .4s .35s cubic-bezier(.2,.8,.2,1) both}
.congedo-card h2{margin:0 0 8px;font-size:28px;line-height:1.2;letter-spacing:-.8px;color:#fff;animation:congedo-rise .4s .42s cubic-bezier(.2,.8,.2,1) both}
.congedo-copy{margin:0;font-size:15px;line-height:1.55;color:#b9d3cd;animation:congedo-rise .4s .5s cubic-bezier(.2,.8,.2,1) both}
.congedo-hint{display:inline-block;margin-top:18px;font-size:12px;color:#86a8a0;animation:congedo-rise .4s .9s ease both}
@keyframes congedo-in{from{opacity:0}}
@keyframes congedo-out{to{opacity:0;visibility:hidden}}
@keyframes congedo-pop{from{opacity:0;transform:scale(.6)}}
@keyframes congedo-draw{to{stroke-dashoffset:0}}
@keyframes congedo-rise{from{opacity:0;transform:translateY(12px)}}
@keyframes congedo-burst{0%{opacity:1;transform:rotate(var(--a)) translateY(0) scale(1)}100%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--d) * -1)) scale(.35)}}
@media(max-width:480px){.congedo-card h2{font-size:24px}.congedo-copy{font-size:14px}}
@media(prefers-reduced-motion:reduce){.congedo,.congedo *{animation:none!important}.congedo-mark .ring,.congedo-mark .tick{stroke-dashoffset:0}.congedo{-webkit-backdrop-filter:none;backdrop-filter:none;background:#041416f2}}

/* Movimento della piattaforma (r17, richiesta del titolare): 150-300 ms, solo transform e opacity, mai infinito.
   Entrata a scalare dei blocchi al cambio di pagina, in sola dissolvenza: nessuno spostamento, cosi' fasce fisse,
   intestazioni e misure restano esatte fin dal primo istante. La classe vive 600 ms, quindi un aggiornamento dei
   filtri successivo non rianima nulla. */
.content.page-enter>*{animation:page-in .26s ease-out both}
.content.page-enter>*:nth-child(2){animation-delay:.04s}
.content.page-enter>*:nth-child(3){animation-delay:.08s}
.content.page-enter>*:nth-child(4){animation-delay:.12s}
.content.page-enter>*:nth-child(n+5){animation-delay:.16s}
@keyframes page-in{from{opacity:0}}
/* Notifiche: escono come entrano, senza sparire di colpo. La spunta del successo si disegna. */
.toast.out{animation:toast-out .18s ease forwards}
@keyframes toast-out{to{opacity:0;transform:translateY(6px) scale(.98)}}
.toast.success>span svg{stroke-dasharray:40;stroke-dashoffset:40;animation:toast-check .38s .12s cubic-bezier(.65,0,.35,1) forwards}
@keyframes toast-check{to{stroke-dashoffset:0}}
/* Pulsante principale: una pressione che si sente, senza spostare il layout. */
.btn.primary{transition:transform .14s ease,filter .14s ease,background-color .18s ease,box-shadow .18s ease}
.btn.primary:active:not(:disabled){transform:scale(.975)}
.btn.primary:hover:not(:disabled){filter:brightness(1.04)}
/* Accesso: la credenziale sbagliata scuote la scheda, come in Persone. */
.shake{animation:login-shake .3s cubic-bezier(.36,.07,.19,.97) both}
@keyframes login-shake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
@media(prefers-reduced-motion:reduce){.content.page-enter>*,.toast.out,.toast.success>span svg,.shake{animation:none!important}.toast.success>span svg{stroke-dashoffset:0}.btn.primary{transition:none}}

/* Warm-up r17 (25/09/2026): correzioni misurate sull'app della Home, sul tablet e sui telefoni da 375 e 390 px. */
@media(max-width:599px){
 /* Articoli di magazzino: con i filtri aperti le etichette stanno sopra i campi, a tutta larghezza, e la fascia aperta
    smette di essere fissa: non copre piu' mezzo schermo. Chiusa torna compatta e fissa. */
 .inventory-deck.mobile-filters-open{position:relative;top:auto}
 .inventory-deck.mobile-filters-open .devices-deck-row.primaria .devices-field:not(:first-child),
 .inventory-deck.mobile-filters-open .devices-deck-row.secondaria>.devices-field{display:block;min-width:0}
 .inventory-deck.mobile-filters-open .devices-field>label,.inventory-deck.mobile-filters-open .devices-field>span{display:block;margin:0 0 6px}
 .inventory-deck.mobile-filters-open .devices-field input,.inventory-deck.mobile-filters-open .devices-field select{width:100%}
 .inventory-deck.mobile-filters-open .devices-field>small{display:block;margin-top:4px}
 .inventory-deck.mobile-filters-open .devices-deck-row.secondaria>.devices-field:nth-child(3),.inventory-deck.mobile-filters-open .devices-field-reset{grid-column:1/-1}
 /* Articoli: il nome va a capo su due righe invece di troncarsi. */
 .inventory-article-row td>strong{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:clip}
}
@media(max-width:800px){
 /* Sezioni della scheda dispositivo: scorrono in orizzontale invece di tagliare «Documenti». */
 .devices-tabs{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
 .devices-tabs::-webkit-scrollbar,.vehicle-tabs::-webkit-scrollbar{display:none}
 .devices-tabs>*{flex:0 0 auto}
 /* Testata delle schede: due colonne invece di tre, e il ritorno lungo («Torna all'ordine n. …») su una riga sua. */
 .devices-shell .page-head .head-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
 .devices-shell .page-head .head-actions>[data-action="order-open"]{grid-column:1/-1}
 /* Ordini del Nomenclatore: le schede non toccano il bordo dello schermo. */
 .orders-control-deck>.tabs{padding-inline:16px;scroll-padding-inline:16px}
}
/* Tablet stretto con barra laterale (820 px): filtri della Flotta su due colonne e mezzi su due colonne, nessuna uscita
   dalla card. Da 881 px vale il disegno approvato su due righe. */
@media(min-width:801px) and (max-width:880px){
 .fleet-deck-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:repeat(7,auto)}
 .fleet-field-state>label{grid-row:4;grid-column:1}.fleet-field-state>select{grid-row:5;grid-column:1}
 .fleet-field-company>label{grid-row:4;grid-column:2}.fleet-field-company>select{grid-row:5;grid-column:2}
 .fleet-field-sort>label{grid-row:6;grid-column:1}.fleet-field-sort>select{grid-row:7;grid-column:1}
 .fleet-field-reset>.btn{grid-row:7;grid-column:2}
 .fleet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Gestione Utenti su tablet: il telefono si legge nella scheda, la tabella resta dentro la card. */
@media(min-width:801px) and (max-width:1100px){
 .users-table th:nth-child(3),.users-table td.user-phone{display:none}
}
/* Perimetro dell'azienda nella dashboard: righe separate da un filetto, mai tessere con il testo contro il bordo. */
.devices-perimeter .readonly-grid>div{border:0;border-bottom:1px solid var(--line);box-shadow:none}
.devices-perimeter .readonly-grid>div:last-child{border-bottom:0}

/* Benvenuto all'accesso (r17): il rovescio del congedo, come l'ingresso di Persone. Un momento, non un passaggio:
   emblema con alone e un riflesso di luce una sola volta, testi che salgono a scalare, poi dissolvenza sul portale. */
.benvenuto{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:24px;text-align:center;color:#eafff7;
 background:radial-gradient(120% 90% at 20% 0%,#14433e 0%,#0f2d2f 45%,#061819 100%);animation:benvenuto-in .25s ease both}
.benvenuto.out{animation:benvenuto-out .3s ease forwards}
.benvenuto-inner{max-width:440px}
.benvenuto-emblem{position:relative;display:block;width:118px;aspect-ratio:570/655;margin:0 auto 24px;animation:benvenuto-emblema .7s cubic-bezier(.2,1,.3,1) both}
.benvenuto-emblem img{position:relative;z-index:1;display:block;width:100%;height:auto;filter:drop-shadow(0 16px 34px #0000007a)}
.benvenuto-emblem::before{content:"";position:absolute;inset:-45%;border-radius:50%;background:radial-gradient(closest-side,#5ee0ae4d,transparent 72%);opacity:0;animation:benvenuto-alone 1.1s .1s ease-out forwards}
.benvenuto-emblem::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(105deg,transparent 38%,#ffffff8c 50%,transparent 62%) 130% 0/260% 100% no-repeat;
 -webkit-mask:url(/brand/emblem.png?v=20260924-r14) center/contain no-repeat;mask:url(/brand/emblem.png?v=20260924-r14) center/contain no-repeat;animation:benvenuto-riflesso 1.1s .5s cubic-bezier(.4,0,.2,1) both}
.benvenuto-eyebrow{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:2.6px;text-transform:uppercase;color:#9dedce;animation:benvenuto-sale .45s .2s cubic-bezier(.2,.8,.2,1) both}
.benvenuto h2{margin:0 0 8px;font-size:30px;line-height:1.2;letter-spacing:-1px;color:#fff;animation:benvenuto-sale .45s .28s cubic-bezier(.2,.8,.2,1) both}
.benvenuto-copy{margin:0;font-size:15px;color:#b9d3cd;animation:benvenuto-sale .45s .36s cubic-bezier(.2,.8,.2,1) both}
@keyframes benvenuto-in{from{opacity:0}}
@keyframes benvenuto-out{to{opacity:0;visibility:hidden}}
@keyframes benvenuto-emblema{from{opacity:0;transform:scale(.82) translateY(10px)}}
@keyframes benvenuto-alone{to{opacity:1}}
@keyframes benvenuto-riflesso{from{background-position:130% 0}to{background-position:-30% 0}}
@keyframes benvenuto-sale{from{opacity:0;transform:translateY(14px)}}
@media(max-width:480px){.benvenuto h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){.benvenuto{display:none}}
/* Tocco sul telefono: le card rispondono al dito con una pressione breve, senza spostare il layout. */
@media(hover:none){.module-card:active,.fleet-card:active,.order-folder:active{transform:scale(.985);transition:transform .12s ease}}
@media(hover:none) and (prefers-reduced-motion:reduce){.module-card:active,.fleet-card:active,.order-folder:active{transform:none}}
/* Logo del DDT nelle impostazioni (r20): la testata del documento riprodotta come un foglio, con lo spazio del logo nelle
   stesse proporzioni del PDF, e un riquadro di caricamento a trascinamento. Il foglio resta bianco anche nel tema scuro. */
.ddt-logo{display:grid;gap:14px;margin:0 0 18px;padding:16px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,var(--tint),var(--surface) 62%)}
.ddt-logo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ddt-logo-head h3{margin:0;font-size:14px}
.ddt-logo-head p{margin:4px 0 0;font-size:12px;line-height:1.45;color:var(--muted)}
.ddt-logo-head>div{flex:1 1 auto;min-width:0}
.ddt-logo-state{flex:0 0 auto;max-width:50%;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:11px;font-weight:600;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ddt-logo-stage{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.ddt-logo-paper{position:relative;display:grid;gap:10px;align-content:start;padding:16px 18px 18px;border:1px solid #E3E9E6;border-radius:12px;background:#FFFFFF;color:#1D2522;box-shadow:0 1px 2px #0F2A2314,0 12px 30px #0F2A231F;overflow:hidden}
.ddt-logo-top{display:grid;grid-template-columns:35% minmax(0,1fr);gap:12px;align-items:center}
.ddt-logo-slot{position:relative;display:flex;align-items:center;width:100%;border-radius:6px}
.ddt-logo-slot:not(.has-logo){border:1.5px dashed #B9C7C1;background:repeating-linear-gradient(135deg,#F6F8F7 0 6px,#FFFFFF 6px 12px)}
.ddt-logo-slot img{display:block;width:100%;height:100%;object-fit:contain;object-position:left center}
.ddt-logo-slot.appena{animation:ddt-logo-in .3s ease-out}
@keyframes ddt-logo-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.ddt-logo-empty{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;font-size:10px;font-weight:600;color:#7A8A84}
.ddt-logo-empty .icon{width:14px;height:14px}
.ddt-logo-title{display:grid;justify-items:end;gap:3px;text-align:right;min-width:0}
.ddt-logo-title strong{font-size:11px;letter-spacing:.6px;color:#1D2522}
.ddt-logo-title span{font-size:10px;color:#56645F}
.ddt-logo-title b{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:#1D2522;overflow-wrap:anywhere}
.ddt-logo-sender{display:grid;gap:2px;min-width:0;padding-top:8px;border-top:1px solid #E8EDEB}
.ddt-logo-sender strong{font-size:12px;color:#1D2522;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ddt-logo-sender small{min-height:13px;font-size:10px;color:#56645F;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ddt-logo-sheet-lines{display:grid;gap:5px;margin-top:4px}
.ddt-logo-sheet-lines i{display:block;height:6px;border-radius:3px;background:#EEF2F0}
.ddt-logo-sheet-lines i:nth-child(2){width:82%}
.ddt-logo-sheet-lines i:nth-child(3){width:64%}
.ddt-logo-side{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:start;min-width:0}
.ddt-logo-upload,.ddt-logo-aside{display:grid;gap:8px;align-content:start;min-width:0}
.ddt-logo-drop{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;min-height:88px;padding:14px;border:1.5px dashed color-mix(in srgb,var(--green) 45%,var(--line));border-radius:14px;background:var(--surface);cursor:pointer;overflow:hidden;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.ddt-logo-drop:hover,.ddt-logo-drop.sopra{border-color:var(--green);background:var(--tint)}
.ddt-logo-drop.sopra{transform:scale(1.01)}
.ddt-logo-drop:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 40%,transparent);outline-offset:2px}
.ddt-logo-drop.rifiutato{border-color:var(--red);background:var(--red-bg)}
.ddt-logo-drop.busy{cursor:progress}
.ddt-logo-drop-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--tint);color:var(--green)}
.ddt-logo-drop-copy{display:grid;gap:3px;min-width:0}
.ddt-logo-drop-copy strong{font-size:13px}
.ddt-logo-drop-copy small{font-size:11px;line-height:1.4;color:var(--muted)}
.ddt-logo-bar{position:absolute;left:0;bottom:0;width:40%;height:3px;background:var(--green);opacity:0;transform:translateX(-100%)}
.ddt-logo-drop.busy .ddt-logo-bar{opacity:1;animation:ddt-logo-bar 1s ease-in-out 8}
@keyframes ddt-logo-bar{to{transform:translateX(250%)}}
.ddt-logo-upload>.field-error{margin:0}
.ddt-logo-remove{justify-self:start}
.ddt-logo-tip{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:11px;line-height:1.45;color:var(--muted)}
.ddt-logo-tip .icon{flex:0 0 auto;width:14px;height:14px;margin-top:1px;color:var(--green)}
@media(max-width:800px){.ddt-logo{padding:14px}.ddt-logo-side{grid-template-columns:minmax(0,1fr)}.ddt-logo-head{flex-direction:column}.ddt-logo-state{max-width:100%}.ddt-logo-drop{min-height:72px}}
@media(prefers-reduced-motion:reduce){.ddt-logo-drop,.ddt-logo-slot.appena,.ddt-logo-drop.busy .ddt-logo-bar{animation:none;transition:none}}

/* Gestione giacenze · Previsione consumi e piano di approvvigionamento (28/09/2026). Stesso impianto degli elenchi r17:
   fascia fissa sotto la testata, intestazione della tabella fissa sotto la fascia, schede sotto i 1181 px. La fascia fissa
   resta compatta (periodo, ricerca, Azzera): i parametri del calcolo stanno nel pannello subito sotto, unito alla fascia,
   che scorre con la pagina. Una fascia fissa piu' alta dello schermo coprirebbe proprio i risultati da leggere. Le
   larghezze della tabella sono dichiarate: nessuna colonna cresce a spese delle altre. */
.t-red{--pill-bg:var(--red-bg);--pill-fg:var(--red);--chip-tone:var(--red)}
.forecast-head>div:first-child{flex:1 1 auto;min-width:0}
.forecast-head .head-actions{flex:0 0 auto;align-self:flex-end}
.forecast-page .forecast-deck{margin-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}
.forecast-deck-grid{grid-template-columns:minmax(330px,400px) minmax(220px,1fr) auto;grid-template-areas:"period search reset"}
.forecast-deck-grid .list-period{grid-area:period;min-width:0}
.forecast-deck-grid .list-period small{display:block;margin-top:6px;font-size:11px;color:var(--muted)}
.forecast-params{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 26px;padding:16px 24px 20px;margin-bottom:22px;border-top:1px dashed var(--line);border-top-left-radius:0;border-top-right-radius:0;overflow:visible}
.forecast-group{min-width:0}
.forecast-chips{display:flex;flex-wrap:wrap;gap:6px}
.forecast-chips .preset-chip .icon{width:14px;height:14px}
.forecast-kpis .prices-kpi strong span{font-weight:700}
.forecast-kpis .prices-kpi.accent strong span{color:#b3cbc7}
.forecast-kpi-alert{border-color:color-mix(in srgb,var(--red) 35%,var(--line));background:color-mix(in srgb,var(--red-bg) 55%,var(--surface))}
.forecast-kpi-alert strong{color:var(--red)}
.forecast-notes{display:grid;gap:8px;margin:0 0 18px}
.forecast-notes p{display:flex;align-items:flex-start;gap:9px;margin:0;padding:11px 14px;border:1px solid color-mix(in srgb,var(--amber) 30%,var(--line));border-radius:12px;background:var(--amber-bg);color:var(--ink);font-size:12px;line-height:1.45}
.forecast-notes .icon{flex:0 0 auto;width:15px;height:15px;margin-top:1px;color:var(--amber)}
#forecast-results{transition:opacity .15s ease}
#forecast-results.is-loading{opacity:.55}
.forecast-table>tbody>tr{cursor:default}
.forecast-table>thead>tr>th{white-space:normal;vertical-align:bottom;line-height:1.3}
.forecast-table>thead>tr>th.num{text-align:right}
.forecast-table>thead>tr>th:nth-child(2),.forecast-table>thead>tr>th:nth-child(3){width:108px}
.forecast-table>thead>tr>th:nth-child(4){width:120px}.forecast-table>thead>tr>th:nth-child(5){width:100px}
.forecast-table>thead>tr>th:nth-child(6){width:118px}.forecast-table>thead>tr>th:nth-child(7){width:152px}
.forecast-row>td:first-child{box-shadow:inset 3px 0 0 var(--row-tone,transparent)}
.forecast-row.s-urgente{--row-tone:var(--red)}.forecast-row.s-riordino{--row-tone:var(--amber)}
.forecast-art{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px}
.forecast-art>span:last-child{display:grid;gap:3px;min-width:0}
.forecast-art strong{font:800 13px/1.15 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;letter-spacing:.01em;color:var(--ink);overflow-wrap:anywhere}
.forecast-art small{font-size:12px;color:var(--ink);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.forecast-art em{font-style:normal;font-size:11px;color:var(--muted)}
.forecast-photo{display:grid;place-items:center;width:44px;height:44px;border:1px solid color-mix(in srgb,var(--line) 75%,transparent);border-radius:11px;background:linear-gradient(145deg,var(--surface),var(--tint));overflow:hidden;color:var(--muted)}
.forecast-photo img{display:block;max-width:40px;max-height:40px;width:auto;height:auto;object-fit:contain}
.forecast-photo .icon{width:18px;height:18px}
.forecast-photo.no-photo{border-style:dashed}
.forecast-num{text-align:right;font-variant-numeric:tabular-nums}
.forecast-num strong{font-size:15px!important;font-weight:800}
.forecast-num strong.negative{color:var(--red)}
.forecast-num small{display:block;margin-top:3px;font-size:11px;color:var(--muted);white-space:nowrap}
.forecast-cell-order{text-align:right}
.forecast-order{display:inline-grid;justify-items:end;gap:2px}
.forecast-order strong{font-size:22px!important;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}
.forecast-order small{font-size:11px;font-weight:800;color:var(--muted)}
.forecast-order em{font-style:normal;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.forecast-order.none strong{color:var(--muted)}
.forecast-cell-cover .state-pill{margin-bottom:8px}
.forecast-cover{display:grid;gap:5px}
.forecast-cover small{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.forecast-cover-bar{display:block;height:6px;border-radius:99px;background:var(--bg);overflow:hidden}
.forecast-cover-bar>span{display:block;width:var(--w);height:100%;border-radius:inherit;background:var(--chip-tone,var(--green));transition:width .3s ease}
.forecast-pdf-form .devices-form-hero{margin-bottom:18px}
@media(max-width:1180px){
 .forecast-deck-grid{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"period period" "search reset"}
 .forecast-deck-grid .list-period{max-width:none}
 .forecast-page .forecast-params{display:none;border-top:1px solid var(--line);border-radius:var(--radius)}
 .forecast-page .forecast-deck.deck-open+.forecast-params{display:flex}
 .forecast-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-template-areas:"art art" "order cover" "c1 c2" "c3 c4";column-gap:14px!important}
 .forecast-row::before{display:none}
 .forecast-row>td:first-child{box-shadow:none}
 .forecast-row.s-urgente{border-left:4px solid var(--red)}.forecast-row.s-riordino{border-left:4px solid var(--amber)}
 .forecast-cell-art{grid-area:art}
 .forecast-cell-order{grid-area:order;text-align:left;padding:10px 12px!important;border-radius:12px;background:var(--bg)!important}
 .forecast-order{justify-items:start}
 .forecast-cell-cover{grid-area:cover;display:grid!important;align-content:center;justify-items:end;gap:6px}
 .forecast-cell-cover .state-pill{margin:0}
 .forecast-cover{width:100%;justify-items:end}
 .forecast-num{text-align:left;padding-top:4px!important}
 .forecast-num::before{content:attr(data-label);display:block;margin-bottom:3px;font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
 .forecast-row>td:nth-child(2){grid-area:c1}.forecast-row>td:nth-child(3){grid-area:c2}
 .forecast-row>td:nth-child(4){grid-area:c3}.forecast-row>td:nth-child(5){grid-area:c4}
}
@media(max-width:800px){
 .forecast-head{flex-direction:column;align-items:stretch}
 .forecast-head .head-actions{align-self:stretch}.forecast-head .head-actions .btn{width:100%}
 .forecast-kpis{grid-template-columns:1fr 1fr}
 .forecast-page .forecast-params{padding:14px 16px 16px}
 .forecast-params .forecast-group{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){#forecast-results,.forecast-cover-bar>span{transition:none}}
/* r26 · Ordine di consegna del foglio di carico: la stessa lista per creazione e rettifica. */
.delivery-order{margin:4px 0 18px;padding:16px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--tint) 38%,var(--surface))}
.delivery-order-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.delivery-order-head h4{margin:0 0 2px;font-size:13px}
.delivery-order-head small{display:block;color:var(--muted);font-size:11px;line-height:1.45}
.delivery-order-city{flex:0 0 auto;white-space:nowrap}
.delivery-order-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.delivery-order-item{display:grid;grid-template-columns:auto 36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 8px 8px 4px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:transform .18s ease,box-shadow .18s ease}
.delivery-order-list.dragging .delivery-order-item:not(.dragging){transition:transform .18s ease}
.delivery-order-item.dragging{position:relative;z-index:2;transition:none;box-shadow:0 12px 28px #18332b2e;border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.delivery-order-handle{display:grid;place-items:center;width:32px;min-height:44px;color:var(--muted);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;border-radius:8px}
.delivery-order-handle:hover{color:var(--green);background:var(--tint)}
.delivery-order-item.dragging .delivery-order-handle{cursor:grabbing;color:var(--green)}
.delivery-order-handle .icon{stroke-width:3.2}
.delivery-order-copy{min-width:0}
.delivery-order-copy strong{display:block;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.delivery-order-copy small{display:block;color:var(--muted);font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.delivery-order-moves{display:flex;gap:2px}
.delivery-order-moves .btn.icon-btn{width:40px;min-height:40px}
.delivery-order-moves .btn:disabled{opacity:.3}
.amend-delta.ordine{color:var(--green)}
/* r51 · Una tappa e' una visita: la pratica dello stesso assistito subito dopo la precedente ne condivide il numero. */
.delivery-order-item.same-stop{margin-top:-4px;border-top-style:dashed;background:color-mix(in srgb,var(--tint) 45%,var(--surface))}
.delivery-order-item.same-stop .load-sheet-index{background:transparent;color:var(--green);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--green) 45%,var(--line))}
@media(max-width:800px){
 .delivery-order{padding:12px}
 .delivery-order-head{flex-direction:column}
 .delivery-order-city{align-self:stretch;min-height:44px}
 .delivery-order-item{grid-template-columns:auto 32px minmax(0,1fr);padding-right:6px}
 .delivery-order-item .load-sheet-index{width:32px;height:32px}
 .delivery-order-moves{grid-column:3;justify-content:flex-end;margin-top:-4px}
 .delivery-order-moves .btn.icon-btn{width:44px;min-height:44px}
}
/* r26 · Ritorno all'elenco degli ordini: la pratica appena consultata si riconosce per un istante. */
.orders-table tr.order-row-return>td{position:relative}
.orders-table tr.order-row-return>td::after,.orders-table tr.order-row-return::after{content:'';position:absolute;inset:0;pointer-events:none;background:color-mix(in srgb,var(--green) 13%,transparent);opacity:0;animation:orderRowReturn 2.4s ease-out}
.orders-table tr.order-row-return>td:first-child::before,.orders-table tr.order-row-return::before{content:'';position:absolute;left:0;top:6px;bottom:6px;width:4px;border-radius:4px;background:var(--green);opacity:0;animation:orderRowReturn 2.4s ease-out}
.orders-table tr.order-row-return::after,.orders-table tr.order-row-return::before{content:none}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 /* Su telefono la riga e' una scheda: la si segnala per intero, non cella per cella. */
 .orders-table tr.order-row-return>td::after,.orders-table tr.order-row-return>td:first-child::before{content:none}
 .orders-table tr.order-row-return::after,.orders-table tr.order-row-return::before{content:''}
 .orders-table tr.order-row-return::before{top:12px;bottom:12px}
}
@keyframes orderRowReturn{0%{opacity:0}12%{opacity:1}70%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.orders-table tr.order-row-return>td::after,.orders-table tr.order-row-return>td:first-child::before,.orders-table tr.order-row-return::after,.orders-table tr.order-row-return::before{animation:none;opacity:1}}
/* r26 · Ordine inserito a mano: stesse superfici del DDT, con il controllo dei doppioni del cliente. */
.order-manual{display:grid;gap:18px}
.ddt-mode-option input:disabled+span{opacity:.5;cursor:not-allowed}
.order-customer-existing,.order-customer-new{display:grid;gap:10px}
.order-customer-new .form-grid{align-items:start}
.order-customer-city{display:grid;grid-template-columns:minmax(90px,1fr) minmax(0,2fr);gap:0 12px}
.order-customer-delivery{padding:14px;border:1px dashed var(--line);border-radius:12px;background:var(--bg)}
.order-customer-delivery h4{margin:0 0 2px;font-size:13px}
.order-customer-delivery h4 small{font-weight:600;color:var(--muted)}
.order-customer-delivery>p{margin:0 0 10px;font-size:11px}
.order-twins{display:grid;gap:10px;padding:14px;border:1px solid color-mix(in srgb,var(--amber) 40%,var(--line));border-radius:14px;background:var(--amber-bg)}
.order-twins.blocked{border-color:color-mix(in srgb,var(--red) 40%,var(--line));background:var(--red-bg)}
.order-twins-head{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;color:var(--amber)}
.order-twins.blocked .order-twins-head{color:var(--red)}
.order-twins-head strong{display:block;color:var(--ink);font-size:13px}
.order-twins-head small{display:block;color:var(--muted);font-size:11px;line-height:1.45}
.order-twin-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.order-twin{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.order-twin.inactive{opacity:.75}
.order-twin-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--tint);color:var(--green)}
.order-twins.blocked .order-twin-mark{background:var(--red-bg);color:var(--red)}
.order-twin-copy{min-width:0}
.order-twin-copy strong{display:block;font-size:13px;overflow-wrap:anywhere}
.order-twin-copy small{display:block;color:var(--muted);font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.order-twin-copy em{display:inline-block;margin-top:3px;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--amber)}
.order-twins.blocked .order-twin-copy em{color:var(--red)}
.order-twin-confirm{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-radius:12px;background:var(--surface);cursor:pointer;min-height:44px}
.order-twin-confirm input{margin-top:2px}
.order-twin-confirm strong{display:block;font-size:12px}
.order-twin-confirm small{display:block;color:var(--muted);font-size:11px}
.order-manual-date{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;margin-bottom:16px}
.order-manual-date .date-entry{width:100%}
.order-manual-table .order-manual-qty{max-width:130px;text-align:right;margin-left:auto}
.order-manual-table .order-manual-price{max-width:130px;text-align:right;margin-left:auto}
.order-manual-table input[aria-invalid="true"]{border-color:var(--red);box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 14%,transparent)}
.order-manual-hint{display:block;margin-top:4px;color:var(--red);font-size:11px;font-weight:700;white-space:nowrap}
.order-manual-amount{font-variant-numeric:tabular-nums}
.order-manual-tag{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;background:var(--amber-bg);color:var(--amber);font-size:10px;font-weight:800;letter-spacing:.3px;text-transform:uppercase}
.order-manual-tag .icon{width:11px;height:11px}
.order-pdf-placeholder{display:inline-block;width:44px}
@media(max-width:800px){
 .order-twin{grid-template-columns:34px minmax(0,1fr)}
 .order-twin .btn{grid-column:1/-1;width:100%;min-height:44px}
 .order-manual-table .order-manual-qty,.order-manual-table .order-manual-price{max-width:none;margin-left:0;text-align:left;min-height:44px}
 .order-manual-hint{white-space:normal}
}
/* r26 · Righe dell'ordine manuale su telefono: articolo in alto con «Togli» nell'angolo, poi quantità e prezzo, colli e importo. */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .data-table.order-manual-table tr{grid-template-columns:1fr 1fr;gap:10px 12px;padding:14px 56px 14px 14px;position:relative}
 .data-table.order-manual-table td[data-label="Articolo"]{grid-column:1/-1}
 .data-table.order-manual-table td[data-label="Articolo"]::before{display:none}
 .data-table.order-manual-table .ddt-order-article{grid-template-columns:48px minmax(0,1fr);justify-items:start;text-align:left;gap:12px}
 .data-table.order-manual-table .ddt-order-photo{width:48px;height:48px}
 .data-table.order-manual-table td.actions-cell{position:absolute;top:10px;right:8px;padding:0;grid-column:auto}
 .data-table.order-manual-table td.actions-cell .btn{width:44px;min-height:44px}
 .data-table.order-manual-table td[data-label="Colli"] ,.data-table.order-manual-table td[data-label="Importo"]{font-size:15px}
}

/* r35 · Rettifica dell'ordine: provenienza delle righe, coperchi proposti dal lettore, revisioni del PDF del DDT. */
.order-line-origin{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.35;white-space:normal;text-align:left}
.order-line-origin .icon{width:12px;height:12px;flex:0 0 auto}
.order-line-origin.lid{background:var(--violet-bg);color:var(--violet)}
.order-line-origin.amended{background:var(--blue-bg);color:var(--blue)}
.order-lid-band{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;margin:0 0 16px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--violet) 35%,var(--line));border-radius:14px;background:var(--violet-bg);color:var(--ink)}
.order-lid-band>.icon{width:22px;height:22px;margin-top:1px;color:var(--violet)}
.order-lid-band strong{display:block;font-size:14px;color:var(--violet)}
.order-lid-band p{margin:4px 0 0;font-size:12px;line-height:1.55;color:var(--muted)}
.order-lid-band.compact{grid-template-columns:auto minmax(0,1fr);margin:12px 0 14px}
.order-amend-table .order-amend-qty,.order-amend-table .order-amend-ddt-qty{max-width:120px;text-align:right;margin-left:auto}
.order-amend-removed>td{opacity:.55}
.order-amend-removed>td.actions-cell{opacity:1}
.order-amend-removed .ddt-order-article-copy strong{text-decoration:line-through}
.order-amend-lock{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;background:var(--tint);color:var(--green-dark);font-size:11px;font-weight:800;white-space:nowrap}
.order-amend-ddts{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.order-amend-ddt{position:relative;display:block;cursor:pointer}
.order-amend-ddt input{position:absolute;opacity:0;pointer-events:none}
.order-amend-ddt>span{display:grid;grid-template-columns:22px minmax(0,1fr);gap:4px 10px;align-items:center;min-height:44px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.order-amend-ddt>span .icon{width:20px;height:20px;color:var(--muted);grid-row:span 2}
.order-amend-ddt strong{font-size:13px}
.order-amend-ddt small{grid-column:2;color:var(--muted);font-size:11px;line-height:1.4}
.order-amend-ddt input:checked+span{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green);background:var(--tint)}
.order-amend-ddt input:checked+span .icon{color:var(--green)}
.order-amend-ddt input:focus-visible+span{outline:2px solid var(--green);outline-offset:2px}
.order-amend-ddt-note{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
.order-amend-ddt-note .icon{width:16px;height:16px;flex:0 0 auto;margin-top:1px;color:var(--green)}
.order-amend-picker{margin-top:12px}
.ddt-band-revision{background:var(--violet-bg);border-color:color-mix(in srgb,var(--violet) 30%,var(--line))}.ddt-band-revision>.icon{color:var(--violet)}
.ddt-revision-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .order-lid-band{grid-template-columns:auto minmax(0,1fr)}
 .order-lid-band>.btn{grid-column:1/-1;width:100%;min-height:44px;justify-content:center}
 .order-amend-table .order-amend-qty,.order-amend-table .order-amend-ddt-qty{max-width:none;margin-left:0;text-align:left;min-height:44px}
 .data-table.order-amend-table td.order-line-pos{display:none}
 .data-table.order-amend-table td.actions-cell .btn{width:auto;min-width:44px;padding:0 12px}
 .ddt-revision-links .btn{min-height:44px}
}

/* Lista chiamate (05/10/2026): modalita' dichiarata degli Ordini, in blu per distinguerla dal foglio di carico (verde). */
.call-mode-band{display:flex;align-items:center;gap:14px;padding:14px 24px;background:linear-gradient(135deg,var(--blue-bg),var(--surface));border-bottom:1px solid color-mix(in srgb,var(--blue) 30%,var(--line));box-shadow:inset 4px 0 var(--blue)}
.call-mode-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--blue);color:#fff;flex:0 0 auto}.call-mode-icon .icon{width:20px;height:20px}
.call-mode-copy{flex:1;min-width:0}.call-mode-copy strong{display:block;font-size:14px;color:var(--ink)}.call-mode-copy span{display:block;font-size:11px;color:var(--muted);line-height:1.45;margin-top:2px}
.orders-workspace.call-mode input[type=checkbox]{accent-color:var(--blue)}
.call-all{display:grid;place-items:center;min-width:44px;min-height:44px;cursor:pointer}
.call-attempts,.call-assigned{display:flex;align-items:center;gap:5px;margin-top:5px;font-size:10px;line-height:1.35}
.call-attempts{color:var(--amber);font-weight:700}.call-assigned{color:var(--blue);font-weight:700}.call-assigned .icon{width:12px;height:12px;flex:0 0 auto}
.selection-bar.call-selection-bar{background:#14385c;border-color:#ffffff2e}.selection-bar.call-selection-bar>span{display:flex;align-items:center;gap:10px}.selection-bar.call-selection-bar>span>.icon{width:18px;height:18px;color:#a9d3ff;flex:0 0 auto}
.selection-bar.call-selection-bar .btn.primary{background:#a9d3ff;border-color:#a9d3ff;color:#0d2a45}
.call-list-intro>.icon{background:linear-gradient(145deg,var(--blue),#1d4f80)!important}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.call-mode-band{padding:12px 16px;gap:10px;flex-wrap:wrap}.call-mode-band .btn{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.call-selection-bar{animation:none}}

/* ---- r29 (07/10/2026) ---- */
/* Righe tolte da un DDT in consegna: restano sul DDT, barrate, con la causale in chiaro accanto. */
.ddt-lines-table tr.ddt-line-removed>td{color:var(--muted);background:color-mix(in srgb,var(--red) 3%,var(--surface))}
.ddt-lines-table tr.ddt-line-removed s{text-decoration-thickness:1.5px;text-decoration-color:color-mix(in srgb,var(--red) 70%,var(--muted))}
.ddt-line-removed-note{display:grid;gap:3px;margin-top:8px;padding:8px 10px;border-left:3px solid var(--red);border-radius:0 9px 9px 0;background:var(--red-bg);color:var(--ink);text-align:left}
.ddt-line-removed-tag{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--red)}
.ddt-line-removed-tag .icon{width:12px;height:12px}
.ddt-line-removed-note small{font-size:11px;color:var(--muted)}
.ddt-line-removed-reason{font-size:12px;font-weight:700;color:var(--ink);overflow-wrap:anywhere}
.ddt-line-remove{white-space:nowrap}
.ddt-lines-hint{display:flex;align-items:center;gap:9px;margin:0;padding:11px 16px;border-top:1px solid var(--line);font-size:12px;line-height:1.45;color:var(--muted)}
.ddt-lines-hint .icon{width:15px;height:15px;color:var(--green);flex:none}
.ddt-packages .ddt-removed-count{display:inline-flex;align-items:center;gap:4px;color:var(--red);font-weight:700}
.ddt-packages .ddt-removed-count .icon{width:11px;height:11px}
.ddt-remove-line{display:flex;align-items:center;gap:14px;margin:16px 0;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
.ddt-remove-code{flex:none;padding:6px 10px;border-radius:9px;background:var(--tint);color:var(--green-dark);font:800 13px ui-monospace,SFMono-Regular,Menlo,monospace}
.ddt-remove-copy{display:grid;gap:3px;min-width:0}.ddt-remove-copy strong{font-size:14px;overflow-wrap:anywhere}.ddt-remove-copy small{font-size:12px;color:var(--muted)}
.ddt-remove .banner{margin-bottom:16px}
/* «Tipo movimento» della pagina Articoli: la cronologia dichiara il tipo mostrato e il suo totale. */
.inventory-history-title:has(.inventory-history-filter){flex-wrap:wrap}
.inventory-history-title>.inventory-history-filter{display:inline-flex;align-items:center;gap:8px;margin-left:auto;padding:6px 11px;border:1px solid color-mix(in srgb,var(--green) 30%,var(--line));border-radius:999px;background:var(--surface);font-size:11px;font-weight:800;color:var(--ink)}
.inventory-history-filter .icon{width:13px;height:13px;color:var(--green)}
.inventory-history-filter-total{padding-left:8px;border-left:1px solid var(--line);font-variant-numeric:tabular-nums}
.inventory-history-filter-total .inventory-quantity{font-size:12px}
/* Assegnazione delle matricole: prima le piu' datate in magazzino, con la data di rientro su ogni scheda. */
.serial-order-note{display:flex;align-items:flex-start;gap:9px;margin:-6px 0 14px;padding:10px 13px;border-radius:12px;background:var(--blue-bg);color:var(--ink);font-size:12px;line-height:1.5}
.serial-order-note .icon{width:16px;height:16px;flex:none;margin-top:1px;color:var(--blue)}
.serial-data .serial-return{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}
.serial-data .serial-return .icon{width:12px;height:12px;flex:none}
.serial-data .serial-return.recent{color:var(--ink);font-weight:700}
.serial-data .serial-return.recent .icon{color:var(--amber)}
@media(max-width:599px){
 .inventory-movement-deck .devices-field-period{grid-column:1/-1}
 .ddt-remove-line{align-items:flex-start}
}

/* ---- Segnalazione dal mezzo (r30): pagina pubblica del QR ----
   Progettata prima per il telefono, in un parcheggio o accanto al mezzo: bersagli ampi, testi a 16 px nei campi
   (nessuno zoom su iOS), un passo per scheda e una sola azione primaria in fondo. */
.mezzo-body{background:radial-gradient(1100px 420px at 50% -140px,color-mix(in srgb,var(--green) 16%,transparent),transparent 70%),var(--bg);min-height:100dvh}
.mezzo-page{max-width:640px;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 16px calc(36px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}
.mezzo-page:focus{outline:none}
.mezzo-brand{display:flex;align-items:center;gap:12px;padding:2px 2px 4px}
.mezzo-brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 4px 14px #18332b14;padding:6px;flex-shrink:0}
.mezzo-brand-mark img{width:100%;height:100%;object-fit:contain}
.mezzo-brand strong{display:block;font-size:15px;letter-spacing:-.2px}
.mezzo-brand span{display:block;font-size:12px;color:var(--muted)}
.mezzo-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:20px}
.mezzo-boot{display:grid;place-items:center;gap:10px;padding:64px 0;color:var(--muted)}
.mezzo-hero{background:linear-gradient(150deg,#102e30,#1c4a44 68%,#21614f);border-color:#1f4b45;color:#fff;overflow:hidden}
.mezzo-hero:after{content:'';position:absolute;right:-70px;top:-90px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,#69d7b233,transparent 70%);pointer-events:none}
.mezzo-eyebrow{display:block;font-size:10.5px;font-weight:700;letter-spacing:1.1px;color:#9dedce;margin-bottom:12px}
.mezzo-vehicle{display:flex;flex-direction:column;align-items:flex-start;gap:10px;position:relative;z-index:1}
.mezzo-vehicle .fleet-plate{max-width:236px}
.mezzo-vehicle-name{font-size:17px;letter-spacing:-.3px}
.mezzo-lead{position:relative;z-index:1;margin:12px 0 0;font-size:13.5px;line-height:1.6;color:#d6ebe4}
.mezzo-form{display:flex;flex-direction:column;gap:14px}
.mezzo-step{padding-top:18px}
.mezzo-step h2{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding-left:40px;font-size:17px;letter-spacing:-.3px;line-height:1.35;min-height:30px}
.mezzo-step h2 em,.mezzo-form .field em{font-style:normal;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.2px}
.mezzo-step-n{position:absolute;left:20px;top:18px;display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--tint);color:var(--green);font-size:13px;font-weight:700}
.mezzo-form .field{margin:0 0 12px}
.mezzo-form .field input,.mezzo-form .field textarea,.mezzo-form .date-entry input{font-size:16px;min-height:50px;border-radius:12px}
.mezzo-form .field textarea{min-height:112px;resize:vertical;line-height:1.55}
.mezzo-form .field-error{margin:-4px 0 10px}
.mezzo-form [aria-invalid=true]{border-color:var(--red)!important;background:color-mix(in srgb,var(--red-bg) 45%,var(--surface))}
.mezzo-hint{margin:-6px 0 12px;font-size:12.5px;color:var(--muted)}
.mezzo-field-help{display:flex;gap:8px;align-items:flex-start;margin:-4px 0 12px;font-size:12px;line-height:1.45;color:var(--muted)}
.mezzo-field-help .icon{width:16px;height:16px;color:var(--green);margin-top:1px}
/* Tendina della tipologia */
.mz-select{position:relative}
.mz-select-trigger{display:flex;align-items:center;gap:12px;width:100%;min-height:70px;padding:12px 14px;border:1.5px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);text-align:left;transition:border-color var(--ease),box-shadow var(--ease)}
.mz-select-trigger:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.mz-select.open .mz-select-trigger{border-color:var(--green);box-shadow:0 0 0 4px color-mix(in srgb,var(--green) 16%,transparent)}
.mz-select-placeholder,.mz-select-chosen{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.mz-select-placeholder>.icon{width:42px;height:42px;padding:10px;border-radius:12px;background:var(--bg);color:var(--muted)}
.mz-select-trigger strong{display:block;font-size:15px;line-height:1.3}
.mz-select-trigger small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.4;font-weight:400;color:var(--muted);margin-top:2px}
.mz-select-chevron{display:grid;place-items:center;flex-shrink:0}
.mz-select-chevron .icon{width:20px;height:20px;color:var(--muted);transition:transform var(--ease)}
.mz-select.open .mz-select-chevron .icon{transform:rotate(180deg)}
.mz-kind-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;flex-shrink:0}
.mz-kind-icon .icon{width:22px;height:22px}
.tone-green .mz-kind-icon,.mz-drive-tile.tone-green .mz-drive-icon{background:var(--green-bg);color:var(--green)}
.tone-amber .mz-kind-icon,.mz-drive-tile.tone-amber .mz-drive-icon{background:var(--amber-bg);color:var(--amber)}
.tone-red .mz-kind-icon,.mz-drive-tile.tone-red .mz-drive-icon{background:var(--red-bg);color:var(--red)}
.tone-blue .mz-kind-icon{background:var(--blue-bg);color:var(--blue)}
.tone-violet .mz-kind-icon{background:var(--violet-bg);color:var(--violet)}
.mz-select-panel{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 22px 60px #0d24263d;overflow:hidden;animation:mzPanel .18s ease}
.mz-select-head{display:none}
.mz-select-list{max-height:min(62vh,520px);overflow-y:auto;overscroll-behavior:contain;padding:8px;outline:none}
.mz-group+.mz-group{margin-top:4px;border-top:1px solid var(--line);padding-top:4px}
.mz-group-label{padding:10px 12px 6px;font-size:10.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.mz-option{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;cursor:pointer;min-height:58px}
.mz-option.active{background:var(--tint)}
.mz-option[aria-selected=true]{background:color-mix(in srgb,var(--green) 10%,var(--surface))}
.mz-select-list:focus-visible .mz-option.active{box-shadow:inset 0 0 0 2px var(--green)}
.mz-option-text{flex:1;min-width:0}
.mz-option-text strong{display:block;font-size:14px;line-height:1.3}
.mz-option-text small{display:block;font-size:12px;line-height:1.45;color:var(--muted);margin-top:1px}
.mz-option-check{display:grid;place-items:center;opacity:0;color:var(--green)}
.mz-option[aria-selected=true] .mz-option-check{opacity:1}
.mz-select-backdrop{display:none}
@keyframes mzPanel{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes mzSheet{from{transform:translateY(100%)}to{transform:none}}
@keyframes mzFade{from{opacity:0}to{opacity:1}}
@media(max-width:640px){
 .mz-select-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:90;background:#081d1e8c;animation:mzFade .2s ease}
 .mz-select-panel{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:91;border-radius:22px 22px 0 0;max-height:86dvh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom);animation:mzSheet .24s cubic-bezier(.2,.75,.25,1)}
 .mz-select-panel[hidden]{display:none}
 .mz-select-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 14px 10px 20px;border-bottom:1px solid var(--line)}
 .mz-select-head:before{content:'';position:absolute;top:8px;left:50%;width:42px;height:4px;margin-left:-21px;border-radius:4px;background:var(--line)}
 .mz-select-head strong{font-size:16px}
 .mz-select-close{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:var(--bg);color:var(--ink)}
 .mz-select-list{max-height:none;flex:1}
 body.mz-sheet-open{overflow:hidden}
}
.mezzo-safety{display:flex;gap:12px;align-items:flex-start;margin-top:12px;padding:14px 16px;border-radius:14px;background:var(--red-bg);border:1px solid color-mix(in srgb,var(--red) 25%,transparent)}
.mezzo-safety>.icon{color:var(--red);width:22px;height:22px;margin-top:1px}
.mezzo-safety strong{display:block;color:var(--red);font-size:13.5px}
.mezzo-safety span{display:block;font-size:12.5px;line-height:1.55;margin-top:2px}
/* Circolazione del mezzo */
.mz-drive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mz-drive-tile{position:relative;cursor:pointer;display:block}
.mz-drive-tile input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer;min-height:0}
.mz-drive-body{display:flex;flex-direction:column;align-items:flex-start;gap:8px;height:100%;padding:13px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface);transition:border-color var(--ease),background var(--ease),box-shadow var(--ease)}
.mz-drive-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;flex-shrink:0}
.mz-drive-icon .icon{width:20px;height:20px}
.mz-drive-body strong{display:block;font-size:13.5px;line-height:1.3}
.mz-drive-body small{display:block;font-size:11.5px;line-height:1.4;font-weight:400;color:var(--muted);margin-top:2px}
.mz-drive-tile.tone-green input:checked+.mz-drive-body{border-color:var(--green);background:color-mix(in srgb,var(--green-bg) 70%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent)}
.mz-drive-tile.tone-amber input:checked+.mz-drive-body{border-color:var(--amber);background:color-mix(in srgb,var(--amber-bg) 75%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--amber) 18%,transparent)}
.mz-drive-tile.tone-red input:checked+.mz-drive-body{border-color:var(--red);background:color-mix(in srgb,var(--red-bg) 75%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 18%,transparent)}
.mz-drive-tile input:focus-visible+.mz-drive-body{outline:3px solid #38b993;outline-offset:3px}
.mz-drive.invalid .mz-drive-body{border-color:color-mix(in srgb,var(--red) 55%,var(--line))}
/* Data e ora */
.mz-when-chips{display:flex;gap:8px;margin:-4px 0 12px}
.mz-chip{min-height:44px;padding:0 18px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);font-weight:700;font-size:13px;transition:background var(--ease),border-color var(--ease),color var(--ease)}
.mz-chip.on{background:var(--green);border-color:var(--green);color:#fff}
.mz-when{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px;align-items:start}
.mz-when .date-entry{grid-template-columns:minmax(0,1fr) 50px}
.mz-when .native-date-trigger{width:50px;height:50px;border-radius:12px}
.mz-notes-foot{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-top:-6px}
.mz-notes-foot .field-error{margin:0}
.mz-notes-foot small{font-size:11px;color:var(--muted);margin-left:auto;white-space:nowrap}
/* Foto */
.mz-photos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mz-photo{position:relative;margin:0;aspect-ratio:1;border-radius:14px;overflow:hidden;background:var(--bg);border:1px solid var(--line);animation:mzPanel .2s ease}
.mz-photo img{width:100%;height:100%;object-fit:cover;display:block}
.mz-photo.busy{display:grid;place-items:center}
.mz-photo-remove{position:absolute;top:4px;right:4px;width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:12px;background:transparent;color:#fff}
.mz-photo-remove .icon{width:28px;height:28px;padding:5px;border-radius:9px;background:#0d2426c4}
.mz-photo-add{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1.5px dashed color-mix(in srgb,var(--green) 45%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--tint) 45%,var(--surface));color:var(--green);text-align:center;padding:8px}
.mz-photo-add .icon{width:26px;height:26px}
.mz-photo-add strong{font-size:12.5px;line-height:1.25}
.mz-photo-add small{font-size:11px;color:var(--muted)}
.mz-remember{display:flex;align-items:center;gap:10px;min-height:44px;font-size:13px;cursor:pointer}
.mz-remember input{width:20px;height:20px;min-height:0;accent-color:var(--green);flex-shrink:0}
/* Invio */
.mezzo-submit{display:flex;flex-direction:column;gap:10px;padding:2px}
.mezzo-submit .form-error{margin:0}
.mezzo-primary{width:100%;min-height:56px;font-size:16px;border-radius:16px}
.mezzo-primary .icon{width:20px;height:20px}
.mz-progress{display:grid;gap:6px}
.mz-progress-bar{display:block;height:6px;border-radius:6px;background:var(--line);overflow:hidden}
.mz-progress-bar i{display:block;height:100%;background:var(--green);transform-origin:left;transform:scaleX(.04);transition:transform .2s ease}
.mz-progress small{font-size:12px;color:var(--muted);text-align:center}
.mezzo-privacy{font-size:11px;line-height:1.6;color:var(--muted);text-align:center;margin:4px 8px 0}
/* Esito ed errori */
.mezzo-block,.mezzo-done{text-align:center;padding:32px 22px}
.mezzo-done:focus{outline:none}
.mezzo-block-mark{display:grid;place-items:center;width:60px;height:60px;margin:0 auto 14px;border-radius:18px;background:var(--amber-bg);color:var(--amber)}
.mezzo-block-mark .icon{width:28px;height:28px}
.mezzo-block h1,.mezzo-done h1{font-size:23px;letter-spacing:-.4px;margin:0 0 8px}
.mezzo-block p{color:var(--muted);margin:0 0 16px;line-height:1.6}
.mezzo-done-check{display:grid;place-items:center;width:74px;height:74px;margin:0 auto 16px;border-radius:50%;background:var(--green);color:#fff;box-shadow:0 12px 30px color-mix(in srgb,var(--green) 35%,transparent);animation:mzPop .3s cubic-bezier(.2,.9,.3,1.3)}
.mezzo-done-check svg{width:36px;height:36px}
.mezzo-done-ref{font-size:14px;color:var(--muted);margin:0}
.mezzo-done-ref strong{color:var(--ink)}
.mezzo-done-kind{font-weight:700;margin:6px 0 18px}
.mezzo-done-list{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:10px;text-align:left}
.mezzo-done-list li{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--bg);font-size:13.5px;line-height:1.5}
.mezzo-done-list li .icon{color:var(--green);width:18px;height:18px;margin-top:2px}
.mezzo-done-list li.warn{background:var(--amber-bg)}
.mezzo-done-list li.warn .icon{color:var(--amber)}
@keyframes mzPop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}
@media(max-width:520px){
 .mezzo-card{padding:18px 16px}
 .mezzo-step{padding-top:16px}
 .mezzo-step-n{left:16px;top:16px}
 .mezzo-step h2{font-size:16px}
 .mz-drive{grid-template-columns:1fr}
 .mz-drive-body{flex-direction:row;align-items:center;min-height:62px}
 .mz-photos{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:380px){.mz-when{grid-template-columns:1fr}}
/* Il porta targa sta su un supporto chiaro: sul fondo scuro i bordi sfumati dell'immagine resterebbero visibili. */
.mezzo-plate-chip{display:inline-flex;padding:7px 9px;border-radius:13px;background:#fff;box-shadow:0 8px 22px #0006}
.mezzo-plate-chip .fleet-plate{width:216px;max-width:58vw}
.mezzo-secondary{background:var(--surface);border:1.5px solid var(--line);color:var(--ink)}
.mezzo-secondary:hover{border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:var(--tint)}

/* ---- Flotta: segnalazioni dai mezzi (r30) ----
   Stessa grammatica dello Scadenzario: metriche che filtrano, fascia fissa sulla griglia esplicita di S1.2,
   card con barra di accento. Le card portano la miniatura della prima foto: la gravita' di un danno si legge
   prima di aprire la segnalazione. */
.report-metric .fleet-metric-value{font-variant-numeric:tabular-nums}
.report-metric.red .fleet-metric-value{color:var(--red)}.report-metric.amber .fleet-metric-value{color:var(--amber)}
.report-metric.blue .fleet-metric-value{color:var(--blue)}.report-metric.green .fleet-metric-value{color:var(--green)}
.report-metric.red .fleet-metric-top .icon{color:var(--red)}.report-metric.amber .fleet-metric-top .icon{color:var(--amber)}
.report-metric.blue .fleet-metric-top .icon{color:var(--blue)}
.report-deck-controls{grid-template-columns:minmax(220px,1.7fr) minmax(140px,.9fr) minmax(170px,1.1fr) minmax(300px,1.6fr) auto}
.report-field-search>*{grid-column:1}.report-field-state>*{grid-column:2}.report-field-kind>*{grid-column:3}
.report-field-period>*{grid-column:4}.report-field-reset>*{grid-column:5}
.report-field-sheet{display:none}
.report-period{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:center;min-width:0}
.report-period>span[aria-hidden]{color:var(--muted);font-weight:700}
.report-deck-controls .report-period input[type=text]{height:44px;min-height:44px;font-size:12px;padding-inline:9px}
.report-results:focus,.report-results:focus-visible{outline:none}
.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}
@media(min-width:1700px){.report-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.report-card{display:flex;align-items:stretch;gap:14px;text-align:left;padding:16px 16px 16px 20px;background:var(--surface);border:1px solid var(--line);
 border-radius:15px;box-shadow:var(--shadow);color:var(--ink);position:relative;overflow:hidden;min-width:0;transition:border-color var(--ease),box-shadow var(--ease),transform var(--ease)}
.report-card::before{content:'';position:absolute;inset:0 auto 0 0;width:4px;background:var(--line)}
.report-card.status-nuova::before{background:var(--blue)}
.report-card.status-gestione::before{background:var(--amber)}
.report-card.status-chiusa::before{background:color-mix(in srgb,var(--green) 55%,var(--line))}
.report-card.stopped::before{background:var(--red)}
.report-card.status-chiusa{opacity:.86}
.report-card:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line));box-shadow:0 10px 30px #18332b12}
.report-card:active{transform:translateY(1px)}
.report-card-main{display:flex;flex-direction:column;gap:9px;flex:1;min-width:0}
.report-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.report-kind{display:flex;align-items:center;gap:11px;min-width:0}
.report-kind .mz-kind-icon{width:40px;height:40px;border-radius:11px}
.report-kind .mz-kind-icon .icon{width:21px;height:21px}
.report-kind-text{min-width:0}
.report-kind-text strong{display:block;font-size:14px;line-height:1.3}
.report-kind-text small{display:block;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.report-status{flex-shrink:0}.report-status .icon{width:13px;height:13px}
.report-card-vehicle{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;color:var(--muted);min-width:0}
.report-card-vehicle .fleet-plate.report-plate{width:124px;max-width:124px;flex-shrink:0}
.report-notes{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12.5px;line-height:1.5;overflow-wrap:anywhere}
.report-notes.muted{color:var(--muted)}
.report-card-foot{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:auto;padding-top:9px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.report-card-foot>span{display:inline-flex;align-items:center;gap:5px;min-width:0}
.report-card-foot .icon{width:14px;height:14px}
.report-drive{display:inline-flex;align-items:center;gap:5px;font-weight:700}
.report-drive.tone-green{color:var(--green)}.report-drive.tone-amber{color:var(--amber)}.report-drive.tone-red{color:var(--red)}
/* La miniatura segue l'altezza della card e non la detta: una foto verticale non allunga la riga. */
.report-thumb{position:relative;flex:0 0 92px;align-self:stretch;min-height:92px;border-radius:11px;overflow:hidden;background:var(--bg);border:1px solid var(--line)}
.report-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* Dettaglio */
.report-head{align-items:flex-start}
.report-title{display:flex;align-items:center;gap:12px;font-size:28px;letter-spacing:-.8px;margin:0 0 10px}
.report-title .mz-kind-icon{width:48px;height:48px;border-radius:14px}
.report-title .mz-kind-icon .icon{width:26px;height:26px}
.report-badges .badge::before{display:none}.report-badges .badge .icon{width:13px;height:13px}
.report-hint{align-items:center;color:var(--red);background:var(--red-bg);border-color:color-mix(in srgb,var(--red) 30%,transparent)}
.report-hint>.icon{width:22px;height:22px;flex-shrink:0}
.report-hint div{flex:1;min-width:0}.report-hint strong{display:block;font-size:13px}.report-hint p{margin:3px 0 0;color:var(--ink)}
.report-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:22px;align-items:start}
.report-main,.report-side{display:flex;flex-direction:column;gap:22px;min-width:0}
.report-main .panel,.report-side .panel{margin:0}
.report-facts{margin-bottom:16px}
.report-notes-block{padding:14px 16px;border-radius:12px;background:var(--amber-bg);border-left:3px solid var(--amber);margin-bottom:16px}
.report-notes-block small{display:block;font-size:10px;font-weight:700;letter-spacing:.6px;color:var(--amber)}
.report-notes-block p{margin:6px 0 0;font-size:14px;line-height:1.6;white-space:pre-line;overflow-wrap:anywhere}
.report-notes-block.empty-notes{background:var(--bg);border-left-color:var(--line)}
.report-notes-block.empty-notes small{color:var(--muted)}.report-notes-block.empty-notes p{color:var(--muted)}
.report-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.report-photo{padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;aspect-ratio:1;background:var(--bg);cursor:zoom-in;min-height:0}
.report-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}
.report-photo:hover img{transform:scale(1.04)}
.report-no-photo{display:flex;align-items:center;gap:8px;margin:0}
.report-no-photo .icon{width:16px;height:16px}
.report-channel-note{display:flex;gap:9px;align-items:flex-start;margin:0 0 14px;padding:11px 13px;border-radius:10px;background:var(--bg);font-size:12px;color:var(--muted)}
.report-channel-note .icon{width:16px;height:16px;flex-shrink:0;color:var(--amber)}
.report-channel-title{display:flex;align-items:center;gap:7px;margin:4px 0 8px;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.report-channel-title .icon{width:15px;height:15px}
.report-channels{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px}
.report-channel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:11px}
.report-channel-who strong{display:block;font-size:13px}.report-channel-who small{display:block;font-size:11px;color:var(--muted)}
.report-channel-when{grid-column:1/-1;font-size:11px;color:var(--muted);overflow-wrap:anywhere}
.report-channel .badge::before{display:none}
.report-vehicle{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.report-vehicle .fleet-plate.report-plate-lg{max-width:220px}
.report-vehicle .badge::before{display:none}.report-vehicle .badge .icon{width:13px;height:13px}
.report-person{display:flex;flex-direction:column;gap:8px}
.report-person strong{font-size:15px}
.report-contact{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:11px;color:var(--ink);font-weight:700;font-size:13px;overflow-wrap:anywhere}
.report-contact:hover{text-decoration:none;border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:var(--tint)}
.report-contact .icon{width:17px;height:17px;color:var(--green);flex-shrink:0}
.report-handling{display:flex;flex-direction:column;gap:10px}
.report-handling p{margin:0}
.report-closing{padding:10px 12px;border-radius:10px;background:var(--bg);font-size:12.5px;white-space:pre-line;overflow-wrap:anywhere}
.report-timeline{margin:0}
/* Chiusura: esiti come tessere */
.report-outcomes{display:grid;gap:9px}
.report-outcome{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;min-height:56px}
.report-outcome input{width:18px;height:18px;min-height:0;margin-top:2px;accent-color:var(--green);flex-shrink:0}
.report-outcome strong{display:block;font-size:13px}.report-outcome small{color:var(--muted)}
.report-outcome:has(input:checked){border-color:var(--green);background:var(--tint)}
/* Foto a schermo intero */
.report-lightbox{width:min(980px,calc(100% - 24px))}
.report-lightbox-figure{margin:0;padding:0 18px;display:grid;place-items:center;background:var(--surface)}
.report-lightbox-figure img{max-width:100%;max-height:min(68dvh,720px);object-fit:contain;border-radius:10px;display:block}
.report-lightbox-bar{display:flex;justify-content:space-between;gap:10px;padding:16px 18px 18px;flex-wrap:wrap}
/* Sezione nella scheda del mezzo: QR e segnalazioni */
.report-vehicle-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.report-vehicle-head h3{margin:0;font-size:15px}
@media(max-width:1180px) and (min-width:801px){
 .report-deck-controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}
 .report-field-search>*{grid-column:1/-1}
 .report-field-search>label{grid-row:1}.report-field-search>.search{grid-row:2}.report-field-search>small{grid-row:3}
 .report-field-state>*{grid-column:1}.report-field-kind>*{grid-column:2}
 .report-field-state>label,.report-field-kind>label{grid-row:4}.report-field-state>select,.report-field-kind>select{grid-row:5}
 .report-field-period>*{grid-column:1/3}.report-field-period>label{grid-row:6}.report-field-period>.report-period{grid-row:7}.report-field-period>small{grid-row:8}
 .report-field-reset>*{grid-column:3;grid-row:7}
 .report-layout{grid-template-columns:1fr}
 .report-grid{grid-template-columns:1fr}
}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .report-deck-controls{grid-template-columns:minmax(0,1fr) auto}
 .report-field-search>label{grid-row:1;grid-column:1/-1}
 .report-field-search>.search{grid-row:2;grid-column:1}
 .report-field-search>small{grid-row:3;grid-column:1/-1}
 .report-deck-controls .report-field-state,.report-deck-controls .report-field-kind,
 .report-deck-controls .report-field-period,.report-deck-controls .report-field-reset{display:none}
 .report-field-sheet{display:contents}
 .report-field-sheet>.btn{grid-row:2;grid-column:2}
 .report-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .report-grid{grid-template-columns:1fr;gap:10px}
 .report-card{padding:14px 14px 14px 18px;gap:12px}
 .report-thumb{flex-basis:76px;min-height:76px}
 .report-title{font-size:22px}
 .report-title .mz-kind-icon{width:42px;height:42px}
 .report-head .head-actions{display:grid;grid-template-columns:1fr;width:100%;gap:8px}
 .report-head .head-actions .btn{width:100%}
 .report-layout{grid-template-columns:1fr;gap:16px}
 .report-main,.report-side{gap:16px}
 .report-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
 .report-hint{flex-direction:column;align-items:flex-start}.report-hint .btn{width:100%}
 .report-lightbox-bar .btn{flex:1}
 .report-page-head .head-actions{width:100%}.report-page-head .head-actions .btn{width:100%}
}
@media(max-width:420px){.report-card-vehicle .fleet-plate.report-plate{width:108px;max-width:108px}.report-thumb{flex-basis:64px;min-height:64px}}
/* Rifiniture dopo la verifica delle schermate (r30) */
.report-status::before,.report-channel .badge::before{display:none}
.report-deck-controls{grid-template-columns:minmax(200px,1.35fr) minmax(130px,.8fr) minmax(160px,1fr) minmax(350px,1.75fr) auto}
.report-deck-controls .report-period .date-entry{grid-template-columns:minmax(0,1fr) 44px}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .report-card-top{flex-direction:column;align-items:flex-start;gap:8px}
 .report-thumb{flex:0 0 64px;height:64px;min-height:64px;align-self:flex-start}
 .report-channel{grid-template-columns:1fr}
 .report-channel .badge{justify-self:start}
 .report-main .panel-head{flex-direction:column;align-items:flex-start;gap:3px}
 /* Sul telefono i pannelli si leggono nell'ordine in cui servono: fatti, chi richiamare, mezzo, gestione, poi la storia. */
 .report-layout{display:flex;flex-direction:column}
 .report-main,.report-side{display:contents}
 .report-p-segnalazione{order:1}.report-p-persona{order:2}.report-p-mezzo{order:3}.report-p-gestione{order:4}
 .report-p-comunicazioni{order:5}.report-p-storia{order:6}
 .report-head .head-actions{grid-template-columns:1fr 1fr}
 .report-head .head-actions .btn.primary{grid-column:1/-1}
}
/* Foglio dei filtri delle segnalazioni: Dal e Al su due righe a tutta larghezza, come gli altri fogli della Flotta. */
.report-sheet-date>span>small{margin-left:4px;font-size:11px;font-weight:600;color:var(--muted)}
.report-sheet-date>.date-entry{font-weight:400}
.report-sheet-date .date-entry input[type=text]{font-size:16px;font-weight:600}
/* Sul telefono la colonna dei pannelli si allunga a tutta larghezza: l'allineamento del desktop non vale qui. */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){.report-layout{align-items:stretch}}
/* Pagina pubblica: targa verificata sul parco reale (QR unico, 08/10/2026). */
.mezzo-title{position:relative;z-index:1;margin:0;font-size:23px;line-height:1.2;letter-spacing:-.5px;color:#fff}
.mz-plate-field{margin:0 0 10px}
.mezzo-form .mz-plate-field input{min-height:62px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:24px;font-weight:800;letter-spacing:2px;text-transform:uppercase;text-align:center}
.mezzo-form .mz-plate-field input::placeholder{letter-spacing:2px;font-weight:600}
.mz-plate-status{min-height:0}
.mz-plate-status:empty{display:none}
.mz-plate-status.is-attesa{display:flex;align-items:center;gap:10px;padding:10px 2px 2px;font-size:13px;color:var(--muted)}
.mz-plate-status.is-attesa .icon{width:18px;height:18px;color:var(--amber);flex-shrink:0}
.mz-plate-status .loader.small{width:18px;height:18px;border-width:2px;margin:0;flex-shrink:0}
.mz-plate-ok{display:flex;align-items:center;gap:14px;margin-top:6px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--green) 9%,var(--surface));border:1.5px solid color-mix(in srgb,var(--green) 45%,var(--line))}
.mz-plate-ok-plate{flex:0 0 auto;width:132px}
.mz-plate-ok-plate .fleet-plate{max-width:132px;font-size:16px}
.mz-plate-ok-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.mz-plate-ok-text strong{font-size:15px;line-height:1.3}
.mz-plate-ok-text small{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--green)}
.mz-plate-ok-text small .icon{width:14px;height:14px}
.mz-plate-err{display:flex;gap:10px;align-items:flex-start;margin-top:6px;padding:12px 14px;border-radius:14px;background:var(--red-bg);border:1px solid color-mix(in srgb,var(--red) 28%,transparent);color:var(--ink);font-size:13.5px;line-height:1.5}
.mz-plate-err .icon{width:20px;height:20px;color:var(--red);flex-shrink:0;margin-top:1px}
.mz-plate-suggest{margin-top:12px}
.mz-plate-suggest>strong{display:block;font-size:13px;margin-bottom:8px}
.mz-plate-suggest-list{display:grid;gap:8px}
.mz-suggestion{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;padding:10px 16px;border:1.5px solid color-mix(in srgb,var(--green) 55%,var(--line));border-radius:14px;background:var(--surface);color:var(--ink);font-size:15px;cursor:pointer;transition:background var(--ease),border-color var(--ease)}
.mz-suggestion b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;letter-spacing:1.2px}
.mz-suggestion .icon{width:18px;height:18px;color:var(--green)}
.mz-suggestion:hover{background:color-mix(in srgb,var(--green) 8%,var(--surface));border-color:var(--green)}
.mz-suggestion:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 55%,transparent);outline-offset:2px}
.mz-rest{display:flex;flex-direction:column;gap:14px}
.mz-rest[hidden]{display:none}
.mz-rest.mz-reveal{animation:mzReveal .26s ease-out}
@keyframes mzReveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.mz-rest.mz-reveal{animation:none}}
/* Registra preventive (r31): tipologie della sola struttura con ricerca e «Seleziona tutte», «Crea scheda di verifica»
   nel piede della finestra, scheda firmata allegata al lotto e stato della scheda nell'elenco dei lotti. */
.devices-preventive-modal .devices-preventive-intro,.devices-preventive-modal .devices-preventive-confirm{margin-bottom:16px}
.devices-preventive-date{margin-bottom:18px}.devices-preventive-date .date-entry{max-width:280px}.devices-preventive-date>small{color:var(--muted);font-size:10.5px;font-weight:500;line-height:1.5}
.devices-preventive-types{margin-bottom:14px}.devices-preventive-types .field-error{margin-top:8px}
.devices-preventive-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-bottom:8px}
.devices-preventive-search{position:relative;display:flex;align-items:center;min-width:0;margin:0}.devices-preventive-search>.icon{position:absolute;left:13px;width:16px;height:16px;color:var(--muted);pointer-events:none}
.devices-preventive-search input{width:100%;min-height:44px;margin:0;padding:0 12px 0 38px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:500}
.devices-preventive-search input:focus-visible{outline:2px solid color-mix(in srgb,var(--green) 55%,transparent);outline-offset:1px;border-color:var(--green)}
.devices-preventive-tools .btn.devices-preventive-all{min-height:44px;border:1px solid var(--line);background:var(--surface);color:var(--ink);white-space:nowrap}.devices-preventive-tools .btn.devices-preventive-all:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}.devices-preventive-tools .btn.devices-preventive-all.active{border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:var(--tint);color:var(--green-dark)}
.devices-preventive-status{margin:0 0 8px;color:var(--muted);font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}.devices-preventive-status.ok{color:var(--green-dark)}
.devices-preventive-type-list label[hidden]{display:none}
.devices-preventive-none{display:flex;align-items:center;gap:9px;margin:0;padding:14px;border:1px dashed var(--line);border-radius:11px;color:var(--muted);font-size:11.5px}.devices-preventive-none[hidden]{display:none}.devices-preventive-none .icon{width:16px;height:16px;flex:0 0 16px}
.devices-preventive-modal .modal-footer .devices-preventive-sheet-btn{gap:8px}.devices-preventive-sheet-btn .icon{width:16px;height:16px}.devices-preventive-sheet-btn[aria-busy=true],.devices-tree-actions .btn[aria-busy=true]{cursor:progress;opacity:.72}
.devices-preventive-preview-list{max-height:min(32vh,260px);overflow:auto;margin:12px 0 14px;border:1px solid var(--line);border-radius:12px}.devices-preventive-preview-list .devices-preventive-preview-row:last-child{border-bottom:0}
.devices-preventive-sheet{display:grid;gap:8px;margin-top:14px}.devices-preventive-sheet-title{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:750}.devices-preventive-sheet-title .icon{width:17px;height:17px;color:var(--green)}
.devices-preventive-sheet-title em{margin-left:auto;padding:3px 9px;border-radius:999px;background:var(--tint);color:var(--green-dark);font-size:9.5px;font-style:normal;font-weight:800;letter-spacing:.4px;text-transform:uppercase}
.devices-preventive-sheet>small{color:var(--muted);font-size:10.5px;line-height:1.5}
.devices-preventive-attach{display:grid;gap:18px}.devices-preventive-attach>.devices-form-hero{margin-bottom:0}.devices-preventive-attach .devices-preventive-sheet{margin-top:0}.devices-preventive-attach .doc-dropzone{min-height:150px}.devices-preventive-attach .doc-dropzone.scelto{min-height:0}
.devices-preventive-batch-sheet{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:9px;border-top:1px dashed var(--line)}.devices-preventive-batch-sheet .btn{flex:0 0 auto}.devices-preventive-batch-sheet .btn.ghost{border:1px solid var(--line)}.devices-preventive-intro p b{color:var(--ink);font-weight:800}
.devices-preventive-sheet-chip{display:flex;min-width:0;align-items:center;gap:9px}.devices-preventive-sheet-chip>.icon{width:18px;height:18px;flex:0 0 18px;color:var(--green)}.devices-preventive-sheet-chip>span{display:flex;min-width:0;flex-direction:column;gap:1px}
.devices-preventive-sheet-chip strong{font-size:11.5px}.devices-preventive-sheet-chip small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}
.devices-preventive-sheet-chip.pending>.icon{color:var(--amber)}.devices-preventive-sheet-chip.cancelled>.icon{color:var(--red)}.devices-preventive-sheet-chip.none>.icon{color:var(--muted)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .devices-preventive-tools{grid-template-columns:1fr}.devices-preventive-tools .btn.devices-preventive-all{width:100%;justify-content:center}.devices-preventive-date .date-entry{max-width:none}
 .devices-preventive-modal .modal-footer .devices-preventive-sheet-btn{order:-1;flex:1 1 100%}
 .devices-preventive-batch-sheet{flex-wrap:wrap}.devices-preventive-batch-sheet .btn{width:100%}
}
/* Nomenclatore · Distretti (r31, SuperAdmin): stesso impianto di «Prezzi a nuovo», una riga per distretto, scheda su telefono. */
.districts-deck{grid-template-columns:minmax(0,1fr) auto}
.districts-count{margin:0;padding:10px 20px 0;color:var(--muted);font-size:11px;font-weight:650}
.district-list{display:grid}
.district-row{display:grid;grid-template-columns:44px minmax(0,1.15fr) minmax(0,1.6fr) minmax(130px,170px) auto;gap:16px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}
.district-row:last-child{border-bottom:0;border-radius:0 0 var(--radius) var(--radius)}.district-row[hidden]{display:none}
.district-row-mark{display:grid;width:40px;height:40px;place-items:center;border-radius:12px;background:var(--amber-bg);color:var(--amber)}
.district-row.ok .district-row-mark{background:var(--tint);color:var(--green)}.district-row-mark .icon{width:18px;height:18px}
.district-row-identity{display:flex;min-width:0;flex-direction:column;gap:3px}.district-row-identity strong{font-size:14px}.district-row-identity small{color:var(--muted);font-size:11px}
.district-row-mail{display:flex;min-width:0;flex-direction:column;gap:5px}.district-row-mail>span{display:flex;min-width:0;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.district-row-mail small{min-width:28px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.6px}
.district-row-mail b{font-size:12px;font-weight:700;overflow-wrap:anywhere}.district-row-mail em{color:var(--muted);font-size:11.5px;font-style:normal;overflow-wrap:anywhere}
.district-row-missing{display:inline-flex;align-items:center;gap:7px;color:var(--amber);font-size:11.5px;font-weight:700}.district-row-missing .icon{width:15px;height:15px}
.district-row-sent{display:flex;flex-direction:column;gap:2px}.district-row-sent small{color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.6px}
.district-row-sent strong{font-size:13px}.district-row-sent span{color:var(--muted);font-size:10.5px}
.district-none{display:flex;align-items:center;gap:9px;margin:0;padding:18px 20px;color:var(--muted);font-size:12px}.district-none[hidden]{display:none}.district-none .icon{width:16px;height:16px}
.district-form{display:grid;gap:16px}.district-form>.devices-form-hero{margin-bottom:0}.district-form textarea{min-height:64px;font-size:13px}.district-form .field small{color:var(--muted);font-weight:500}
/* Genera report · invio al distretto: interruttore esplicito, poi l'anteprima vera dell'email. */
.report-mail{display:grid;gap:10px;margin-top:14px}
.report-mail-state{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg) 70%,var(--surface))}
.report-mail-state>.icon{width:20px;height:20px;flex:0 0 20px;color:var(--green)}.report-mail-state>span{display:flex;min-width:0;flex:1;flex-direction:column;gap:2px}
.report-mail-state strong{font-size:12.5px}.report-mail-state small{color:var(--muted);font-size:11px;line-height:1.45}
.report-mail-state.warning{border-color:color-mix(in srgb,var(--amber) 35%,var(--line));background:var(--amber-bg)}.report-mail-state.warning>.icon{color:var(--amber)}.report-mail-state.loading>.icon{color:var(--muted)}
.report-mail-toggle{position:relative;display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--green) 30%,var(--line));border-radius:12px;background:var(--tint);cursor:pointer}
.report-mail-toggle input{position:absolute;width:1px;height:1px;opacity:0}
.report-mail-switch{position:relative;flex:0 0 44px;width:44px;height:26px;border-radius:999px;background:color-mix(in srgb,var(--muted) 45%,var(--surface));transition:background-color var(--ease)}
.report-mail-switch::after{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0003;content:'';transition:transform var(--ease)}
.report-mail-toggle input:checked+.report-mail-switch{background:var(--green)}.report-mail-toggle input:checked+.report-mail-switch::after{transform:translateX(18px)}
.report-mail-toggle input:focus-visible+.report-mail-switch{outline:2px solid var(--green);outline-offset:2px}
.report-mail-toggle>span:last-child{display:flex;min-width:0;flex-direction:column;gap:3px}.report-mail-toggle strong{font-size:13px}.report-mail-toggle small{color:var(--muted);font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.report-export-modal:has(.report-mail-toggle input:checked){width:min(780px,calc(100vw - 24px))}
@media(prefers-reduced-motion:reduce){.report-mail-switch,.report-mail-switch::after{transition:none}}
/* Invio del report al distretto (19/10/2026): fasi animate fino alla conferma reale del server di posta. Il movimento
   indica soltanto lavoro in corso e si ferma con «riduci movimento»; l'esito entra con la spunta disegnata in 300 ms. */
.report-send-host{display:grid}
.report-send{display:grid;justify-items:center;gap:14px;padding:8px 2px 4px;text-align:center}
.report-send-visual{position:relative;display:grid;width:96px;height:96px;place-items:center}
.report-send-orbit{position:absolute;inset:0;border:3px solid color-mix(in srgb,var(--green) 16%,transparent);border-top-color:var(--green);border-radius:50%;animation:report-send-spin 1.1s linear infinite}
.report-send-badge{display:grid;width:64px;height:64px;place-items:center;border-radius:20px;background:linear-gradient(145deg,var(--green),#07655d);color:#fff;box-shadow:0 14px 30px color-mix(in srgb,var(--green) 28%,transparent);animation:report-send-float 2.4s ease-in-out infinite}
.report-send-badge .icon{width:30px;height:30px}
.report-send-title{margin:2px 0 0;font-size:19px;line-height:1.25}.report-send-title:focus{outline:none}
.report-send-target{max-width:520px;margin:-6px 0 0;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.report-send-steps{display:grid;gap:8px;width:min(480px,100%);margin:4px 0 0;padding:0;list-style:none;text-align:left}
.report-send-steps li{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);opacity:.55;transition:opacity var(--ease),border-color var(--ease),background-color var(--ease)}
.report-send-steps li.active{border-color:color-mix(in srgb,var(--green) 45%,var(--line));background:var(--tint);opacity:1}
.report-send-steps li.done{opacity:1}
.report-send-dot{display:grid;width:34px;height:34px;place-items:center;border-radius:50%;background:var(--tint);color:var(--green)}
.report-send-dot .icon{width:17px;height:17px}
.report-send-steps li.done .report-send-dot{background:var(--green);color:#fff}
.report-send-steps li.active .report-send-dot{animation:report-send-pulse 1.4s ease-in-out infinite}
.report-send-steps strong{display:block;font-size:12.5px}.report-send-steps small{display:block;color:var(--muted);font-size:11px;line-height:1.4}
.report-send-track{position:relative;width:min(480px,100%);height:4px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--green) 14%,var(--line))}
.report-send-track>span{position:absolute;inset:0 auto 0 0;width:38%;border-radius:inherit;background:linear-gradient(90deg,transparent,var(--green),transparent);animation:report-send-track 1.3s cubic-bezier(.4,0,.2,1) infinite}
.report-send-hint{display:flex;align-items:center;gap:8px;max-width:480px;margin:2px 0 0;color:var(--muted);font-size:11px;text-align:left}.report-send-hint .icon{flex:0 0 auto;width:15px;height:15px;color:var(--green)}
.report-send-check{width:92px;height:92px}
.report-send-check .ring{fill:color-mix(in srgb,var(--green) 12%,var(--surface));stroke:var(--green);stroke-width:5;stroke-dasharray:327;stroke-dashoffset:327;animation:report-send-draw .3s cubic-bezier(.65,0,.35,1) forwards}
.report-send-check .tick{fill:none;stroke:var(--green);stroke-width:8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:80;stroke-dashoffset:80;animation:report-send-draw .25s .25s ease-out forwards}
.report-send.ok .report-send-title,.report-send.ok .report-send-target,.report-send.ok .report-send-facts{animation:report-send-in .3s .2s both}
.report-send-alert{display:grid;width:72px;height:72px;place-items:center;border-radius:22px;background:var(--amber-bg);color:var(--amber)}
.report-send-alert .icon{width:32px;height:32px}
.report-send.error .report-send-alert{background:color-mix(in srgb,var(--red) 12%,var(--surface));color:var(--red)}
.report-send-facts{display:grid;width:min(480px,100%);margin:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;text-align:left}
.report-send-facts>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:10px 14px;border-top:1px solid var(--line)}.report-send-facts>div:first-child{border-top:0}
.report-send-facts dt{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}
.report-send-facts dd{margin:0;font-size:12px;font-weight:700;overflow-wrap:anywhere}.report-send-facts dd small{display:block;margin-top:2px;color:var(--muted);font-size:11px;font-weight:500}
.report-send-footer{justify-content:flex-end}
@keyframes report-send-spin{to{transform:rotate(360deg)}}
@keyframes report-send-float{50%{transform:translateY(-3px)}}
@keyframes report-send-pulse{50%{transform:scale(1.08)}}
@keyframes report-send-track{from{transform:translateX(-100%)}to{transform:translateX(265%)}}
@keyframes report-send-draw{to{stroke-dashoffset:0}}
@keyframes report-send-in{from{opacity:0;transform:translateY(6px)}}
@media(prefers-reduced-motion:reduce){
 .report-send-orbit,.report-send-badge,.report-send-steps li.active .report-send-dot,.report-send-track>span,.report-send.ok .report-send-title,.report-send.ok .report-send-target,.report-send.ok .report-send-facts{animation:none}
 .report-send-steps li{transition:none}.report-send-track>span{width:100%;opacity:.35}
 .report-send-check .ring,.report-send-check .tick{animation:none;stroke-dashoffset:0}
}
/* Durante l'invio la X della finestra non chiude: deve anche sembrarlo. */
.app-modal .modal-header .icon-btn:disabled{opacity:.38;cursor:not-allowed;box-shadow:none}
/* Ordini (19/10/2026): a 1440 px, con le tre tessere dei documenti delle pratiche chiuse, la tabella superava il proprio
   contenitore di 20 px e la pagina scorreva in orizzontale. Celle un poco piu' strette, nessuna colonna tolta. */
@media(min-width:1440px) and (max-width:1520px){.orders-table td,.orders-table th{padding-inline:10px}}
/* Ordini, impaginazione compatta fra 801 e 1439 px (titolare, 19/10/2026). Le colonne minime sommavano circa 1.200 px:
   fino a 1279 px la tabella scorreva dentro il pannello, da 1280 a 1439 scorreva l'intera pagina. Ogni informazione resta:
   stato e contatto uno sotto l'altro, tessere dei documenti su due righe, comandi in colonna, selezione con la sola icona. */
@media(min-width:801px) and (max-width:1439px){
 .orders-table td,.orders-table th{padding-inline:8px}
 .orders-table th.check{width:46px}
 .orders-table th.check:not(:has(label)){font-size:0;letter-spacing:0}
 .orders-table th.check:not(:has(label))::before{display:inline-block;width:16px;height:16px;border:1.5px solid currentColor;border-radius:4px;opacity:.7;content:'';vertical-align:middle}
 .orders-table td.check{width:46px}
 .order-practice{min-width:186px}
 .order-reference{display:grid;width:max-content;margin:0 0 6px}
 .order-person{display:block;max-width:none}
 .order-destination{min-width:128px}
 .order-author{min-width:110px}
 .order-author-avatar{width:24px;height:24px}
 .order-workflow{min-width:126px}
 .order-workflow-inner{grid-template-columns:minmax(0,1fr)}
 .order-workflow-inner>div+div{margin:9px 0 0;padding:9px 0 0;border-top:1px solid var(--line);border-left:0}
 .orders-table .document-actions{width:108px}
 .orders-table .document-shortcuts{flex-wrap:wrap;gap:4px}
 .orders-table .actions-cell{width:92px;padding-left:4px}
 .order-actions{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:6px}
 .order-actions .btn{width:100%;min-width:0}
 .order-actions .order-action-placeholder{display:none}
}
/* Da 1180 px le tre tessere dei documenti stanno in fila; sotto vanno su due righe e il nome di chi ha inserito la pratica
   perde l'avatar, cosi' non si spezza dentro la parola. */
@media(min-width:1180px) and (max-width:1439px){.orders-table .document-actions{width:156px}}
@media(min-width:801px) and (max-width:1179px){
 .order-practice{min-width:170px}
 .order-destination{min-width:116px}
 .order-author-avatar{display:none}
 .order-author-inner>strong{overflow-wrap:normal;hyphens:manual}
 .orders-table .actions-cell{width:84px}
}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .report-send-visual{width:84px;height:84px}.report-send-badge{width:56px;height:56px;border-radius:18px}
 .report-send-facts>div{grid-template-columns:1fr;gap:3px}
}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .districts-deck{grid-template-columns:1fr}
 .district-row{grid-template-columns:40px minmax(0,1fr);gap:10px 12px;padding:14px 16px}
 .district-row-mail,.district-row-sent,.district-row-action{grid-column:2}.district-row-action .btn{width:100%;min-height:44px}
 .district-row-sent{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
 .report-export-modal:has(.report-mail-toggle input:checked){width:calc(100% - 12px)}
}


/* ---- r33 · Codice fiscale dell'assistito e riscontro fra consegne e ritiri -------------------------------- */
.cf-field input{font-family:ui-monospace,monospace;letter-spacing:1.4px;text-transform:uppercase;font-size:14px}
.cf-hint{display:flex;align-items:center;gap:6px;margin:-8px 0 14px;font-size:11px;color:var(--muted);min-height:18px}
.cf-hint[data-tone=ok]{color:var(--green);font-weight:700}
.cf-hint[data-tone=ok]::before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}
.cf-hint[data-tone=error]{color:var(--red);font-weight:700}
.cf-item .mono{letter-spacing:.8px}
.patient-aids{border:1px solid color-mix(in srgb,var(--green) 26%,var(--line));border-radius:14px;padding:16px;margin:0 0 18px;background:color-mix(in srgb,var(--tint) 32%,var(--surface));transition:opacity var(--ease)}
.patient-aids.info{border-color:color-mix(in srgb,var(--blue) 28%,var(--line));background:color-mix(in srgb,var(--blue-bg) 40%,var(--surface))}
.patient-aids.is-loading .patient-aids-list{opacity:.55}
.patient-aids-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.patient-aids-head h3{margin:4px 0 0;font-size:14px}
.patient-aids.info .eyebrow{color:var(--blue)}
.patient-aids-empty{display:flex;align-items:center;gap:12px;padding:14px;border:1px dashed var(--line);border-radius:11px;background:var(--surface);color:var(--muted)}
.patient-aids-empty .icon{width:22px;height:22px;color:var(--green);flex:0 0 auto}
.patient-aids-empty.warn .icon{color:var(--amber)}
.patient-aids-empty strong,.patient-aids-empty small{display:block}.patient-aids-empty strong{color:var(--ink);font-size:12px}
.patient-aids-list{display:grid;gap:8px;transition:opacity var(--ease)}
.patient-aid{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) auto 28px;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color var(--ease),box-shadow var(--ease),background var(--ease);min-height:72px}
.patient-aid.info{grid-template-columns:56px minmax(0,1fr) auto;cursor:default}
.patient-aid>input{position:absolute;opacity:0;pointer-events:none}
.patient-aid:hover{border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
.patient-aid.info:hover{border-color:var(--line)}
.patient-aid.selected{border-color:var(--green);background:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--green) 16%,transparent)}
.patient-aid.locked{cursor:not-allowed;opacity:.62}
.patient-aid:focus-within{outline:3px solid color-mix(in srgb,var(--green) 38%,transparent);outline-offset:2px}
.patient-aid-photo .product-photo{width:52px;height:52px;border-radius:10px;object-fit:contain;background:var(--bg)}
.patient-aid-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.patient-aid-copy strong{font-size:12px;line-height:1.35}
.patient-aid-copy .mono{font-size:12px;color:var(--ink);letter-spacing:.4px}
.patient-aid-copy small{color:var(--muted);font-size:10px}
.patient-aid-badges{display:flex;justify-content:flex-end}
.patient-aid-check{width:26px;height:26px;border-radius:8px;border:1.5px solid var(--line);display:grid;place-content:center;color:transparent;background:var(--surface);transition:background var(--ease),border-color var(--ease),color var(--ease)}
.patient-aid-check .icon{width:16px;height:16px;stroke-width:2.6}
.patient-aid.selected .patient-aid-check{background:var(--green);border-color:var(--green);color:var(--surface)}
[data-theme=dark] .patient-aid.selected .patient-aid-check{color:#0a2820}
.patient-aids-note{display:flex;gap:9px;align-items:flex-start;margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--amber-bg);color:var(--amber);font-size:11px;line-height:1.5}
.patient-aids-note .icon{width:17px;height:17px;flex:0 0 auto;margin-top:1px}
.patient-aids-banner p{display:flex;flex-direction:column;gap:3px}
.patient-aids-banner-row{font-size:11px;line-height:1.5}
.patient-aids-banner.warning{border-color:color-mix(in srgb,var(--amber) 35%,var(--line))}
.return-mode.with-expected{grid-template-columns:repeat(3,minmax(0,1fr))}
.return-product-card.expected{border-color:color-mix(in srgb,var(--blue) 34%,var(--line));margin-bottom:16px}
.return-product-card.expected dd.mono{letter-spacing:.5px}
.return-expected-result:empty{display:none}
.return-expected-ok,.return-expected-ko{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:11px;margin:-6px 0 16px;font-size:12px}
.return-expected-ok{background:var(--tint);color:var(--green)}
.return-expected-ko{background:var(--amber-bg);color:var(--amber);flex-wrap:wrap}
.return-expected-ok .icon,.return-expected-ko .icon{width:20px;height:20px;flex:0 0 auto}
.return-expected-ok strong,.return-expected-ok small,.return-expected-ko strong,.return-expected-ko small{display:block}
.return-expected-ko>span{flex:1 1 220px}
.return-expected-ko .btn{flex:0 0 auto}
.return-different{border:1px solid color-mix(in srgb,var(--amber) 30%,var(--line));background:color-mix(in srgb,var(--amber-bg) 55%,var(--surface));border-radius:12px;padding:14px 14px 4px;margin:0 0 18px}
.return-different .field-hint{display:flex;gap:7px;align-items:flex-start;color:var(--amber);font-size:11px;margin:-8px 0 10px}
.return-different .field-hint .icon{width:15px;height:15px;flex:0 0 auto;margin-top:2px}
.duplicates-page .page-head p{max-width:720px}
.duplicates-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:14px;margin-bottom:20px}
.duplicates-kpis>div{padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.duplicates-kpis small{display:block;font-size:10px;letter-spacing:1px;color:var(--muted);font-weight:700}
.duplicates-kpis strong{font-size:28px;letter-spacing:-1px;font-variant-numeric:tabular-nums}
.duplicates-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px}
.duplicate-card{display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow)}
.duplicate-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.duplicate-card-head h3{margin:4px 0 0;font-size:15px}
.duplicate-pair{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:8px;align-items:stretch}
.duplicate-side{padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--bg);display:flex;flex-direction:column;gap:3px;min-width:0}
.duplicate-side.old{border-color:color-mix(in srgb,var(--amber) 35%,var(--line));background:color-mix(in srgb,var(--amber-bg) 50%,var(--surface))}
.duplicate-side.new{border-color:color-mix(in srgb,var(--green) 35%,var(--line));background:color-mix(in srgb,var(--tint) 55%,var(--surface))}
.duplicate-side small{font-size:9px;letter-spacing:1px;font-weight:700;color:var(--muted)}
.duplicate-side strong{font-size:14px;letter-spacing:.4px;overflow-wrap:anywhere}
.duplicate-side span{font-size:11px;color:var(--muted)}
.duplicate-arrow{display:grid;place-content:center;color:var(--muted)}
.duplicate-actions{display:flex;gap:8px;flex-wrap:wrap}
.duplicate-actions .btn{flex:1 1 200px}
.duplicates-note{display:flex;gap:10px;align-items:flex-start;margin:22px 0 0;padding:14px 16px;border-radius:12px;background:var(--tint);color:var(--green);font-size:12px;line-height:1.55}
.duplicates-note .icon{flex:0 0 auto;margin-top:1px}
.duplicate-confirm{display:flex;gap:13px;align-items:flex-start;padding:14px 16px;border-radius:12px;margin-bottom:16px}
.duplicate-confirm.same{background:var(--amber-bg);color:var(--amber)}
.duplicate-confirm.different{background:var(--tint);color:var(--green)}
.duplicate-confirm strong{display:block;color:inherit}.duplicate-confirm p{margin:4px 0 0;font-size:12px;color:var(--ink)}
.guide-cf-banner{align-items:center;background:linear-gradient(120deg,var(--tint),color-mix(in srgb,var(--blue-bg) 70%,var(--surface)));color:var(--ink);border-color:color-mix(in srgb,var(--green) 25%,var(--line))}
.guide-cf-banner>.icon{color:var(--green)}.guide-cf-banner p{flex:1}.guide-cf-banner strong{color:var(--green)}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .patient-aids{padding:12px}
 .patient-aid{grid-template-columns:48px minmax(0,1fr) 26px;gap:10px;padding:10px}
 .patient-aid.info{grid-template-columns:48px minmax(0,1fr)}
 .patient-aid-photo .product-photo{width:46px;height:46px}
 .patient-aid-badges{grid-column:2;grid-row:2;justify-content:flex-start}
 .patient-aid-check{grid-column:3;grid-row:1/3}
 .return-mode.with-expected{grid-template-columns:1fr}
 .duplicates-kpis{grid-template-columns:1fr 1fr}
 .duplicates-list{grid-template-columns:1fr}
 .duplicate-pair{grid-template-columns:1fr}
 .duplicate-arrow{transform:rotate(90deg);height:26px}
 .duplicate-actions .btn{flex:1 1 100%}
 .guide-cf-banner{flex-wrap:wrap}.guide-cf-banner .btn{width:100%}
}

/* ---- r33 · Guida animata del codice fiscale ------------------------------------------------------------- */
.gcf{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:24px}
.gcf-backdrop{position:absolute;inset:0;background:color-mix(in srgb,var(--nav) 72%,transparent);animation:gcfFade .24s ease both}
.gcf-card{position:relative;width:min(940px,100%);max-height:calc(100dvh - 48px);overflow:auto;background:var(--surface);color:var(--ink);border-radius:22px;box-shadow:0 30px 80px #04161973;padding:26px 28px 22px;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,1fr);grid-template-areas:"head head" "progress progress" "stage caption" "stage controls";column-gap:26px;animation:gcfCard .26s cubic-bezier(.2,.8,.2,1) both}
.gcf-head{grid-area:head;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.gcf-kicker{display:flex;align-items:center;gap:7px;margin:0 0 6px;font-size:10px;font-weight:700;letter-spacing:1.6px;color:var(--green)}
.gcf-kicker .icon{width:15px;height:15px}
.gcf-head h2{margin:0;font-size:22px;letter-spacing:-.6px;line-height:1.25}
.gcf-lead{margin:6px 0 0;color:var(--muted);font-size:13px}
.gcf-close{flex:0 0 auto;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--muted);display:grid;place-content:center}
.gcf-close:hover{background:var(--bg);color:var(--ink)}
.gcf-progress{grid-area:progress;display:flex;gap:6px;margin-bottom:18px}
.gcf-seg{flex:1;height:22px;border:0;padding:9px 0;background:none;display:block;cursor:pointer;min-height:0}
.gcf-seg::before{content:'';display:block;height:4px;border-radius:4px;background:var(--line)}
.gcf-seg{position:relative}
.gcf-seg-fill{position:absolute;left:0;right:0;top:9px;height:4px;border-radius:4px;background:var(--green);transform:scaleX(0);transform-origin:left}
.gcf-seg.done .gcf-seg-fill{transform:scaleX(1)}
.gcf-seg.current .gcf-seg-fill{animation:gcfFill 7200ms linear forwards}
.gcf.reduced .gcf-seg.current .gcf-seg-fill{animation:none;transform:scaleX(1)}
.gcf-seg:focus-visible{outline:3px solid #38b993;outline-offset:2px;border-radius:6px}
.gcf-stage{grid-area:stage;min-height:330px;border-radius:18px;background:radial-gradient(120% 90% at 0% 0%,color-mix(in srgb,var(--green) 18%,var(--nav)) 0%,var(--nav) 60%);padding:22px;display:grid;align-items:center;overflow:hidden}
.gcf-scene{animation:gcfIn .26s cubic-bezier(.2,.8,.2,1) both}
.gcf-window{background:var(--surface);border-radius:14px;box-shadow:0 18px 40px #0000004d;overflow:hidden;font-size:12px}
.gcf-window-bar{display:flex;align-items:center;gap:6px;padding:10px 12px;border-bottom:1px solid var(--line);background:var(--bg)}
.gcf-window-bar span{width:8px;height:8px;border-radius:50%;background:var(--line)}
.gcf-window-bar strong{margin-left:8px;font-size:11px;color:var(--muted)}
.gcf-window-body{padding:14px;display:grid;gap:10px}
.gcf-eyebrow{font-size:9px;letter-spacing:1.4px;font-weight:700;color:var(--green)}
.gcf-field{position:relative;display:grid;gap:5px}
.gcf-field small{font-size:10px;font-weight:700}
.gcf-input{min-height:34px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;display:flex;align-items:center;background:var(--surface);font-size:12px}
.gcf-input.mono,.gcf-field .mono{letter-spacing:1px}
.gcf-focus .gcf-input,.gcf-search.gcf-focus{border-color:var(--green)}
.gcf-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gcf-hint{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted)}
.gcf-hint .icon{width:15px;height:15px;flex:0 0 auto}
.gcf-hint.ok{color:var(--green);font-weight:700}
.gcf-note{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;border-radius:9px;background:var(--blue-bg);color:var(--blue);font-size:11px;line-height:1.45}
.gcf-note.amber{background:var(--amber-bg);color:var(--amber)}
.gcf-note .icon{width:15px;height:15px;flex:0 0 auto;margin-top:1px}
.gcf-panel{border:1px solid color-mix(in srgb,var(--green) 26%,var(--line));border-radius:11px;padding:11px;display:grid;gap:8px;background:color-mix(in srgb,var(--tint) 32%,var(--surface))}
.gcf-panel.info{border-color:color-mix(in srgb,var(--blue) 28%,var(--line));background:color-mix(in srgb,var(--blue-bg) 40%,var(--surface))}
.gcf-panel.info .gcf-eyebrow{color:var(--blue)}
.gcf-panel>strong{font-size:12px}
.gcf-aid{position:relative;display:flex;align-items:center;gap:9px;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.gcf-aid-thumb{width:32px;height:32px;border-radius:8px;background:var(--bg);display:grid;place-content:center;color:var(--green);flex:0 0 auto}
.gcf-aid-thumb .icon{width:17px;height:17px}
.gcf-aid-copy{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.gcf-aid-copy strong{font-size:11px}.gcf-aid-copy .mono{font-size:11px}.gcf-aid-copy small{font-size:9px;color:var(--muted)}
.gcf-badge{font-size:9px;font-weight:700;padding:3px 7px;border-radius:5px;white-space:nowrap}
.gcf-badge.green{background:var(--tint);color:var(--green)}.gcf-badge.amber{background:var(--amber-bg);color:var(--amber)}.gcf-badge.blue{background:var(--blue-bg);color:var(--blue)}
.gcf-box{position:relative;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--line);flex:0 0 auto;display:grid;place-content:center}
.gcf-tick{position:absolute;inset:-1.5px;border-radius:6px;background:var(--green);color:var(--surface);display:grid;place-content:center;opacity:0;transform:scale(.4);animation:gcfPop .24s cubic-bezier(.2,.8,.2,1) var(--d) both}
.gcf-tick .icon{width:13px;height:13px;stroke-width:2.8}
.gcf-tap{position:absolute;left:50%;top:50%;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;background:color-mix(in srgb,var(--green) 34%,transparent);opacity:0;transform:scale(.3);animation:gcfTap .3s ease-out var(--d) both;pointer-events:none}
.gcf-ring{position:absolute;inset:-5px;border-radius:12px;box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 45%,transparent);opacity:0;animation:gcfFade .24s ease var(--d) both;pointer-events:none}
.gcf-in{opacity:0;transform:translateY(8px);animation:gcfIn .26s cubic-bezier(.2,.8,.2,1) var(--d) both}
.gcf-char{opacity:0;animation:gcfFade .12s linear var(--d) both}
.gcf-out{animation:gcfOut .26s ease var(--d) both}
.gcf-success{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--tint);color:var(--green)}
.gcf-success>.icon{width:22px;height:22px;flex:0 0 auto}
.gcf-success strong,.gcf-success small{display:block}.gcf-success small{color:var(--ink);font-size:10px}
.gcf-order{display:grid;gap:2px;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.gcf-order .gcf-badge{justify-self:start}
.gcf-order strong{font-size:11px}.gcf-order small{font-size:10px;color:var(--muted)}
.gcf-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gcf-item{position:relative;padding:8px 10px;border:1px solid var(--line);border-radius:9px;display:grid;gap:1px}
.gcf-item small{font-size:9px;letter-spacing:.6px;color:var(--muted);text-transform:uppercase}
.gcf-item span{font-size:11px}
.gcf-banner{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--amber-bg);color:var(--amber)}
.gcf-banner .icon{width:17px;height:17px;flex:0 0 auto;margin-top:1px}
.gcf-banner strong{display:block;font-size:11px}.gcf-banner small{font-size:10px;color:var(--ink)}
.gcf-search{position:relative;display:flex;align-items:center;gap:8px;min-height:36px;padding:7px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}
.gcf-search .icon{width:16px;height:16px;color:var(--muted);flex:0 0 auto}
.gcf-list{display:grid;gap:7px}
.gcf-pair{display:grid;grid-template-columns:1fr 26px 1fr;gap:6px;align-items:stretch}
.gcf-pair>div{padding:9px 10px;border-radius:9px;border:1px solid color-mix(in srgb,var(--amber) 35%,var(--line));background:color-mix(in srgb,var(--amber-bg) 50%,var(--surface));display:grid;gap:1px}
.gcf-pair>div.new{border-color:color-mix(in srgb,var(--green) 35%,var(--line));background:color-mix(in srgb,var(--tint) 55%,var(--surface))}
.gcf-pair small{font-size:8px;letter-spacing:.8px;font-weight:700;color:var(--muted)}.gcf-pair strong{font-size:11px}.gcf-pair span{font-size:9px;color:var(--muted)}
.gcf-arrow{display:grid;place-content:center;color:#ffffffb3}
.gcf-arrow .icon{width:18px;height:18px}
.gcf-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.gcf-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:10px;font-weight:700;background:var(--surface);text-align:center}
.gcf-btn .icon{width:14px;height:14px}
.gcf-btn.primary{background:var(--green);border-color:var(--green);color:var(--surface)}
[data-theme=dark] .gcf-btn.primary{color:#0a2820}
.gcf-btn.wide{width:100%}
.gcf-modes{display:flex;gap:6px;flex-wrap:wrap}
.gcf-mode{position:relative;display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;font-size:10px;font-weight:700;background:var(--surface)}
.gcf-mode .icon{width:14px;height:14px;color:var(--green)}
.gcf-mode.active{border-color:var(--green);background:var(--tint)}
.gcf-product{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--blue) 34%,var(--line));border-radius:9px}
.gcf-product strong{display:block;font-size:11px}.gcf-product .mono{font-size:11px;letter-spacing:.5px}
.gcf-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.gcf-tile{position:relative;display:grid;gap:3px;justify-items:start;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.gcf-tile .icon{width:18px;height:18px;color:var(--amber)}
.gcf-tile.ok{border-color:var(--green);background:var(--tint)}.gcf-tile.ok .icon{color:var(--green)}
.gcf-tile strong{font-size:11px}.gcf-tile small{font-size:9px;color:var(--muted)}
.gcf-caption{grid-area:caption;align-self:start;padding-top:4px}
.gcf-step{margin:0 0 8px;font-size:10px;font-weight:700;letter-spacing:1.4px;color:var(--green);text-transform:uppercase}
.gcf-caption h3{margin:0 0 10px;font-size:20px;letter-spacing:-.5px;line-height:1.3}
.gcf-caption p:last-child{margin:0;color:var(--muted);font-size:14px;line-height:1.65}
.gcf-controls{grid-area:controls;align-self:end;display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.gcf-ctl{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 14px;border-radius:11px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:12px;font-weight:700}
.gcf-ctl:hover{background:var(--bg)}
.gcf-ctl.primary{margin-left:auto;background:var(--green);border-color:var(--green);color:var(--surface);min-width:132px}
[data-theme=dark] .gcf-ctl.primary{color:#0a2820}
.gcf-ctl.primary:hover{background:var(--green-dark)}
.gcf-ctl:disabled{opacity:.45}
.gcf.paused .gcf-stage *,.gcf.paused .gcf-seg-fill{animation-play-state:paused}
@keyframes gcfIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes gcfFade{from{opacity:0}to{opacity:1}}
@keyframes gcfOut{from{opacity:1}to{opacity:.18}}
@keyframes gcfPop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}
@keyframes gcfTap{0%{opacity:0;transform:scale(.3)}40%{opacity:1}100%{opacity:0;transform:scale(1.25)}}
@keyframes gcfCard{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
@keyframes gcfFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.gcf.reduced *,.gcf.reduced *::before,.gcf.reduced *::after{animation:none!important}
.gcf.reduced .gcf-in,.gcf.reduced .gcf-char,.gcf.reduced .gcf-tick,.gcf.reduced .gcf-ring{opacity:1;transform:none}
.gcf.reduced .gcf-tap{display:none}.gcf.reduced .gcf-out{opacity:.18}
@media(prefers-reduced-motion:reduce){.gcf *,.gcf *::before,.gcf *::after{animation:none!important}.gcf .gcf-in,.gcf .gcf-char,.gcf .gcf-tick,.gcf .gcf-ring{opacity:1;transform:none}.gcf .gcf-tap{display:none}}
@media(max-width:860px){
 .gcf{padding:0;place-items:stretch}
 .gcf-card{width:100%;max-height:none;height:100dvh;border-radius:0;padding:18px 16px calc(16px + env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto;grid-template-areas:"head" "progress" "stage" "caption" "controls";animation-name:gcfFade}
 .gcf-head h2{font-size:18px}.gcf-lead{font-size:12px}
 .gcf-stage{min-height:0;padding:14px;border-radius:14px}
 .gcf-caption{padding-top:14px}.gcf-caption h3{font-size:17px}.gcf-caption p:last-child{font-size:13px}
 .gcf-controls{margin-top:12px}.gcf-ctl span{display:inline}
 .gcf-ctl.primary{flex:1 1 auto}
}
@media(max-width:380px){.gcf-ctl:not(.primary) span{display:none}.gcf-ctl{min-width:44px}}

/* r33 · Novità con la guida della release */
.upd-guide{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:48px;margin-top:10px;padding:10px 16px;border:1px solid #69d7b266;border-radius:14px;background:#69d7b214;color:#c9f2e1;font:inherit;font-size:14px;font-weight:700;cursor:pointer;transition:background .18s ease,border-color .18s ease}
.upd-guide:hover{background:#69d7b229;border-color:#69d7b2a6}
.upd-guide .icon{width:18px;height:18px;color:#69d7b2}
.upd-guide:focus-visible{outline:3px solid #fff;outline-offset:3px}

.cf-coherence{display:flex;gap:6px;align-items:flex-start;margin:-10px 0 14px;padding:8px 11px;border-radius:9px;background:var(--amber-bg);color:var(--amber);font-size:11px;font-weight:700}
.cf-coherence[hidden]{display:none}
.duplicate-link{border:0;background:none;padding:0;margin:0;font:inherit;font-size:11px;color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer;min-height:0}
.duplicate-link:focus-visible{outline:3px solid #38b993;outline-offset:2px;border-radius:4px}
.duplicate-verdict{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:11px;font-size:12px}
.duplicate-verdict .icon{width:18px;height:18px;flex:0 0 auto;margin-top:1px}
.duplicate-verdict strong,.duplicate-verdict small{display:block}.duplicate-verdict small{color:var(--ink);font-size:11px;margin-top:2px}
.duplicate-verdict.same{background:var(--tint);color:var(--green)}
.duplicate-verdict.check{background:var(--amber-bg);color:var(--amber)}

/* r33 · Intervento tecnico su una consegna chiusa */
.intervention-panel{margin-bottom:16px;border-color:color-mix(in srgb,var(--amber) 34%,var(--line))}
.intervention-panel.active{box-shadow:0 0 0 3px color-mix(in srgb,var(--amber) 12%,transparent),var(--shadow)}
.intervention-panel .panel-head>.icon{width:22px;height:22px;color:var(--amber)}
.intervention-head-state{display:none}
.intervention-steps{list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.intervention-steps li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}
.intervention-steps li strong{display:block;font-size:13px}
.intervention-steps li small{display:block;color:var(--muted);font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.intervention-step-dot{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px;background:var(--bg);color:var(--muted);border:1px solid var(--line)}
.intervention-step-dot .icon{width:14px;height:14px}
.intervention-steps li.done .intervention-step-dot{background:var(--green);color:#fff;border-color:var(--green)}
.intervention-steps li.current{border-color:var(--amber);background:color-mix(in srgb,var(--amber) 8%,var(--surface))}
.intervention-steps li.current .intervention-step-dot{background:var(--amber);color:#fff;border-color:var(--amber)}
.intervention-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:12px}
.intervention-block{border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-width:0;background:var(--surface)}
.intervention-block>small{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted);margin-bottom:6px}
.intervention-block.problem p{margin:0 0 6px;font-weight:600;line-height:1.45;overflow-wrap:anywhere;white-space:pre-line}
.intervention-block.problem span{font-size:12px;color:var(--muted)}
.intervention-block.plan strong{display:block;font-size:20px;color:var(--green-dark)}
.intervention-block.plan strong.muted{color:var(--muted);font-size:16px}
.intervention-block.plan p{margin:6px 0 0;font-size:13px;overflow-wrap:anywhere}
.intervention-aids{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.intervention-aids li{display:flex;gap:10px;align-items:center;min-width:0}
.intervention-aids li>span{display:flex;flex-direction:column;min-width:0}
.intervention-aids img,.intervention-aids .photo{width:40px;height:40px;flex:0 0 40px;border-radius:8px;object-fit:contain}
.intervention-aids strong{font-size:13px;overflow-wrap:anywhere}
.intervention-trip,.intervention-hint,.intervention-signed{display:flex;gap:6px;align-items:center;margin-top:8px;font-size:12.5px;color:var(--muted)}
.intervention-trip{background:none;border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--green-dark);font-weight:600;cursor:pointer;min-height:36px}
.intervention-signed{color:var(--green-dark);font-weight:600;flex-wrap:wrap}
.intervention-trip .icon,.intervention-hint .icon,.intervention-signed .icon{width:15px;height:15px;flex:0 0 15px}
.intervention-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.intervention-danger{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.intervention-danger small{color:var(--muted)}
.intervention-history{margin-top:14px;display:grid;gap:8px}
.intervention-history>small{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted)}
.intervention-past{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;min-width:0}
.intervention-past>span{flex:1;min-width:0;display:flex;flex-direction:column}
.intervention-past small{color:var(--muted);overflow-wrap:anywhere}
.intervention-past>.icon{width:18px;height:18px;color:var(--green);flex:0 0 18px}
.intervention-past.cancelled>.icon{color:var(--red)}
.intervention-intro{display:flex;gap:14px;align-items:flex-start;padding:14px;border-radius:14px;background:color-mix(in srgb,var(--amber) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--amber) 30%,var(--line));margin-bottom:14px}
.intervention-intro.danger{background:color-mix(in srgb,var(--red) 7%,var(--surface));border-color:color-mix(in srgb,var(--red) 28%,var(--line))}
.intervention-intro>.icon{width:26px;height:26px;color:var(--amber);flex:0 0 26px}
.intervention-intro.danger>.icon{color:var(--red)}
.intervention-intro h3{margin:2px 0 4px}
.intervention-intro p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.45}
.intervention-choice{border:0;margin:0 0 14px;padding:0;display:grid;gap:8px}
.intervention-choice legend{font-weight:700;margin-bottom:8px;font-size:13.5px}
.intervention-choice-item{position:relative;display:flex;gap:12px;align-items:center;padding:10px 44px 10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;min-height:56px;background:var(--surface);transition:border-color .15s,background-color .15s}
.intervention-choice-item input{position:absolute;opacity:0;pointer-events:none}
.intervention-choice-item>span{display:flex;flex-direction:column;min-width:0}
.intervention-choice-item small{color:var(--muted)}
.intervention-choice-item img,.intervention-choice-item .photo{width:44px;height:44px;flex:0 0 44px;border-radius:8px;object-fit:contain}
.intervention-choice-check{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;color:transparent}
.intervention-choice-check .icon{width:14px;height:14px}
.intervention-choice-item:has(input:checked){border-color:var(--amber);background:color-mix(in srgb,var(--amber) 8%,var(--surface))}
.intervention-choice-item:has(input:checked) .intervention-choice-check{background:var(--amber);border-color:var(--amber);color:#fff}
.intervention-choice-item:has(input:focus-visible){outline:2px solid var(--green);outline-offset:2px}
.intervention-choice-item.locked{opacity:.62;cursor:not-allowed}
.intervention-outcomes{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.intervention-outcomes button{min-height:38px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:13px;cursor:pointer}
.intervention-outcomes button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}
.order-maintenance-state{display:flex;gap:8px;align-items:center;min-width:0}
.order-maintenance-state .icon{width:16px;height:16px;color:var(--amber);flex:0 0 16px}
.order-maintenance-state.ready .icon{color:var(--green)}
.order-maintenance-state>span{display:flex;flex-direction:column;min-width:0}
.order-maintenance-state small{color:var(--muted);font-size:12px}
@media (max-width:980px){.intervention-grid{grid-template-columns:minmax(0,1fr)}.intervention-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.intervention-steps{grid-template-columns:minmax(0,1fr)}.intervention-actions .btn{flex:1 1 100%;min-height:44px}.intervention-danger{flex-direction:column;align-items:stretch}}
@media (prefers-reduced-motion:reduce){.intervention-choice-item{transition:none}}
/* r34 · ritorno ai Possibili doppioni: la coppia da cui si era aperta la pratica si segnala per un istante */
.duplicate-card{position:relative}
.duplicate-card.flash-return::after{content:'';position:absolute;inset:-3px;border:3px solid var(--green);border-radius:inherit;pointer-events:none;animation:duplicateFlash 2.4s ease-out forwards}
@keyframes duplicateFlash{0%,55%{opacity:1}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.duplicate-card.flash-return::after{animation:none;opacity:1}}
/* ---- Mappa delle pratiche degli Ordini (r38) ----
   Mappa nel riquadro isolato a sinistra, pannello delle pratiche a destra; su telefono la mappa sopra e il pannello sotto,
   richiudibile. Il pannello scorre al proprio interno: la cornice della finestra non scorre mai. */
#modal.orders-map-modal{width:92vw;max-width:92vw;height:90dvh;max-height:90dvh;padding:0;overflow:hidden}
#modal.orders-map-modal[open]{display:flex;flex-direction:column}
#modal.orders-map-modal .modal-header{flex:none}
#modal.orders-map-modal .modal-content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;padding:0;overflow:hidden}
#modal.orders-map-modal .modal-content>.form-error:empty{display:none}
.omap{display:grid;flex:1 1 auto;grid-template-columns:minmax(0,1fr) clamp(380px,24vw,460px);min-height:0}
.omap-stage{position:relative;min-height:0;overflow:hidden;background:#E8EFEC}
.omap-frame{position:absolute;inset:0;width:100%;height:100%;border:0}
.omap-stage-state{position:absolute;left:50%;top:50%;z-index:2;display:flex;align-items:center;gap:10px;max-width:min(380px,calc(100% - 32px));padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);transform:translate(-50%,-50%)}
.omap-stage-state[hidden]{display:none}
.omap-stage-state strong{display:block;font-size:14px}
.omap-stage-state small{display:block;margin-top:2px;color:var(--muted);font-size:12.5px;line-height:1.45}
.omap-stage-state.warn{border-color:color-mix(in srgb,var(--amber) 45%,var(--line))}
.omap-stage-state.warn>.icon{flex:none;width:22px;height:22px;color:var(--amber)}
.omap-tools{position:absolute;left:12px;top:12px;z-index:2;display:flex;flex-wrap:wrap;gap:8px;max-width:calc(100% - 200px)}
.omap-tool{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:700;box-shadow:0 4px 14px rgba(15,40,34,.16);cursor:pointer;transition:background 150ms ease,color 150ms ease,border-color 150ms ease}
.omap-tool>.icon{width:17px;height:17px}
.omap-tool:hover{border-color:var(--green)}
.omap-tool.on{border-color:var(--nav);background:var(--nav);color:#fff}
.omap-tool:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.omap-hint{position:absolute;left:50%;bottom:16px;z-index:2;display:flex;align-items:center;gap:8px;margin:0;padding:10px 14px;border-radius:12px;background:var(--nav);color:#fff;font-size:13px;font-weight:600;box-shadow:var(--shadow);transform:translateX(-50%)}
.omap-hint[hidden]{display:none}
.omap-hint>.icon{flex:none;width:17px;height:17px}
.omap-panel{display:flex;min-height:0;border-left:1px solid var(--line);background:var(--surface)}
.omap-pannello{display:flex;flex:1 1 auto;flex-direction:column;min-width:0;min-height:0}
.omap-loading{display:flex;align-items:center;gap:10px;padding:22px 18px;color:var(--muted);font-size:13px}
.omap-loading.warn{color:var(--amber)}
.omap-loading>.icon{flex:none;width:20px;height:20px}
.omap-head{flex:none;padding:16px 18px 10px}
.omap-head .eyebrow{font-size:10px;letter-spacing:.9px}
.omap-head h3{margin:4px 0 0;font-size:18px;line-height:1.25}
.omap-espandi{display:none}
.omap-filtri{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.omap-chip{padding:3px 9px;border-radius:99px;background:var(--tint);color:var(--green-dark);font-size:11.5px;font-weight:700}
.omap-avviso{margin:9px 0 0;padding:8px 10px;border-radius:10px;background:var(--amber-bg);color:var(--amber);font-size:12px;line-height:1.45}
.omap-avviso[hidden]{display:none}
/* Legenda della mappa (r40): ogni contatore e' un filtro dei pin e dell'elenco, con lo stato premuto del suo colore. */
.omap-legenda-testa{display:flex;flex:none;align-items:center;justify-content:space-between;gap:10px;min-height:36px;padding:0 18px 4px}
.omap-legenda-testa .eyebrow{color:var(--muted);font-size:10px;letter-spacing:.9px}
.omap-legenda-testa .omap-chiave-tutte{margin-right:-8px;padding:0 8px}
.omap-legenda .omap-chiave-tutte{display:none}
.omap-legenda{display:flex;flex:none;flex-wrap:wrap;gap:6px;padding:0 18px 10px}
.omap-chiave{--tono:var(--muted);display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font:inherit;font-size:12px;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease,box-shadow 150ms ease,transform 150ms ease}
.omap-chiave[hidden],.omap-chiave-tutte[hidden]{display:none}
.omap-chiave b{color:var(--ink);font-variant-numeric:tabular-nums}
.omap-chiave i{display:inline-block;flex:none;width:11px;height:11px;border-radius:50%}
.omap-chiave:hover{border-color:color-mix(in srgb,var(--tono) 55%,var(--line));color:var(--ink)}
.omap-chiave:active{transform:scale(.97)}
.omap-chiave[aria-pressed="true"]{border-color:var(--tono);background:color-mix(in srgb,var(--tono) 13%,var(--surface));color:var(--ink);box-shadow:inset 0 0 0 1px var(--tono)}
.omap-chiave[aria-disabled="true"]{opacity:.42;cursor:default}
.omap-chiave[aria-disabled="true"]:hover{border-color:var(--line);color:var(--muted)}
.omap-chiave[aria-disabled="true"]:active{transform:none}
.omap-chiave:focus-visible,.omap-chiave-tutte:focus-visible,.omap-vuoto-azione:focus-visible,.omap-guida-azione:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.omap-chiave.cons{--tono:var(--green)}
.omap-chiave.rit{--tono:var(--blue)}
.omap-chiave.man{--tono:#B98714}
.omap-chiave.man i{background:linear-gradient(145deg,#F7DD82,#B98714)}
[data-theme=dark] .omap-chiave.man{--tono:#F0CB62}
.omap-chiave.squadra{--tono:var(--nav)}
.omap-chiave.sosp{--tono:var(--amber)}
.omap-chiave.mano{--tono:var(--ink)}
.omap-chiave.pronta{--tono:#1FAF7C}
[data-theme=dark] .omap-chiave.squadra{--tono:var(--ink)}
.omap-chiave-tutte{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 10px;border:0;border-radius:999px;background:transparent;color:var(--green-dark);font:inherit;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;transition:background-color 150ms ease}
.omap-chiave-tutte:hover{background:var(--bg)}
.omap-chiave-tutte>.icon{width:13px;height:13px}
@media(pointer:coarse){.omap-chiave,.omap-chiave-tutte{min-height:44px}.omap-legenda-testa{min-height:48px}}
.omap-vuoto-azione{display:flex;align-items:center;gap:6px;min-height:44px;margin:12px auto 0;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--green-dark);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.omap-vuoto-azione:hover{border-color:var(--green)}
.omap-vuoto-azione>.icon{width:14px;height:14px}
.omap-guida-azione{padding:2px 0;border:0;background:none;color:inherit;font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.omap-nascoste{color:var(--amber);font-weight:700}
.omap-chiave.cons i{background:#0B6E58}
.omap-chiave.rit i{background:#2F6FA8}
.omap-chiave.sosp i{border:2.5px solid #C98A1B}
.omap-chiave.appr i{border:2px dashed var(--muted)}
.omap-chiave.mano i{width:9px;height:9px;border-radius:2px;background:var(--ink);transform:rotate(45deg)}
.omap-schede{display:grid;flex:none;grid-template-columns:1fr 1fr;gap:6px;padding:0 18px 10px}
.omap-scheda{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--muted);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.omap-scheda b{font-variant-numeric:tabular-nums}
.omap-scheda[aria-selected="true"]{border-color:var(--nav);background:var(--nav);color:#fff}
.omap-scheda:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.omap-cerca{display:flex;flex:none;align-items:center;gap:8px;min-height:44px;margin:0 18px 10px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.omap-cerca>.icon{flex:none;width:16px;height:16px;color:var(--muted)}
.omap-cerca input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:14px}
.omap-cerca:focus-within{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent)}
.omap-elenco{flex:1 1 auto;min-height:0;overflow:auto;padding:4px 10px 10px;border-top:1px solid var(--line);overscroll-behavior:contain}
.omap-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px;padding:4px;border-radius:12px}
.omap-row+.omap-row{margin-top:2px}
.omap-row:hover{background:var(--bg)}
.omap-row.is-scelta{background:var(--tint)}
.omap-row.is-sopra{box-shadow:inset 3px 0 0 var(--green)}
.omap-check{display:grid;flex:none;place-items:center;width:44px;height:44px;cursor:pointer}
.omap-check input{width:18px;height:18px;accent-color:var(--green)}
.omap-row-main{display:grid;gap:2px;min-width:0;padding:6px 2px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.omap-row-main[aria-disabled="true"]{cursor:default}
.omap-row-main:focus-visible,.omap-row-fix:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.omap-row-top{display:flex;align-items:center;gap:7px;min-width:0}
.omap-row-top strong{min-width:0;overflow:hidden;font-size:13.5px;text-overflow:ellipsis;white-space:nowrap}
.omap-row-top small{flex:none;margin-left:auto;color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}
.omap-row-indirizzo{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.omap-segni{display:flex;flex-wrap:wrap;gap:4px;margin-top:3px}
.omap-segno{padding:2px 7px;border-radius:99px;font-size:11px;font-weight:700;line-height:1.35}
.omap-segno.sosp{background:var(--amber-bg);color:var(--amber)}
.omap-segno.luogo{background:var(--bg);color:var(--muted)}
.omap-segno.blocco{background:var(--red-bg);color:var(--red)}
.omap-tipo{flex:none;padding:2px 7px;border-radius:6px;color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.05em}
.omap-tipo.cons{background:#0B6E58}
.omap-tipo.rit{background:#2F6FA8}
.omap-tipo.man{background:linear-gradient(145deg,#F7DD82 0%,#DDAE33 52%,#B98714 100%);color:#3A2700}
.omap-row-fix{display:grid;flex:none;place-items:center;width:44px;height:44px;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}
.omap-row-fix:hover{background:var(--surface);color:var(--ink)}
.omap-row-fix>.icon{width:18px;height:18px}
.omap-vuoto{margin:0;padding:26px 14px;color:var(--muted);font-size:13px;line-height:1.5;text-align:center}
.omap-vassoio{display:flex;flex:none;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;border-top:1px solid var(--line);background:var(--surface)}
.omap-vassoio-azioni{display:flex;flex-wrap:wrap;gap:8px}
.omap-vassoio .btn{min-height:44px}
.omap-conteggio{color:var(--muted);font-size:13px}
.omap-conteggio strong{color:var(--ink);font-variant-numeric:tabular-nums}
.omap-indietro{display:inline-flex;align-items:center;gap:6px;min-height:44px;margin:-6px 0 6px -8px;padding:0 10px;border:0;border-radius:10px;background:transparent;color:var(--green-dark);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.omap-indietro:hover{background:var(--bg)}
.omap-indietro>.icon{width:16px;height:16px}
.omap-lista{flex:1 1 auto;min-height:0;overflow:auto;padding:0 18px 12px}
.omap-lista .form-error:empty{display:none}
.omap-pos-pratica{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 0;color:var(--muted);font-size:12.5px}
.omap-pos{display:grid;flex:1 1 auto;align-content:start;gap:12px;min-height:0;overflow:auto;padding:0 18px 12px}
.omap-pos-attuale,.omap-pos-nota,.omap-pos-punto{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:13px;line-height:1.45}
.omap-pos-attuale{padding:10px 12px;border-radius:12px;background:var(--bg);color:var(--ink)}
.omap-pos-attuale>.icon,.omap-pos-nota>.icon,.omap-pos-punto>.icon{flex:none;width:17px;height:17px;margin-top:1px}
.omap-pos-nota{color:var(--muted);font-size:12px}
.omap-pos-punto{color:var(--muted)}
.omap-pos-punto>.icon{color:var(--green)}
.omap-pos-punto strong{color:var(--ink);font-variant-numeric:tabular-nums}
.omap-pos-link textarea{min-height:64px;resize:vertical;font-size:14px}
.omap-pos-azioni{display:flex;flex-wrap:wrap;gap:8px}
.omap-pos-azioni .btn{min-height:44px}
.omap-pos-azioni .btn.on{border-color:var(--nav);background:var(--nav);color:#fff}
.omap-pos .field-error:empty{display:none}
.omap-vassoio-azioni.sinistra:empty{display:none}
/* Foglio di carico dalla mappa (r39): invito alle pratiche pronte, scelta del lavoro, tappe numerate. Ogni movimento
   resta sotto i 300 ms, su transform e opacity, e si spegne con il movimento ridotto. */
.omap-pronte{position:relative;display:grid;flex:none;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:auto;margin:0 18px 12px;padding:12px 14px;overflow:hidden;border:0;border-radius:14px;background:linear-gradient(135deg,var(--nav) 0%,color-mix(in srgb,var(--green) 72%,var(--nav)) 100%);color:#fff;font:inherit;text-align:left;cursor:pointer;box-shadow:0 10px 26px rgba(11,60,48,.26);animation:omap-entra 260ms cubic-bezier(.2,.8,.2,1) both;transition:transform 160ms ease,box-shadow 160ms ease}
.omap-pronte::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.2) 45%,transparent 60%);transform:translateX(-120%);animation:omap-luce 300ms 260ms ease-out both;pointer-events:none}
.omap-pronte:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(11,60,48,.32)}
.omap-pronte:active{transform:scale(.99)}
.omap-pronte:focus-visible{outline:3px solid color-mix(in srgb,#1FAF7C 70%,#fff);outline-offset:2px}
.omap-pronte-icona{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:rgba(255,255,255,.14)}
.omap-pronte-icona>.icon{width:22px;height:22px}
.omap-pronte-testo{display:grid;gap:2px;min-width:0}
.omap-pronte-testo strong{font-size:14px;line-height:1.3}
.omap-pronte-testo strong b{display:inline-block;margin-right:2px;color:#B8F2DA;font-size:17px;font-variant-numeric:tabular-nums}
.omap-pronte-testo small{color:rgba(255,255,255,.78);font-size:12px;line-height:1.35}
.omap-pronte-vai{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:0 12px;border-radius:99px;background:#fff;color:var(--nav);font-size:12.5px;font-weight:800;white-space:nowrap}
.omap-pronte-vai>.icon{width:14px;height:14px}
.omap-modo{position:relative;display:grid;flex:none;grid-template-columns:1fr 1fr;margin:0 18px 10px;padding:3px;border:1px solid var(--line);border-radius:13px;background:var(--bg)}
.omap-modo::before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:10px;background:var(--surface);box-shadow:0 2px 8px rgba(15,40,34,.14);transition:transform 220ms cubic-bezier(.2,.8,.2,1)}
.omap-modo[data-modo="foglio"]::before{transform:translateX(100%)}
.omap-modo-btn{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:44px;padding:0 8px;border:0;border-radius:10px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:700;cursor:pointer;transition:color 180ms ease}
.omap-modo-btn>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.omap-modo-btn>.icon{flex:none;width:16px;height:16px}
.omap-modo-btn[aria-pressed="true"]{color:var(--ink)}
.omap-modo[data-modo="foglio"] .omap-modo-btn[aria-pressed="true"]{color:var(--green-dark)}
.omap-modo-btn b{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:#1FAF7C;color:#fff;font-size:11px;line-height:20px;font-variant-numeric:tabular-nums}
.omap-modo-btn b.neutro{background:var(--line);color:var(--ink)}
.omap-modo-btn:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.omap-guida{display:flex;flex:none;align-items:center;gap:9px;margin:0 18px 10px;padding:9px 12px;border-radius:12px;background:color-mix(in srgb,#1FAF7C 14%,var(--surface));color:var(--green-dark);font-size:12.5px;line-height:1.4;animation:omap-entra 220ms ease-out both}
.omap-guida>.icon{flex:none;width:17px;height:17px}
.omap-chiave.pronta i{background:#fff;box-shadow:0 0 0 2.5px #1FAF7C}
.omap-chiave.squadra i{display:inline-grid;place-items:center;width:auto;height:15px;padding:0 4px;border-radius:99px;background:var(--nav);color:#fff;font-size:8.5px;font-style:normal;font-weight:800;letter-spacing:.02em}
/* Senza squadra: la stessa sigla «SQ», vuota e barrata. Acceso prende il verde delle pratiche ancora da affidare. */
.omap-chiave.libere{--tono:var(--green)}
.omap-chiave.libere i{display:inline-grid;place-items:center;width:auto;height:15px;padding:0 3px;border:1.5px solid var(--nav);border-radius:99px;color:var(--nav);font-size:8.5px;font-style:normal;font-weight:800;letter-spacing:.02em;text-decoration:line-through;text-decoration-thickness:1.5px}
[data-theme=dark] .omap-chiave.libere i{border-color:var(--ink);color:var(--ink)}
.omap-segno.squadra{display:inline-flex;align-items:center;gap:5px;background:var(--nav);color:#fff}
.omap-segno.squadra>.icon{width:12px;height:12px}
.omap-segno.ripianifica{display:inline-flex;align-items:center;gap:4px;background:var(--blue-bg);color:var(--blue)}
.omap-segno.ripianifica>.icon{flex:none;width:12px;height:12px}
.omap-ordine{display:inline-grid;flex:none;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--nav);color:#fff;font-size:11.5px;font-weight:800;font-variant-numeric:tabular-nums}
.omap-ordine[hidden]{display:none}
.omap-ordine.pop{animation:omap-pop 220ms cubic-bezier(.2,.9,.3,1.4)}
.omap-segno.pronta{display:inline-flex;align-items:center;gap:4px;background:color-mix(in srgb,#1FAF7C 16%,transparent);color:var(--green-dark)}
.omap-segno.pronta>.icon{width:11px;height:11px}
.omap-row.is-attesa .omap-row-main{opacity:.6}
.omap-divisore{margin:12px 6px 6px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.omap-elenco.entra{animation:omap-dissolvi 200ms ease-out}
.omap-vassoio .btn.primary.accendi{animation:omap-accendi 260ms cubic-bezier(.2,.9,.3,1.3)}
@keyframes omap-entra{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes omap-luce{to{transform:translateX(120%)}}
@keyframes omap-pop{from{opacity:.2;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
@keyframes omap-dissolvi{from{opacity:.25}to{opacity:1}}
@keyframes omap-accendi{from{transform:scale(.93)}to{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.omap-tool,.omap-modo::before,.omap-modo-btn,.omap-pronte,.omap-chiave,.omap-chiave-tutte{transition:none}.omap-chiave:active{transform:none}.omap-pronte,.omap-pronte::after,.omap-guida,.omap-ordine.pop,.omap-elenco.entra,.omap-vassoio .btn.primary.accendi{animation:none}.omap-pronte::after{display:none}}
/* Telefono: mappa sopra, pannello sotto e richiudibile; tutto resta a portata di pollice. */
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 #modal.orders-map-modal{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
 .omap{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}
 .omap-panel{max-height:56dvh;border-top:1px solid var(--line);border-left:0}
 .omap.compatto .omap-panel{max-height:none}
 .omap.compatto .omap-legenda,.omap.compatto .omap-schede,.omap.compatto .omap-cerca,.omap.compatto .omap-elenco,.omap.compatto .omap-filtri,.omap.compatto .omap-avviso{display:none}
 .omap-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;padding:10px 14px 8px}
 .omap-head .eyebrow{display:none}
 .omap-head h3{grid-column:1;grid-row:1;font-size:15px}
 .omap-espandi{display:inline-flex;grid-column:2;grid-row:1;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
 .omap-espandi>.icon{width:16px;height:16px}
 .omap-filtri,.omap-avviso{grid-column:1 / -1}
 .omap-legenda,.omap-schede{padding-right:14px;padding-left:14px}
 .omap-legenda-testa{display:none}
 .omap-legenda{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;scroll-padding-inline:14px}
 .omap-legenda::-webkit-scrollbar{display:none}
 .omap-chiave,.omap-chiave-tutte{flex:none;min-height:44px}
 .omap-legenda .omap-chiave-tutte:not([hidden]){display:inline-flex;order:-1;border:1px solid var(--line);background:var(--surface)}
 /* Il pannello scorre per intero, con l'elenco dentro, e il vassoio dei comandi resta sempre in fondo e raggiungibile. */
 .omap-pannello{overflow-y:auto;overscroll-behavior:contain;scroll-padding-bottom:96px}
 .omap-elenco{flex:none;overflow:visible}
 .omap-vassoio{position:sticky;bottom:0;z-index:2}
 .omap-pronte,.omap-modo,.omap-guida{margin-right:14px;margin-left:14px}
 .omap-pronte{gap:10px;padding:10px 12px}
 .omap-pronte-icona{width:36px;height:36px}
 .omap-pronte-testo small{display:none}
 .omap-cerca{margin-right:14px;margin-left:14px}
 .omap-vassoio{padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
 .omap-vassoio-azioni{flex:1;justify-content:flex-end}
 .omap-tools{max-width:calc(100% - 24px)}
 .omap-tool span{display:none}
 .omap-tool{width:44px;padding:0;justify-content:center}
}

/* Indirizzo suggerito da Google (r39): elenco sotto il campo, attribuzione «Google Maps», stato discreto sotto. */
.addr-field{position:relative}
/* Suggerimento dell'indirizzo (r46): elenco con testata, tessera della posizione, parte scritta evidenziata, voce attiva
   con barra d'accento, tasti a vista sul desktop e attribuzione Google Maps sempre presente. Solo colori del prodotto. */
.addr-sugg{position:absolute;top:100%;right:0;left:0;z-index:40;max-height:min(380px,52vh);overflow:auto;padding:6px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:0 1px 2px rgba(15,40,34,.06),0 24px 48px -14px rgba(15,40,34,.3);font-weight:400;animation:addr-apri 160ms ease-out both;overscroll-behavior:contain;scrollbar-width:thin}
.addr-sugg[hidden]{display:none}
.addr-sugg-head{position:sticky;top:-6px;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-6px -6px 4px;padding:10px 14px 9px;border-bottom:1px solid var(--line);background:var(--surface);border-radius:16px 16px 0 0;color:var(--muted);font-size:12px;font-weight:600}
.addr-sugg-head>span{display:inline-flex;align-items:center;gap:7px;min-width:0}.addr-sugg-head>span>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.addr-sugg-head .icon{flex:none;width:14px;height:14px;color:var(--green)}
.addr-sugg-head b{color:var(--ink);font-weight:800}
.addr-sugg-head small{flex:none;padding:2px 8px;border-radius:99px;background:var(--tint);color:var(--green-dark);font-size:10.5px;font-weight:800;letter-spacing:0;text-transform:none}
.addr-opt{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;min-height:58px;padding:9px 12px 9px 10px;border-radius:12px;cursor:pointer;transition:background-color 150ms ease}
.addr-opt+.addr-opt{margin-top:2px}
.addr-opt-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--tint);color:var(--green-dark);transition:background-color 150ms ease,color 150ms ease}
.addr-opt-icon .icon{width:18px;height:18px}
.addr-opt-copy{display:grid;gap:3px;min-width:0}
.addr-opt-main{display:flex;flex-wrap:wrap;align-items:center;gap:6px;color:var(--ink);font-size:14.5px;font-weight:500;line-height:1.3}
.addr-opt-main mark{background:none;color:inherit;font-weight:800}
.addr-opt-sec{overflow:hidden;color:var(--muted);font-size:12.5px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}
.addr-opt-tag{padding:1px 8px;border-radius:99px;background:var(--amber-bg);color:var(--amber);font-size:10.5px;font-weight:800}
.addr-opt[aria-selected="true"],.addr-opt:hover{background:var(--tint)}
.addr-opt[aria-selected="true"] .addr-opt-icon{background:var(--green);color:var(--surface)}
.addr-opt[aria-selected="true"]::before{content:"";position:absolute;top:12px;bottom:12px;left:-2px;width:3px;border-radius:3px;background:var(--green)}
.addr-sugg kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;background:var(--bg);color:var(--ink);font:700 10.5px/1 inherit}
.addr-sugg-foot{position:sticky;bottom:-6px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px -6px -6px;padding:9px 14px 9px;border-top:1px solid var(--line);background:var(--surface);border-radius:0 0 16px 16px;color:var(--muted);font-size:11px}
.addr-sugg-keys{display:inline-flex;align-items:center;gap:4px}
.addr-sugg-brand{margin-left:auto;white-space:nowrap}
.addr-sugg-brand b{color:var(--ink);font-weight:700}
.addr-skel{display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:12px;min-height:58px;padding:9px 12px 9px 10px}
.addr-skel i{width:38px;height:38px;border-radius:11px;background:var(--tint)}
.addr-skel span{display:grid;gap:8px}
.addr-skel b,.addr-skel em{display:block;height:10px;border-radius:6px;background:color-mix(in srgb,var(--line) 75%,transparent)}
.addr-skel b{width:58%}.addr-skel em{width:34%;height:8px}
.addr-sugg.carica .addr-opt{opacity:.55;transition:opacity 150ms ease}
.addr-stato{display:flex;align-items:flex-start;gap:8px;margin-top:8px;color:var(--muted);font-size:12px;font-weight:600;line-height:1.4}
.addr-stato[hidden]{display:none}
.addr-stato.ok,.addr-stato.warn,.addr-stato.novita,.addr-stato.cerca{display:inline-flex;align-items:center;width:fit-content;max-width:100%;padding:5px 12px 5px 5px;border-radius:12px;font-weight:600;animation:addr-apri 200ms ease-out both}
.addr-stato-ico{display:grid;flex:none;place-items:center;width:22px;height:22px;border-radius:50%}
.addr-stato-ico .icon{width:13px;height:13px}
.addr-stato.ok{background:var(--tint);color:var(--green-dark)}
.addr-stato.ok .addr-stato-ico{background:var(--green);color:var(--surface)}
.addr-stato.warn{background:var(--amber-bg);color:var(--amber)}
.addr-stato.warn .addr-stato-ico{background:color-mix(in srgb,var(--amber) 16%,transparent)}
.addr-stato.novita{background:var(--tint);color:var(--green-dark)}
.addr-stato.novita .addr-stato-ico{background:color-mix(in srgb,var(--green) 18%,transparent)}
.addr-stato.novita b{font-weight:800}
.addr-stato.cerca{background:color-mix(in srgb,var(--line) 45%,transparent);color:var(--ink)}
.addr-stato.cerca .addr-stato-ico{background:var(--surface);color:var(--green)}
@keyframes addr-apri{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(hover:none),(max-width:720px){.addr-sugg .addr-sugg-keys{display:none}.addr-opt{min-height:60px}}
@media(prefers-reduced-motion:reduce){.addr-sugg,.addr-stato.ok,.addr-stato.warn,.addr-stato.novita,.addr-stato.cerca{animation:none}.addr-opt,.addr-opt-icon,.addr-sugg.carica .addr-opt{transition:none}}

/* ---- Gestione NSO (r42): archivio degli ordini NSO a cartelle ---- */
.nso-dashboard-mobile{display:none}
.nso-shell .topbar{position:sticky;top:0;z-index:25}
.nso-page{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px;align-items:start}
.nso-tree{position:sticky;top:calc(var(--workspace-header-height,86px) + 16px);max-height:calc(100vh - var(--workspace-header-height,86px) - 32px);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
.nso-tree-head{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:6px 8px 6px 16px;border-bottom:1px solid var(--line)}
.nso-tree-head small{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.9px}
.nso-tree-body{overflow:auto;padding:8px;overscroll-behavior:contain}
.nso-tree ul{list-style:none;margin:0;padding:0}
.nso-node{display:flex;align-items:center;gap:2px;padding-left:calc(var(--lvl,0) * 14px);border-radius:10px}
.nso-twist{flex:none;align-self:flex-start;width:26px;height:36px;display:grid;place-items:center;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer}
.nso-twist .icon{width:14px;height:14px}
.nso-twist:hover{background:var(--bg);color:var(--ink)}
.nso-twist-gap{flex:none;width:26px}
.nso-node-name{flex:1;min-width:0;display:flex;align-items:flex-start;gap:8px;min-height:36px;padding:8px;line-height:1.3;border:0;border-radius:9px;background:none;color:var(--ink);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.nso-node-name span{flex:1;min-width:0;overflow-wrap:anywhere}
.nso-node-name small{margin-top:1px;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.nso-node-name .icon{flex:none;width:17px;height:17px;color:var(--amber)}
.nso-node.root .nso-node-name .icon{color:var(--green)}
.nso-node-name:hover{background:var(--bg)}
.nso-node.current .nso-node-name{background:var(--tint);color:var(--green-dark);font-weight:700}
.nso-node.drop-target .nso-node-name,.nso-crumb.drop-target{outline:2px dashed var(--green);outline-offset:-2px;background:var(--green-bg)}
.nso-main{min-width:0}
.nso-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:2px;margin-bottom:4px;color:var(--muted);font-size:12px}
.nso-crumb{min-height:30px;padding:4px 8px;border:0;border-radius:8px;background:none;color:var(--green);font:inherit;font-weight:700;cursor:pointer}
.nso-crumb:hover{background:var(--tint)}
.nso-crumbs [aria-current]{padding:4px 8px;color:var(--ink);font-weight:700}
.nso-crumb-sep .icon{width:12px;height:12px;color:var(--muted);vertical-align:middle}
.nso-head-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px}
.nso-head-copy{min-width:0}
.nso-head h1{margin:6px 0 4px;font-size:28px;letter-spacing:-.6px;overflow-wrap:anywhere}
.nso-head h1:focus{outline:none}
.nso-head p{margin:0;color:var(--muted)}
.nso-head-actions{display:flex;flex-wrap:wrap;gap:8px}
.nso-deck{position:sticky;top:var(--workspace-header-height,86px);z-index:12;box-shadow:0 1px 0 var(--line),0 6px 16px #18332b0d;display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px}
.nso-search{flex:1;min-width:0;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.nso-search .icon{flex:none;width:18px;height:18px;color:var(--muted)}
.nso-search input{flex:1;min-width:0;min-height:42px;border:0;outline:0;background:none;color:var(--ink);font:inherit;font-size:14px}
.nso-search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px var(--green-bg)}
.nso-count{color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}
.nso-reset{min-height:44px}
.nso-readonly-banner{margin-bottom:14px}
.nso-selection{position:sticky;bottom:18px;z-index:20;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;max-width:720px;margin:16px auto 0;padding:10px 14px;border-radius:14px;background:var(--nav);color:#fff;box-shadow:0 12px 30px #0b231f33}
.nso-selection>div{display:flex;flex-wrap:wrap;gap:8px}
.nso-selection .btn{min-height:40px}
.nso-selection .btn.ghost{color:#fff}
.nso-section h2{margin:20px 0 10px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.9px;text-transform:uppercase}
.nso-section:first-child h2{margin-top:4px}
.nso-folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.nso-folder{position:relative;display:flex;align-items:center;min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);transition:transform 160ms ease,border-color 160ms ease}
.nso-folder:hover{border-color:var(--green);transform:translateY(-1px)}
.nso-folder.selected{border-color:var(--green);background:var(--tint)}
.nso-folder.drop-target,.nso-empty.drop-target{outline:2px dashed var(--green);outline-offset:2px;background:var(--green-bg)}
.nso-folder .nso-check{margin-left:4px}
.nso-folder-open{flex:1;min-width:0;display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 10px 12px 14px;border:0;border-radius:14px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.nso-folder .nso-check+.nso-folder-open{padding-left:2px}
.nso-folder-icon{flex:none;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--amber-bg);color:var(--amber)}
.nso-folder-icon .icon{width:22px;height:22px}
.nso-folder-copy{min-width:0;display:grid;gap:3px}
.nso-folder-copy strong{font-size:14px;line-height:1.3;overflow-wrap:anywhere}
.nso-folder-copy small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.nso-more{flex:none;margin-right:6px}
.nso-check{flex:none;display:grid;place-items:center;width:40px;min-height:44px;cursor:pointer}
.nso-check input{width:18px;height:18px;accent-color:var(--green)}
.nso-docs{display:grid;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.nso-doc{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto auto;align-items:center;gap:14px;padding:6px 12px;border-top:1px solid var(--line)}
.nso-readonly .nso-doc{grid-template-columns:minmax(0,1fr) auto auto auto}
.nso-doc:first-child,.nso-trash-row:first-child{border-top:0}
.nso-doc:hover{background:var(--bg)}
.nso-doc.selected{background:var(--tint)}
.nso-doc-main{min-width:0;display:flex;align-items:center;gap:12px;padding:6px 4px;border:0;border-radius:10px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.nso-doc-icon{position:relative;flex:none;width:38px;height:46px;display:grid;place-items:center;border-radius:9px;background:var(--red-bg);color:var(--red)}
.nso-doc-icon.xml{background:var(--green-bg);color:var(--green)}
.nso-doc-icon.folder{background:var(--amber-bg);color:var(--amber)}
.nso-doc-icon .icon{width:18px;height:18px;margin-bottom:9px}
.nso-doc-icon.folder .icon{margin:0}
.nso-doc-icon b{position:absolute;bottom:4px;font-size:8px;letter-spacing:.5px}
.nso-doc-copy{min-width:0;display:grid;gap:3px}
.nso-doc-copy strong{overflow:hidden;font-size:13.5px;text-overflow:ellipsis;white-space:nowrap}
.nso-doc-copy small{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.nso-doc-copy small .icon{width:12px;height:12px;margin-right:3px;vertical-align:-2px}
.nso-doc-total{font-size:13.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.nso-doc-total{display:grid;justify-items:end;gap:1px;font-weight:800;text-align:right}
.nso-doc-total small{color:var(--muted);font-size:9.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.nso-doc-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}
.nso-doc-actions .btn{min-height:40px}
.nso-empty{display:grid;justify-items:center;gap:8px;padding:48px 20px;border:1.5px dashed var(--line);border-radius:16px;background:var(--surface);color:var(--muted);text-align:center}
.nso-empty>.icon{width:34px;height:34px;color:var(--green)}
.nso-empty strong{color:var(--ink);font-size:16px}
.nso-empty p{max-width:470px;margin:0}
.nso-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px}
.nso-dropzone{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:#0b231fa6;pointer-events:none}
.nso-dropzone[hidden]{display:none}
.nso-dropzone>div{display:grid;justify-items:center;gap:8px;padding:30px 44px;border:2px dashed #ffffffcc;border-radius:22px;background:var(--nav);color:#fff;text-align:center;box-shadow:0 24px 64px #0007}
.nso-dropzone .icon{width:40px;height:40px}
.nso-dropzone small{opacity:.8}
.nso-menu{position:fixed;z-index:200;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 18px 50px #0b231f38}
.nso-menu button{width:100%;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border:0;border-radius:10px;background:none;color:var(--ink);font:inherit;font-size:13.5px;text-align:left;cursor:pointer}
.nso-menu button .icon{width:17px;height:17px}
.nso-menu button:hover,.nso-menu button:focus-visible{background:var(--tint);outline:0}
.nso-menu button.danger{color:var(--red)}
.nso-progress{position:fixed;right:20px;bottom:20px;z-index:150;width:min(430px,calc(100vw - 32px));max-height:min(60vh,520px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 24px 64px #0b231f40}
.nso-progress header{display:flex;align-items:center;gap:12px;padding:14px 12px 10px 14px}
.nso-progress header>div{flex:1;min-width:0;display:grid;gap:2px}
.nso-progress header small{color:var(--muted);font-size:12px}
.nso-progress-icon{flex:none;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--blue-bg);color:var(--blue)}
.nso-progress-icon.ok{background:var(--green-bg);color:var(--green)}
.nso-progress-icon.warn{background:var(--amber-bg);color:var(--amber)}
.nso-progress-bar{height:6px;margin:0 14px 10px;overflow:hidden;border-radius:999px;background:var(--bg)}
.nso-progress-bar span{display:block;height:100%;border-radius:inherit;background:var(--green);transition:width 200ms ease}
.nso-progress-list{margin:0;padding:0 8px 10px;overflow:auto;list-style:none}
.nso-progress-list li{display:flex;gap:10px;padding:7px 8px;border-radius:10px;font-size:12.5px}
.nso-progress-list li>span .icon{width:16px;height:16px}
.nso-progress-list li.creato>span{color:var(--green)}
.nso-progress-list li.doppio>span{color:var(--blue)}
.nso-progress-list li.errore{background:var(--red-bg)}
.nso-progress-list li.errore>span{color:var(--red)}
.nso-progress-list li div{min-width:0;display:grid;gap:1px}
.nso-progress-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nso-progress-list small{color:var(--muted)}
.nso-form-help{margin:8px 0 0;color:var(--muted);font-size:12.5px}
.nso-move-modal{width:min(660px,calc(100% - 24px))}
.nso-pick-search{margin-top:10px}
.nso-pick-tree{max-height:min(52vh,470px);margin:10px 0 0;padding:6px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:14px;background:var(--surface);list-style:none}
.nso-pick-tree ul{margin:0;padding:0;list-style:none}
.nso-pick-tree li.chiusa>ul{display:none}
.nso-pick-tree li.in-ricerca>ul{display:block}
.nso-pick-row{display:flex;align-items:flex-start;gap:2px;padding-left:calc(var(--lvl,0) * 18px)}
.nso-pick-twist{flex:none;width:30px;height:40px;display:grid;place-items:center;border:0;border-radius:8px;background:none;color:var(--muted);cursor:pointer}
.nso-pick-twist .icon{width:14px;height:14px;transition:transform 160ms ease}
.nso-pick-tree li:not(.chiusa)>.nso-pick-row .nso-pick-twist .icon,.nso-pick-tree li.in-ricerca>.nso-pick-row .nso-pick-twist .icon{transform:rotate(90deg)}
.nso-pick-twist:hover{background:var(--bg);color:var(--ink)}
.nso-pick-twist-gap{flex:none;width:30px}
.nso-pick{flex:1;min-width:0;display:flex;align-items:flex-start;gap:10px;min-height:40px;margin:0;padding:10px 12px;border-radius:10px;font-size:13.5px;font-weight:600;line-height:1.3;cursor:pointer}
.nso-pick input[type=radio]{flex:none;width:18px;height:18px;min-height:0;margin:0;padding:0;border:0;accent-color:var(--green)}
.nso-pick .icon{flex:none;width:17px;height:17px;color:var(--amber)}
.nso-pick.root .icon{color:var(--green)}
.nso-pick-name{flex:1;min-width:0;overflow-wrap:anywhere}
.nso-pick small{flex:none;margin-top:1px;padding:0 7px;border-radius:999px;background:var(--bg);color:var(--muted);font-size:11px;font-weight:700;line-height:18px;font-variant-numeric:tabular-nums}
.nso-pick:hover{background:var(--bg)}
.nso-pick:has(input:checked){background:var(--tint);color:var(--green-dark);font-weight:800;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 35%,transparent)}
.nso-pick:has(input:focus-visible){outline:2px solid var(--green);outline-offset:1px}
.nso-pick-here{color:var(--muted);font-weight:400}
.nso-pick.disabled{opacity:.45;cursor:not-allowed}
.nso-pick-dest{margin:12px 2px 0;color:var(--muted);font-size:12.5px;overflow-wrap:anywhere}
.nso-pick-dest strong{color:var(--ink)}
.nso-trash-row{display:grid;grid-template-columns:40px auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:10px 12px;border-top:1px solid var(--line)}
.nso-trash-row.selected{background:var(--tint)}
.nso-trash-when{display:grid;color:var(--muted);font-size:12px;text-align:right}
.module-card.nso .module-copy strong{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.module-card.nso .module-copy strong .badge,.nso-permission strong .badge{font-size:8px}
@media(max-width:1024px){.nso-page{grid-template-columns:1fr}.nso-tree{display:none}}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 .nso-topbar .nso-dashboard-mobile{display:inline-flex;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:0 14px;white-space:nowrap}
 .nso-dashboard-desktop{display:none}
 .nso-topbar .breadcrumb{display:none}
 .nso-shell .content{overflow:clip}
 .nso-head h1{font-size:23px}
 .nso-head-actions{width:100%}
 .nso-head-actions .btn{flex:1 1 auto;justify-content:center;min-height:44px}
 .nso-deck{z-index:28;gap:8px;padding:10px;border-radius:14px}
 .nso-count{display:none}
 .nso-reset span{display:none}
 .nso-folders{grid-template-columns:1fr}
 .nso-folder-open{min-height:64px}
 .nso-doc{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"check main actions" "check money money";row-gap:2px;padding:8px 10px}
 .nso-readonly .nso-doc{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"main actions" "money money"}
 .nso-doc>.nso-check{grid-area:check;align-self:start}
 .nso-doc-main{grid-area:main}.nso-doc-actions{grid-area:actions;align-self:start}
 .nso-doc-total{grid-area:money;display:flex;align-items:baseline;gap:8px;justify-self:start;padding-left:54px}
 .nso-doc-kind{grid-area:money;justify-self:end;align-self:center}
 .nso-doc-copy small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
 .nso-doc-actions .btn span{display:none}
 .nso-selection{bottom:calc(12px + env(safe-area-inset-bottom));margin-inline:0}
 .nso-progress{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));left:12px;width:auto;max-height:55vh}
 .nso-trash-row{grid-template-columns:40px auto minmax(0,1fr)}
 .nso-trash-when{grid-column:2/4;text-align:left}
 .nso-trash-row>.btn{grid-column:2/4;justify-self:start;min-height:44px}
}
.nso-upload-modal{width:min(640px,calc(100% - 24px))}
.nso-upload-modal .modal-content{padding:20px 24px 24px}
.nso-upload-modal .nso-form-help{margin:0 0 16px}
.nso-upload-zone{min-height:230px;cursor:pointer}
.nso-upload-zone .doc-dropzone-empty strong{font-size:16px}
.nso-upload-alt{margin:14px 0 0;color:var(--muted);font-size:12.5px;text-align:center}
.nso-upload-alt .text-button{min-height:36px;padding:2px 4px;font-size:12.5px}
@media(max-width:800px){.nso-upload-zone{min-height:170px}.nso-upload-alt .text-button{min-height:44px}}
@media(max-width:800px){.nso-pick-tree{max-height:min(56vh,520px)}.nso-pick{min-height:44px}.nso-pick-twist{width:40px;height:44px}.nso-pick-twist-gap{width:40px}.nso-pick-row{padding-left:calc(var(--lvl,0) * 12px)}}
@media(prefers-reduced-motion:reduce){.nso-folder,.nso-progress-bar span,.nso-pick-twist .icon{transition:none}.nso-folder:hover{transform:none}}
/* Mappa (r47). Street View: gli strumenti sopra la mappa si ritirano e lasciano libero l'angolo dei comandi di Google,
   compresa l'uscita da Street View. Tornano da soli al ritorno sulla mappa. */
.omap-tools,.omap-hint{transition:opacity 150ms ease,visibility 150ms ease}
.omap.in-street .omap-tools,.omap.in-street .omap-hint{opacity:0;visibility:hidden;pointer-events:none}
/* Pratica aperta dal dettaglio: in cima all'elenco, con la barra d'accento. */
.omap-row.is-fuoco{background:var(--tint);box-shadow:inset 3px 0 0 var(--green)}
/* Pin sul comune: la via non e' stata trovata, l'indirizzo va chiesto durante il contatto. */
.omap-segno.chiedi{display:inline-flex;align-items:center;gap:4px;background:var(--amber-bg);color:var(--amber)}
.omap-segno.chiedi>.icon{flex:none;width:12px;height:12px}
/* Indirizzo del punto indicato a mano: proposto da Google e scritto nella pratica salvando la posizione. */
.omap-pos-indirizzo{display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:13px;line-height:1.45}
.omap-pos-indirizzo[hidden]{display:none}
.omap-pos-indirizzo.attesa,.omap-pos-indirizzo.vuoto{align-items:center;color:var(--muted)}
.omap-pos-indirizzo.vuoto{border-color:transparent;background:var(--amber-bg);color:var(--ink)}
.omap-pos-indirizzo.vuoto>.icon{flex:none;width:17px;height:17px;color:var(--amber)}
.omap-pos-indirizzo>span{display:grid;gap:2px;min-width:0}
.omap-pos-indirizzo small{color:var(--muted);font-size:12px}
.omap-pos-scelta{display:flex;align-items:flex-start;gap:10px;width:100%;cursor:pointer}
.omap-pos-scelta>input{flex:none;margin-top:2px}
.omap-pos-scelta>span{display:grid;gap:2px;min-width:0}
.omap-pos-scelta small{color:var(--green);font-size:10.5px;font-weight:800;letter-spacing:.08em}
.omap-pos-scelta strong{color:var(--ink);font-size:14px;overflow-wrap:anywhere}
.omap-pos-scelta em{color:var(--muted);font-size:12px;font-style:normal;overflow-wrap:anywhere}
.omap-pos-indirizzo .loader{flex:none}
/* Revoca con allegato facoltativo (r47). */
.revoke-intro{display:flex;align-items:flex-start;gap:12px;margin:0 0 14px;padding:12px 14px;border-radius:12px;background:var(--red-bg);color:var(--ink)}
.revoke-intro>.icon{flex:none;width:20px;height:20px;margin-top:2px;color:var(--red)}
.revoke-intro .eyebrow{color:var(--red)}
.revoke-intro p{margin:4px 0 0;font-size:13.5px;line-height:1.5}
.revoke-dropzone{margin-top:4px}
.revoke-file-clear{margin-top:8px}
.revoke-file-clear[hidden]{display:none}
@media (prefers-reduced-motion:reduce){.omap-tools,.omap-hint{transition:none}}
/* r53 (26/10/2026): ausilio depennato da una consegna. La riga resta, barrata, con la motivazione; il cestino sta accanto
   a «Rettifica». Stesso linguaggio delle righe tolte dal DDT di Gestione giacenze (r29). */
.list-row.line-removed{align-items:flex-start}.list-row.line-removed .product-photo{opacity:.45;filter:grayscale(1)}
.line-remove-serial{font-weight:800}
.list-row.line-removed .grow>strong,.list-row.line-removed .grow>.mono,.list-row.line-removed .grow>small{color:var(--muted)}
.list-row.line-removed s{text-decoration-thickness:1.5px;text-decoration-color:color-mix(in srgb,var(--red) 70%,var(--muted))}
.list-row.line-removed .line-removed-note{max-width:560px}
.line-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:none}
.btn.line-remove-btn{color:var(--red);border-color:transparent;background:transparent}
.btn.line-remove-btn:hover:not(:disabled){background:var(--red-bg);color:var(--red)}
.btn.line-remove-btn:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.btn.line-remove-btn:disabled{color:var(--muted);opacity:.45;cursor:not-allowed}
.line-remove-item{display:flex;align-items:center;gap:14px;margin:16px 0;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--bg)}
.line-remove-item .product-photo{width:56px;height:56px;padding:5px}
.devices-form-mark.line-remove-mark{background:var(--red-bg);color:var(--red)}
.app-modal .modal-footer .btn.primary.line-remove-confirm{background:var(--red);border-color:var(--red);color:var(--surface);box-shadow:0 9px 22px color-mix(in srgb,var(--red) 22%,transparent)}
.app-modal .modal-footer .btn.primary.line-remove-confirm:hover{background:color-mix(in srgb,var(--red) 86%,var(--ink))}
@media(max-width:800px),(min-width:600px) and (max-width:1024px) and (max-height:520px){
 #tour-lines .list-row.has-line-actions{flex-wrap:wrap;row-gap:10px}
 #tour-lines .list-row.has-line-actions .line-actions{flex:1 0 100%}
 #tour-lines .line-actions .btn.small:not(.ghost){flex:1;min-height:44px}
 #tour-lines .line-actions .btn.small.ghost{min-height:44px}
}
/* r54: avvisi sugli ausili depennati in «Genera/Rigenera DDT» e in «Chiudi la consegna». */
.ddt-regen-note,.close-removed-note{display:flex;align-items:flex-start;gap:8px;margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--bg);color:var(--ink);font-size:12px}
.ddt-regen-note .icon,.close-removed-note .icon{flex:none;width:16px;height:16px;margin-top:1px;color:var(--red)}
.ddt-regen-warning{margin:14px 0 0}
/* r54: la finestra «Depenna ausilio» entra intera a 1440×900: la domanda resta in vista anche dopo una motivazione rapida. */
.line-remove .devices-form-hero{margin-bottom:14px}
.line-remove .line-remove-item{margin:0 0 14px;padding:10px 12px}
.line-remove .banner{margin-bottom:14px;padding:13px 16px}
.line-remove textarea{min-height:64px}
.line-remove label.field{margin-bottom:0}

