*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;-webkit-overflow-scrolling:touch;overscroll-behavior:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;color:#1a1a1a;background:#f5f5f5;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased}#root{min-height:100%}.app-container{min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px;background:linear-gradient(135deg,#1976d2,#2196f3,#64b5f6)}.login-card{width:100%;max-width:380px;background:#fff;border-radius:20px;padding:40px 28px;box-shadow:0 8px 32px #0003}.login-logo{text-align:center;margin-bottom:32px}.login-icon{font-size:48px;display:block;margin-bottom:8px}.login-logo h1{font-size:28px;color:#1a1a1a;font-weight:700}.login-subtitle{color:#757575;font-size:16px}.form-group{margin-bottom:20px}.form-group label{display:block;font-weight:600;margin-bottom:6px;color:#424242;font-size:15px}.form-group input{width:100%;padding:14px 16px;border:2px solid #e0e0e0;border-radius:12px;font-size:17px;outline:none;transition:border-color .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group input:focus{border-color:#2196f3}.form-error{background:#ffebee;color:#c62828;padding:12px 16px;border-radius:10px;margin-bottom:16px;font-size:15px;text-align:center}.btn-login{width:100%;padding:16px;background:#2196f3;color:#fff;border:none;border-radius:12px;font-size:18px;font-weight:600;cursor:pointer;min-height:54px;transition:background .2s}.btn-login:active{background:#1976d2}.btn-login:disabled{background:#90caf9}.page{padding:16px 16px 100px;min-height:100dvh}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-top:env(safe-area-inset-top,8px)}.page-header h1{font-size:24px;font-weight:700;color:#1a1a1a}.home-page{padding:24px 16px 100px}.home-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-top:env(safe-area-inset-top,8px)}.home-header h1{font-size:28px;font-weight:700}.home-user{display:flex;align-items:center;gap:10px}.home-username{font-size:14px;color:#757575}.btn-logout{padding:8px 16px;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;font-size:14px;color:#616161;cursor:pointer;min-height:40px}.btn-logout:active{background:#e0e0e0}.home-cards{display:flex;flex-direction:column;gap:16px}.home-card{display:flex;align-items:center;gap:20px;padding:28px 24px;border:none;border-radius:16px;color:#fff;font-size:22px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #00000026;transition:transform .15s,box-shadow .15s;text-align:left;min-height:80px}.home-card:active{transform:scale(.97);box-shadow:0 2px 6px #0003}.home-card-icon{font-size:36px;flex-shrink:0}.home-card-label{letter-spacing:.5px}.search-header{position:sticky;top:0;z-index:10;background:#f5f5f5;padding-top:env(safe-area-inset-top,8px);padding-bottom:12px}.search-bar{display:flex;gap:8px}.search-input{flex:1;padding:14px 18px;border:2px solid #e0e0e0;border-radius:14px;font-size:17px;outline:none;background:#fff;min-height:52px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-input:focus{border-color:#2196f3}.btn-scan{flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:#2196f3;color:#fff;border:none;border-radius:14px;cursor:pointer}.btn-scan:active{background:#1976d2}.btn-scan-small{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#ff9800;color:#fff;border:none;border-radius:10px;cursor:pointer}.btn-scan-small:active{background:#f57c00}.results-list{display:flex;flex-direction:column;gap:12px}.material-card{background:#fff;border-radius:14px;padding:16px;box-shadow:0 2px 8px #0000000f}.material-info{margin-bottom:8px}.material-name-es{font-size:17px;font-weight:600;color:#1a1a1a;margin-bottom:2px}.material-name-en{font-size:14px;color:#757575;font-style:italic;margin-bottom:8px}.material-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.material-supplier-code{font-size:13px;color:#9e9e9e}.btn-cat-browse{width:100%;padding:10px;margin-top:10px;border:1px solid #e0e0e0;border-radius:10px;background:#fafafa;color:#2196f3;font-size:14px;font-weight:500;cursor:pointer;min-height:44px}.btn-cat-browse:active{background:#e3f2fd}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap}.badge-cat{background:#7c4dff}.badge-stock{background:#4caf50}.equip-card{background:#fff;border-radius:14px;padding:16px;box-shadow:0 2px 8px #0000000f}.equip-top{display:flex;gap:14px;margin-bottom:10px}.equip-thumb{width:60px;height:60px;border-radius:10px;object-fit:cover;background:#f5f5f5;flex-shrink:0}.equip-info{flex:1;min-width:0}.equip-code{font-size:12px;color:#9e9e9e;font-weight:600;text-transform:uppercase}.equip-name{font-size:17px;font-weight:600;color:#1a1a1a;margin-bottom:6px}.equip-assigned{font-size:13px;color:#757575;margin-top:4px}.equip-actions{display:flex;gap:8px}.btn-action{flex:1;padding:12px;border:none;border-radius:10px;font-size:15px;font-weight:600;color:#fff;cursor:pointer;min-height:48px}.btn-assign{background:#ff9800}.btn-assign:active{background:#f57c00}.btn-return{background:#2196f3}.btn-return:active{background:#1976d2}.btn-km{background:#4caf50;flex:none;padding:12px 20px}.btn-km:active{background:#388e3c}.btn-action:disabled{opacity:.6}.filter-row{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:12px;margin-bottom:8px}.filter-btn{flex-shrink:0;padding:8px 16px;border:2px solid #e0e0e0;border-radius:20px;background:#fff;font-size:14px;color:#616161;cursor:pointer;min-height:40px}.filter-btn.active{background:#2196f3;color:#fff;border-color:#2196f3}.filter-btn:active{background:#e3f2fd}.filter-btn.active:active{background:#1976d2}.mezzo-card{background:#fff;border-radius:14px;padding:16px;box-shadow:0 2px 8px #0000000f;display:flex;align-items:center;gap:12px}.mezzo-info{flex:1;min-width:0}.mezzo-targa{font-size:20px;font-weight:700;color:#1a1a1a;letter-spacing:1px}.mezzo-model{font-size:15px;color:#616161}.mezzo-km{font-size:14px;color:#9e9e9e;margin-top:2px}.mezzo-alerts{display:flex;gap:6px;margin-top:6px}.mezzo-drivers{font-size:13px;color:#757575;margin-top:4px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000080;display:flex;align-items:flex-end;padding:0}.overlay-content{width:100%;max-height:85dvh;background:#fff;border-radius:20px 20px 0 0;padding:20px 16px;padding-bottom:calc(20px + env(safe-area-inset-bottom,0));overflow-y:auto;-webkit-overflow-scrolling:touch;animation:slideUp .25s ease-out}.overlay-small{max-height:50dvh}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.overlay-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.overlay-header h2{font-size:20px;font-weight:700}.btn-close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:none;border-radius:50%;font-size:18px;cursor:pointer;color:#616161}.btn-close:active{background:#e0e0e0}.cat-list{display:flex;flex-direction:column;gap:10px}.cat-item{padding:12px;background:#fafafa;border-radius:10px}.worker-list{display:flex;flex-direction:column;gap:8px}.worker-btn{padding:16px;border:1px solid #e0e0e0;border-radius:12px;background:#fff;font-size:17px;text-align:left;cursor:pointer;min-height:54px}.worker-btn:active{background:#e3f2fd}.worker-btn:disabled{opacity:.6}.return-options{display:flex;flex-direction:column;gap:10px}.btn-return-option{padding:16px;border:none;border-radius:12px;color:#fff;font-size:18px;font-weight:600;cursor:pointer;min-height:56px}.btn-return-option:active{opacity:.85}.btn-return-option:disabled{opacity:.6}.km-form{display:flex;flex-direction:column;gap:14px}.km-vehicle{font-size:22px;font-weight:700;text-align:center;color:#1a1a1a;letter-spacing:1px}.km-input{padding:16px;border:2px solid #e0e0e0;border-radius:12px;font-size:22px;text-align:center;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.km-input:focus{border-color:#4caf50}.btn-save-km{padding:16px;border:none;border-radius:12px;background:#4caf50;color:#fff;font-size:18px;font-weight:600;cursor:pointer;min-height:56px}.btn-save-km:active{background:#388e3c}.btn-save-km:disabled{background:#a5d6a7}.scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000;display:flex;flex-direction:column}.scanner-container{display:flex;flex-direction:column;height:100%}.scanner-header{display:flex;justify-content:space-between;align-items:center;padding:16px;padding-top:calc(16px + env(safe-area-inset-top,0));color:#fff;font-size:16px;font-weight:600;background:#000c}.btn-close-scanner{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff3;border:none;border-radius:50%;color:#fff;font-size:20px;cursor:pointer}.scanner-view{flex:1;background:#000}.scanner-hint{text-align:center;color:#aaa;padding:16px;font-size:14px;background:#000c;padding-bottom:calc(16px + env(safe-area-inset-bottom,0))}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:50;background:#fff;border-top:1px solid #e0e0e0;display:flex;padding-bottom:env(safe-area-inset-bottom,0);box-shadow:0 -2px 8px #0000000f}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 4px;border:none;background:none;cursor:pointer;color:#9e9e9e;min-height:56px;transition:color .15s}.nav-item.active{color:#2196f3}.nav-item:active{background:#f5f5f5}.nav-icon{display:flex;align-items:center;justify-content:center}.nav-label{font-size:11px;font-weight:600}.msg-error{background:#ffebee;color:#c62828;padding:12px 16px;border-radius:10px;margin-bottom:12px;font-size:15px;text-align:center}.msg-loading{text-align:center;color:#9e9e9e;padding:24px;font-size:16px}.msg-empty{text-align:center;color:#bdbdbd;padding:40px 16px;font-size:16px}#barcode-reader video{width:100%!important;height:auto!important;object-fit:cover}#barcode-reader__scan_region{min-height:300px}#barcode-reader__dashboard{display:none!important}
