:root{--bg:#0a0c0f;--panel:#13171d;--panel2:#191f27;--line:#29313c;--text:#f4f7fa;--muted:#99a4b1;--good:#76e6a0;--warn:#ffd76a;--bad:#ff9189;--info:#8ccfff}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:#0e1115;border-right:1px solid var(--line);padding:20px 14px;display:flex;flex-direction:column}.brand{font-weight:900;letter-spacing:.13em;padding:4px 10px 22px}.brand small{display:block;font-size:9px;color:var(--muted);letter-spacing:.2em;margin-top:5px}.nav{display:grid;gap:3px}.nav button{border:0;background:none;color:var(--muted);text-align:left;padding:10px 11px;border-radius:10px}.nav button:hover,.nav button.active{background:var(--panel2);color:#fff}.side-user{margin-top:auto;border-top:1px solid var(--line);padding:16px 10px 0;display:grid;gap:5px}.side-user span{color:var(--muted);font-size:12px}.main{padding:26px;min-width:0}.mobile-head{display:none}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px}.page-head h1{margin:0;font-size:28px}.page-head p{margin:5px 0 0;color:var(--muted)}h2{font-size:18px;margin:0 0 14px}.section{margin-top:22px}.card{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:16px}.narrow{max-width:600px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpi span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}.kpi strong{display:block;font-size:31px;margin-top:7px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.big-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.big-row:last-child{border:0}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--panel2);color:#fff;border-radius:9px;padding:9px 11px}.btn.primary{background:#fff;color:#0b0d10;border-color:#fff;font-weight:750}.btn.danger{background:#33191a;border-color:#633033;color:#ffbbb5}.btn.small{padding:6px 8px;font-size:12px}.btn.wide{width:100%}.button-grid,.toolbar,.row-actions{display:flex;gap:8px;flex-wrap:wrap}input,select,textarea{width:100%;background:#0e1217;color:#fff;border:1px solid var(--line);border-radius:9px;padding:10px 11px;min-width:0}textarea{min-height:82px;resize:vertical}label{display:grid;gap:6px;color:var(--muted);font-size:12px}.stack{display:grid;gap:13px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full{grid-column:1/-1}.inline{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.inline input,.inline select{width:auto;min-width:100px}.toolbar{margin-bottom:14px}.toolbar input{max-width:420px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:13px;background:var(--panel)}table{border-collapse:collapse;width:100%;min-width:850px}th,td{padding:11px 13px;border-bottom:1px solid var(--line);text-align:left;font-size:13px;vertical-align:top}th{position:sticky;top:0;background:#101419;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.07em}tr:last-child td{border-bottom:0}.muted,.small-muted{color:var(--muted)}.small-muted{font-size:11px;margin-top:4px}.badge{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:11px;background:#222a34}.good{background:#12331e;color:var(--good)}.warn{background:#372e12;color:var(--warn)}.bad{background:#3a1818;color:var(--bad)}.info{background:#122d40;color:var(--info)}.empty{color:var(--muted);text-align:center;padding:24px}.list{display:grid;gap:10px}.event-card{display:flex;justify-content:space-between;align-items:center}.event-card small{display:block;color:var(--muted);margin-top:5px}.timeline{display:grid;gap:8px}.timeline-item{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:11px 13px}.timeline-item small{display:block;color:var(--muted);margin-top:4px}.notice{background:#2a230f;border:1px solid #534719;color:#ffe79a;border-radius:11px;padding:11px 13px}.toast{position:fixed;right:18px;bottom:18px;z-index:100;background:#15231b;border:1px solid #315b3e;color:#b7f4ca;border-radius:11px;padding:11px 14px;max-width:360px}.toast.err{background:#351719;border-color:#633033;color:#ffc0bb}.modal-bg{position:fixed;inset:0;background:#000b;z-index:80;display:grid;place-items:center;padding:16px}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:#11161c;border:1px solid var(--line);border-radius:16px;padding:18px}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.modal-head h2{margin:0}.icon-btn{border:0;background:none;color:#fff;font-size:22px}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 10%,#1d2430 0,#0a0c0f 45%)}.login-card{width:min(430px,100%);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:26px}.login-brand{font-size:22px;font-weight:900;letter-spacing:.14em}.login-brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.2em;margin-top:5px}.login-card h1{margin:24px 0 5px}.loading{min-height:100vh;display:grid;place-items:center;color:var(--muted)}@media(max-width:900px){.shell{display:block}.sidebar{position:fixed;z-index:50;transform:translateX(-105%);transition:.2s;width:250px}.sidebar.open{transform:translateX(0)}.main{padding:14px}.mobile-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.mobile-head .brand{padding:0}.kpis{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.page-head h1{font-size:24px}}@media(max-width:560px){.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.kpis{grid-template-columns:1fr 1fr}.kpi strong{font-size:25px}.event-card{align-items:flex-start}.inline{align-items:stretch}.inline input,.inline select,.inline .btn{width:100%}}.hidden{display:none!important}.scanner-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(320px,1.2fr);gap:14px}.scanner-settings{display:grid;align-content:start;gap:12px}.scanner-camera{min-height:380px}#qrReader{width:100%;min-height:300px;border-radius:12px;overflow:hidden;background:#090b0e}#qrReader video{border-radius:12px}.scan-results{display:grid;gap:8px}.scan-result{display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:10px 12px;background:var(--panel)}.scan-result strong{font-size:18px}.scan-result small{color:var(--muted)}.scan-ok{border-color:#315b3e}.scan-ok strong{color:var(--good)}.scan-err{border-color:#633033}.scan-err strong{color:var(--bad)}.qr-label-preview{background:#fff;color:#111;border-radius:14px;padding:18px;text-align:center;max-width:360px;margin:0 auto}.qr-brand{font-weight:900;letter-spacing:.18em;font-size:16px}.qr-box{display:flex;justify-content:center;margin:12px auto;min-height:240px}.qr-box img,.qr-box canvas{max-width:240px;width:100%;height:auto}.qr-label-preview h3{margin:7px 0 4px}.qr-label-preview .small-muted{color:#555}.qr-next{margin-top:11px;padding:8px;border:1px solid #ddd;border-radius:8px;font-size:12px}@media(max-width:760px){.scanner-layout{grid-template-columns:1fr}.scanner-camera{min-height:340px}.scan-result{grid-template-columns:24px 1fr}.scan-result small{grid-column:2}}
.scan-flash{position:fixed;left:50%;top:18px;transform:translate(-50%,-16px);z-index:99999;display:flex;align-items:center;gap:12px;min-width:min(92vw,390px);max-width:92vw;padding:14px 16px;border-radius:14px;border:2px solid currentColor;background:#111;color:#fff;box-shadow:0 14px 40px rgba(0,0,0,.38);opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease}
.scan-flash.show{opacity:1;transform:translate(-50%,0)}
.scan-flash.success{background:#12341f;color:#c8ffd9}
.scan-flash.error{background:#43171a;color:#ffd0d3}
.scan-flash.detected{background:#2f2a13;color:#fff1a8}
.scan-flash-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:2px solid currentColor;border-radius:50%;font-size:24px;font-weight:900}
.scan-flash strong{display:block;font-size:15px;letter-spacing:.02em}
.scan-flash span{display:block;margin-top:2px;font-size:13px;color:inherit;opacity:.9;white-space:normal;overflow-wrap:anywhere}
@media(max-width:600px){.scan-flash{top:10px;min-width:94vw;padding:12px 13px}.scan-flash-icon{width:38px;height:38px;flex-basis:38px}}

.item-history-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.item-history-summary>div{min-width:0}.item-history-summary strong{display:block;margin-top:3px;overflow-wrap:anywhere}
.history-count{font-size:13px;color:var(--muted);margin-top:2px}
.item-timeline{position:relative;display:grid;gap:0;margin-top:2px}
.item-timeline:before{content:"";position:absolute;left:18px;top:20px;bottom:20px;width:2px;background:var(--line)}
.timeline-entry{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:8px 0}
.timeline-marker{position:relative;z-index:1;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:2px solid var(--line);background:var(--panel);font-weight:900;font-size:16px}
.timeline-body{min-width:0;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:var(--panel)}
.timeline-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.timeline-head>div{display:grid;gap:3px;min-width:0}.timeline-head time{white-space:nowrap;font-size:12px;color:var(--muted)}
.history-type{width:max-content;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.timeline-details{margin-top:7px;font-size:13px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.timeline-user{margin-top:7px;font-size:12px;color:var(--muted)}
.kind-damage .timeline-marker{border-color:#8d3a3f;color:#ffb5b9}
.kind-repair .timeline-marker,.kind-repair_move .timeline-marker,.kind-repair_done .timeline-marker{border-color:#816d2c;color:#ffe393}
.kind-restored .timeline-marker{border-color:#34754c;color:#bff3cf}
.kind-qr .timeline-marker,.kind-qr_info .timeline-marker{border-color:#315f7d;color:#b7e0ff}
.kind-retired .timeline-marker{border-color:#777;color:#ccc}
@media(max-width:720px){.item-history-summary{grid-template-columns:1fr 1fr}.timeline-head{display:grid;gap:5px}.timeline-head time{white-space:normal}}
@media(max-width:430px){.item-history-summary{grid-template-columns:1fr}.timeline-entry{grid-template-columns:34px minmax(0,1fr);gap:8px}.item-timeline:before{left:16px}.timeline-marker{width:32px;height:32px}.timeline-body{padding:10px}}

.event-qr-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}
.event-qr-flow .btn{min-height:54px;white-space:normal;line-height:1.25}
@media(max-width:900px){.event-qr-flow{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.event-qr-flow{grid-template-columns:1fr}}

.event-card-status{display:grid;justify-items:end;gap:5px}
.event-plan-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:14px}
.event-plan-summary>div{display:grid;justify-items:center;gap:2px;padding:12px 8px;border:1px solid var(--line);border-radius:11px;background:var(--panel)}
.event-plan-summary strong{font-size:22px}.event-plan-summary span{font-size:11px;color:var(--muted);text-align:center}
.event-tracking-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.tracking-panel{min-width:0}
.tracking-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}
.tracking-title>div{display:flex;align-items:center;gap:8px;min-width:0}.tracking-title h2{margin:0}.tracking-title>strong{font-size:24px}
.tracking-dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px}
.not-out-dot{background:#d6aa43}.not-returned-dot{background:#c85a62}
.event-check-list{display:grid;gap:7px;margin-top:12px}
.event-check-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.event-check-row>div:first-child{display:grid;gap:2px;min-width:0}.event-check-row small{color:var(--muted);overflow-wrap:anywhere}
.event-check-side{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap;text-align:right}
.empty.compact{padding:16px 4px;color:var(--muted)}
.compact-head{align-items:center;margin:0}.compact-head h2{margin-bottom:4px}
.plan-item-list{display:grid;gap:6px;max-height:430px;overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0}
.plan-item-row{display:flex;align-items:center;gap:11px;padding:10px;border-radius:10px;cursor:pointer}
.plan-item-row:hover{background:var(--panel)}
.plan-item-row input{width:20px;height:20px;flex:0 0 20px}
.plan-item-row span{display:grid;gap:2px;min-width:0}.plan-item-row small{color:var(--muted);overflow-wrap:anywhere}
.modal-actions{display:flex;justify-content:flex-end}
@media(max-width:760px){.event-tracking-grid{grid-template-columns:1fr}.event-plan-summary{grid-template-columns:1fr 1fr}.event-check-row{align-items:flex-start;flex-direction:column}.event-check-side{justify-content:flex-start;text-align:left}}

.warehouse-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.warehouse-section-head h2{margin:0 0 2px}
@media(max-width:560px){.warehouse-section-head{align-items:stretch;flex-direction:column}.warehouse-section-head .btn{width:100%}}

.warehouse-main-action{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:10px 0 20px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.warehouse-new-item-btn{font-weight:800;font-size:15px;min-height:46px;padding-left:22px;padding-right:22px}
@media(max-width:560px){.warehouse-main-action{align-items:stretch;flex-direction:column}.warehouse-new-item-btn{width:100%}}

.brand-home{display:block;width:100%;border:0;background:none;color:inherit;text-align:left;font:inherit;cursor:pointer}
.brand-home:hover{color:#fff}
.brand-home:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:8px}
.mobile-head .brand-home{width:auto}
.kpi-link{appearance:none;width:100%;color:inherit;text-align:left;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease}
.kpi-link small{display:block;margin-top:10px;color:var(--muted);font-size:11px}
.kpi-link:hover{transform:translateY(-2px);border-color:#566170;background:var(--panel2)}
.kpi-link:active{transform:translateY(0)}
.kpi-link:focus-visible{outline:2px solid currentColor;outline-offset:2px}
@media(max-width:560px){.kpi-link small{font-size:10px}}

.status-live-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-4px 0 14px;color:var(--muted);font-size:12px}
.status-live-bar strong{font-size:10px;letter-spacing:.1em;color:var(--good)}
.status-live-dot{width:9px;height:9px;border-radius:50%;background:var(--good);box-shadow:0 0 0 4px rgba(118,230,160,.1)}
.status-live-total{margin-left:auto}
.status-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(245px,1fr);gap:12px;overflow-x:auto;align-items:start;padding:2px 2px 14px;scroll-snap-type:x proximity}
.status-column{background:#0e1217;border:1px solid var(--line);border-radius:15px;min-height:260px;max-height:calc(100vh - 190px);display:flex;flex-direction:column;scroll-snap-align:start}
.status-column-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:13px 13px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#0e1217;border-radius:15px 15px 0 0;z-index:1}
.status-column-head h2{margin:0 0 3px;font-size:15px}
.status-column-head small{color:var(--muted);font-size:11px}
.status-column-head>strong{display:grid;place-items:center;min-width:28px;height:28px;border-radius:999px;background:var(--panel2);font-size:12px}
.status-column-list{display:grid;gap:8px;padding:10px;overflow:auto}
.status-item-card{display:block;width:100%;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:11px;padding:10px;text-align:left}
.status-item-card:hover{border-color:#566170;background:var(--panel2)}
.status-item-card:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.status-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.status-item-top strong{min-width:0;overflow-wrap:anywhere;font-size:13px}
.status-item-top .badge{flex:0 0 auto}
.status-item-card>small{display:block;color:var(--muted);font-size:10px;line-height:1.4;margin-top:6px;overflow-wrap:anywhere}
.status-event-name{margin-top:8px;padding-top:7px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
.status-event-name strong{color:var(--text)}
.status-empty{color:var(--muted);font-size:12px;text-align:center;padding:24px 6px}
@media(max-width:900px){.status-column{max-height:none}.status-live-total{width:100%;margin-left:17px}.status-board{grid-auto-columns:minmax(225px,82vw)}}

/* v12.3 - menu mobile scorrevole */
@media(max-width:900px){
  .sidebar{
    height:100vh;
    height:100dvh;
    max-height:100dvh;
    overflow:hidden;
    padding-bottom:max(14px,env(safe-area-inset-bottom));
  }
  .sidebar .brand{
    flex:0 0 auto;
  }
  .sidebar .nav{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    padding-right:4px;
    padding-bottom:14px;
    scrollbar-width:thin;
  }
  .sidebar .nav button{
    width:100%;
    flex:0 0 auto;
  }
  .sidebar .side-user{
    flex:0 0 auto;
    margin-top:0;
    background:#0e1115;
  }
}

/* v12.4 - chiusura menu mobile cliccando fuori */
.menu-backdrop{display:none}
@media(max-width:900px){
  .menu-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:39;
    background:rgba(0,0,0,.42);
    opacity:0;
    pointer-events:none;
    transition:opacity .16s ease;
    -webkit-tap-highlight-color:transparent;
  }
  .sidebar{z-index:40}
  .sidebar.open + .menu-backdrop{
    opacity:1;
    pointer-events:auto;
  }
}

/* v12.5 - azioni e modifica posizione da Stato item */
.status-item-action-summary{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.status-item-action-summary>div{display:grid;gap:4px;padding:11px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.status-item-action-summary span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.status-item-action-summary strong{overflow-wrap:anywhere}
.status-item-action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.status-item-action-buttons .btn{min-height:45px}
.status-item-action-buttons .btn:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:520px){
  .status-item-action-summary{grid-template-columns:1fr}
  .status-item-action-buttons{grid-template-columns:1fr}
}
/* v13 - offline first */
.offline-status-pill{position:fixed;right:16px;bottom:16px;z-index:65;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:8px 11px;background:#11161c;color:var(--text);font-size:11px;font-weight:750;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.offline-status-pill .offline-dot,.offline-state .offline-dot{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(255,255,255,.05)}
.offline-status-pill.is-online{color:var(--good);border-color:#315b3e}.offline-status-pill.is-offline{color:var(--warn);border-color:#66541c}.offline-status-pill.has-pending{color:var(--info);border-color:#315f7d}.offline-status-pill.has-conflict{color:var(--bad);border-color:#73363a}
.offline-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.offline-state{display:inline-flex;align-items:center;gap:7px}.offline-state.online{color:var(--good)}.offline-state.offline{color:var(--warn)}
.offline-meta{font-size:12px;color:var(--muted);margin:12px 0}.offline-queue-list{display:grid;gap:8px}.offline-queue-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.offline-queue-row>div{display:grid;gap:3px;min-width:0}.offline-queue-row small{color:var(--muted);overflow-wrap:anywhere}.offline-queue-row.conflict{border-color:#633033}.offline-error{color:var(--bad);font-size:11px;overflow-wrap:anywhere}
@media(max-width:900px){.offline-status-pill{right:12px;bottom:max(12px,env(safe-area-inset-bottom));font-size:10px}.offline-queue-row{align-items:flex-start;flex-direction:column}.offline-queue-row .btn{width:100%}}

/* v14 - Liste e Bolle */
.document-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:14px}
.document-toolbar label{min-width:min(420px,100%)}
.document-toolbar-count{display:flex;align-items:baseline;gap:7px;white-space:nowrap}
.document-toolbar-count strong{font-size:25px}.document-toolbar-count span{font-size:11px;color:var(--muted)}
.document-sections{display:grid;gap:16px}
.document-section{padding:0;overflow:hidden}
.document-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px;border-bottom:1px solid var(--line)}
.document-section-head h2{margin:0 0 3px}.document-section-head p{margin:0;color:var(--muted);font-size:11px}
.document-list{display:grid}
.document-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 15px;border-bottom:1px solid var(--line)}
.document-card:last-child{border-bottom:0}
.document-file-badge{display:grid;place-items:center;width:45px;height:45px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);font-size:10px;font-weight:900;letter-spacing:.04em}
.document-card-main{min-width:0}
.document-card-title{display:grid;gap:2px}.document-card-title strong{font-size:13px;overflow-wrap:anywhere}.document-card-title span{font-size:10px;color:var(--muted);overflow-wrap:anywhere}
.document-meta{display:flex;gap:5px 12px;flex-wrap:wrap;margin-top:7px;font-size:10px;color:var(--muted)}
.document-meta b{color:var(--text)}
.document-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.document-actions a{text-decoration:none}
@media(max-width:760px){
  .document-toolbar{align-items:stretch;flex-direction:column}.document-toolbar label{min-width:0}
  .document-toolbar-count{justify-content:flex-start}
  .document-card{grid-template-columns:42px minmax(0,1fr)}
  .document-file-badge{width:40px;height:40px}
  .document-actions{grid-column:1/-1;justify-content:stretch}
  .document-actions .btn{flex:1}
}
@media(max-width:520px){
  .document-section-head{align-items:stretch;flex-direction:column}
  .document-section-head .btn{width:100%}
}

/* v15 - costi automatici */
.expense-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}
.expense-kpi{display:grid;gap:5px}.expense-kpi span{font-size:11px;color:var(--muted)}.expense-kpi strong{font-size:20px}
.expense-filters{display:grid;grid-template-columns:1fr 1.4fr 1fr auto;gap:10px;align-items:end}
.expense-filter-total{display:grid;justify-items:end;gap:2px;padding-bottom:5px}.expense-filter-total span{font-size:10px;color:var(--muted)}.expense-filter-total strong{font-size:18px}
.expense-amount{white-space:nowrap}
.expense-source{display:inline-flex;padding:4px 7px;border-radius:999px;border:1px solid var(--line);font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.expense-source.automatic{border-color:#34754c;color:#bff3cf}.expense-source.manual{color:var(--muted)}
.document-rental-cost{border:1px solid var(--line);border-radius:10px;padding:10px}
@media(max-width:1050px){.expense-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.expense-filters{grid-template-columns:1fr 1fr}.expense-filter-total{justify-items:start}}
@media(max-width:620px){.expense-kpis{grid-template-columns:1fr 1fr}.expense-filters{grid-template-columns:1fr}.expense-filter-total{justify-items:start}}

/* v15.1 - logo JETLAG PNG nel menu */
.brand-home .brand-logo{display:block;width:156px;max-width:100%;height:auto;object-fit:contain;object-position:left center;pointer-events:none}
.brand-home small{pointer-events:none}
.mobile-head .brand-home .mobile-brand-logo{width:108px;max-width:36vw}
@media(max-width:900px){.sidebar .brand-home .brand-logo{width:156px}}

/* v16 - gerarchia menu e riordino generale */
.nav{display:grid;gap:7px;min-height:0}
.nav-group{border-bottom:1px solid rgba(255,255,255,.045);padding-bottom:5px}
.nav-group:last-child{border-bottom:0}
.nav-group-toggle,.nav-subgroup-toggle{width:100%;border:0;background:none;color:#727e8b;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}
.nav-group-toggle{padding:8px 10px 6px;font-size:9px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.nav-subgroup-toggle{padding:8px 11px;color:#a5afba;font-size:12px;font-weight:700;border-radius:9px}
.nav-group-toggle:hover,.nav-subgroup-toggle:hover{color:#fff;background:rgba(255,255,255,.035)}
.nav-chevron{transition:transform .16s ease;font-size:13px}
.nav-group.open>.nav-group-toggle .nav-chevron,.nav-subgroup.open>.nav-subgroup-toggle .nav-chevron{transform:rotate(180deg)}
.nav-group-body,.nav-subgroup-body{display:none}
.nav-group.open>.nav-group-body,.nav-subgroup.open>.nav-subgroup-body{display:grid}
.nav-group-body{gap:2px;padding-bottom:3px}
.nav-subgroup{margin:2px 0}
.nav-subgroup-body{gap:2px;padding-left:10px}
.nav .nav-item{border:0;background:none;color:var(--muted);text-align:left;padding:9px 11px;border-radius:9px;width:100%}
.nav .nav-item:hover,.nav .nav-item.active{background:var(--panel2);color:#fff}
.nav .nav-item.active{box-shadow:inset 2px 0 0 #fff}
.nav-item-sub{font-size:12px;padding-left:14px!important}
.table-detail-primary{font-size:12px}

.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.section-title-row h2{margin:0 0 3px}.section-title-row p{margin:0;color:var(--muted);font-size:12px}
.all-clear{display:inline-flex;padding:6px 9px;border:1px solid #315b3e;background:#15231b;color:#b7f4ca;border-radius:999px;font-size:10px;font-weight:800}
.dashboard-alerts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dashboard-alert{appearance:none;width:100%;color:inherit;text-align:left;display:grid;gap:5px;cursor:pointer}
.dashboard-alert span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}
.dashboard-alert strong{font-size:25px}.dashboard-alert small{font-size:10px;color:var(--muted)}
.dashboard-alert:hover{border-color:#566170;background:var(--panel2)}
.dashboard-alert.has-issue{border-color:#5b4921}.dashboard-alert.has-issue strong{color:var(--warn)}

.document-type-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}
.document-type-tabs button,.document-sub-tabs button{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:11px;padding:12px;font-weight:800}
.document-type-tabs button.active,.document-sub-tabs button.active{background:#fff;color:#0b0d10;border-color:#fff}
.document-sub-tabs{display:flex;gap:8px;margin-bottom:13px}
.document-sub-tabs button{min-width:120px;padding:9px 15px}
.document-context{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.document-context strong{font-size:14px}.document-context span{font-size:11px;color:var(--muted)}

@media(max-width:1050px){.dashboard-alerts{grid-template-columns:1fr 1fr}}
@media(max-width:560px){
  .dashboard-alerts{grid-template-columns:1fr 1fr}
  .section-title-row{align-items:flex-start;flex-direction:column}
  .document-sub-tabs{display:grid;grid-template-columns:1fr 1fr}
  .document-sub-tabs button{min-width:0}
}

/* v16.2 - eliminazione evento */
.event-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
@media(max-width:620px){.event-head-actions{justify-content:flex-start}}

/* v16.3 - gerarchia visiva menu */
.nav-group-toggle{
  padding:11px 10px 8px;
  font-size:11px;
  font-weight:900;
  letter-spacing:.13em;
  color:#d5dbe2;
}
.nav-group-toggle .nav-chevron{
  font-size:14px;
  opacity:.8;
}
.nav-group-toggle:hover{
  color:#fff;
  background:rgba(255,255,255,.045);
}
.nav-subgroup-toggle{
  padding:7px 11px;
  font-size:11px;
  font-weight:750;
  color:#a7b0ba;
}
.nav-subgroup-toggle .nav-chevron{
  font-size:12px;
}
.nav .nav-item{
  font-size:12px;
  font-weight:600;
  padding:8px 11px;
}
.nav-item-sub{
  font-size:11px!important;
  font-weight:550!important;
  padding:7px 10px 7px 15px!important;
  color:#89939e!important;
}
.nav-item-sub.active{
  color:#fff!important;
}
.nav-group{
  padding-top:2px;
  padding-bottom:7px;
}
.nav-subgroup{
  margin:1px 0 3px;
}

/* ==========================================================
   v17 — VISUAL UPGRADE
   Minimal industrial / backstage
   ========================================================== */
:root{--bg:#080a0d;--panel:#11151a;--panel2:#171c22;--panel3:#1d232b;--line:#29313a;--line-soft:rgba(255,255,255,.065);--text:#f1efee;--muted:#8e98a4;--dirty:#e9e4e2;--good:#73daa0;--warn:#e7c45d;--bad:#ee7e78;--info:#79b9e6;--event:#aa92ed;--radius:14px;--radius-sm:10px;--shadow:0 14px 42px rgba(0,0,0,.24)}
html{scroll-behavior:smooth}body{background:radial-gradient(circle at 88% -10%,rgba(121,185,230,.055),transparent 28%),var(--bg)}
.ui-icon{width:18px;height:18px;display:inline-block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
button,.btn,.card,input,select,textarea,.modal,.nav-item{transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}
.btn{gap:7px;border-radius:var(--radius-sm);font-weight:650}.btn:hover{border-color:#46515e;background:#20262e;transform:translateY(-1px)}.btn.primary{background:var(--dirty);color:#0a0c0f;border-color:var(--dirty);box-shadow:0 5px 18px rgba(233,228,226,.09)}.btn.primary:hover{background:#fff;border-color:#fff}
.card{border-radius:var(--radius);border-color:var(--line-soft);box-shadow:0 1px 0 rgba(255,255,255,.015)}.card:hover{border-color:rgba(255,255,255,.1)}
.main{padding-top:18px}#page{animation:pageReveal .22s ease both}#page>*{animation:contentReveal .24s ease both}
@keyframes pageReveal{from{opacity:.55}to{opacity:1}}@keyframes contentReveal{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.desktop-topbar{position:sticky;top:0;z-index:25;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-18px -2px 18px;padding:12px 2px;background:linear-gradient(var(--bg) 72%,transparent);backdrop-filter:blur(8px)}
.global-search-trigger{display:flex;align-items:center;gap:9px;width:min(460px,52vw);border:1px solid var(--line-soft);background:#0d1115;color:var(--muted);border-radius:11px;padding:9px 11px;text-align:left}.global-search-trigger:hover{border-color:#46515e;color:var(--text);background:#12171c}.global-search-trigger span{flex:1}
kbd{border:1px solid var(--line);background:var(--panel2);border-radius:6px;padding:2px 6px;color:var(--muted);font-size:10px;font-family:inherit}
.topbar-user{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.topbar-avatar,.side-user-avatar{display:grid;place-items:center;border-radius:50%;background:var(--dirty);color:#111;font-weight:900}.topbar-avatar{width:28px;height:28px;font-size:11px}.side-user{grid-template-columns:34px 1fr;align-items:center}.side-user-avatar{width:32px;height:32px;font-size:12px}.side-user-copy{display:grid;gap:1px;min-width:0}.side-user>.btn{grid-column:1/-1}
.top-icon-btn{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text)}
.page-title-block{display:flex;align-items:center;gap:12px}.page-title-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line-soft);border-radius:12px;background:linear-gradient(145deg,var(--panel2),#0e1216);color:var(--dirty)}.page-title-icon .ui-icon{width:20px;height:20px}.page-head h1{font-size:27px;letter-spacing:-.025em}.page-head p{font-size:12px;line-height:1.45}.page-head-action{display:flex;align-items:center;gap:8px}
.eyebrow{display:block;margin-bottom:5px;color:#6f7c89;font-size:9px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}
.nav-label-with-icon,.nav-item{display:flex!important;align-items:center;gap:9px}.nav-label-with-icon .ui-icon{width:15px;height:15px}.nav-item-icon{display:grid;place-items:center;width:20px;color:#798590}.nav-item-icon .ui-icon{width:15px;height:15px}.nav .nav-item.active .nav-item-icon{color:var(--dirty)}.nav .nav-item.active{background:linear-gradient(90deg,#1b2128,#171c22);box-shadow:inset 2px 0 0 var(--dirty)}.sidebar{background:linear-gradient(180deg,#0d1014,#0a0d10);border-color:var(--line-soft)}
.dashboard-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 19px;margin-bottom:12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:linear-gradient(120deg,rgba(233,228,226,.055),rgba(121,185,230,.025) 52%,transparent)}.dashboard-hero h2{font-size:21px;margin:0 0 5px;letter-spacing:-.02em}.dashboard-hero p{margin:0;color:var(--muted);font-size:12px}.hero-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#0d1115;color:var(--muted);padding:10px 11px;border-radius:10px}.hero-search:hover{color:var(--text);border-color:#4a5662}
.kpi{position:relative;overflow:hidden;min-height:128px}.kpi:after{content:"";position:absolute;inset:auto -30px -45px auto;width:110px;height:110px;border-radius:50%;background:currentColor;opacity:.035}.kpi-top{display:flex;align-items:center;gap:8px}.kpi-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.045)}.kpi-icon .ui-icon{width:16px;height:16px}.kpi-label{font-size:10px!important}.kpi strong{font-size:33px;letter-spacing:-.04em}.kpi small{font-size:10px;color:var(--muted)}.kpi-available{color:var(--good)}.kpi-out{color:var(--info)}.kpi-repair{color:var(--warn)}.kpi-events{color:var(--event)}.kpi .kpi-label,.kpi small{color:var(--muted)}
.dashboard-alert{grid-template-columns:38px 1fr;align-items:center;min-height:104px}.dashboard-alert-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.04);color:#7f8b97}.dashboard-alert>div{display:grid;gap:3px}.dashboard-alert strong{font-size:23px}.dashboard-alert.has-issue{border-color:rgba(231,196,93,.35);background:linear-gradient(145deg,var(--panel),rgba(231,196,93,.045))}.dashboard-alert.has-danger{border-color:rgba(238,126,120,.38);background:linear-gradient(145deg,var(--panel),rgba(238,126,120,.045))}.dashboard-alert.has-warning{border-color:rgba(231,196,93,.35)}.dashboard-alert.has-info{border-color:rgba(121,185,230,.35)}.dashboard-alert.has-danger .dashboard-alert-icon{color:var(--bad)}.dashboard-alert.has-warning .dashboard-alert-icon,.dashboard-alert.has-issue .dashboard-alert-icon{color:var(--warn)}.dashboard-alert.has-info .dashboard-alert-icon{color:var(--info)}.all-clear{gap:6px;align-items:center}.all-clear .ui-icon{width:13px;height:13px}
.dashboard-panel{padding:17px}.panel-title{display:flex;gap:10px;align-items:center;margin-bottom:13px}.panel-title>.ui-icon{color:var(--muted)}.panel-title h2{margin:0 0 2px}.panel-title p{margin:0;color:var(--muted);font-size:10px}.warehouse-balance{display:grid;grid-template-columns:1fr 1fr;gap:9px}.warehouse-balance>div{padding:13px;border:1px solid var(--line-soft);border-radius:11px;background:#0e1217;display:grid;gap:2px}.warehouse-balance span{color:var(--muted);font-size:10px}.warehouse-balance b{font-size:24px}.warehouse-balance small{color:var(--muted);font-size:9px}.quick-grid .btn{flex:1 1 145px}
.status-live-bar{padding:9px 11px;border:1px solid var(--line-soft);border-radius:10px;background:#0d1115}.status-board{grid-auto-columns:minmax(258px,1fr);gap:10px}.status-column{border-color:var(--line-soft);background:#0d1115;border-radius:13px}.status-column-head{background:#101419;border-color:var(--line-soft)}.status-column-title{display:flex;align-items:center;gap:9px}.status-column-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:rgba(255,255,255,.04)}.status-column-title .ui-icon{width:16px;height:16px}.status-magazzino-1 .status-column-icon,.status-magazzino-2 .status-column-icon{color:var(--good)}.status-furgone-1 .status-column-icon,.status-furgone-2 .status-column-icon,.status-auto .status-column-icon{color:var(--info)}.status-evento .status-column-icon{color:var(--event)}.status-riparazione .status-column-icon{color:var(--warn)}
.status-item-card{position:relative;overflow:hidden;border-color:var(--line-soft);background:#13181e}.status-item-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#566270}.status-card-disponibile:before{background:var(--good)}.status-card-danneggiato:before,.status-card-in-riparazione:before{background:var(--warn)}.status-card-su-furgone:before,.status-card-in-auto:before{background:var(--info)}.status-card-all-evento:before{background:var(--event)}.status-item-top{justify-content:flex-start}.status-item-top .badge{margin-left:auto}.status-package-icon{display:grid;place-items:center;color:#687582}.status-package-icon .ui-icon{width:15px;height:15px}.status-event-name{display:flex;align-items:center;gap:5px}.status-event-name .ui-icon{width:12px;height:12px;color:var(--event)}
.badge{border:1px solid transparent;font-weight:750;letter-spacing:.01em}.badge.good{border-color:rgba(115,218,160,.18)}.badge.warn{border-color:rgba(231,196,93,.2)}.badge.bad{border-color:rgba(238,126,120,.2)}.badge.info{border-color:rgba(121,185,230,.18)}.status-all-evento{background:rgba(170,146,237,.13);color:#c5b6f4;border-color:rgba(170,146,237,.22)!important}
.table-wrap{border-color:var(--line-soft);border-radius:12px}.smart-table tbody tr,table tbody tr{transition:background .13s ease}.smart-table tbody tr:hover,table tbody tr:hover{background:rgba(255,255,255,.025)}th{z-index:3;background:rgba(14,18,23,.97);backdrop-filter:blur(8px);border-color:var(--line-soft)}td{border-color:var(--line-soft)}.table-item-name{display:flex;align-items:center;gap:7px}.item-mini-icon{color:#697682;display:grid}.item-mini-icon .ui-icon{width:14px;height:14px}.location-cell{display:inline-flex;align-items:center;gap:5px}.location-cell .ui-icon{width:12px;height:12px;color:#707d89}.icon-text-btn .ui-icon,.row-actions .btn .ui-icon{width:13px;height:13px}
.action-details{position:relative}.action-details summary{list-style:none}.action-details summary::-webkit-details-marker{display:none}.icon-only-btn{width:31px;height:31px;padding:0!important}.action-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:12;display:grid;gap:5px;width:190px;padding:7px;background:#151a20;border:1px solid var(--line);border-radius:11px;box-shadow:var(--shadow)}.action-popover .btn{width:100%;justify-content:flex-start}tr:last-child .action-popover{top:auto;bottom:calc(100% + 6px)}
input,select,textarea{border-color:var(--line-soft);background:#0d1115;border-radius:10px}input:focus,select:focus,textarea:focus{outline:none;border-color:#657383;box-shadow:0 0 0 3px rgba(121,185,230,.07)}.modal-bg{backdrop-filter:blur(5px);opacity:0;transition:opacity .16s ease}.modal-bg.visible{opacity:1}.modal{padding:0;border-color:rgba(255,255,255,.1);box-shadow:0 24px 80px rgba(0,0,0,.55);transform:translateY(8px) scale(.985);transition:transform .18s ease}.modal-bg.visible .modal{transform:none}.modal-head{position:sticky;top:0;z-index:3;padding:16px 18px;margin:0;border-bottom:1px solid var(--line-soft);background:rgba(17,22,28,.96);backdrop-filter:blur(9px)}.modal-body{padding:18px}.modal-title-wrap{display:grid;gap:2px}.modal-title-kicker{font-size:8px;color:#687583;letter-spacing:.14em;font-weight:900}.modal-title-wrap h2{font-size:18px}.icon-btn{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:9px;background:var(--panel2)}.icon-btn .ui-icon{width:15px;height:15px}.form-grid,.stack{gap:14px}label{font-size:11px;font-weight:650}.notice{border-radius:10px}
.premium-toolbar{align-items:center}.toolbar-search{display:flex;align-items:center;gap:7px;max-width:460px;flex:1;border:1px solid var(--line-soft);background:#0d1115;border-radius:10px;padding-left:10px}.toolbar-search .ui-icon{color:#687582;width:15px;height:15px}.toolbar-search input{border:0;background:transparent;box-shadow:none!important}
.event-grid{display:grid;gap:9px}.premium-event-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto 20px;gap:11px;align-items:center;width:100%;text-align:left;color:inherit;background:linear-gradient(145deg,var(--panel),#101419)}.premium-event-card:hover{transform:translateY(-1px);border-color:#46515e}.event-card-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:rgba(170,146,237,.08);color:var(--event)}.event-card-icon .ui-icon{width:17px;height:17px}.event-card-main{min-width:0;display:grid;gap:4px}.event-card-main strong{font-size:13px}.event-card-main small{margin:0}.event-card-arrow{color:#596572}
.document-file-badge{height:58px;gap:2px;grid-auto-flow:row;color:#c3ccd5}.document-file-badge .ui-icon{width:18px;height:18px}.document-file-badge span{font-size:8px}.document-card:hover{background:rgba(255,255,255,.018)}.document-type-tabs button,.document-sub-tabs button{transition:.15s ease}.document-type-tabs button:hover,.document-sub-tabs button:hover{border-color:#4d5965}.document-type-tabs button.active,.document-sub-tabs button.active{box-shadow:0 4px 18px rgba(255,255,255,.06)}
.empty-state{display:grid;place-items:center;text-align:center;gap:5px;padding:28px 14px;color:var(--muted);min-height:120px}.empty-state-icon{width:25px!important;height:25px!important;margin-bottom:4px;color:#566371}.empty-state strong{color:#b3bdc7;font-size:12px}.empty-state span{font-size:10px;max-width:300px}.status-column-list .empty-state{min-height:150px}
.global-search-wrap{display:grid;gap:10px}.global-search-field{display:flex;align-items:center;gap:9px;border:1px solid #4b5763;background:#0b0f13;border-radius:11px;padding-left:11px}.global-search-field .ui-icon{color:#778491}.global-search-field input{border:0;background:transparent;font-size:15px;box-shadow:none!important}.global-search-hint{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:9px}.global-search-hint span{padding:3px 6px;border:1px solid var(--line-soft);border-radius:999px}.global-search-hint kbd{margin-left:auto}.search-loading{display:flex;align-items:center;justify-content:center;gap:7px;padding:30px;color:var(--muted)}.global-result-groups{display:grid;gap:14px;max-height:58vh;overflow:auto;padding-right:3px}.global-result-groups section{display:grid;gap:5px}.global-result-groups h3{display:flex;align-items:center;gap:6px;margin:0 0 2px;color:#9aa6b2;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.global-result-groups h3 .ui-icon{width:13px;height:13px}.global-result-groups h3 span{margin-left:auto}.global-result{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;border:1px solid var(--line-soft);background:#11161b;color:inherit;border-radius:10px;padding:9px 10px;text-align:left}.global-result:hover{border-color:#4d5965;background:#171c22}.global-result>.ui-icon{color:#71808d;width:16px;height:16px}.global-result>span{display:grid;gap:2px}.global-result strong{font-size:12px}.global-result small{font-size:9px;color:var(--muted)}.global-result>b{color:#596673}
.mobile-bottom-nav{display:none}.mobile-head-actions{display:flex;align-items:center;gap:7px}
.toast{box-shadow:var(--shadow);animation:toastIn .18s ease both}@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.scan-flash{backdrop-filter:blur(10px);border-width:1px}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #9db7cc;outline-offset:2px}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}}
@media(max-width:900px){.desktop-topbar{display:none}.main{padding-bottom:88px}.mobile-head{position:sticky;top:0;z-index:26;margin:-14px -14px 14px;padding:10px 14px;background:rgba(8,10,13,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}.mobile-bottom-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:10px;right:10px;bottom:max(9px,env(safe-area-inset-bottom));z-index:58;padding:6px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:rgba(16,20,25,.94);backdrop-filter:blur(14px);box-shadow:0 12px 40px rgba(0,0,0,.4)}.mobile-bottom-nav button{display:grid;place-items:center;gap:3px;border:0;background:none;color:#74808b;padding:6px 4px;border-radius:10px;font-size:9px}.mobile-bottom-nav .ui-icon{width:17px;height:17px}.mobile-bottom-nav button.active{background:#20262e;color:var(--dirty)}.offline-status-pill{bottom:78px}.dashboard-hero{align-items:flex-start;flex-direction:column}.hero-search{width:100%;justify-content:center}}
@media(max-width:700px){.page-head{align-items:stretch}.page-head-action{width:100%}.page-head-action>.btn{width:100%}.page-title-icon{width:38px;height:38px}.page-head h1{font-size:23px}.premium-event-card{grid-template-columns:34px 1fr 18px}.premium-event-card .event-card-status{grid-column:2}.event-card-arrow{grid-column:3;grid-row:1/3}.action-popover{position:fixed;left:14px;right:14px;bottom:84px;top:auto;width:auto;z-index:70;padding:10px;box-shadow:0 16px 60px rgba(0,0,0,.55)}}
@media(max-width:560px){.dashboard-alerts{grid-template-columns:1fr 1fr}.dashboard-alert{grid-template-columns:30px 1fr;padding:12px}.dashboard-alert-icon{width:29px;height:29px}.dashboard-alert strong{font-size:20px}.warehouse-balance{grid-template-columns:1fr 1fr}.kpi{min-height:116px}.kpi strong{font-size:28px}}

/* v17.2 - selettore rapido QR mobile */
.qr-quick-grid{
  display:grid;
  gap:10px;
}
.qr-quick-btn{
  display:grid;
  grid-template-columns:38px 1fr auto;
  align-items:center;
  gap:10px;
  width:100%;
  padding:12px;
  border:1px solid var(--line-soft);
  background:#11161b;
  color:inherit;
  border-radius:12px;
  text-align:left;
}
.qr-quick-btn:hover{
  border-color:#4d5965;
  background:#171c22;
  transform:translateY(-1px);
}
.qr-quick-icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:10px;
  background:rgba(255,255,255,.04);
  color:var(--dirty);
}
.qr-quick-icon .ui-icon{width:17px;height:17px}
.qr-quick-copy{
  display:grid;
  gap:3px;
  min-width:0;
}
.qr-quick-copy strong{
  font-size:13px;
}
.qr-quick-copy small{
  color:var(--muted);
  font-size:10px;
  line-height:1.35;
}
.qr-quick-btn b{
  color:#596673;
}
.mobile-bottom-nav button.active{
  background:#20262e;
  color:var(--dirty);
}

/* v17.3 - evita sovrapposizione barra rapida / menu laterale mobile */
@media(max-width:900px){
  .mobile-bottom-nav{
    transition:opacity .16s ease,transform .18s ease;
  }

  /* Quando il drawer laterale è aperto, la barra rapida si ritira. */
  .sidebar.open ~ .mobile-bottom-nav{
    opacity:0;
    transform:translateY(calc(100% + 28px));
    pointer-events:none;
  }

  /* Un po' di respiro per Account / Esci e safe area iPhone. */
  .sidebar .side-user{
    padding-bottom:max(14px,env(safe-area-inset-bottom));
  }
}

/* v17.4 - permessi dati economici */
.financial-access{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  border-radius:999px;
  font-size:9px;
  font-weight:800;
  border:1px solid var(--line);
}
.financial-access.yes{color:var(--good);border-color:rgba(115,218,160,.25);background:rgba(115,218,160,.06)}
.financial-access.no{color:var(--muted);background:rgba(255,255,255,.025)}
.permission-switch{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:13px;
  border:1px solid var(--line-soft);
  border-radius:11px;
  background:#0d1115;
}
.permission-switch>span{display:grid;gap:3px}
.permission-switch small{color:var(--muted);font-size:10px;font-weight:500}
.permission-switch input[type="checkbox"]{width:22px;height:22px;flex:0 0 auto}
.financial-permission-note{margin-bottom:12px}
.financial-pending{
  display:inline-flex;
  padding:4px 7px;
  border-radius:999px;
  color:var(--warn);
  background:rgba(231,196,93,.07);
  border:1px solid rgba(231,196,93,.22);
  font-size:9px;
  font-weight:800;
  white-space:nowrap;
}
.expense-pending-kpi{border-color:rgba(231,196,93,.25)}
.expense-pending-kpi strong{color:var(--warn)}
.account-finance-status{
  display:inline-block;
  margin-top:5px;
  color:var(--muted);
  font-size:10px;
}

.financial-doc-lock{
  color:var(--warn);
  font-size:9px;
  font-weight:750;
}


/* v17.5 - permessi granulari per utente */
.permission-user-form{gap:18px}
.permission-editor{
  border:1px solid var(--line-soft);
  border-radius:14px;
  background:#0b0f13;
  overflow:hidden;
}
.permission-editor-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  padding:15px 16px;
  border-bottom:1px solid var(--line-soft);
  background:linear-gradient(145deg,#151a20,#101419);
}
.permission-editor-head>div:first-child{display:grid;gap:4px}
.permission-editor-head>div:first-child>strong{font-size:13px}
.permission-editor-head small{color:var(--muted);font-size:10px;line-height:1.4}
.permission-presets{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.permission-groups{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:10px;
}
.permission-group{
  min-width:0;
  border:1px solid var(--line-soft);
  border-radius:12px;
  background:#11161b;
  overflow:hidden;
}
.permission-group-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 11px;
  border-bottom:1px solid var(--line-soft);
  background:#14191f;
}
.permission-group-title h3{
  margin:0;
  color:#cbd3db;
  font-size:10px;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.permission-group-title span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  padding:3px 6px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  font-size:9px;
  font-weight:800;
}
.permission-list{display:grid}
.permission-row{
  display:grid!important;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:12px;
  min-height:58px;
  padding:9px 11px;
  border-bottom:1px solid rgba(255,255,255,.045);
  cursor:pointer;
}
.permission-row:last-child{border-bottom:0}
.permission-row:hover{background:rgba(255,255,255,.022)}
.permission-row>span{display:grid;gap:3px}
.permission-row strong{font-size:11px;color:#dfe4e8}
.permission-row small{font-size:9px;color:var(--muted);font-weight:500;line-height:1.35}
.permission-row input[type="checkbox"]{
  appearance:none;
  width:34px;
  height:19px;
  padding:0;
  border:1px solid #39434e;
  border-radius:999px;
  background:#20262d;
  position:relative;
  cursor:pointer;
  box-shadow:none;
}
.permission-row input[type="checkbox"]:before{
  content:"";
  position:absolute;
  width:13px;
  height:13px;
  left:2px;
  top:2px;
  border-radius:50%;
  background:#74808b;
  transition:transform .16s ease,background .16s ease;
}
.permission-row input[type="checkbox"]:checked{
  border-color:rgba(115,218,160,.45);
  background:rgba(115,218,160,.16);
}
.permission-row input[type="checkbox"]:checked:before{
  transform:translateX(15px);
  background:var(--good);
}
.admin-full-access{
  display:flex;
  align-items:center;
  gap:12px;
  margin:10px;
  padding:16px;
  border:1px solid rgba(115,218,160,.2);
  border-radius:12px;
  background:rgba(115,218,160,.045);
  color:var(--good);
}
.admin-full-access>.ui-icon{width:24px;height:24px}
.admin-full-access>div{display:grid;gap:3px}
.admin-full-access strong{font-size:12px}
.admin-full-access span{font-size:10px;color:var(--muted)}
.permission-summary{
  display:inline-flex;
  align-items:center;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:999px;
  color:#abb5bf;
  background:rgba(255,255,255,.025);
  font-size:9px;
  font-weight:800;
  white-space:nowrap;
}
.permission-summary.full{
  color:var(--good);
  border-color:rgba(115,218,160,.24);
  background:rgba(115,218,160,.055);
}
.permission-master-note{margin-bottom:12px}
.no-access-card{
  max-width:650px;
  margin:70px auto 0;
  text-align:center;
  padding:28px;
}
.no-access-card .ui-icon{width:30px;height:30px;color:#687582;margin-bottom:8px}
.no-access-card h2{margin:0 0 6px}
.no-access-card p{color:var(--muted);line-height:1.5}
.no-nav-permissions{padding:12px;color:var(--muted);font-size:10px;line-height:1.45}
@media(max-width:900px){
  .mobile-bottom-nav-1{grid-template-columns:1fr!important}
  .mobile-bottom-nav-2{grid-template-columns:repeat(2,1fr)!important}
  .mobile-bottom-nav-3{grid-template-columns:repeat(3,1fr)!important}
  .mobile-bottom-nav-4{grid-template-columns:repeat(4,1fr)!important}
  .permission-groups{grid-template-columns:1fr}
  .permission-editor-head{flex-direction:column}
  .permission-presets{justify-content:flex-start}
}

/* ==========================================================
   v17.6 — Evento completo + Documenti evento
   ========================================================== */
.event-documents-hub{
  border-top:1px solid var(--line-soft);
  padding-top:20px;
}
.event-documents-title{
  align-items:flex-end;
  margin-bottom:12px;
}
.event-documents-title p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:11px;
}
.event-doc-summary{
  display:grid;
  justify-items:end;
  gap:0;
  min-width:70px;
}
.event-doc-summary strong{
  font-size:28px;
  line-height:1;
}
.event-doc-summary span{
  color:var(--muted);
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.event-documents-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
  margin-top:11px;
}
.event-doc-panel{
  min-width:0;
  border:1px solid var(--line-soft);
  background:linear-gradient(145deg,#101419,#0d1115);
  border-radius:14px;
  overflow:hidden;
}
.event-doc-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:13px 14px;
  border-bottom:1px solid var(--line-soft);
}
.event-doc-panel-head h3{
  margin:2px 0 3px;
  font-size:14px;
}
.event-doc-panel-head p{
  margin:0;
  color:var(--muted);
  font-size:9px;
  line-height:1.4;
}
.event-doc-kicker{
  color:#6f7b87;
  font-size:8px;
  font-weight:900;
  letter-spacing:.13em;
}
.event-doc-head-side{
  display:flex;
  align-items:center;
  gap:7px;
}
.event-doc-count{
  display:grid;
  place-items:center;
  min-width:28px;
  height:28px;
  padding:0 7px;
  border-radius:9px;
  background:rgba(255,255,255,.045);
  color:var(--dirty);
  font-size:11px;
  font-weight:850;
}
.event-doc-list{
  display:grid;
  gap:0;
}
.event-doc-list .document-card{
  border:0;
  border-bottom:1px solid var(--line-soft);
  border-radius:0;
  background:transparent;
}
.event-doc-list .document-card:last-child{
  border-bottom:0;
}
.document-card-compact{
  grid-template-columns:42px minmax(0,1fr);
  padding:11px 12px;
}
.document-card-compact .document-actions{
  grid-column:1/-1;
  justify-content:flex-end;
  padding-top:7px;
}
.document-card-compact .document-meta{
  gap:2px;
}
.event-doc-footer{
  display:flex;
  justify-content:flex-end;
  margin-top:10px;
}
.document-event-locked{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 12px;
  border:1px solid var(--line-soft);
  border-radius:11px;
  background:#0d1115;
}
.document-event-locked>.ui-icon{
  color:var(--event);
}
.document-event-locked>div{
  display:grid;
  gap:2px;
}
.document-event-locked span,
.document-event-locked small{
  color:var(--muted);
  font-size:9px;
}
.document-event-locked strong{
  font-size:12px;
}
.document-edit-file-note{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:11px;
  border:1px solid var(--line-soft);
  border-radius:10px;
  background:#0d1115;
  color:var(--muted);
  font-size:10px;
  line-height:1.45;
}
.document-edit-file-note .ui-icon{
  width:16px;
  height:16px;
  margin-top:1px;
}
.document-preview-wrap{
  display:grid;
  gap:10px;
}
.document-preview-frame{
  width:100%;
  height:min(68vh,720px);
  border:1px solid var(--line-soft);
  border-radius:10px;
  background:#fff;
}
.document-preview-actions{
  display:flex;
  justify-content:flex-end;
  gap:7px;
}
.document-preview-fallback{
  display:grid;
  place-items:center;
  text-align:center;
  gap:8px;
  min-height:240px;
}
.document-preview-fallback>.ui-icon{
  width:34px;
  height:34px;
  color:#66737f;
}
.document-preview-fallback h3{
  margin:4px 0 0;
}
.document-preview-fallback p{
  margin:0 0 8px;
  color:var(--muted);
}
.document-cost-meta{
  color:var(--muted);
}
@media(max-width:900px){
  .event-documents-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:620px){
  .event-doc-panel-head{
    align-items:center;
  }
  .event-doc-panel-head p{
    display:none;
  }
  .event-doc-head-side{
    flex-direction:column;
    align-items:flex-end;
  }
  .document-card-compact .document-actions{
    justify-content:flex-start;
    overflow-x:auto;
    padding-bottom:2px;
  }
  .document-preview-frame{
    height:60vh;
  }
}

/* v17.7 - Materiale preventivato */
.preevent-hub{padding:16px;border-color:rgba(170,146,237,.16);background:linear-gradient(145deg,#11151a,rgba(170,146,237,.025))}
.preevent-head{align-items:flex-end;margin-bottom:12px}.preevent-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.preevent-summary{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:12px}.preevent-summary .summary-extra{border-color:rgba(231,196,93,.26);background:rgba(231,196,93,.035)}.preevent-summary .summary-extra strong{color:var(--warn)}
.preplanned-list{display:grid;border:1px solid var(--line-soft);border-radius:12px;overflow:hidden}.preplanned-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:9px;min-height:54px;padding:9px 10px;border-bottom:1px solid var(--line-soft);background:#0e1217}.preplanned-row:last-child{border-bottom:0}.preplanned-row:hover{background:#13181e}
.preplanned-check{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,.035);color:#697784}.preplanned-check .ui-icon{width:14px;height:14px}.preplanned-main{display:grid;gap:3px;min-width:0}.preplanned-main strong{font-size:12px}.preplanned-main small{color:var(--muted);font-size:9px}
.preplanned-status{display:inline-flex;align-items:center;padding:5px 8px;border:1px solid var(--line);border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap}.preplanned-status.warn{color:var(--warn);border-color:rgba(231,196,93,.25);background:rgba(231,196,93,.055)}.preplanned-status.info{color:var(--info);border-color:rgba(121,185,230,.25);background:rgba(121,185,230,.055)}.preplanned-status.event{color:var(--event);border-color:rgba(170,146,237,.25);background:rgba(170,146,237,.055)}.preplanned-status.good{color:var(--good);border-color:rgba(115,218,160,.25);background:rgba(115,218,160,.055)}
.unplanned-details{margin-top:10px;border:1px solid rgba(231,196,93,.18);border-radius:10px;background:rgba(231,196,93,.025)}.unplanned-details summary{display:flex;align-items:center;gap:7px;cursor:pointer;padding:10px 11px;color:var(--warn);font-size:10px;font-weight:750}.unplanned-details summary .ui-icon{width:14px;height:14px}.unplanned-list{display:grid;padding:0 10px 10px}.unplanned-list>div{display:flex;justify-content:space-between;gap:10px;padding:7px 4px;border-top:1px solid var(--line-soft);font-size:10px}.unplanned-list span{color:var(--muted)}
.plan-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 170px 160px;gap:8px}.plan-toolbar .toolbar-search{max-width:none}.plan-select-tools{display:flex;align-items:center;gap:7px}.plan-select-tools #planSelectedCount{margin-left:auto;color:var(--muted);font-size:10px;font-weight:700}
.plan-item-list{max-height:48vh;overflow:auto;border:1px solid var(--line-soft);border-radius:11px;background:#0d1115}.plan-item-row{position:relative;display:grid;grid-template-columns:20px 1fr;align-items:center;gap:9px;padding:10px 11px;border-bottom:1px solid var(--line-soft);cursor:pointer}.plan-item-row:last-child{border-bottom:0}.plan-item-row:hover{background:#151a20}.plan-item-row input{position:absolute;opacity:0;pointer-events:none}.plan-item-checkmark{display:grid;place-items:center;width:18px;height:18px;border:1px solid #47525d;border-radius:5px;background:#0b0f13}.plan-item-row input:checked+.plan-item-checkmark{background:var(--dirty);border-color:var(--dirty)}.plan-item-row input:checked+.plan-item-checkmark:after{content:"✓";color:#0a0d10;font-size:12px;font-weight:950}.plan-item-row:has(input:checked){background:rgba(233,228,226,.035)}.plan-item-copy{display:grid;gap:3px}.plan-item-copy strong{font-size:12px}.plan-item-copy small{color:var(--muted);font-size:9px}
.sticky-modal-actions{position:sticky;bottom:-18px;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 -18px -18px;padding:11px 18px 18px;background:linear-gradient(transparent,rgba(17,22,28,.98) 24%)}
.action-popover [data-plan-event-item] .ui-icon{width:13px;height:13px}
@media(max-width:900px){.preevent-summary{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.preevent-head{align-items:stretch}.preevent-actions{width:100%}.preevent-actions .btn{flex:1}.preplanned-row{grid-template-columns:24px minmax(0,1fr) auto}.preplanned-remove{grid-column:2/4;justify-self:start}.plan-toolbar{grid-template-columns:1fr 1fr}.plan-toolbar .toolbar-search{grid-column:1/-1}}
@media(max-width:520px){.preevent-summary{grid-template-columns:repeat(2,1fr)}.plan-toolbar{grid-template-columns:1fr}.plan-toolbar .toolbar-search{grid-column:auto}.plan-select-tools{flex-wrap:wrap}.plan-select-tools #planSelectedCount{width:100%;margin-left:0}.sticky-modal-actions{align-items:stretch;flex-direction:column}.sticky-modal-actions .btn{width:100%}}

/* v17.8 - proprietà materiale JETLAG / NON JETLAG */
.ownership-badge{display:inline-flex;align-items:center;justify-content:center;width:max-content;padding:3px 6px;border-radius:999px;font-size:7px;font-weight:950;letter-spacing:.075em;white-space:nowrap;border:1px solid transparent}
.ownership-badge.jetlag{color:#aeb7c1;background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.07)}
.ownership-badge.external{color:#efbd78;background:rgba(239,189,120,.075);border-color:rgba(239,189,120,.28)}
.item-row-external{background:linear-gradient(90deg,rgba(239,189,120,.045),transparent 34%)}
.item-row-external td:first-child{box-shadow:inset 3px 0 0 rgba(239,189,120,.72)}
.item-row-external:hover{background:linear-gradient(90deg,rgba(239,189,120,.075),rgba(255,255,255,.018) 45%)}
.item-name-stack{display:grid;gap:4px}.item-ownership-line{display:flex;align-items:center;gap:6px;color:#a89988;font-size:8px}
.inventory-ownership-summary{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:8px;margin-bottom:10px}
.inventory-ownership-summary>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid var(--line-soft);border-radius:10px;background:#0e1217}
.inventory-ownership-summary span{color:var(--muted);font-size:8px;font-weight:850;letter-spacing:.07em}.inventory-ownership-summary strong{font-size:18px}
.inventory-ownership-summary .external{border-color:rgba(239,189,120,.22);background:rgba(239,189,120,.035)}.inventory-ownership-summary .external span,.inventory-ownership-summary .external strong{color:#efbd78}
.ownership-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) 185px auto}
.status-card-external{border-color:rgba(239,189,120,.28);background:linear-gradient(145deg,rgba(239,189,120,.055),#13181e 48%)}
.status-card-external:before{background:#efbd78!important;width:3px}.status-owner-name{margin-top:5px;color:#bba58d;font-size:9px}
.status-item-top .ownership-badge{margin-left:auto}.status-item-top .ownership-badge+.badge{margin-left:0}
.status-ownership-summary>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.status-ownership-summary small{color:#bba58d}
.qr-external-owner{margin:6px 0 1px;padding:5px 7px;border:1px solid rgba(239,189,120,.35);border-radius:7px;color:#9b6a2d;background:rgba(239,189,120,.08);font-size:9px}
.preplanned-name-line,.plan-item-name-line{display:flex;align-items:center;gap:7px;min-width:0}.preplanned-name-line .ownership-badge,.plan-item-name-line .ownership-badge{flex:0 0 auto}
#newOwnerLabel.hidden,#ownerNameLabel.hidden{display:none!important}
@media(max-width:700px){.ownership-toolbar{grid-template-columns:1fr}.ownership-toolbar .toolbar-search{max-width:none}.inventory-ownership-summary{grid-template-columns:1fr 1fr}}

/* ==========================================================
   v17.9 — filtri avanzati + lotti distribuiti
   ========================================================== */
.inventory-filter-card{
  margin-bottom:12px;
  padding:14px;
}
.inventory-filter-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:11px;
}
.inventory-filter-head h2{
  margin:2px 0 0;
  font-size:15px;
}
.inventory-filter-grid{
  display:grid;
  grid-template-columns:minmax(250px,1.55fr) repeat(3,minmax(145px,.75fr));
  gap:8px;
}
.inventory-filter-grid label{
  display:grid;
  gap:5px;
}
.inventory-filter-grid label>span{
  color:var(--muted);
  font-size:8px;
  font-weight:850;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.inventory-filter-grid .toolbar-search{
  max-width:none;
  width:100%;
}
.inventory-filter-grid select,
.inventory-filter-grid input{
  width:100%;
}
.inventory-filter-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid var(--line-soft);
  color:var(--muted);
  font-size:10px;
}
.inventory-filter-footer strong{
  color:var(--dirty);
}
.item-detail-badges{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:4px;
}
.lot-badge{
  display:inline-flex;
  align-items:center;
  padding:3px 6px;
  border:1px solid rgba(121,185,230,.25);
  border-radius:999px;
  color:var(--info);
  background:rgba(121,185,230,.055);
  font-size:7px;
  font-weight:900;
  letter-spacing:.055em;
  white-space:nowrap;
}
.lot-split-action{
  border-color:rgba(121,185,230,.25)!important;
}
.lot-transfer-summary,
.lot-distribution-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 11px;
  border:1px solid var(--line-soft);
  border-radius:10px;
  background:#0d1115;
}
.lot-transfer-summary span,
.lot-distribution-total span{
  color:var(--muted);
  font-size:9px;
}
.lot-transfer-summary strong,
.lot-distribution-total strong{
  font-size:18px;
}
.lot-distribution-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.lot-distribution-grid label{
  padding:11px;
  border:1px solid var(--line-soft);
  border-radius:10px;
  background:#0d1115;
}
.lot-distribution-grid input{
  margin-top:6px;
  font-size:18px;
  font-weight:800;
}
.lot-distribution-check{
  padding:8px 10px;
  border-radius:9px;
  border:1px solid var(--line-soft);
  color:var(--muted);
  font-size:10px;
  font-weight:750;
}
.lot-distribution-check.good{
  color:var(--good);
  border-color:rgba(115,218,160,.25);
  background:rgba(115,218,160,.04);
}
.lot-distribution-check.bad{
  color:var(--bad);
  border-color:rgba(236,110,110,.25);
  background:rgba(236,110,110,.04);
}
@media(max-width:1050px){
  .inventory-filter-grid{
    grid-template-columns:repeat(3,1fr);
  }
  .filter-search-field{
    grid-column:1/-1;
  }
}
@media(max-width:700px){
  .inventory-filter-grid{
    grid-template-columns:1fr 1fr;
  }
  .filter-search-field{
    grid-column:1/-1;
  }
  .inventory-filter-footer{
    align-items:flex-start;
    flex-direction:column;
  }
  .lot-distribution-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:480px){
  .inventory-filter-grid{
    grid-template-columns:1fr;
  }
  .filter-search-field{
    grid-column:auto;
  }
}

/* v17.10 - filtri compatti + modifica completa item */
.inventory-filter-compact{position:relative;margin-bottom:10px}
.inventory-filter-bar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;align-items:center;gap:7px;padding:7px;border:1px solid var(--line-soft);border-radius:11px;background:#0e1217}
.compact-main-search{max-width:none;min-height:34px;background:#0b0f13}
.filter-toggle-btn{display:flex;align-items:center;gap:6px;min-height:34px}.filter-toggle-btn .ui-icon{width:13px;height:13px}
.filter-toggle-btn b{display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--dirty);color:#0a0d10;font-size:8px}
.filter-chevron{display:inline-block;color:var(--muted);transition:transform .16s ease}.filter-toggle-btn.open .filter-chevron{transform:rotate(180deg)}
.compact-result-count{min-width:90px;text-align:right;color:var(--muted);font-size:9px;white-space:nowrap}.compact-result-count strong{color:var(--dirty)}
.inventory-filter-dropdown{position:relative;z-index:6;margin-top:6px;padding:10px;border:1px solid var(--line-soft);border-radius:11px;background:#10151a;box-shadow:0 18px 42px rgba(0,0,0,.24)}
.inventory-filter-dropdown.hidden{display:none}.inventory-filter-grid.compact-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.compact-filter-hint{margin-top:8px;padding-top:7px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:8px}
.item-edit-action{border-color:rgba(233,228,226,.14)!important}
.item-edit-form{max-width:760px}.item-edit-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line-soft)}
.item-edit-topline h3{margin:2px 0 0;font-size:16px}.item-edit-top-badges{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.form-section-title{margin-top:3px;padding:7px 0 2px;border-top:1px solid var(--line-soft);color:#808c98;font-size:8px;font-weight:900;letter-spacing:.095em;text-transform:uppercase}
.item-edit-readonly{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px;padding:9px 10px;border:1px solid var(--line-soft);border-radius:9px;background:#0d1115}
.item-edit-readonly>span{color:var(--muted);font-size:9px;font-weight:700}.item-edit-readonly>div{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap;text-align:right}.item-edit-readonly small{width:100%;color:var(--muted);font-size:8px}
.status-readonly{border-color:rgba(121,185,230,.13)}.lot-edit-notice{border-color:rgba(121,185,230,.2)!important}
.item-edit-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:4px}
@media(max-width:800px){.inventory-filter-bar{grid-template-columns:minmax(0,1fr) auto auto}.compact-result-count{grid-column:1/-1;min-width:0;text-align:left;padding:0 5px 2px}.inventory-filter-grid.compact-grid{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.inventory-filter-bar{grid-template-columns:minmax(0,1fr) auto}.inventory-filter-bar>#resetItemFilters{display:none}.inventory-filter-grid.compact-grid{grid-template-columns:1fr}.item-edit-topline{flex-direction:column}.item-edit-top-badges{justify-content:flex-start}.item-edit-readonly{align-items:flex-start;flex-direction:column}.item-edit-readonly>div{justify-content:flex-start;text-align:left}}

/* ==========================================================
   v17.10.2 — filtri popover + tap fuori per chiudere
   ========================================================== */

/* La tendina non occupa spazio nel layout: galleggia sopra la tabella. */
.inventory-filter-compact{
  position:relative;
  z-index:20;
}
.inventory-filter-dropdown{
  position:absolute!important;
  top:calc(100% + 6px)!important;
  right:0!important;
  left:auto!important;
  width:min(560px,100%)!important;
  max-height:min(52vh,430px);
  overflow:auto;
  margin-top:0!important;
  padding:9px!important;
  z-index:90!important;
  box-shadow:0 22px 70px rgba(0,0,0,.62)!important;
  background:#11171d!important;
}
.inventory-filter-grid.compact-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:7px!important;
}
.inventory-filter-grid.compact-grid label{
  gap:4px;
}
.inventory-filter-grid.compact-grid label>span{
  font-size:7px;
}
.inventory-filter-grid.compact-grid select{
  min-height:36px;
  padding-top:7px;
  padding-bottom:7px;
  font-size:10px;
}
.compact-filter-hint{
  margin-top:7px!important;
  padding-top:6px!important;
  font-size:7px!important;
}
.inventory-filter-bar{
  padding:6px!important;
}
.compact-main-search{
  min-height:32px!important;
}
.filter-toggle-btn{
  min-height:32px!important;
  padding:0 10px!important;
}
.compact-result-count{
  font-size:8px!important;
}

/* Modifica item deve essere la prima azione e visivamente primaria nel menu ••• */
.action-popover .item-edit-action{
  order:-100;
  border-color:rgba(233,228,226,.28)!important;
  background:rgba(233,228,226,.055)!important;
  font-weight:850;
}

/* Il pannello delle azioni deve stare sopra tutto il contenuto mobile. */
@media(max-width:700px){
  .action-popover{
    z-index:120!important;
  }
  .inventory-filter-dropdown{
    position:absolute!important;
    top:calc(100% + 6px)!important;
    right:0!important;
    left:auto!important;
    width:min(390px,calc(100vw - 44px))!important;
    max-height:46vh;
    border-radius:12px;
  }
  .inventory-filter-grid.compact-grid{
    grid-template-columns:1fr 1fr!important;
  }
}

/* Su telefoni molto stretti manteniamo comunque 2 colonne per non creare
   una tendina lunga quanto l'intero schermo. */
@media(max-width:430px){
  .inventory-filter-grid.compact-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:6px!important;
  }
  .inventory-filter-grid.compact-grid select{
    min-width:0;
    width:100%;
    font-size:9px;
    padding-left:8px;
    padding-right:22px;
  }
  .inventory-filter-dropdown{
    width:calc(100vw - 36px)!important;
    right:-1px!important;
  }
  .compact-filter-hint{
    display:none;
  }
}

/* Nasconde definitivamente la vecchia "scheda ricerca avanzata" se una cache
   precedente dovesse lasciare classi residue durante un aggiornamento PWA. */
.inventory-filter-card:not(.inventory-filter-compact){
  display:none!important;
}

/* ==========================================================
   v17.10.3 — menu item mobile stabile durante lo scroll
   ========================================================== */
@media(max-width:700px){
  .action-popover{
    position:fixed!important;
    left:14px!important;
    right:14px!important;
    bottom:84px!important;
    top:auto!important;
    width:auto!important;
    z-index:120!important;

    /* Se le azioni sono molte, scorre il riquadro e non la pagina. */
    max-height:calc(100dvh - 190px)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;

    padding:10px!important;
    border-radius:11px!important;
    box-shadow:0 16px 60px rgba(0,0,0,.55)!important;
  }

  /* Mantiene il riquadro stabile e leggibile anche con la barra Safari. */
  @supports not (height:100dvh){
    .action-popover{
      max-height:calc(100vh - 190px)!important;
    }
  }

  .action-popover .btn{
    flex:0 0 auto;
    min-height:40px;
  }
}

/* Nessuna variante dell'ultima riga deve ribaltare il menu verso l'alto su mobile:
   la posizione mobile resta sempre quella fissa originale. */
@media(max-width:700px){
  tr:last-child .action-popover{
    top:auto!important;
    bottom:84px!important;
  }
}

/* ==========================================================
   v17.10.4 — action menu portal mobile
   ========================================================== */

/* Quando il popover viene spostato direttamente sotto <body>, nessuna tabella,
   overflow o stacking context può più coprirlo. */
@media(max-width:700px){
  body > .action-popover.action-popover-portal{
    position:fixed!important;
    left:14px!important;
    right:14px!important;
    top:auto!important;
    bottom:calc(82px + max(8px, env(safe-area-inset-bottom)))!important;
    width:auto!important;

    z-index:10000!important;
    display:grid!important;
    gap:6px!important;

    max-height:calc(100dvh - 185px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;

    padding:10px!important;
    margin:0!important;
    border:1px solid rgba(255,255,255,.14)!important;
    border-radius:13px!important;
    background:#151b21!important;
    box-shadow:0 26px 90px rgba(0,0,0,.78)!important;
  }

  body > .action-popover.action-popover-portal .btn{
    width:100%!important;
    min-height:42px!important;
    flex:0 0 auto!important;
    justify-content:flex-start!important;
  }

  body > .action-popover.action-popover-portal .item-edit-action{
    order:-100!important;
    border-color:rgba(233,228,226,.34)!important;
    background:rgba(233,228,226,.075)!important;
  }

  /* Il menu deve stare sopra barra filtri, stato Online e bottom navigation. */
  body.action-menu-open .inventory-filter-compact,
  body.action-menu-open .offline-status-pill,
  body.action-menu-open .mobile-bottom-nav{
    z-index:58;
  }

  @supports not (height:100dvh){
    body > .action-popover.action-popover-portal{
      max-height:calc(100vh - 185px)!important;
    }
  }
}

/* Neutralizza le vecchie regole "ultima riga" quando il menu è nel portal. */
@media(max-width:700px){
  tr:last-child .action-popover.action-popover-portal,
  .action-popover.action-popover-portal{
    top:auto!important;
  }
}

/* ==========================================================
   v17.10.5 — selezione rapida categorie
   ========================================================== */
.category-create-block{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  padding:10px;
  border:1px solid var(--line-soft);
  border-radius:11px;
  background:#0d1115;
}
.category-create-block label{
  margin:0;
}
.category-create-hint{
  grid-column:1/-1;
  color:var(--muted);
  font-size:8px;
}
#newCategoryLabel.hidden{
  display:none!important;
}
@media(max-width:620px){
  .category-create-block{
    grid-template-columns:1fr;
  }
  .category-create-hint{
    grid-column:auto;
  }
}

/* ==========================================================
   v17.10.6 — parità PC / mobile
   ========================================================== */

/* Desktop: il menu ••• viene portato sotto BODY proprio come su mobile.
   In questo modo non può essere tagliato da tabelle, overflow o card. */
body > .action-popover.action-popover-portal{
  position:fixed!important;
  left:var(--action-left,12px)!important;
  top:var(--action-top,12px)!important;
  right:auto!important;
  bottom:auto!important;
  width:var(--action-width,260px)!important;
  max-height:var(--action-max-height,calc(100vh - 24px))!important;

  z-index:10000!important;
  display:grid!important;
  gap:5px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;

  padding:8px!important;
  margin:0!important;
  border:1px solid rgba(255,255,255,.14)!important;
  border-radius:12px!important;
  background:#151b21!important;
  box-shadow:0 24px 75px rgba(0,0,0,.62)!important;
}

body > .action-popover.action-popover-portal .btn{
  width:100%!important;
  min-height:36px;
  justify-content:flex-start!important;
  flex:0 0 auto!important;
}

body > .action-popover.action-popover-portal .item-edit-action{
  order:-100!important;
  border-color:rgba(233,228,226,.34)!important;
  background:rgba(233,228,226,.075)!important;
  font-weight:850;
}

/* I vecchi ribaltamenti dell'ultima riga non devono influenzare un menu portal. */
tr:last-child .action-popover.action-popover-portal{
  top:var(--action-top,12px)!important;
  bottom:auto!important;
}

/* Desktop: filtri sempre compatti e flottanti, non una card estesa. */
@media(min-width:701px){
  .inventory-filter-compact{
    max-width:none;
  }
  .inventory-filter-dropdown{
    width:min(620px,72vw)!important;
    max-height:min(440px,60vh)!important;
  }
  .inventory-filter-grid.compact-grid{
    grid-template-columns:repeat(3,minmax(150px,1fr))!important;
  }

  .category-create-block{
    grid-template-columns:minmax(220px,1fr) minmax(220px,1fr)!important;
  }

  .item-edit-form{
    width:min(780px,78vw);
  }
}

/* Mobile conserva il pannello fisso in basso introdotto nelle versioni precedenti. */
@media(max-width:700px){
  body > .action-popover.action-popover-portal{
    left:14px!important;
    right:14px!important;
    top:auto!important;
    bottom:calc(82px + max(8px, env(safe-area-inset-bottom)))!important;
    width:auto!important;
    max-height:calc(100dvh - 185px)!important;
    padding:10px!important;
    gap:6px!important;
    border-radius:13px!important;
    box-shadow:0 26px 90px rgba(0,0,0,.78)!important;
  }

  body > .action-popover.action-popover-portal .btn{
    min-height:42px!important;
  }

  tr:last-child .action-popover.action-popover-portal{
    top:auto!important;
    bottom:calc(82px + max(8px, env(safe-area-inset-bottom)))!important;
  }
}

/* v17.10.7 - scheda note item */
.inventory-item-row{cursor:pointer;transition:background .12s ease}.inventory-item-row:hover{background:rgba(255,255,255,.018)}.inventory-item-row:focus-visible{outline:1px solid rgba(233,228,226,.42);outline-offset:-2px}
.item-note-sheet{display:grid;gap:12px}.item-note-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.item-note-sheet-head h3{margin:2px 0 3px;font-size:18px}.item-note-sheet-head p{margin:0;color:var(--muted);font-size:9px}.item-note-sheet-badges{display:flex;justify-content:flex-end;align-items:center;gap:5px;flex-wrap:wrap}
.item-note-card{min-height:150px;padding:14px;border:1px solid rgba(255,255,255,.10);border-radius:12px;background:linear-gradient(145deg,#0e1318,#0b0f13)}.item-note-card-label{display:flex;align-items:center;gap:6px;margin-bottom:11px;color:#7c8995;font-size:8px;font-weight:900;letter-spacing:.095em}.item-note-card-label .ui-icon{width:13px;height:13px}.item-note-text{color:#e8e4e1;font-size:13px;line-height:1.62;overflow-wrap:anywhere}.item-note-empty{display:grid;place-items:center;align-content:center;gap:5px;min-height:100px;text-align:center}.item-note-empty span{color:var(--muted);font-size:9px}.item-note-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.item-note-editor textarea{min-height:180px;resize:vertical}.item-note-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.item-note-editor-footer>div{display:flex;gap:7px}
@media(max-width:700px){.item-note-sheet-head{flex-direction:column}.item-note-sheet-badges{justify-content:flex-start}.item-note-card{min-height:180px}.item-note-text{font-size:14px}.item-note-actions .btn{flex:1}.item-note-editor-footer{align-items:stretch;flex-direction:column}.item-note-editor-footer>div{display:grid;grid-template-columns:1fr 1fr}}

/* ==========================================================
   v17.10.8 — note e link Da acquistare
   ========================================================== */
.wishlist-item-row{cursor:pointer;transition:background .12s ease}
.wishlist-item-row:hover{background:rgba(255,255,255,.018)}
.wishlist-item-row:focus-visible{outline:1px solid rgba(233,228,226,.4);outline-offset:-2px}
.wishlist-link-line{margin-top:5px}.wishlist-product-link{display:inline-flex;align-items:center;gap:5px;color:var(--info);font-size:9px;font-weight:800;text-decoration:none}.wishlist-product-link:hover{text-decoration:underline}.wishlist-product-link .ui-icon{width:12px;height:12px}
.wishlist-note-indicator{margin-top:4px;color:#77838e;font-size:7px;font-weight:750;text-transform:uppercase;letter-spacing:.055em}
.wishlist-note-sheet{display:grid;gap:11px}.wishlist-note-head h3{margin:2px 0 3px;font-size:18px}.wishlist-note-head p{margin:0;color:var(--muted);font-size:9px}
.wishlist-note-card{min-height:135px;padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:#0d1115}.wishlist-note-label{display:flex;align-items:center;gap:6px;margin-bottom:10px;color:#7d8994;font-size:8px;font-weight:900;letter-spacing:.09em}.wishlist-note-label .ui-icon{width:13px;height:13px}.wishlist-note-text{color:#e8e4e1;font-size:13px;line-height:1.62;overflow-wrap:anywhere}.wishlist-note-empty{min-height:85px;display:grid;place-items:center;align-content:center;gap:4px;text-align:center}.wishlist-note-empty span{color:var(--muted);font-size:9px}
.wishlist-main-link{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid rgba(121,185,230,.22);border-radius:11px;background:rgba(121,185,230,.045);color:inherit;text-decoration:none;min-width:0}.wishlist-main-link>.ui-icon{width:20px;height:20px;color:var(--info);flex:0 0 auto}.wishlist-main-link>span{display:grid;gap:2px;min-width:0}.wishlist-main-link small{color:var(--info);font-size:7px;font-weight:900;letter-spacing:.08em}.wishlist-main-link strong{font-size:11px}.wishlist-main-link em{color:var(--muted);font-size:8px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wishlist-main-link:hover{border-color:rgba(121,185,230,.4);background:rgba(121,185,230,.075)}.wishlist-no-link{padding:9px 11px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:9px}
.wishlist-note-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}.wishlist-note-editor input[name="product_url"]{font-size:11px}.wishlist-note-editor textarea{min-height:155px;resize:vertical}.wishlist-note-editor-actions{display:flex;justify-content:flex-end;gap:7px}
@media(max-width:700px){.wishlist-note-card{min-height:165px}.wishlist-note-text{font-size:14px}.wishlist-note-actions .btn{flex:1}.wishlist-note-editor-actions{display:grid;grid-template-columns:1fr 1fr}.wishlist-main-link em{max-width:68vw}}

/* ==========================================================
   v17.10.9 — Stato item leggibile
   ========================================================== */

/*
  Le colonne Stato item sono flex column e la lista interna è un vero
  contenitore scrollabile. Le card NON vengono mai ristrette per cercare
  di far entrare decine di item nello spazio disponibile.
*/
.status-board{
  align-items:stretch!important;
}

.status-column{
  min-height:380px!important;
}

.status-column-list{
  display:flex!important;
  flex-direction:column!important;
  flex:1 1 auto!important;
  min-height:0!important;
  align-content:flex-start!important;

  gap:8px!important;
  padding:10px!important;

  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

.status-column-list > .status-item-card{
  flex:0 0 auto!important;
  width:100%!important;
  min-height:76px!important;
  height:auto!important;
  box-sizing:border-box!important;

  padding:10px 10px 9px 12px!important;
  margin:0!important;

  overflow:hidden!important;
}

.status-item-top{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  gap:7px!important;
  align-items:start!important;
}

.status-item-identity{
  display:flex;
  align-items:flex-start;
  gap:7px;
  min-width:0;
}

.status-item-identity .status-package-icon{
  flex:0 0 auto;
  margin-top:1px;
}

.status-item-identity strong{
  display:block;
  min-width:0;
  color:var(--text);
  font-size:12px!important;
  line-height:1.28!important;
  font-weight:800;
  overflow-wrap:anywhere;
  white-space:normal!important;
}

.status-item-badges{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:5px;
  flex-wrap:wrap;
  min-width:0;
}

.status-item-badges .badge,
.status-item-badges .ownership-badge{
  flex:0 0 auto;
  margin:0!important;
}

.status-item-meta{
  display:block;
  margin-top:7px;
  color:var(--muted);
  font-size:9px;
  line-height:1.4;
  overflow-wrap:anywhere;
  white-space:normal;
}

.status-owner-name,
.status-event-name{
  margin-top:6px!important;
  min-width:0;
  line-height:1.35;
  overflow-wrap:anywhere;
}

.status-owner-name{
  font-size:9px!important;
}

.status-event-name{
  font-size:9px!important;
}

/* scrollbar discreta ma sempre utilizzabile su desktop */
.status-column-list::-webkit-scrollbar{
  width:7px;
}
.status-column-list::-webkit-scrollbar-track{
  background:transparent;
}
.status-column-list::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.13);
  border-radius:999px;
}
.status-column-list:hover::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.22);
}

/* Desktop: altezza controllata; ogni colonna scorre indipendentemente. */
@media(min-width:901px){
  .status-column{
    height:calc(100dvh - 205px)!important;
    max-height:760px!important;
  }

  @supports not (height:100dvh){
    .status-column{
      height:calc(100vh - 205px)!important;
    }
  }
}

/* Tablet/mobile: nessuna compressione. La colonna può crescere normalmente. */
@media(max-width:900px){
  .status-column{
    height:auto!important;
    max-height:none!important;
    min-height:260px!important;
  }

  .status-column-list{
    overflow-y:visible!important;
    max-height:none!important;
  }

  .status-column-list > .status-item-card{
    min-height:76px!important;
  }
}

/* Telefoni: testo un po' più grande e touch target comodo. */
@media(max-width:620px){
  .status-column-list{
    gap:9px!important;
    padding:9px!important;
  }

  .status-column-list > .status-item-card{
    min-height:82px!important;
    padding:11px 11px 10px 13px!important;
  }

  .status-item-identity strong{
    font-size:13px!important;
  }

  .status-item-meta,
  .status-owner-name,
  .status-event-name{
    font-size:10px!important;
  }
}

/* ==========================================================
   v17.10.10 — modifica completa Da acquistare
   ========================================================== */
.wishlist-row-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.wishlist-row-actions .btn{
  white-space:nowrap;
}
.wishlist-full-edit{
  max-width:720px;
}
.wishlist-full-edit textarea{
  min-height:150px;
  resize:vertical;
}
.wishlist-full-edit-actions{
  display:flex;
  justify-content:flex-end;
  gap:7px;
}
@media(max-width:700px){
  .wishlist-row-actions{
    align-items:stretch;
    flex-direction:column;
  }
  .wishlist-row-actions .btn{
    width:100%;
  }
  .wishlist-full-edit-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
}

/* ==========================================================
   v17.10.11 — categorie rapide Da acquistare
   ========================================================== */
.wishlist-category-picker{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  padding:10px;
  border:1px solid var(--line-soft);
  border-radius:10px;
  background:#0d1115;
}
.wishlist-category-picker label{
  margin:0;
}
.wishlist-new-category.hidden{
  display:none!important;
}
@media(max-width:620px){
  .wishlist-category-picker{
    grid-template-columns:1fr;
  }
}

/* ==========================================================
   v17.11 — Dashboard operativa + Registro attività completo
   ========================================================== */

/* Dashboard focus */
.dashboard-focus-grid{
  align-items:stretch;
}
.dashboard-focus-panel{
  min-width:0;
}
.dashboard-focus-panel .panel-title{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
}
.panel-title-icon{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border:1px solid var(--line-soft);
  border-radius:9px;
  background:rgba(255,255,255,.025);
}
.panel-title-icon .ui-icon{
  width:15px;
  height:15px;
}
.dashboard-event-focus{
  display:grid;
  gap:6px;
  margin-top:10px;
}
.dashboard-event-focus-row{
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:58px;
  padding:8px;
  border:1px solid var(--line-soft);
  border-radius:10px;
  background:#0d1115;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.dashboard-event-focus-row:hover{
  background:#13191f;
  border-color:rgba(255,255,255,.13);
}
.dashboard-event-date{
  display:grid;
  place-items:center;
  align-content:center;
  min-height:42px;
  border-radius:8px;
  background:rgba(170,146,237,.07);
  color:var(--event);
}
.dashboard-event-date strong{
  font-size:16px;
  line-height:1;
}
.dashboard-event-date span{
  margin-top:3px;
  font-size:7px;
  font-weight:850;
  text-transform:uppercase;
}
.dashboard-event-main{
  min-width:0;
  display:grid;
  gap:3px;
}
.dashboard-event-main>strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
}
.dashboard-event-main>small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:8px;
}
.dashboard-event-progress{
  height:3px;
  margin-top:3px;
  overflow:hidden;
  border-radius:99px;
  background:rgba(255,255,255,.05);
}
.dashboard-event-progress span{
  display:block;
  height:100%;
  border-radius:inherit;
  background:var(--good);
}
.dashboard-event-numbers{
  display:grid;
  justify-items:end;
  min-width:70px;
}
.dashboard-event-numbers b{
  font-size:15px;
  color:var(--warn);
}
.dashboard-event-numbers span,
.dashboard-event-numbers small{
  color:var(--muted);
  font-size:7px;
  white-space:nowrap;
}
.dashboard-event-numbers small{
  margin-top:3px;
  color:var(--event);
}

.dashboard-purchase-focus{
  display:block;
  width:100%;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.dashboard-purchase-focus:hover{
  border-color:rgba(255,255,255,.14);
  background:#12181e;
}
.dashboard-purchase-numbers{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  margin-top:12px;
}
.dashboard-purchase-numbers>div{
  display:grid;
  gap:3px;
  padding:12px 10px;
  border:1px solid var(--line-soft);
  border-radius:9px;
  background:#0d1115;
}
.dashboard-purchase-numbers strong{
  font-size:19px;
}
.dashboard-purchase-numbers span{
  color:var(--muted);
  font-size:8px;
}
.dashboard-purchase-numbers .purchase-high strong{
  color:var(--warn);
}
.dashboard-purchase-open{
  margin-top:10px;
  color:var(--muted);
  font-size:9px;
  font-weight:700;
}

/* Registro attività completo */
.audit-register-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px;
  margin-bottom:8px;
}
.audit-register-head h2{
  margin:2px 0 3px;
  font-size:16px;
}
.audit-register-head p{
  margin:0;
  color:var(--muted);
  font-size:9px;
}
.audit-register-counter{
  display:flex;
  align-items:baseline;
  gap:5px;
  white-space:nowrap;
}
.audit-register-counter>strong{
  font-size:25px;
}
.audit-register-counter span{
  color:var(--muted);
  font-size:9px;
}
.audit-toolbar{
  position:sticky;
  top:0;
  z-index:20;
  display:grid;
  grid-template-columns:minmax(240px,1.4fr) repeat(3,minmax(145px,.65fr)) auto;
  gap:7px;
  padding:8px;
  border:1px solid var(--line-soft);
  border-radius:10px;
  background:rgba(12,16,20,.96);
  backdrop-filter:blur(10px);
}
.audit-toolbar .toolbar-search{
  max-width:none;
}
.audit-load-state{
  min-height:26px;
  display:flex;
  align-items:center;
  padding:6px 2px;
  color:var(--muted);
  font-size:8px;
}
.audit-loading-dot{
  width:7px;
  height:7px;
  margin-right:7px;
  border-radius:50%;
  background:var(--info);
  animation:auditPulse 1s infinite alternate;
}
.audit-load-complete{
  display:flex;
  align-items:center;
  gap:5px;
  color:var(--good);
}
.audit-load-complete .ui-icon{
  width:12px;
  height:12px;
}
.audit-load-error{
  color:var(--bad);
}
@keyframes auditPulse{
  from{opacity:.35;transform:scale(.8)}
  to{opacity:1;transform:scale(1)}
}

@media(max-width:1000px){
  .audit-toolbar{
    grid-template-columns:1fr 1fr;
  }
  .audit-toolbar .toolbar-search{
    grid-column:1/-1;
  }
}
@media(max-width:700px){
  .dashboard-event-focus-row{
    grid-template-columns:40px minmax(0,1fr);
  }
  .dashboard-event-numbers{
    grid-column:2;
    justify-items:start;
    grid-template-columns:auto auto auto;
    align-items:center;
    gap:5px;
  }
  .dashboard-event-numbers span,
  .dashboard-event-numbers small{
    margin:0;
  }
  .audit-register-head{
    align-items:flex-start;
  }
  .audit-toolbar{
    position:relative;
    grid-template-columns:1fr 1fr;
  }
  .audit-toolbar .toolbar-search{
    grid-column:1/-1;
  }
}
@media(max-width:480px){
  .dashboard-purchase-numbers{
    grid-template-columns:1fr;
  }
  .audit-toolbar{
    grid-template-columns:1fr;
  }
  .audit-toolbar .toolbar-search{
    grid-column:auto;
  }
}

/* ==========================================================
   v18 — OPERATIONS UPGRADE
   ========================================================== */
.storage-location{margin-top:4px;color:var(--info);font-size:8px;font-weight:700}
.storage-position-fields{padding:10px;border:1px solid var(--line-soft);border-radius:10px;background:#0d1115}
.storage-position-fields.storage-disabled{opacity:.45;pointer-events:none}
.maintenance-badge{display:inline-flex;padding:3px 6px;border-radius:999px;font-size:7px;font-weight:900;border:1px solid rgba(236,110,110,.28)}
.maintenance-badge.due{color:var(--bad);background:rgba(236,110,110,.05)}
.bulk-select-col{width:34px;text-align:center!important}.bulk-select-col input{width:16px;height:16px}
.inventory-bulk-bar{position:sticky;top:6px;z-index:24;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0;padding:8px 10px;border:1px solid rgba(121,185,230,.25);border-radius:10px;background:rgba(16,22,28,.97);box-shadow:0 12px 35px rgba(0,0,0,.3)}
.inventory-bulk-bar.hidden{display:none}.inventory-bulk-bar>div{display:flex;gap:6px;flex-wrap:wrap}.inventory-bulk-bar strong{font-size:10px}
.bulk-qr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;max-height:60vh;overflow:auto}.bulk-qr-label{padding:10px;border:1px solid var(--line-soft);border-radius:10px;text-align:center;background:#fff;color:#111}.bulk-qr-label .qr-brand{font-weight:900;letter-spacing:2px}.bulk-qr-label strong,.bulk-qr-label small{display:block}.bulk-qr-label small{font-size:8px}

.event-readiness-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:13px;margin-bottom:10px}
.event-readiness-score{display:grid}.event-readiness-score strong{font-size:30px;line-height:1}.event-readiness-score span{color:var(--muted);font-size:8px;margin-top:4px}
.event-readiness-progress{height:7px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}.event-readiness-progress span{display:block;height:100%;background:var(--good);border-radius:inherit}
.event-readiness-metrics{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.event-readiness-metrics>div{display:grid;padding:8px;border:1px solid var(--line-soft);border-radius:8px}.event-readiness-metrics b{font-size:15px}.event-readiness-metrics span{font-size:8px;color:var(--muted)}.event-readiness-metrics .warn b{color:var(--warn)}.event-readiness-metrics .bad b{color:var(--bad)}
.preplanned-row.is-prepared{background:rgba(115,218,160,.035)}.preplanned-check{border:0;cursor:pointer}.preplanned-check:disabled{cursor:default}
.event-purchase-list,.event-purchase-select{display:grid;gap:6px}.event-purchase-list>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px;border:1px solid var(--line-soft);border-radius:8px}.event-purchase-list span{display:grid}.event-purchase-list small{color:var(--muted);font-size:8px}.event-purchase-select label{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--line-soft);border-radius:8px}

.dashboard-role-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.role-focus-card{display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}.role-focus-card>.ui-icon{width:22px;height:22px}.role-focus-card>div{display:grid}.role-focus-card strong{font-size:16px}.role-focus-card span{color:var(--muted);font-size:8px}.role-focus-card.has-warning{border-color:rgba(231,196,93,.3)}.role-focus-card.has-danger{border-color:rgba(236,110,110,.3)}

.category-admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}.category-admin-card{display:flex;align-items:center;justify-content:space-between;gap:10px}.category-admin-card>div:first-child{display:grid;gap:4px}.category-admin-card span{color:var(--muted);font-size:8px}
.stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:9px}.stock-card.is-low{border-color:rgba(231,196,93,.28)}.stock-card-head{display:flex;justify-content:space-between;gap:10px}.stock-card-head>div{display:grid}.stock-card-head span{font-size:8px;color:var(--muted)}.stock-meter{height:5px;margin:10px 0;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}.stock-meter span{display:block;height:100%;background:var(--good)}.stock-card.is-low .stock-meter span{background:var(--warn)}.stock-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.stock-numbers>div{display:grid;padding:7px;border:1px solid var(--line-soft);border-radius:7px}.stock-numbers b{font-size:16px}.stock-numbers span{font-size:7px;color:var(--muted)}
.supplier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:9px}.supplier-card{cursor:pointer}.supplier-card h3{margin:5px 0}.supplier-card p{color:var(--muted);font-size:9px}.supplier-type{font-size:7px;text-transform:uppercase;letter-spacing:.08em;color:var(--info)}.supplier-stats{display:flex;gap:5px;flex-wrap:wrap;margin:9px 0}.supplier-stats span{padding:4px 6px;border:1px solid var(--line-soft);border-radius:99px;font-size:7px;color:var(--muted)}.supplier-contact-card{padding:10px;border:1px solid var(--line-soft);border-radius:10px}.supplier-contact-card>span{font-size:7px;text-transform:uppercase;color:var(--info)}.supplier-contact-card strong{display:block;margin:4px 0}.supplier-contact-card p{color:var(--muted)}.supplier-history-row{display:grid;padding:7px 0;border-bottom:1px solid var(--line-soft)}.supplier-history-row span{font-size:8px;color:var(--muted)}.supplier-expense-total{font-size:24px;font-weight:850}
.maintenance-summary{display:flex;gap:8px;margin-bottom:10px}.maintenance-summary>div{display:grid;min-width:120px;padding:9px;border:1px solid var(--line-soft);border-radius:9px}.maintenance-summary strong{font-size:20px}.maintenance-summary span{font-size:8px;color:var(--muted)}.maintenance-summary .due{border-color:rgba(236,110,110,.3)}.maintenance-summary .due strong{color:var(--bad)}.maintenance-row-due{background:rgba(236,110,110,.025)}
.backup-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:9px}.backup-card{display:grid;justify-items:start;gap:7px;text-align:left;cursor:pointer}.backup-card>.ui-icon{width:24px;height:24px}.backup-card strong{font-size:13px}.backup-card span{color:var(--muted);font-size:8px;line-height:1.5}.backup-full{border-color:rgba(121,185,230,.25)}

@media(max-width:900px){.dashboard-role-grid{grid-template-columns:repeat(2,1fr)}.event-readiness-card{grid-template-columns:1fr}.event-readiness-progress,.event-readiness-metrics{grid-column:auto}.event-readiness-metrics{grid-template-columns:repeat(2,1fr)}.bulk-qr-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.inventory-bulk-bar{position:relative;align-items:stretch;flex-direction:column}.inventory-bulk-bar>div{display:grid;grid-template-columns:1fr 1fr}.dashboard-role-grid{grid-template-columns:1fr 1fr}.event-readiness-metrics{grid-template-columns:1fr 1fr}.bulk-qr-grid{grid-template-columns:1fr}.category-admin-card{align-items:stretch;flex-direction:column}.category-admin-card .row-actions{width:100%}.category-admin-card .row-actions .btn{flex:1}}

/* ==========================================================
   v18.0.1 — sidebar scorrevole PC + mobile
   ========================================================== */

/*
  Struttura:
  - logo: sempre visibile in alto;
  - navigazione: unica area che scorre;
  - account / esci: sempre visibili in basso.
*/
.sidebar{
  height:100vh!important;
  height:100dvh!important;
  max-height:100dvh!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}

.sidebar .brand,
.sidebar .brand-home{
  flex:0 0 auto!important;
}

.sidebar .nav{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.18) transparent;
  padding-right:5px;
  padding-bottom:14px;
}

.sidebar .nav::-webkit-scrollbar{
  width:6px;
}

.sidebar .nav::-webkit-scrollbar-track{
  background:transparent;
}

.sidebar .nav::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.13);
  border-radius:999px;
}

.sidebar .nav:hover::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.24);
}

.sidebar .side-user{
  flex:0 0 auto!important;
  margin-top:0!important;
  position:relative;
  z-index:2;
  background:linear-gradient(180deg,#0b0e12,#0a0d10);
  border-top:1px solid var(--line-soft);
  box-shadow:0 -10px 24px rgba(0,0,0,.18);
}

/* Un piccolo fade rende evidente che il menu può continuare sotto. */
.sidebar .side-user::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-12px;
  height:12px;
  pointer-events:none;
  background:linear-gradient(to bottom,transparent,#0b0e12);
}

/* Evita che gruppi o pulsanti vengano compressi dentro la zona scrollabile. */
.sidebar .nav > *,
.sidebar .nav button{
  flex:0 0 auto!important;
}

/* Su desktop lasciamo sempre accessibile una scrollbar sottile. */
@media(min-width:901px){
  .sidebar .nav{
    scrollbar-gutter:stable;
  }
}

/* Mantiene la protezione safe-area già prevista su iPhone. */
@media(max-width:900px){
  .sidebar{
    padding-bottom:max(14px,env(safe-area-inset-bottom))!important;
  }
}

/* ==========================================================
   v18.1 — Scaffali QR
   ========================================================== */
.storage-away{color:var(--warn)}
.shelf-explainer{margin-bottom:10px}
.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:9px}
.shelf-card{cursor:pointer;transition:border-color .14s ease,transform .14s ease}.shelf-card:hover{border-color:rgba(121,185,230,.28);transform:translateY(-1px)}.shelf-card.has-missing{border-color:rgba(231,196,93,.25)}
.shelf-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.shelf-card-head>div{display:grid;gap:2px}.shelf-card-head span{color:var(--muted);font-size:8px}.shelf-card-head h3{margin:0;font-size:15px}.shelf-qr-mini{display:grid!important;place-items:center;width:30px;height:30px;border:1px solid var(--line-soft);border-radius:8px}.shelf-qr-mini .ui-icon{width:15px;height:15px}
.shelf-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:11px 0}.shelf-card-stats>div{display:grid;padding:7px;border:1px solid var(--line-soft);border-radius:8px;background:#0d1115}.shelf-card-stats strong{font-size:16px}.shelf-card-stats span{font-size:7px;color:var(--muted)}.shelf-card-stats .bad strong{color:var(--warn)}
.shelf-card p{color:var(--muted);font-size:8px;line-height:1.5}
.shelf-detail{display:grid;gap:12px}.shelf-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.shelf-detail-head h3{margin:2px 0;font-size:16px}.shelf-detail-head p{margin:4px 0 0;color:var(--muted);font-size:8px}
.shelf-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.shelf-summary>div{display:grid;padding:9px;border:1px solid var(--line-soft);border-radius:9px;background:#0d1115}.shelf-summary strong{font-size:18px}.shelf-summary span{font-size:7px;color:var(--muted)}.shelf-summary .bad{border-color:rgba(231,196,93,.25)}.shelf-summary .bad strong{color:var(--warn)}
.shelf-item-list{display:grid;gap:6px;max-height:55vh;overflow:auto;padding-right:3px}.shelf-item-row{display:grid;grid-template-columns:auto minmax(170px,1.3fr) minmax(130px,.8fr) 55px minmax(150px,1fr);align-items:center;gap:9px;padding:9px;border:1px solid var(--line-soft);border-radius:9px;background:#0d1115}.shelf-item-row.is-away{border-color:rgba(231,196,93,.22);background:rgba(231,196,93,.025)}
.shelf-presence{display:inline-flex;padding:4px 6px;border-radius:999px;font-size:7px;font-weight:900}.shelf-presence.ok{color:var(--good);background:rgba(115,218,160,.07);border:1px solid rgba(115,218,160,.2)}.shelf-presence.away{color:var(--warn);background:rgba(231,196,93,.07);border:1px solid rgba(231,196,93,.22)}
.shelf-item-main,.shelf-item-position,.shelf-item-qty,.shelf-item-current{display:grid;gap:2px;min-width:0}.shelf-item-main strong,.shelf-item-position strong,.shelf-item-current strong{overflow-wrap:anywhere}.shelf-item-main small,.shelf-item-position span,.shelf-item-qty span,.shelf-item-current span{font-size:7px;color:var(--muted)}.shelf-item-qty strong{font-size:17px}
.shelf-edit-actions{display:flex;justify-content:space-between;gap:8px}
.shelf-qr-type{font-size:8px;font-weight:900;letter-spacing:.16em;color:var(--muted);margin-top:3px}
@media(max-width:800px){.shelf-summary{grid-template-columns:1fr 1fr}.shelf-item-row{grid-template-columns:auto minmax(0,1fr) 48px}.shelf-item-position,.shelf-item-current{grid-column:2/-1}.shelf-detail-head{flex-direction:column}.shelf-detail-head .btn{width:100%}}
@media(max-width:480px){.shelf-card-stats{grid-template-columns:1fr 1fr 1fr}.shelf-summary{grid-template-columns:1fr 1fr}.shelf-item-row{grid-template-columns:1fr auto}.shelf-item-state{grid-column:1/-1}.shelf-item-position,.shelf-item-current{grid-column:1/-1}}

/* ==========================================================
   v18.3 — Alexia · Interface Restyle
   Solo interfaccia AI. Nessuna modifica al resto del gestionale.
   ========================================================== */

/* Launcher */
.ai-fab{
  position:fixed;
  right:18px;
  bottom:58px;
  z-index:80;
  display:flex;
  align-items:center;
  gap:9px;
  min-width:166px;
  height:48px;
  padding:6px 13px 6px 7px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:15px;
  background:rgba(13,17,21,.94);
  color:var(--text);
  font:inherit;
  cursor:pointer;
  box-shadow:0 14px 38px rgba(0,0,0,.38),0 0 0 1px rgba(0,0,0,.22);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;
}
.ai-fab:hover{
  transform:translateY(-2px);
  border-color:rgba(239,68,68,.38);
  background:#11161b;
  box-shadow:0 16px 42px rgba(0,0,0,.44),0 0 24px rgba(239,68,68,.08);
}
.ai-fab:active{transform:translateY(0) scale(.985)}
.ai-fab-icon{
  position:relative;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:14px;
  color:#fff;
  background:linear-gradient(145deg,#ff5b5b,#d92929 58%,#a91414);
  border:1px solid rgba(255,130,130,.30);
  box-shadow:0 7px 18px rgba(220,38,38,.28),inset 0 1px 0 rgba(255,255,255,.18);
}
.ai-fab-icon::after{
  content:"";
  position:absolute;
  right:-1px;
  bottom:-1px;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#58d68d;
  border:2px solid #0d1115;
}
.ai-fab-icon .ui-icon{width:22px;height:22px}
.ai-fab-copy{display:grid;gap:1px;text-align:left;line-height:1}
.ai-fab-copy strong{font-size:10px;letter-spacing:.055em}
.ai-fab-copy small{font-size:7.5px;color:var(--muted);font-weight:650}
.ai-fab>b{margin-left:auto;color:#737d87;font-size:12px;font-weight:600;transition:transform .16s ease}
.ai-fab:hover>b{transform:translateX(2px);color:#ef5757}

/* Overlay + panel */
.ai-panel-wrap{position:fixed;inset:0;z-index:250;pointer-events:none}
.ai-panel-wrap.open{pointer-events:auto}
.ai-panel-backdrop{
  position:absolute;
  inset:0;
  background:rgba(1,4,7,.48);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  opacity:0;
  transition:opacity .22s ease;
}
.ai-panel-wrap.open .ai-panel-backdrop{opacity:1}
.ai-panel{
  position:absolute;
  right:0;
  top:0;
  width:min(500px,100vw);
  height:100dvh;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  overflow:hidden;
  background:
    radial-gradient(circle at 100% 0%,rgba(225,45,45,.055),transparent 32%),
    #0a0e12;
  border-left:1px solid rgba(255,255,255,.09);
  box-shadow:-28px 0 70px rgba(0,0,0,.50);
  transform:translateX(102%);
  transition:transform .24s cubic-bezier(.22,.8,.2,1);
}
.ai-panel::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:1px;
  background:linear-gradient(180deg,rgba(239,68,68,.55),rgba(239,68,68,.04) 40%,transparent 72%);
  pointer-events:none;
}
.ai-panel-wrap.open .ai-panel{transform:translateX(0)}

/* Header */
.ai-panel-head{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:68px;
  padding:11px 13px 11px 14px;
  border-bottom:1px solid rgba(255,255,255,.075);
  background:rgba(10,14,18,.88);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.ai-panel-title{display:flex;align-items:center;gap:10px;min-width:0}
.ai-title-copy{display:grid;gap:3px}
.ai-title-copy strong{font-size:12px;line-height:1;letter-spacing:.055em}
.ai-title-copy>span{font-size:7px;color:var(--muted);font-weight:650;letter-spacing:.025em}
.ai-panel-actions{display:flex;align-items:center;gap:6px}
.ai-orb{
  position:relative;
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border-radius:15px;
  background:linear-gradient(145deg,#ff6060,#df3030 58%,#a81717);
  border:1px solid rgba(255,130,130,.30);
  box-shadow:0 12px 28px rgba(218,39,39,.22),inset 0 1px 0 rgba(255,255,255,.20);
}
.ai-orb::before{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:11px;
  border:1px solid rgba(255,255,255,.08);
}
.ai-orb.small{width:38px;height:38px;border-radius:12px}
.ai-orb .ui-icon{width:21px;height:21px;color:#fff;position:relative;z-index:1}
.ai-orb.small .ui-icon{width:17px;height:17px}
.ai-status-pill{
  display:flex;
  align-items:center;
  gap:5px;
  max-width:124px;
  min-height:28px;
  padding:0 8px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:9px;
  background:#0f1419;
  color:var(--muted);
}
.ai-status-pill i{
  flex:0 0 auto;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#52d889;
  box-shadow:0 0 9px rgba(82,216,137,.48);
}
.ai-status-pill span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:7px;
  font-weight:700;
}
.ai-new-chat,.ai-close-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.085);
  background:#10151a;
  color:var(--text);
  font:inherit;
  cursor:pointer;
  transition:background .14s,border-color .14s,transform .14s;
}
.ai-new-chat{
  gap:5px;
  min-height:30px;
  padding:0 9px;
  border-radius:9px;
  font-size:8px;
  font-weight:750;
}
.ai-new-chat .ui-icon{width:11px;height:11px}
.ai-close-btn{width:30px;height:30px;padding:0;border-radius:9px}
.ai-close-btn .ui-icon{width:13px;height:13px}
.ai-new-chat:hover,.ai-close-btn:hover{background:#171d23;border-color:rgba(255,255,255,.15)}
.ai-new-chat:active,.ai-close-btn:active{transform:scale(.97)}

/* Read-only strip */
.ai-mode-notice{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:43px;
  padding:7px 14px;
  border-bottom:1px solid rgba(255,255,255,.065);
  background:rgba(255,255,255,.015);
}
.ai-mode-icon{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:8px;
  background:#0f1418;
  color:#9aa5af;
}
.ai-mode-icon .ui-icon{width:12px;height:12px}
.ai-mode-notice>div{display:grid;gap:2px}
.ai-mode-notice strong{font-size:8px;color:#c4cbd2;letter-spacing:.01em}
.ai-mode-notice small{font-size:7px;color:#6f7983;line-height:1.35}

/* Chat area */
.ai-messages{
  min-height:0;
  overflow-y:auto;
  padding:19px 17px 24px;
  display:flex;
  flex-direction:column;
  gap:15px;
  scroll-behavior:smooth;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.13) transparent;
}
.ai-messages::-webkit-scrollbar{width:5px}
.ai-messages::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:99px}

.ai-message{max-width:88%;display:grid;gap:5px}
.ai-message.user{align-self:flex-end}
.ai-message.assistant{align-self:flex-start}
.ai-message-head{display:flex;align-items:center;gap:6px;min-height:16px}
.ai-message.user .ai-message-head{justify-content:flex-end}
.ai-message-avatar{
  display:grid;
  place-items:center;
  width:17px;
  height:17px;
  border-radius:6px;
  color:#fff;
  background:#d93636;
  box-shadow:0 3px 8px rgba(217,54,54,.17);
}
.ai-message-avatar .ui-icon{width:9px;height:9px}
.ai-message-role{
  font-size:6px;
  font-weight:900;
  letter-spacing:.13em;
  color:#6f7983;
}
.ai-message-text{
  padding:11px 12px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:4px 14px 14px 14px;
  background:linear-gradient(145deg,#11171c,#0f1419);
  color:#e6eaee;
  font-size:10px;
  line-height:1.62;
  overflow-wrap:anywhere;
  box-shadow:0 6px 18px rgba(0,0,0,.10);
}
.ai-message.user .ai-message-text{
  border-radius:14px 4px 14px 14px;
  background:linear-gradient(145deg,rgba(218,47,47,.18),rgba(133,24,24,.15));
  border-color:rgba(239,68,68,.27);
  color:#fff;
}
.ai-message-meta{
  padding:0 3px;
  font-size:6.5px;
  color:#58616b;
}
.ai-message.user .ai-message-meta{text-align:right}

/* Empty state */
.ai-welcome{
  margin:auto;
  width:min(100%,365px);
  display:grid;
  justify-items:center;
  gap:14px;
  padding:24px 6px;
}
.ai-welcome-orb{width:56px;height:56px;border-radius:18px}
.ai-welcome-copy{text-align:center;display:grid;justify-items:center;gap:6px}
.ai-eyebrow{
  font-size:6.5px;
  font-weight:900;
  letter-spacing:.18em;
  color:#d75252;
}
.ai-welcome h3{margin:0;font-size:20px;letter-spacing:-.025em}
.ai-welcome p{
  max-width:310px;
  margin:0;
  color:#76818b;
  font-size:9px;
  line-height:1.6;
}
.ai-suggestions{
  width:100%;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:3px;
}
.ai-suggestions button{
  display:grid;
  grid-template-columns:27px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  min-height:56px;
  padding:8px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:11px;
  background:#0e1318;
  color:var(--text);
  font:inherit;
  text-align:left;
  cursor:pointer;
  transition:background .14s,border-color .14s,transform .14s;
}
.ai-suggestions button>span{
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border-radius:8px;
  background:#141a20;
  color:#9aa4ae;
}
.ai-suggestions button>span .ui-icon{width:12px;height:12px}
.ai-suggestions button>div{display:grid;gap:2px;min-width:0}
.ai-suggestions button strong{font-size:8px}
.ai-suggestions button small{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#68727d;
  font-size:7px;
}
.ai-suggestions button>b{color:#59636e;font-size:10px}
.ai-suggestions button:hover{
  transform:translateY(-1px);
  border-color:rgba(239,68,68,.24);
  background:#12181e;
}
.ai-suggestions button:hover>span{color:#ef5757;background:rgba(239,68,68,.07)}
.ai-suggestions button:hover>b{color:#ef5757}
.ai-welcome-foot{
  display:flex;
  align-items:center;
  gap:5px;
  margin-top:2px;
  color:#58626d;
  font-size:6.5px;
}
.ai-welcome-foot .ui-icon{width:10px;height:10px}

/* Composer */
.ai-compose-wrap{
  position:relative;
  padding:10px 12px max(10px,env(safe-area-inset-bottom));
  border-top:1px solid rgba(255,255,255,.07);
  background:rgba(9,13,17,.94);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
}
.ai-compose{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:end;
  gap:7px;
  padding:6px 6px 6px 9px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:15px;
  background:#0e1419;
  box-shadow:0 8px 24px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.02);
  transition:border-color .15s,box-shadow .15s;
}
.ai-compose:focus-within{
  border-color:rgba(239,68,68,.34);
  box-shadow:0 8px 26px rgba(0,0,0,.24),0 0 0 3px rgba(239,68,68,.045);
}
.ai-compose-mark{
  align-self:center;
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  color:#d94a4a;
}
.ai-compose-mark .ui-icon{width:13px;height:13px}
.ai-compose textarea{
  width:100%;
  min-height:34px;
  max-height:130px;
  padding:8px 2px 6px;
  resize:none;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--text);
  font:inherit;
  font-size:10px;
  line-height:1.45;
}
.ai-compose textarea::placeholder{color:#5f6872}
.ai-send-btn{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid rgba(255,124,124,.28);
  border-radius:11px;
  background:linear-gradient(145deg,#ef4d4d,#cf2b2b);
  color:#fff;
  font:inherit;
  font-size:17px;
  font-weight:650;
  cursor:pointer;
  box-shadow:0 6px 16px rgba(205,43,43,.25);
  transition:transform .14s,filter .14s,opacity .14s;
}
.ai-send-btn:hover{transform:translateY(-1px);filter:brightness(1.07)}
.ai-send-btn:active{transform:translateY(0) scale(.97)}
.ai-send-btn:disabled{opacity:.38;cursor:not-allowed;transform:none}
.ai-compose-hint{
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding:7px 3px 0;
  color:#4e5862;
  font-size:6.5px;
}

/* Configuration + loading */
.ai-config{
  margin:10px 12px 0;
  padding:10px 11px;
  border:1px solid rgba(231,196,93,.25);
  border-radius:10px;
  background:rgba(231,196,93,.035);
}
.ai-config.hidden{display:none}
.ai-config strong{font-size:9px;color:var(--warn)}
.ai-config p{margin:5px 0 0;font-size:8px;color:var(--muted);line-height:1.5}
.ai-config code{padding:2px 4px;border:1px solid var(--line-soft);border-radius:4px;background:#080b0e;color:var(--text)}
.ai-typing{
  align-self:flex-start;
  display:flex;
  align-items:center;
  gap:4px;
  padding:9px 11px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:4px 12px 12px 12px;
  background:#10161b;
}
.ai-typing span{width:5px;height:5px;border-radius:50%;background:#d94a4a;animation:aiDot .9s infinite alternate}
.ai-typing span:nth-child(2){animation-delay:.15s}
.ai-typing span:nth-child(3){animation-delay:.3s}
.ai-typing b{margin-left:5px;color:#68727c;font-size:7px;font-weight:650}
@keyframes aiDot{from{opacity:.25;transform:translateY(1px)}to{opacity:1;transform:translateY(-1px)}}

@media(max-width:900px){
  .ai-fab{
    right:12px;
    bottom:max(122px,calc(env(safe-area-inset-bottom) + 112px));
    min-width:128px;
    width:auto;
    height:54px;
    padding:5px 11px 5px 5px;
    border-radius:17px;
    gap:8px;
  }
  .ai-fab-icon{
    width:42px;
    height:42px;
    border-radius:14px;
  }
  .ai-fab-icon .ui-icon{width:22px;height:22px}
  .ai-fab-copy{
    display:grid;
    gap:2px;
    text-align:left;
    line-height:1;
  }
  .ai-fab-copy strong{
    display:block;
    font-size:11px;
    letter-spacing:.035em;
  }
  .ai-fab-copy small{
    display:block;
    font-size:7px;
  }
  .ai-fab>b{display:none}
  .ai-panel{width:100vw;border-left:0}
  .ai-panel-head{padding-top:max(11px,env(safe-area-inset-top))}
}
@media(max-width:520px){
  .ai-panel-head{gap:7px;padding-left:11px;padding-right:10px}
  .ai-status-pill{display:none}
  .ai-new-chat span{display:none}
  .ai-new-chat{width:30px;padding:0}
  .ai-messages{padding:15px 11px 20px}
  .ai-message{max-width:92%}
  .ai-suggestions{grid-template-columns:1fr}
  .ai-compose-wrap{padding-left:9px;padding-right:9px}
  .ai-compose-hint span:last-child{display:none}
}

/* ==========================================================
   v18.3.1 — Riunione lotti
   ========================================================== */
.lot-merge-action{border-color:rgba(121,185,230,.18)}
.lot-merge-modal{gap:10px}
.lot-merge-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.lot-merge-summary>div{display:grid;padding:9px;border:1px solid var(--line-soft);border-radius:9px;background:#0d1115}
.lot-merge-summary span{font-size:7px;color:var(--muted)}
.lot-merge-summary strong{font-size:18px}
.lot-merge-parts{display:grid;gap:5px;max-height:250px;overflow:auto}
.lot-merge-part{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 9px;border:1px solid var(--line-soft);border-radius:8px;background:#0d1115}
.lot-merge-part>div{display:grid;gap:2px;min-width:0}
.lot-merge-part strong{font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lot-merge-part span{font-size:7px;color:var(--muted)}
.lot-merge-part>b{font-size:16px}
.lot-merge-blocked{padding:9px;border:1px solid rgba(236,110,110,.25);border-radius:9px;background:rgba(236,110,110,.035);font-size:8px;line-height:1.6}
.lot-merge-blocked strong{display:block;margin-bottom:4px;color:var(--bad)}

/* v18.3.3 — Alexia launcher visibility */
.ai-fab-icon{
  animation:alexiaLauncherGlow 3.2s ease-in-out infinite;
}
@keyframes alexiaLauncherGlow{
  0%,100%{box-shadow:0 8px 20px rgba(220,38,38,.28),inset 0 1px 0 rgba(255,255,255,.18)}
  50%{box-shadow:0 8px 24px rgba(220,38,38,.42),0 0 0 4px rgba(239,68,68,.035),inset 0 1px 0 rgba(255,255,255,.18)}
}
@media(prefers-reduced-motion:reduce){
  .ai-fab-icon{animation:none}
}

/* ==========================================================
   v18.3.4 — Alexia mobile: nome visibile + no overlap Online
   ========================================================== */
@media(max-width:900px){
  .offline-status-pill{
    right:12px;
    bottom:max(78px,calc(env(safe-area-inset-bottom) + 68px));
  }
  .ai-fab{
    z-index:82;
  }
}
@media(max-width:390px){
  .ai-fab{
    min-width:120px;
    padding-right:9px;
  }
  .ai-fab-copy strong{font-size:10px}
  .ai-fab-copy small{font-size:6.5px}
}

/* ==========================================================
   v18.4 — Accessi ospite temporanei
   ========================================================== */
.side-user.is-guest{border-top-color:rgba(121,185,230,.18)}
.topbar-user.is-guest{border-color:rgba(121,185,230,.18)}
.guest-online-only{cursor:default}.guest-security-note{margin-bottom:10px}
.guest-access-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:9px}.guest-access-card{display:grid;gap:11px}.guest-access-card.is-active{border-color:rgba(115,218,160,.20)}
.guest-access-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.guest-access-head h3{margin:3px 0 0;font-size:15px}
.guest-access-time{display:grid;grid-template-columns:1fr 1fr;gap:7px}.guest-access-time>div{display:grid;gap:2px;padding:8px;border:1px solid var(--line-soft);border-radius:8px;background:#0d1115}.guest-access-time span{font-size:7px;color:var(--muted)}.guest-access-time strong{font-size:8px}
.guest-access-meta{display:flex;flex-wrap:wrap;gap:5px}.guest-access-meta span{padding:4px 6px;border:1px solid var(--line-soft);border-radius:999px;color:var(--muted);font-size:7px}.guest-access-form .permission-editor{margin-top:2px}.guest-single-use{border:1px solid var(--line-soft);border-radius:9px;padding:9px!important;background:#0d1115}.guest-time-presets{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.guest-time-presets>span{margin-right:3px;color:var(--muted);font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.guest-link-warning{border-color:rgba(231,196,93,.25)}.guest-access-error{text-align:left}
@media(max-width:650px){.guest-access-grid{grid-template-columns:1fr}.guest-access-time{grid-template-columns:1fr}}

/* ==========================================================
   v18.5 — Security Hardening
   ========================================================== */
.login-security-note{margin-top:10px;text-align:center;color:var(--muted);font-size:7px;letter-spacing:.02em}
.turnstile-box{min-height:65px;display:grid;place-items:center;overflow:hidden}
.security-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}
.security-card{display:flex;gap:11px;align-items:flex-start}
.security-card>span{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line-soft);border-radius:10px;background:#0d1115;color:#8e99a4;flex:0 0 auto}
.security-card>span .ui-icon{width:15px;height:15px}
.security-card>div{display:grid;gap:3px;min-width:0}
.security-card small{color:var(--muted);font-size:7px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.security-card strong{font-size:13px}
.security-card p{margin:0;color:var(--muted);font-size:8px;line-height:1.45}
