:root{--bg: #0a0e1a;--bg2: #111827;--bg3: #1a2233;--bg4: #1e2940;--border: rgba(255,255,255,.08);--border2: rgba(255,255,255,.14);--text: #e8eaf0;--text2: #8892a4;--text3: #5a6478;--accent: #3b82f6;--accent2: #60a5fa;--accent-glow: rgba(59,130,246,.25);--green: #22c55e;--green-bg: rgba(34,197,94,.1);--yellow: #f59e0b;--yellow-bg: rgba(245,158,11,.1);--red: #ef4444;--red-bg: rgba(239,68,68,.1);--cyan: #06b6d4;--cyan-bg: rgba(6,182,212,.1);--font-head: "Space Grotesk", sans-serif;--font-body: "DM Sans", sans-serif;--radius: 10px;--radius-lg: 14px;--shadow: 0 4px 24px rgba(0,0,0,.4);--sidebar-w: 220px;--transition: .18s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:10px}.app{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;z-index:10}.logo{padding:24px 20px 20px;border-bottom:1px solid var(--border)}.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--accent),#7c3aed);border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;box-shadow:0 0 20px var(--accent-glow)}.logo h1{font-family:var(--font-head);font-size:15px;font-weight:600;color:var(--text)}.logo p{font-size:11px;color:var(--text3);margin-top:2px}.nav-section{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;padding:16px 20px 6px}.nav-btn{display:flex;align-items:center;gap:10px;padding:9px 20px;border:none;background:transparent;color:var(--text2);font-size:13px;font-family:var(--font-body);cursor:pointer;width:100%;text-align:left;transition:color var(--transition),background var(--transition);position:relative}.nav-btn:hover{color:var(--text);background:var(--bg3)}.nav-btn.active{color:var(--accent2);background:linear-gradient(90deg,rgba(59,130,246,.12),transparent)}.nav-btn.active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--accent);border-radius:0 3px 3px 0}.nav-icon{width:16px;height:16px;flex-shrink:0;opacity:.7}.nav-btn.active .nav-icon{opacity:1}.sidebar-footer{margin-top:auto;padding:16px 20px;border-top:1px solid var(--border);font-size:11px;color:var(--text3)}.db-status{display:flex;align-items:center;gap:6px}.db-dot{width:7px;height:7px;border-radius:50%;background:var(--text3);flex-shrink:0}.db-dot.online{background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse 2s infinite}.db-dot.demo{background:var(--yellow)}.db-dot.error{background:var(--red)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.main{flex:1;overflow-y:auto;background:var(--bg)}.page{display:none;padding:28px 32px}.page.active{display:block;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.page-header{margin-bottom:24px}.page-title{font-family:var(--font-head);font-size:22px;font-weight:600;color:var(--text)}.page-sub{font-size:13px;color:var(--text2);margin-top:4px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}.kpi{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;position:relative;overflow:hidden;transition:border-color var(--transition),transform var(--transition)}.kpi:hover{border-color:var(--border2);transform:translateY(-1px)}.kpi:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--kpi-color, var(--accent));opacity:.6}.kpi-label{font-size:11px;color:var(--text3);font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.kpi-val{font-family:var(--font-head);font-size:28px;font-weight:600;color:var(--kpi-color, var(--text))}.kpi-sub{font-size:11px;color:var(--text3);margin-top:4px}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:16px}.card-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.card-title{font-family:var(--font-head);font-size:14px;font-weight:600;color:var(--text)}.card-body{padding:20px}.scroll-box{max-height:350px;overflow-y:auto;position:relative}.scroll-box thead th{position:sticky;top:0;z-index:5;background:var(--bg3)}.table-wrap{overflow-x:auto}.table-wrap table{width:100%;border-collapse:collapse}tbody td{padding:12px 14px;border-bottom:1px solid var(--border);border-right:1px solid rgba(255,255,255,.03);color:var(--text);vertical-align:middle}tbody td:last-child{border-right:none}thead th{padding:12px 14px;background:var(--bg3);color:var(--text3);font-size:11px;font-weight:600;text-align:center;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);border-right:1px solid rgba(255,255,255,.05);white-space:nowrap}thead th:first-child,tbody td:first-child{text-align:left}.col-center{text-align:center}.col-main{text-align:center;font-weight:600;color:var(--text)}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition),color var(--transition);position:relative;padding-right:20px!important}thead th.sortable:hover{background:var(--bg4)!important;color:var(--text)!important}thead th.sortable:after{content:"↕";position:absolute;right:8px;top:50%;transform:translateY(-50%);opacity:.2;font-size:10px}thead th.sortable.asc:after{content:"↑";opacity:1;color:var(--accent2)}thead th.sortable.desc:after{content:"↓";opacity:1;color:var(--accent2)}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--bg3)}tbody tr.urgent td{background:#ef44440f!important}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}.badge-ok{background:var(--green-bg);color:var(--green);border:1px solid rgba(34,197,94,.2)}.badge-warn{background:var(--yellow-bg);color:var(--yellow);border:1px solid rgba(245,158,11,.2)}.badge-err{background:var(--red-bg);color:var(--red);border:1px solid rgba(239,68,68,.2)}.badge-info{background:var(--cyan-bg);color:var(--cyan);border:1px solid rgba(6,182,212,.2)}.badge-blue{background:#3b82f61f;color:var(--accent2);border:1px solid rgba(59,130,246,.2)}.badge-gray{background:var(--bg3);color:var(--text2);border:1px solid var(--border)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:13px;font-family:var(--font-body);font-weight:500;cursor:pointer;border:1px solid var(--border2);background:var(--bg3);color:var(--text);transition:all var(--transition)}.btn:hover{background:var(--bg4);border-color:#fff3}.btn-red{color:var(--red)!important}.btn-red:hover{background:var(--red-bg)!important;border-color:var(--red)!important}.btn-primary{background:var(--accent);color:#fff;border-color:transparent;box-shadow:0 0 16px var(--accent-glow)}.btn-primary:hover{background:#2563eb;box-shadow:0 0 24px var(--accent-glow)}.btn-sm{padding:5px 12px;font-size:12px}.btn-icon{padding:6px;border-radius:8px}.btns{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.filter-bar{display:flex;gap:10px;margin-bottom:16px;align-items:center;flex-wrap:wrap}.filter-bar input,.filter-bar select{font-size:12.5px;padding:6px 12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:12px;color:var(--text2);font-weight:500}.form-group input,.form-group select,.form-group textarea{background:var(--bg3);border:1px solid var(--border2);border-radius:var(--radius);padding:8px 12px;font-size:13px;font-family:var(--font-body);color:var(--text);width:100%;transition:border-color var(--transition)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-group input[readonly],.form-group input:disabled{background:var(--bg);color:var(--text2);cursor:default}.form-group textarea{resize:vertical;min-height:72px}.form-group select option{background:var(--bg3)}.autocomplete-wrapper{position:relative;z-index:1}.autocomplete-wrapper:focus-within{z-index:101}.autocomplete-list{position:absolute;top:100%;left:0;right:0;background:var(--bg3);border:1px solid var(--border2);border-top:none;border-radius:0 0 var(--radius) var(--radius);max-height:260px;overflow-y:auto;z-index:100;box-shadow:var(--shadow);display:none}.autocomplete-list.show{display:block;animation:fadeIn .15s ease}.autocomplete-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);font-size:13px;color:var(--text);transition:background .1s;white-space:normal;word-break:break-word}.autocomplete-item:hover{background:var(--bg4);color:var(--accent2)}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item strong{color:var(--accent2);font-family:var(--font-head);margin-right:8px}.autocomplete-item span{color:var(--text2);font-size:11px}.form-section-title{font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin:20px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.alert{padding:10px 16px;border-radius:var(--radius);font-size:13px;margin-bottom:14px;display:flex;align-items:center;gap:8px}.alert-ok{background:var(--green-bg);color:var(--green);border:1px solid rgba(34,197,94,.2)}.alert-err{background:var(--red-bg);color:var(--red);border:1px solid rgba(239,68,68,.2)}.alert-warn{background:var(--yellow-bg);color:var(--yellow);border:1px solid rgba(245,158,11,.2)}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#7c3aed);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#fff;flex-shrink:0}.avatar-lg{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#7c3aed);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:600;color:#fff;flex-shrink:0}.dip-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dip-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;cursor:pointer;transition:border-color var(--transition),transform var(--transition)}.dip-card:hover{border-color:var(--accent);transform:translateY(-1px)}.dip-card-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.dip-name{font-size:14px;font-weight:600;color:var(--text)}.dip-role{font-size:11px;color:var(--text2);margin-top:2px}.dip-detail{display:none}.dip-detail.active{display:block;animation:fadeIn .2s ease}.back-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;color:var(--text2);font-size:13px;margin-bottom:16px;padding:0;font-family:var(--font-body)}.back-btn:hover{color:var(--text)}.progress-bar{height:5px;border-radius:3px;background:var(--bg3);overflow:hidden;min-width:70px}.progress-fill{height:100%;border-radius:3px;transition:width .5s ease}#top-banner{position:fixed;top:0;left:0;right:0;z-index:100;padding:9px 24px;font-size:12.5px;font-weight:500;display:flex;align-items:center;gap:8px;transform:translateY(-100%);transition:transform .3s ease}#top-banner.show{transform:translateY(0)}#loading{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:999}.spinner{width:38px;height:38px;border:3px solid var(--border2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}#loading p{color:var(--text2);font-size:14px}.action-btns{display:flex;gap:4px}.mov-CONSEGNA{color:var(--yellow)}.mov-ENTRATA{color:var(--green)}.mov-RESTITUZIONE{color:var(--cyan)}.mov-SCARTO{color:var(--red)}.mov-RETTIFICA{color:var(--text2)}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.detail-item label{font-size:11px;color:var(--text3);display:block;margin-bottom:3px}.detail-item span{font-size:13px;font-weight:500;color:var(--text)}.login-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:1000}.login-card{width:100%;max-width:380px;padding:32px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-card{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--radius-lg);padding:32px;width:100%;max-width:400px;box-shadow:var(--shadow);animation:modalIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes modalIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.security-code{background:#000;border:2px dashed var(--accent);color:var(--accent2);font-family:Space Grotesk,monospace;font-size:24px;font-weight:700;letter-spacing:6px;padding:16px;border-radius:var(--radius);text-align:center;text-shadow:0 0 10px var(--accent-glow);cursor:default}.date-range{display:flex;align-items:center;gap:8px;background:var(--bg3);padding:4px 12px;border-radius:var(--radius);border:1px solid var(--border2);transition:border-color var(--transition)}.date-range:focus-within{border-color:var(--accent)}.date-range label{font-size:10px;font-weight:700;color:var(--accent2);text-transform:uppercase;letter-spacing:.05em}.date-range input[type=date]{border:none;background:transparent;padding:2px;color:var(--text);font-size:12px;font-family:var(--font-body);width:120px;outline:none;cursor:pointer}.date-range input::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.6;cursor:pointer}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 900px){.sidebar{width:60px}.sidebar .logo p,.sidebar .nav-section,.nav-btn span{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.dip-grid,.form-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr 1fr}.page{padding:20px 16px}}
